diff --git a/go/gen/sift/common/v1/filter_field.pb.go b/go/gen/sift/common/v1/filter_field.pb.go index 94ac35d97c..53afd37211 100644 --- a/go/gen/sift/common/v1/filter_field.pb.go +++ b/go/gen/sift/common/v1/filter_field.pb.go @@ -88,6 +88,75 @@ func (FilterFieldType) EnumDescriptor() ([]byte, []int) { return file_sift_common_v1_filter_field_proto_rawDescGZIP(), []int{0} } +// Describes the structural shape of a filter field: how a client builds a +// predicate for it. This is orthogonal to FilterFieldType (the value's data +// type) and to the entity/name/key identity (which field it is). +type FilterFieldKind int32 + +const ( + // Unset. Treated as FILTER_FIELD_KIND_SCALAR for backward compatibility. + FilterFieldKind_FILTER_FIELD_KIND_UNSPECIFIED FilterFieldKind = 0 + // A typed column: one operator plus one value editor. `type` is the value + // type and the grammar resolves operators/functions from it. + FilterFieldKind_FILTER_FIELD_KIND_SCALAR FilterFieldKind = 1 + // A dynamic key/value family (e.g. metadata). `name` is the map namespace and + // `key` the chosen index. `type` is UNSPECIFIED because the value type is the + // chosen key's type, resolved per key via the grammar. + FilterFieldKind_FILTER_FIELD_KIND_MAP FilterFieldKind = 2 + // A has-many collection filtered by a CEL comprehension + // (e.g. measurements.exists(m, m.name == "humidity" && m.numeric_value > 50)). + // See the recursive `fields` and `quantifiers` below. + FilterFieldKind_FILTER_FIELD_KIND_RELATION FilterFieldKind = 3 + // A pseudo-field (e.g. include_archived) that resolves to query shape rather + // than a column. + FilterFieldKind_FILTER_FIELD_KIND_DIRECTIVE FilterFieldKind = 4 +) + +// Enum value maps for FilterFieldKind. +var ( + FilterFieldKind_name = map[int32]string{ + 0: "FILTER_FIELD_KIND_UNSPECIFIED", + 1: "FILTER_FIELD_KIND_SCALAR", + 2: "FILTER_FIELD_KIND_MAP", + 3: "FILTER_FIELD_KIND_RELATION", + 4: "FILTER_FIELD_KIND_DIRECTIVE", + } + FilterFieldKind_value = map[string]int32{ + "FILTER_FIELD_KIND_UNSPECIFIED": 0, + "FILTER_FIELD_KIND_SCALAR": 1, + "FILTER_FIELD_KIND_MAP": 2, + "FILTER_FIELD_KIND_RELATION": 3, + "FILTER_FIELD_KIND_DIRECTIVE": 4, + } +) + +func (x FilterFieldKind) Enum() *FilterFieldKind { + p := new(FilterFieldKind) + *p = x + return p +} + +func (x FilterFieldKind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FilterFieldKind) Descriptor() protoreflect.EnumDescriptor { + return file_sift_common_v1_filter_field_proto_enumTypes[1].Descriptor() +} + +func (FilterFieldKind) Type() protoreflect.EnumType { + return &file_sift_common_v1_filter_field_proto_enumTypes[1] +} + +func (x FilterFieldKind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FilterFieldKind.Descriptor instead. +func (FilterFieldKind) EnumDescriptor() ([]byte, []int) { + return file_sift_common_v1_filter_field_proto_rawDescGZIP(), []int{1} +} + // Describes a single field available for CEL filtering on a resource. type FilterField struct { state protoimpl.MessageState @@ -119,6 +188,33 @@ type FilterField struct { // always holds a concrete value.) Optional so that an unset value means // "unknown" rather than implicitly "not nullable". Nullable *bool `protobuf:"varint,8,opt,name=nullable,proto3,oneof" json:"nullable,omitempty"` + // The owning scope of the field (e.g. "report", "test_step"). Together with + // `name` and `key` this is the structured identity of the field; `field_name` + // is its deterministic CEL serialization, so the client never assembles or + // parses it. Optional; empty when the field carries no structured identity. + Entity string `protobuf:"bytes,9,opt,name=entity,proto3" json:"entity,omitempty"` + // The fixed field on the entity: a column, a map namespace (e.g. "metadata"), + // or a relation (e.g. "measurements"). Optional. + // + // When the field corresponds to a field on the resource's own message, `name` + // matches that field's name (e.g. `run_id` or `is_archived` on a run), so it + // maps directly to the resource schema you already know. Fields that are + // derived or computed and have no direct counterpart on the message + // (e.g. `duration_string`) carry a descriptive name instead. + Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"` + // The dynamic map index when `name` is a map (e.g. the metadata key). Empty + // when `name` is not a map. Optional. + Key string `protobuf:"bytes,11,opt,name=key,proto3" json:"key,omitempty"` + // The structural shape of the field. Unset is treated as SCALAR. + FieldKind FilterFieldKind `protobuf:"varint,12,opt,name=field_kind,json=fieldKind,proto3,enum=sift.common.v1.FilterFieldKind" json:"field_kind,omitempty"` + // For a RELATION field, the relation's filterable columns, each a full + // FilterField (e.g. "name", "numeric_value", "passed" for measurements). + // Empty for non-relation kinds. + Fields []*FilterField `protobuf:"bytes,13,rep,name=fields,proto3" json:"fields,omitempty"` + // For a RELATION field, the comprehension macros that apply + // (e.g. "exists", "all", "exists_one"). The client picks one, then composes + // inner predicates over `fields`. Empty for non-relation kinds. + Quantifiers []string `protobuf:"bytes,14,rep,name=quantifiers,proto3" json:"quantifiers,omitempty"` } func (x *FilterField) Reset() { @@ -209,13 +305,55 @@ func (x *FilterField) GetNullable() bool { return false } +func (x *FilterField) GetEntity() string { + if x != nil { + return x.Entity + } + return "" +} + +func (x *FilterField) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FilterField) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *FilterField) GetFieldKind() FilterFieldKind { + if x != nil { + return x.FieldKind + } + return FilterFieldKind_FILTER_FIELD_KIND_UNSPECIFIED +} + +func (x *FilterField) GetFields() []*FilterField { + if x != nil { + return x.Fields + } + return nil +} + +func (x *FilterField) GetQuantifiers() []string { + if x != nil { + return x.Quantifiers + } + return nil +} + var File_sift_common_v1_filter_field_proto protoreflect.FileDescriptor var file_sift_common_v1_filter_field_proto_rawDesc = []byte{ 0x0a, 0x21, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x22, 0xb1, 0x02, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, + 0x2e, 0x76, 0x31, 0x22, 0x86, 0x04, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, @@ -233,38 +371,63 @@ var file_sift_common_v1_filter_field_proto_rawDesc = []byte{ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x6e, - 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, - 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2a, 0xa0, 0x02, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x46, - 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, - 0x0a, 0x18, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, - 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x02, 0x12, 0x19, 0x0a, - 0x15, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x4c, 0x54, - 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, - 0x4f, 0x4c, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, - 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, - 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x07, 0x12, 0x1a, - 0x0a, 0x16, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x55, 0x49, 0x44, 0x10, 0x08, 0x42, 0xbb, 0x01, 0x0a, 0x12, 0x63, - 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x42, 0x10, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, - 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x76, 0x31, - 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x5c, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x09, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x33, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2a, 0xa0, 0x02, 0x0a, + 0x0f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, + 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, + 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, + 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x1a, 0x0a, + 0x16, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x49, 0x4c, + 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, + 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x49, 0x4c, + 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, + 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x4c, 0x54, 0x45, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, + 0x4d, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x55, 0x49, 0x44, 0x10, 0x08, 0x2a, + 0xae, 0x01, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4b, + 0x69, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x43, 0x41, 0x4c, + 0x41, 0x52, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x02, 0x12, + 0x1e, 0x0a, 0x1a, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, + 0x1f, 0x0a, 0x1b, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x04, + 0x42, 0xbb, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, + 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, + 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, 0x0e, 0x53, + 0x69, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0e, + 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x1a, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x10, 0x53, 0x69, + 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -279,19 +442,22 @@ func file_sift_common_v1_filter_field_proto_rawDescGZIP() []byte { return file_sift_common_v1_filter_field_proto_rawDescData } -var file_sift_common_v1_filter_field_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_sift_common_v1_filter_field_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_sift_common_v1_filter_field_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_sift_common_v1_filter_field_proto_goTypes = []interface{}{ (FilterFieldType)(0), // 0: sift.common.v1.FilterFieldType - (*FilterField)(nil), // 1: sift.common.v1.FilterField + (FilterFieldKind)(0), // 1: sift.common.v1.FilterFieldKind + (*FilterField)(nil), // 2: sift.common.v1.FilterField } var file_sift_common_v1_filter_field_proto_depIdxs = []int32{ 0, // 0: sift.common.v1.FilterField.type:type_name -> sift.common.v1.FilterFieldType - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 1, // 1: sift.common.v1.FilterField.field_kind:type_name -> sift.common.v1.FilterFieldKind + 2, // 2: sift.common.v1.FilterField.fields:type_name -> sift.common.v1.FilterField + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_sift_common_v1_filter_field_proto_init() } @@ -319,7 +485,7 @@ func file_sift_common_v1_filter_field_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_common_v1_filter_field_proto_rawDesc, - NumEnums: 1, + NumEnums: 2, NumMessages: 1, NumExtensions: 0, NumServices: 0, diff --git a/go/gen/sift/common/v1/filter_field_vtproto.pb.go b/go/gen/sift/common/v1/filter_field_vtproto.pb.go index 945bf4b92c..ade2a385fe 100644 --- a/go/gen/sift/common/v1/filter_field_vtproto.pb.go +++ b/go/gen/sift/common/v1/filter_field_vtproto.pb.go @@ -29,6 +29,10 @@ func (m *FilterField) CloneVT() *FilterField { r.Type = m.Type r.Description = m.Description r.DisplayName = m.DisplayName + r.Entity = m.Entity + r.Name = m.Name + r.Key = m.Key + r.FieldKind = m.FieldKind if rhs := m.EnumValues; rhs != nil { tmpContainer := make([]string, len(rhs)) copy(tmpContainer, rhs) @@ -48,6 +52,18 @@ func (m *FilterField) CloneVT() *FilterField { tmpVal := *rhs r.Nullable = &tmpVal } + if rhs := m.Fields; rhs != nil { + tmpContainer := make([]*FilterField, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Fields = tmpContainer + } + if rhs := m.Quantifiers; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.Quantifiers = tmpContainer + } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -107,6 +123,44 @@ func (this *FilterField) EqualVT(that *FilterField) bool { if p, q := this.Nullable, that.Nullable; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { return false } + if this.Entity != that.Entity { + return false + } + if this.Name != that.Name { + return false + } + if this.Key != that.Key { + return false + } + if this.FieldKind != that.FieldKind { + return false + } + if len(this.Fields) != len(that.Fields) { + return false + } + for i, vx := range this.Fields { + vy := that.Fields[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FilterField{} + } + if q == nil { + q = &FilterField{} + } + if !p.EqualVT(q) { + return false + } + } + } + if len(this.Quantifiers) != len(that.Quantifiers) { + return false + } + for i, vx := range this.Quantifiers { + vy := that.Quantifiers[i] + if vx != vy { + return false + } + } return string(this.unknownFields) == string(that.unknownFields) } @@ -147,6 +201,53 @@ func (m *FilterField) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.Quantifiers) > 0 { + for iNdEx := len(m.Quantifiers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Quantifiers[iNdEx]) + copy(dAtA[i:], m.Quantifiers[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Quantifiers[iNdEx]))) + i-- + dAtA[i] = 0x72 + } + } + if len(m.Fields) > 0 { + for iNdEx := len(m.Fields) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Fields[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x6a + } + } + if m.FieldKind != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.FieldKind)) + i-- + dAtA[i] = 0x60 + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0x5a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x52 + } + if len(m.Entity) > 0 { + i -= len(m.Entity) + copy(dAtA[i:], m.Entity) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Entity))) + i-- + dAtA[i] = 0x4a + } if m.Nullable != nil { i-- if *m.Nullable { @@ -243,6 +344,53 @@ func (m *FilterField) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.Quantifiers) > 0 { + for iNdEx := len(m.Quantifiers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Quantifiers[iNdEx]) + copy(dAtA[i:], m.Quantifiers[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Quantifiers[iNdEx]))) + i-- + dAtA[i] = 0x72 + } + } + if len(m.Fields) > 0 { + for iNdEx := len(m.Fields) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Fields[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x6a + } + } + if m.FieldKind != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.FieldKind)) + i-- + dAtA[i] = 0x60 + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0x5a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x52 + } + if len(m.Entity) > 0 { + i -= len(m.Entity) + copy(dAtA[i:], m.Entity) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Entity))) + i-- + dAtA[i] = 0x4a + } if m.Nullable != nil { i-- if *m.Nullable { @@ -351,6 +499,33 @@ func (m *FilterField) SizeVT() (n int) { if m.Nullable != nil { n += 2 } + l = len(m.Entity) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Key) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.FieldKind != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.FieldKind)) + } + if len(m.Fields) > 0 { + for _, e := range m.Fields { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.Quantifiers) > 0 { + for _, s := range m.Quantifiers { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } n += len(m.unknownFields) return n } @@ -616,6 +791,187 @@ func (m *FilterField) UnmarshalVT(dAtA []byte) error { } b := bool(v != 0) m.Nullable = &b + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Entity", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Entity = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldKind", wireType) + } + m.FieldKind = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.FieldKind |= FilterFieldKind(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fields", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Fields = append(m.Fields, &FilterField{}) + if err := m.Fields[len(m.Fields)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Quantifiers", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Quantifiers = append(m.Quantifiers, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -923,6 +1279,203 @@ func (m *FilterField) UnmarshalVTUnsafe(dAtA []byte) error { } b := bool(v != 0) m.Nullable = &b + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Entity", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Entity = stringValue + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Key = stringValue + iNdEx = postIndex + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldKind", wireType) + } + m.FieldKind = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.FieldKind |= FilterFieldKind(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fields", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Fields = append(m.Fields, &FilterField{}) + if err := m.Fields[len(m.Fields)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Quantifiers", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Quantifiers = append(m.Quantifiers, stringValue) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/data_imports/v2/data_imports.pb.go b/go/gen/sift/data_imports/v2/data_imports.pb.go index cbb174e155..72bb4712b2 100644 --- a/go/gen/sift/data_imports/v2/data_imports.pb.go +++ b/go/gen/sift/data_imports/v2/data_imports.pb.go @@ -853,6 +853,11 @@ type CsvConfig struct { DataColumns map[uint32]*v1.ChannelConfig `protobuf:"bytes,6,rep,name=data_columns,json=dataColumns,proto3" json:"data_columns,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // This will be read on upload from the file if not set. NumRows *uint64 `protobuf:"varint,7,opt,name=num_rows,json=numRows,proto3,oneof" json:"num_rows,omitempty"` + // If true, the time and data column configuration is read from a config + // embedded in the file (written when the file was exported with + // embed_channel_configs). Any time_column/data_columns supplied here are + // ignored and replaced by the embedded config. + UseEmbeddedConfig bool `protobuf:"varint,10,opt,name=use_embedded_config,json=useEmbeddedConfig,proto3" json:"use_embedded_config,omitempty"` } func (x *CsvConfig) Reset() { @@ -936,6 +941,13 @@ func (x *CsvConfig) GetNumRows() uint64 { return 0 } +func (x *CsvConfig) GetUseEmbeddedConfig() bool { + if x != nil { + return x.UseEmbeddedConfig + } + return false +} + type CsvTimeColumn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1598,6 +1610,11 @@ type ParquetFlatDatasetConfig struct { TimeColumn *ParquetTimeColumn `protobuf:"bytes,1,opt,name=time_column,json=timeColumn,proto3" json:"time_column,omitempty"` DataColumns []*ParquetDataColumn `protobuf:"bytes,2,rep,name=data_columns,json=dataColumns,proto3" json:"data_columns,omitempty"` + // If true, the time and data column configuration is read from the config + // embedded in the file's Arrow field metadata (written when the file was + // exported with embed_channel_configs). Any time_column/data_columns supplied + // here are ignored and replaced by the embedded config. + UseEmbeddedConfig bool `protobuf:"varint,3,opt,name=use_embedded_config,json=useEmbeddedConfig,proto3" json:"use_embedded_config,omitempty"` } func (x *ParquetFlatDatasetConfig) Reset() { @@ -1646,6 +1663,13 @@ func (x *ParquetFlatDatasetConfig) GetDataColumns() []*ParquetDataColumn { return nil } +func (x *ParquetFlatDatasetConfig) GetUseEmbeddedConfig() bool { + if x != nil { + return x.UseEmbeddedConfig + } + return false +} + type ParquetSingleChannelPerRowMultiChannelConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2819,7 +2843,7 @@ type ListDataImportsRequest struct { // the call that provided the page token. Optional. PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `data_import_id`, `source_url`, `status`. + // Available fields to filter by are `data_import_id`, `source_url`, `status`, `run_id`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` // How to order the retrieved data imports. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". @@ -3141,7 +3165,7 @@ var file_sift_data_imports_v2_data_imports_proto_rawDesc = []byte{ 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0xc8, + 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0xf8, 0x03, 0x0a, 0x09, 0x43, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, @@ -3162,7 +3186,10 @@ var file_sift_data_imports_v2_data_imports_proto_rawDesc = []byte{ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x07, 0x6e, 0x75, - 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x62, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, + 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x5f, + 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x62, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, @@ -3305,7 +3332,7 @@ var file_sift_data_imports_v2_data_imports_proto_rawDesc = []byte{ 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x46, 0x6c, 0x61, + 0x67, 0x22, 0xe0, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x48, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, @@ -3316,7 +3343,10 @@ var file_sift_data_imports_v2_data_imports_proto_rawDesc = []byte{ 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x73, 0x22, 0x68, 0x0a, 0x2c, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x53, + 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6d, 0x62, 0x65, + 0x64, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0x68, 0x0a, 0x2c, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x65, 0x72, 0x52, 0x6f, 0x77, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, diff --git a/go/gen/sift/data_imports/v2/data_imports_vtproto.pb.go b/go/gen/sift/data_imports/v2/data_imports_vtproto.pb.go index d3f96c969a..9f44185140 100644 --- a/go/gen/sift/data_imports/v2/data_imports_vtproto.pb.go +++ b/go/gen/sift/data_imports/v2/data_imports_vtproto.pb.go @@ -153,6 +153,7 @@ func (m *CsvConfig) CloneVT() *CsvConfig { r.RunId = m.RunId r.FirstDataRow = m.FirstDataRow r.TimeColumn = m.TimeColumn.CloneVT() + r.UseEmbeddedConfig = m.UseEmbeddedConfig if rhs := m.DataColumns; rhs != nil { tmpContainer := make(map[uint32]*v1.ChannelConfig, len(rhs)) for k, v := range rhs { @@ -407,6 +408,7 @@ func (m *ParquetFlatDatasetConfig) CloneVT() *ParquetFlatDatasetConfig { } r := new(ParquetFlatDatasetConfig) r.TimeColumn = m.TimeColumn.CloneVT() + r.UseEmbeddedConfig = m.UseEmbeddedConfig if rhs := m.DataColumns; rhs != nil { tmpContainer := make([]*ParquetDataColumn, len(rhs)) for k, v := range rhs { @@ -1106,6 +1108,9 @@ func (this *CsvConfig) EqualVT(that *CsvConfig) bool { if p, q := this.NumRows, that.NumRows; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { return false } + if this.UseEmbeddedConfig != that.UseEmbeddedConfig { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -1417,6 +1422,9 @@ func (this *ParquetFlatDatasetConfig) EqualVT(that *ParquetFlatDatasetConfig) bo } } } + if this.UseEmbeddedConfig != that.UseEmbeddedConfig { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -2926,6 +2934,16 @@ func (m *CsvConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.UseEmbeddedConfig { + i-- + if m.UseEmbeddedConfig { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x50 + } if m.NumRows != nil { i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.NumRows)) i-- @@ -3641,6 +3659,16 @@ func (m *ParquetFlatDatasetConfig) MarshalToSizedBufferVT(dAtA []byte) (int, err i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.UseEmbeddedConfig { + i-- + if m.UseEmbeddedConfig { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } if len(m.DataColumns) > 0 { for iNdEx := len(m.DataColumns) - 1; iNdEx >= 0; iNdEx-- { size, err := m.DataColumns[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) @@ -5403,6 +5431,16 @@ func (m *CsvConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.UseEmbeddedConfig { + i-- + if m.UseEmbeddedConfig { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x50 + } if m.NumRows != nil { i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.NumRows)) i-- @@ -6118,6 +6156,16 @@ func (m *ParquetFlatDatasetConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.UseEmbeddedConfig { + i-- + if m.UseEmbeddedConfig { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } if len(m.DataColumns) > 0 { for iNdEx := len(m.DataColumns) - 1; iNdEx >= 0; iNdEx-- { size, err := m.DataColumns[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) @@ -7690,6 +7738,9 @@ func (m *CsvConfig) SizeVT() (n int) { if m.NumRows != nil { n += 1 + protohelpers.SizeOfVarint(uint64(*m.NumRows)) } + if m.UseEmbeddedConfig { + n += 2 + } n += len(m.unknownFields) return n } @@ -7949,6 +8000,9 @@ func (m *ParquetFlatDatasetConfig) SizeVT() (n int) { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } } + if m.UseEmbeddedConfig { + n += 2 + } n += len(m.unknownFields) return n } @@ -9865,6 +9919,26 @@ func (m *CsvConfig) UnmarshalVT(dAtA []byte) error { } } m.NumRows = &v + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UseEmbeddedConfig", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.UseEmbeddedConfig = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -11502,6 +11576,26 @@ func (m *ParquetFlatDatasetConfig) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UseEmbeddedConfig", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.UseEmbeddedConfig = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -16402,6 +16496,26 @@ func (m *CsvConfig) UnmarshalVTUnsafe(dAtA []byte) error { } } m.NumRows = &v + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UseEmbeddedConfig", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.UseEmbeddedConfig = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -18080,6 +18194,26 @@ func (m *ParquetFlatDatasetConfig) UnmarshalVTUnsafe(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UseEmbeddedConfig", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.UseEmbeddedConfig = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/exports/v1/exports.pb.go b/go/gen/sift/exports/v1/exports.pb.go index 68f63a8425..15a46dd1ec 100644 --- a/go/gen/sift/exports/v1/exports.pb.go +++ b/go/gen/sift/exports/v1/exports.pb.go @@ -475,6 +475,10 @@ type ExportOptions struct { SplitExportByAsset bool `protobuf:"varint,4,opt,name=split_export_by_asset,json=splitExportByAsset,proto3" json:"split_export_by_asset,omitempty"` // Split each run into their own export file SplitExportByRun bool `protobuf:"varint,5,opt,name=split_export_by_run,json=splitExportByRun,proto3" json:"split_export_by_run,omitempty"` + // Embeds a re-importable channel configuration into the export: for CSV, as a config row + // inserted immediately after the header row; for Parquet, as per-column field metadata + // under the "sift_channel_config" key. Ignored for the SUN output format. + EmbedChannelConfigs bool `protobuf:"varint,6,opt,name=embed_channel_configs,json=embedChannelConfigs,proto3" json:"embed_channel_configs,omitempty"` } func (x *ExportOptions) Reset() { @@ -544,6 +548,13 @@ func (x *ExportOptions) GetSplitExportByRun() bool { return false } +func (x *ExportOptions) GetEmbedChannelConfigs() bool { + if x != nil { + return x.EmbedChannelConfigs + } + return false +} + type ExportDataResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -815,7 +826,7 @@ var file_sift_exports_v1_exports_proto_rawDesc = []byte{ 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x22, 0xf6, 0x01, 0x0a, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x22, 0xaa, 0x02, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x4c, 0x65, @@ -831,73 +842,76 @@ var file_sift_exports_v1_exports_proto_rawDesc = []byte{ 0x79, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x79, 0x52, 0x75, 0x6e, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0d, - 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x6a, 0x6f, 0x62, - 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x22, 0x33, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, - 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x65, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x98, 0x01, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x24, - 0x0a, 0x20, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, - 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, - 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x43, 0x53, 0x56, - 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, - 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x53, 0x55, 0x4e, 0x10, 0x02, - 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, - 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x51, 0x55, 0x45, 0x54, - 0x10, 0x03, 0x32, 0xf4, 0x02, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, + 0x42, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x70, 0x72, + 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, + 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x22, 0x33, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0c, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x2c, 0x0a, + 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x98, 0x01, 0x0a, 0x12, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, + 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x58, 0x50, 0x4f, + 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, + 0x5f, 0x43, 0x53, 0x56, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x53, + 0x55, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, + 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x50, 0x41, 0x52, + 0x51, 0x55, 0x45, 0x54, 0x10, 0x03, 0x32, 0xf4, 0x02, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x0a, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x92, 0x41, - 0x1a, 0x12, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x0c, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x13, 0x3a, 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x12, 0xd2, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x92, 0x41, 0x40, 0x12, 0x0e, 0x47, - 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x1a, 0x2e, 0x52, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x6f, 0x62, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2d, 0x75, 0x72, 0x6c, 0x42, 0xd4, 0x01, 0x0a, 0x13, 0x63, 0x6f, - 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, - 0x31, 0x42, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, - 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, - 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x53, 0x45, 0x58, 0xaa, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x13, 0x12, 0x11, 0x0a, - 0x0f, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x36, 0x92, 0x41, 0x1a, 0x12, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x1a, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x3a, 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0xd2, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x26, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x92, 0x41, + 0x40, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, + 0x6c, 0x1a, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x6f, 0x62, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2d, 0x75, 0x72, 0x6c, 0x42, 0xd4, 0x01, + 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, + 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x45, 0x58, 0xaa, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x2e, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0f, 0x53, 0x69, 0x66, + 0x74, 0x5c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1b, 0x53, + 0x69, 0x66, 0x74, 0x5c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x53, 0x69, 0x66, + 0x74, 0x3a, 0x3a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, + 0x13, 0x12, 0x11, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/gen/sift/exports/v1/exports_vtproto.pb.go b/go/gen/sift/exports/v1/exports_vtproto.pb.go index 6d290419f1..25e229ec0f 100644 --- a/go/gen/sift/exports/v1/exports_vtproto.pb.go +++ b/go/gen/sift/exports/v1/exports_vtproto.pb.go @@ -198,6 +198,7 @@ func (m *ExportOptions) CloneVT() *ExportOptions { r.CombineRuns = m.CombineRuns r.SplitExportByAsset = m.SplitExportByAsset r.SplitExportByRun = m.SplitExportByRun + r.EmbedChannelConfigs = m.EmbedChannelConfigs if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -551,6 +552,9 @@ func (this *ExportOptions) EqualVT(that *ExportOptions) bool { if this.SplitExportByRun != that.SplitExportByRun { return false } + if this.EmbedChannelConfigs != that.EmbedChannelConfigs { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -1175,6 +1179,16 @@ func (m *ExportOptions) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.EmbedChannelConfigs { + i-- + if m.EmbedChannelConfigs { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } if m.SplitExportByRun { i-- if m.SplitExportByRun { @@ -1801,6 +1815,16 @@ func (m *ExportOptions) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.EmbedChannelConfigs { + i-- + if m.EmbedChannelConfigs { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } if m.SplitExportByRun { i-- if m.SplitExportByRun { @@ -2184,6 +2208,9 @@ func (m *ExportOptions) SizeVT() (n int) { if m.SplitExportByRun { n += 2 } + if m.EmbedChannelConfigs { + n += 2 + } n += len(m.unknownFields) return n } @@ -3289,6 +3316,26 @@ func (m *ExportOptions) UnmarshalVT(dAtA []byte) error { } } m.SplitExportByRun = bool(v != 0) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EmbedChannelConfigs", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.EmbedChannelConfigs = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -4727,6 +4774,26 @@ func (m *ExportOptions) UnmarshalVTUnsafe(dAtA []byte) error { } } m.SplitExportByRun = bool(v != 0) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EmbedChannelConfigs", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.EmbedChannelConfigs = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/families/v1/families.pb.go b/go/gen/sift/families/v1/families.pb.go new file mode 100644 index 0000000000..93be9bfc74 --- /dev/null +++ b/go/gen/sift/families/v1/families.pb.go @@ -0,0 +1,7233 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc (unknown) +// source: sift/families/v1/families.proto + +package familiesv1 + +import ( + _ "github.com/sift-stack/sift/go/gen/google/api" + _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" + v12 "github.com/sift-stack/sift/go/gen/sift/common/v1" + v1 "github.com/sift-stack/sift/go/gen/sift/metadata/v1" + v11 "github.com/sift-stack/sift/go/gen/sift/rules/v1" + v2 "github.com/sift-stack/sift/go/gen/sift/runs/v2" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" + emptypb "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type TimeRangeBound int32 + +const ( + // Deprecated: Do not use. + TimeRangeBound_TIME_RANGE_BOUND_UNSPECIFIED TimeRangeBound = 0 + TimeRangeBound_TIME_RANGE_BOUND_START TimeRangeBound = 1 + TimeRangeBound_TIME_RANGE_BOUND_END TimeRangeBound = 2 +) + +// Enum value maps for TimeRangeBound. +var ( + TimeRangeBound_name = map[int32]string{ + 0: "TIME_RANGE_BOUND_UNSPECIFIED", + 1: "TIME_RANGE_BOUND_START", + 2: "TIME_RANGE_BOUND_END", + } + TimeRangeBound_value = map[string]int32{ + "TIME_RANGE_BOUND_UNSPECIFIED": 0, + "TIME_RANGE_BOUND_START": 1, + "TIME_RANGE_BOUND_END": 2, + } +) + +func (x TimeRangeBound) Enum() *TimeRangeBound { + p := new(TimeRangeBound) + *p = x + return p +} + +func (x TimeRangeBound) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TimeRangeBound) Descriptor() protoreflect.EnumDescriptor { + return file_sift_families_v1_families_proto_enumTypes[0].Descriptor() +} + +func (TimeRangeBound) Type() protoreflect.EnumType { + return &file_sift_families_v1_families_proto_enumTypes[0] +} + +func (x TimeRangeBound) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TimeRangeBound.Descriptor instead. +func (TimeRangeBound) EnumDescriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{0} +} + +type AnnotationOccurrence int32 + +const ( + // Deprecated: Do not use. + AnnotationOccurrence_ANNOTATION_OCCURRENCE_UNSPECIFIED AnnotationOccurrence = 0 + AnnotationOccurrence_ANNOTATION_OCCURRENCE_FIRST AnnotationOccurrence = 1 + AnnotationOccurrence_ANNOTATION_OCCURRENCE_LAST AnnotationOccurrence = 2 + AnnotationOccurrence_ANNOTATION_OCCURRENCE_EVERY AnnotationOccurrence = 3 + AnnotationOccurrence_ANNOTATION_OCCURRENCE_NTH AnnotationOccurrence = 4 +) + +// Enum value maps for AnnotationOccurrence. +var ( + AnnotationOccurrence_name = map[int32]string{ + 0: "ANNOTATION_OCCURRENCE_UNSPECIFIED", + 1: "ANNOTATION_OCCURRENCE_FIRST", + 2: "ANNOTATION_OCCURRENCE_LAST", + 3: "ANNOTATION_OCCURRENCE_EVERY", + 4: "ANNOTATION_OCCURRENCE_NTH", + } + AnnotationOccurrence_value = map[string]int32{ + "ANNOTATION_OCCURRENCE_UNSPECIFIED": 0, + "ANNOTATION_OCCURRENCE_FIRST": 1, + "ANNOTATION_OCCURRENCE_LAST": 2, + "ANNOTATION_OCCURRENCE_EVERY": 3, + "ANNOTATION_OCCURRENCE_NTH": 4, + } +) + +func (x AnnotationOccurrence) Enum() *AnnotationOccurrence { + p := new(AnnotationOccurrence) + *p = x + return p +} + +func (x AnnotationOccurrence) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AnnotationOccurrence) Descriptor() protoreflect.EnumDescriptor { + return file_sift_families_v1_families_proto_enumTypes[1].Descriptor() +} + +func (AnnotationOccurrence) Type() protoreflect.EnumType { + return &file_sift_families_v1_families_proto_enumTypes[1] +} + +func (x AnnotationOccurrence) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AnnotationOccurrence.Descriptor instead. +func (AnnotationOccurrence) EnumDescriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{1} +} + +type Family struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyId string `protobuf:"bytes,1,opt,name=family_id,json=familyId,proto3" json:"family_id,omitempty"` + // Client key is a user-provided unique identifier for the family + ClientKey string `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"` + // The latest family_version_id for the family. + CurrentVersionId string `protobuf:"bytes,3,opt,name=current_version_id,json=currentVersionId,proto3" json:"current_version_id,omitempty"` + // Whether the family is archived. + IsArchived bool `protobuf:"varint,4,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` + CreatedDate *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"` + ModifiedDate *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=modified_date,json=modifiedDate,proto3" json:"modified_date,omitempty"` + ArchivedDate *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=archived_date,json=archivedDate,proto3" json:"archived_date,omitempty"` + CreatedByUserId string `protobuf:"bytes,8,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` + ModifiedByUserId string `protobuf:"bytes,9,opt,name=modified_by_user_id,json=modifiedByUserId,proto3" json:"modified_by_user_id,omitempty"` + OrganizationId string `protobuf:"bytes,10,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` +} + +func (x *Family) Reset() { + *x = Family{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Family) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Family) ProtoMessage() {} + +func (x *Family) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Family.ProtoReflect.Descriptor instead. +func (*Family) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{0} +} + +func (x *Family) GetFamilyId() string { + if x != nil { + return x.FamilyId + } + return "" +} + +func (x *Family) GetClientKey() string { + if x != nil { + return x.ClientKey + } + return "" +} + +func (x *Family) GetCurrentVersionId() string { + if x != nil { + return x.CurrentVersionId + } + return "" +} + +func (x *Family) GetIsArchived() bool { + if x != nil { + return x.IsArchived + } + return false +} + +func (x *Family) GetCreatedDate() *timestamppb.Timestamp { + if x != nil { + return x.CreatedDate + } + return nil +} + +func (x *Family) GetModifiedDate() *timestamppb.Timestamp { + if x != nil { + return x.ModifiedDate + } + return nil +} + +func (x *Family) GetArchivedDate() *timestamppb.Timestamp { + if x != nil { + return x.ArchivedDate + } + return nil +} + +func (x *Family) GetCreatedByUserId() string { + if x != nil { + return x.CreatedByUserId + } + return "" +} + +func (x *Family) GetModifiedByUserId() string { + if x != nil { + return x.ModifiedByUserId + } + return "" +} + +func (x *Family) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +type FamilyVersion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyVersionId string `protobuf:"bytes,1,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` + FamilyId string `protobuf:"bytes,2,opt,name=family_id,json=familyId,proto3" json:"family_id,omitempty"` + Version uint32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"` + // The name of the family. Must be unique within the organization for the latest family versions. + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // An optional query to track a CEL expression against the ListRuns endpoint. This query is only for reference, + // and does not affect the runs that are included in the family. To specify which runs are included in the family, + // use the `runs` field. + RunQuery string `protobuf:"bytes,6,opt,name=run_query,json=runQuery,proto3" json:"run_query,omitempty"` + // Notes provided by the user to describe the family version changes + UserNotes string `protobuf:"bytes,7,opt,name=user_notes,json=userNotes,proto3" json:"user_notes,omitempty"` + // Family Service provided message describing the changes made to the family version. + ChangeMessage string `protobuf:"bytes,8,opt,name=change_message,json=changeMessage,proto3" json:"change_message,omitempty"` + // Metadata associated with the family version. + Metadata []*v1.MetadataValue `protobuf:"bytes,9,rep,name=metadata,proto3" json:"metadata,omitempty"` + // User-configurable default sigma multiplier values, e.g. [1, 2, 3]. + // If not provided, the default values [-1, 1, -2, 2, -3, 3] will be used. + SigmaDefaultValues []float64 `protobuf:"fixed64,10,rep,packed,name=sigma_default_values,json=sigmaDefaultValues,proto3" json:"sigma_default_values,omitempty"` + CreatedDate *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"` + ModifiedDate *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=modified_date,json=modifiedDate,proto3" json:"modified_date,omitempty"` + CreatedByUserId string `protobuf:"bytes,13,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` + ModifiedByUserId string `protobuf:"bytes,14,opt,name=modified_by_user_id,json=modifiedByUserId,proto3" json:"modified_by_user_id,omitempty"` + OrganizationId string `protobuf:"bytes,15,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` +} + +func (x *FamilyVersion) Reset() { + *x = FamilyVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyVersion) ProtoMessage() {} + +func (x *FamilyVersion) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyVersion.ProtoReflect.Descriptor instead. +func (*FamilyVersion) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{1} +} + +func (x *FamilyVersion) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +func (x *FamilyVersion) GetFamilyId() string { + if x != nil { + return x.FamilyId + } + return "" +} + +func (x *FamilyVersion) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *FamilyVersion) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FamilyVersion) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *FamilyVersion) GetRunQuery() string { + if x != nil { + return x.RunQuery + } + return "" +} + +func (x *FamilyVersion) GetUserNotes() string { + if x != nil { + return x.UserNotes + } + return "" +} + +func (x *FamilyVersion) GetChangeMessage() string { + if x != nil { + return x.ChangeMessage + } + return "" +} + +func (x *FamilyVersion) GetMetadata() []*v1.MetadataValue { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *FamilyVersion) GetSigmaDefaultValues() []float64 { + if x != nil { + return x.SigmaDefaultValues + } + return nil +} + +func (x *FamilyVersion) GetCreatedDate() *timestamppb.Timestamp { + if x != nil { + return x.CreatedDate + } + return nil +} + +func (x *FamilyVersion) GetModifiedDate() *timestamppb.Timestamp { + if x != nil { + return x.ModifiedDate + } + return nil +} + +func (x *FamilyVersion) GetCreatedByUserId() string { + if x != nil { + return x.CreatedByUserId + } + return "" +} + +func (x *FamilyVersion) GetModifiedByUserId() string { + if x != nil { + return x.ModifiedByUserId + } + return "" +} + +func (x *FamilyVersion) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +// FamilyRun represents a run which is either included in the family or explicitly excluded. +type FamilyRun struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyRunId string `protobuf:"bytes,1,opt,name=family_run_id,json=familyRunId,proto3" json:"family_run_id,omitempty"` + FamilyVersionId string `protobuf:"bytes,2,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` + RunId string `protobuf:"bytes,3,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"` + // Whether the run is excluded from the family. If `true` the run is explicitly excluded, otherwise it is included. + IsExclusion bool `protobuf:"varint,4,opt,name=is_exclusion,json=isExclusion,proto3" json:"is_exclusion,omitempty"` + // User rationale for the inclusion or exclusion. + Rationale string `protobuf:"bytes,5,opt,name=rationale,proto3" json:"rationale,omitempty"` + // Date when the run was included or excluded from the family. + AddedDate *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=added_date,json=addedDate,proto3" json:"added_date,omitempty"` + // User id of the user who included or excluded the run from the family. + AddedByUserId string `protobuf:"bytes,7,opt,name=added_by_user_id,json=addedByUserId,proto3" json:"added_by_user_id,omitempty"` + // Version id of the version in which the run was included or excluded from the family. + AddedInVersionId string `protobuf:"bytes,8,opt,name=added_in_version_id,json=addedInVersionId,proto3" json:"added_in_version_id,omitempty"` +} + +func (x *FamilyRun) Reset() { + *x = FamilyRun{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyRun) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyRun) ProtoMessage() {} + +func (x *FamilyRun) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyRun.ProtoReflect.Descriptor instead. +func (*FamilyRun) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{2} +} + +func (x *FamilyRun) GetFamilyRunId() string { + if x != nil { + return x.FamilyRunId + } + return "" +} + +func (x *FamilyRun) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +func (x *FamilyRun) GetRunId() string { + if x != nil { + return x.RunId + } + return "" +} + +func (x *FamilyRun) GetIsExclusion() bool { + if x != nil { + return x.IsExclusion + } + return false +} + +func (x *FamilyRun) GetRationale() string { + if x != nil { + return x.Rationale + } + return "" +} + +func (x *FamilyRun) GetAddedDate() *timestamppb.Timestamp { + if x != nil { + return x.AddedDate + } + return nil +} + +func (x *FamilyRun) GetAddedByUserId() string { + if x != nil { + return x.AddedByUserId + } + return "" +} + +func (x *FamilyRun) GetAddedInVersionId() string { + if x != nil { + return x.AddedInVersionId + } + return "" +} + +// FamilyAlignment represents a family-level time-alignment for naming and resolving run relative times. +type FamilyAlignment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // When creating a family, this field can contain a temporary identifier + // provided by the client for referencing this alignment in family_stats. The temporary ID + // must be unique within the CreateFamilyRequest and is required when this alignment is + // referenced in family_stats. The service will resolve it to the actual alignment ID. + // When updating a family, this field must contain the actual family_alignment_id. + // In responses, this field contains the actual family_alignment_id. + FamilyAlignmentId string `protobuf:"bytes,1,opt,name=family_alignment_id,json=familyAlignmentId,proto3" json:"family_alignment_id,omitempty"` + FamilyVersionId string `protobuf:"bytes,2,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` + // The name of the alignment. Must be unique within the family. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + // The default alignment defines the behavior to look up alignment points when adding a new run to the family. + // + // Types that are assignable to DefaultAlignment: + // + // *FamilyAlignment_Run + // *FamilyAlignment_Annotation + // *FamilyAlignment_Timestamp + DefaultAlignment isFamilyAlignment_DefaultAlignment `protobuf_oneof:"default_alignment"` + // Specific alignment points for each family member for the alignment. If not provided for a family member, the member does not implement this alignment. + FamilyAlignmentPoints []*FamilyAlignmentPoint `protobuf:"bytes,8,rep,name=family_alignment_points,json=familyAlignmentPoints,proto3" json:"family_alignment_points,omitempty"` +} + +func (x *FamilyAlignment) Reset() { + *x = FamilyAlignment{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyAlignment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyAlignment) ProtoMessage() {} + +func (x *FamilyAlignment) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyAlignment.ProtoReflect.Descriptor instead. +func (*FamilyAlignment) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{3} +} + +func (x *FamilyAlignment) GetFamilyAlignmentId() string { + if x != nil { + return x.FamilyAlignmentId + } + return "" +} + +func (x *FamilyAlignment) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +func (x *FamilyAlignment) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FamilyAlignment) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (m *FamilyAlignment) GetDefaultAlignment() isFamilyAlignment_DefaultAlignment { + if m != nil { + return m.DefaultAlignment + } + return nil +} + +func (x *FamilyAlignment) GetRun() *RunAlignment { + if x, ok := x.GetDefaultAlignment().(*FamilyAlignment_Run); ok { + return x.Run + } + return nil +} + +func (x *FamilyAlignment) GetAnnotation() *DefaultAnnotationAlignment { + if x, ok := x.GetDefaultAlignment().(*FamilyAlignment_Annotation); ok { + return x.Annotation + } + return nil +} + +func (x *FamilyAlignment) GetTimestamp() *TimestampAlignment { + if x, ok := x.GetDefaultAlignment().(*FamilyAlignment_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (x *FamilyAlignment) GetFamilyAlignmentPoints() []*FamilyAlignmentPoint { + if x != nil { + return x.FamilyAlignmentPoints + } + return nil +} + +type isFamilyAlignment_DefaultAlignment interface { + isFamilyAlignment_DefaultAlignment() +} + +type FamilyAlignment_Run struct { + Run *RunAlignment `protobuf:"bytes,5,opt,name=run,proto3,oneof"` +} + +type FamilyAlignment_Annotation struct { + Annotation *DefaultAnnotationAlignment `protobuf:"bytes,6,opt,name=annotation,proto3,oneof"` +} + +type FamilyAlignment_Timestamp struct { + Timestamp *TimestampAlignment `protobuf:"bytes,7,opt,name=timestamp,proto3,oneof"` +} + +func (*FamilyAlignment_Run) isFamilyAlignment_DefaultAlignment() {} + +func (*FamilyAlignment_Annotation) isFamilyAlignment_DefaultAlignment() {} + +func (*FamilyAlignment_Timestamp) isFamilyAlignment_DefaultAlignment() {} + +// FamilyAlignmentPoint represents a member specific time-alignment for the FamilyAlignment. +type FamilyAlignmentPoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // When creating a family, this field can contain a temporary identifier + // provided by the client for referencing this alignment point in family_stats. The temporary ID + // must be unique within the CreateFamilyRequest and is required when this alignment point is + // referenced in family_stats. The service will resolve it to the actual alignment_point_id. + // When updating a family, this field must contain the actual family_alignment_point_id. + // In responses, this field contains the actual family_alignment_point_id. + // Can be empty string if not referenced in family_stats. + FamilyAlignmentPointId string `protobuf:"bytes,1,opt,name=family_alignment_point_id,json=familyAlignmentPointId,proto3" json:"family_alignment_point_id,omitempty"` + FamilyRunId string `protobuf:"bytes,2,opt,name=family_run_id,json=familyRunId,proto3" json:"family_run_id,omitempty"` + RunId string `protobuf:"bytes,3,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"` + FamilyAlignmentId string `protobuf:"bytes,4,opt,name=family_alignment_id,json=familyAlignmentId,proto3" json:"family_alignment_id,omitempty"` + // The alignment configuration for the family member. + // + // Types that are assignable to Alignment: + // + // *FamilyAlignmentPoint_Run + // *FamilyAlignmentPoint_Annotation + // *FamilyAlignmentPoint_Timestamp + Alignment isFamilyAlignmentPoint_Alignment `protobuf_oneof:"alignment"` +} + +func (x *FamilyAlignmentPoint) Reset() { + *x = FamilyAlignmentPoint{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyAlignmentPoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyAlignmentPoint) ProtoMessage() {} + +func (x *FamilyAlignmentPoint) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyAlignmentPoint.ProtoReflect.Descriptor instead. +func (*FamilyAlignmentPoint) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{4} +} + +func (x *FamilyAlignmentPoint) GetFamilyAlignmentPointId() string { + if x != nil { + return x.FamilyAlignmentPointId + } + return "" +} + +func (x *FamilyAlignmentPoint) GetFamilyRunId() string { + if x != nil { + return x.FamilyRunId + } + return "" +} + +func (x *FamilyAlignmentPoint) GetRunId() string { + if x != nil { + return x.RunId + } + return "" +} + +func (x *FamilyAlignmentPoint) GetFamilyAlignmentId() string { + if x != nil { + return x.FamilyAlignmentId + } + return "" +} + +func (m *FamilyAlignmentPoint) GetAlignment() isFamilyAlignmentPoint_Alignment { + if m != nil { + return m.Alignment + } + return nil +} + +func (x *FamilyAlignmentPoint) GetRun() *RunAlignment { + if x, ok := x.GetAlignment().(*FamilyAlignmentPoint_Run); ok { + return x.Run + } + return nil +} + +func (x *FamilyAlignmentPoint) GetAnnotation() *AnnotationAlignment { + if x, ok := x.GetAlignment().(*FamilyAlignmentPoint_Annotation); ok { + return x.Annotation + } + return nil +} + +func (x *FamilyAlignmentPoint) GetTimestamp() *TimestampAlignment { + if x, ok := x.GetAlignment().(*FamilyAlignmentPoint_Timestamp); ok { + return x.Timestamp + } + return nil +} + +type isFamilyAlignmentPoint_Alignment interface { + isFamilyAlignmentPoint_Alignment() +} + +type FamilyAlignmentPoint_Run struct { + Run *RunAlignment `protobuf:"bytes,5,opt,name=run,proto3,oneof"` +} + +type FamilyAlignmentPoint_Annotation struct { + Annotation *AnnotationAlignment `protobuf:"bytes,6,opt,name=annotation,proto3,oneof"` +} + +type FamilyAlignmentPoint_Timestamp struct { + Timestamp *TimestampAlignment `protobuf:"bytes,7,opt,name=timestamp,proto3,oneof"` +} + +func (*FamilyAlignmentPoint_Run) isFamilyAlignmentPoint_Alignment() {} + +func (*FamilyAlignmentPoint_Annotation) isFamilyAlignmentPoint_Alignment() {} + +func (*FamilyAlignmentPoint_Timestamp) isFamilyAlignmentPoint_Alignment() {} + +type RunAlignment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bound TimeRangeBound `protobuf:"varint,1,opt,name=bound,proto3,enum=sift.families.v1.TimeRangeBound" json:"bound,omitempty"` +} + +func (x *RunAlignment) Reset() { + *x = RunAlignment{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RunAlignment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunAlignment) ProtoMessage() {} + +func (x *RunAlignment) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RunAlignment.ProtoReflect.Descriptor instead. +func (*RunAlignment) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{5} +} + +func (x *RunAlignment) GetBound() TimeRangeBound { + if x != nil { + return x.Bound + } + return TimeRangeBound_TIME_RANGE_BOUND_UNSPECIFIED +} + +type DefaultAnnotationAlignment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AnnotationName string `protobuf:"bytes,1,opt,name=annotation_name,json=annotationName,proto3" json:"annotation_name,omitempty"` + Bound TimeRangeBound `protobuf:"varint,2,opt,name=bound,proto3,enum=sift.families.v1.TimeRangeBound" json:"bound,omitempty"` + Occurrence AnnotationOccurrence `protobuf:"varint,3,opt,name=occurrence,proto3,enum=sift.families.v1.AnnotationOccurrence" json:"occurrence,omitempty"` + // Index of the annotation to use when occurrence is "nth". Positive indices start from the beginning, negative from the end. + OccurrenceIndex int32 `protobuf:"varint,4,opt,name=occurrence_index,json=occurrenceIndex,proto3" json:"occurrence_index,omitempty"` +} + +func (x *DefaultAnnotationAlignment) Reset() { + *x = DefaultAnnotationAlignment{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DefaultAnnotationAlignment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DefaultAnnotationAlignment) ProtoMessage() {} + +func (x *DefaultAnnotationAlignment) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DefaultAnnotationAlignment.ProtoReflect.Descriptor instead. +func (*DefaultAnnotationAlignment) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{6} +} + +func (x *DefaultAnnotationAlignment) GetAnnotationName() string { + if x != nil { + return x.AnnotationName + } + return "" +} + +func (x *DefaultAnnotationAlignment) GetBound() TimeRangeBound { + if x != nil { + return x.Bound + } + return TimeRangeBound_TIME_RANGE_BOUND_UNSPECIFIED +} + +func (x *DefaultAnnotationAlignment) GetOccurrence() AnnotationOccurrence { + if x != nil { + return x.Occurrence + } + return AnnotationOccurrence_ANNOTATION_OCCURRENCE_UNSPECIFIED +} + +func (x *DefaultAnnotationAlignment) GetOccurrenceIndex() int32 { + if x != nil { + return x.OccurrenceIndex + } + return 0 +} + +type TimestampAlignment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *TimestampAlignment) Reset() { + *x = TimestampAlignment{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TimestampAlignment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimestampAlignment) ProtoMessage() {} + +func (x *TimestampAlignment) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimestampAlignment.ProtoReflect.Descriptor instead. +func (*TimestampAlignment) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{7} +} + +func (x *TimestampAlignment) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +type AnnotationAlignment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AnnotationId string `protobuf:"bytes,1,opt,name=annotation_id,json=annotationId,proto3" json:"annotation_id,omitempty"` + Bound TimeRangeBound `protobuf:"varint,2,opt,name=bound,proto3,enum=sift.families.v1.TimeRangeBound" json:"bound,omitempty"` +} + +func (x *AnnotationAlignment) Reset() { + *x = AnnotationAlignment{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnnotationAlignment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnnotationAlignment) ProtoMessage() {} + +func (x *AnnotationAlignment) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnnotationAlignment.ProtoReflect.Descriptor instead. +func (*AnnotationAlignment) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{8} +} + +func (x *AnnotationAlignment) GetAnnotationId() string { + if x != nil { + return x.AnnotationId + } + return "" +} + +func (x *AnnotationAlignment) GetBound() TimeRangeBound { + if x != nil { + return x.Bound + } + return TimeRangeBound_TIME_RANGE_BOUND_UNSPECIFIED +} + +type FamilyDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Family *Family `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"` + // The requested FamilyVersion for the family. Matches the current version unless a specific version is requested. + FamilyVersion *FamilyVersion `protobuf:"bytes,2,opt,name=family_version,json=familyVersion,proto3" json:"family_version,omitempty"` + // The family members associated with the FamilyVersion. + FamilyRuns []*FamilyRun `protobuf:"bytes,3,rep,name=family_runs,json=familyRuns,proto3" json:"family_runs,omitempty"` + // The alignments associated with the FamilyVersion. + FamilyAlignments []*FamilyAlignment `protobuf:"bytes,4,rep,name=family_alignments,json=familyAlignments,proto3" json:"family_alignments,omitempty"` + // The family stats associated with the FamilyVersion. + FamilyStats []*FamilyStatDetails `protobuf:"bytes,5,rep,name=family_stats,json=familyStats,proto3" json:"family_stats,omitempty"` +} + +func (x *FamilyDetails) Reset() { + *x = FamilyDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyDetails) ProtoMessage() {} + +func (x *FamilyDetails) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyDetails.ProtoReflect.Descriptor instead. +func (*FamilyDetails) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{9} +} + +func (x *FamilyDetails) GetFamily() *Family { + if x != nil { + return x.Family + } + return nil +} + +func (x *FamilyDetails) GetFamilyVersion() *FamilyVersion { + if x != nil { + return x.FamilyVersion + } + return nil +} + +func (x *FamilyDetails) GetFamilyRuns() []*FamilyRun { + if x != nil { + return x.FamilyRuns + } + return nil +} + +func (x *FamilyDetails) GetFamilyAlignments() []*FamilyAlignment { + if x != nil { + return x.FamilyAlignments + } + return nil +} + +func (x *FamilyDetails) GetFamilyStats() []*FamilyStatDetails { + if x != nil { + return x.FamilyStats + } + return nil +} + +type GetFamilyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to FamilyIdentifier: + // + // *GetFamilyRequest_FamilyId + // *GetFamilyRequest_ClientKey + FamilyIdentifier isGetFamilyRequest_FamilyIdentifier `protobuf_oneof:"family_identifier"` +} + +func (x *GetFamilyRequest) Reset() { + *x = GetFamilyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyRequest) ProtoMessage() {} + +func (x *GetFamilyRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyRequest.ProtoReflect.Descriptor instead. +func (*GetFamilyRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{10} +} + +func (m *GetFamilyRequest) GetFamilyIdentifier() isGetFamilyRequest_FamilyIdentifier { + if m != nil { + return m.FamilyIdentifier + } + return nil +} + +func (x *GetFamilyRequest) GetFamilyId() string { + if x, ok := x.GetFamilyIdentifier().(*GetFamilyRequest_FamilyId); ok { + return x.FamilyId + } + return "" +} + +func (x *GetFamilyRequest) GetClientKey() string { + if x, ok := x.GetFamilyIdentifier().(*GetFamilyRequest_ClientKey); ok { + return x.ClientKey + } + return "" +} + +type isGetFamilyRequest_FamilyIdentifier interface { + isGetFamilyRequest_FamilyIdentifier() +} + +type GetFamilyRequest_FamilyId struct { + FamilyId string `protobuf:"bytes,1,opt,name=family_id,json=familyId,proto3,oneof"` +} + +type GetFamilyRequest_ClientKey struct { + ClientKey string `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3,oneof"` +} + +func (*GetFamilyRequest_FamilyId) isGetFamilyRequest_FamilyIdentifier() {} + +func (*GetFamilyRequest_ClientKey) isGetFamilyRequest_FamilyIdentifier() {} + +type GetFamilyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Family *FamilyDetails `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"` +} + +func (x *GetFamilyResponse) Reset() { + *x = GetFamilyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyResponse) ProtoMessage() {} + +func (x *GetFamilyResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyResponse.ProtoReflect.Descriptor instead. +func (*GetFamilyResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{11} +} + +func (x *GetFamilyResponse) GetFamily() *FamilyDetails { + if x != nil { + return x.Family + } + return nil +} + +type GetFamiliesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyIds []string `protobuf:"bytes,1,rep,name=family_ids,json=familyIds,proto3" json:"family_ids,omitempty"` + ClientKeys []string `protobuf:"bytes,2,rep,name=client_keys,json=clientKeys,proto3" json:"client_keys,omitempty"` +} + +func (x *GetFamiliesRequest) Reset() { + *x = GetFamiliesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamiliesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamiliesRequest) ProtoMessage() {} + +func (x *GetFamiliesRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamiliesRequest.ProtoReflect.Descriptor instead. +func (*GetFamiliesRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{12} +} + +func (x *GetFamiliesRequest) GetFamilyIds() []string { + if x != nil { + return x.FamilyIds + } + return nil +} + +func (x *GetFamiliesRequest) GetClientKeys() []string { + if x != nil { + return x.ClientKeys + } + return nil +} + +type GetFamiliesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Families []*FamilyDetails `protobuf:"bytes,1,rep,name=families,proto3" json:"families,omitempty"` +} + +func (x *GetFamiliesResponse) Reset() { + *x = GetFamiliesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamiliesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamiliesResponse) ProtoMessage() {} + +func (x *GetFamiliesResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamiliesResponse.ProtoReflect.Descriptor instead. +func (*GetFamiliesResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{13} +} + +func (x *GetFamiliesResponse) GetFamilies() []*FamilyDetails { + if x != nil { + return x.Families + } + return nil +} + +type GetFamilyVersionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyVersionId string `protobuf:"bytes,1,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` +} + +func (x *GetFamilyVersionRequest) Reset() { + *x = GetFamilyVersionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyVersionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyVersionRequest) ProtoMessage() {} + +func (x *GetFamilyVersionRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyVersionRequest.ProtoReflect.Descriptor instead. +func (*GetFamilyVersionRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{14} +} + +func (x *GetFamilyVersionRequest) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +type GetFamilyVersionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Family *FamilyDetails `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"` +} + +func (x *GetFamilyVersionResponse) Reset() { + *x = GetFamilyVersionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyVersionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyVersionResponse) ProtoMessage() {} + +func (x *GetFamilyVersionResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyVersionResponse.ProtoReflect.Descriptor instead. +func (*GetFamilyVersionResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{15} +} + +func (x *GetFamilyVersionResponse) GetFamily() *FamilyDetails { + if x != nil { + return x.Family + } + return nil +} + +type ListFamiliesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of families to return. The service may return fewer than this value, even if + // there are additional pages. If unspecified, the limit defaults to 50. The maximum value is 100. + PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListFamilies` call. Provide this to retrieve the + // subsequent page. When paginating, all other parameters provided to `ListFamilies` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are: `family_id`, `client_key`, `organization_id`, `archived_date`, `is_archived`, `created_by_user_id`, `created_date`, `modified_by_user_id`, `modified_date`, `name`, `description`, `run_query`, `run_id_includes`, `run_id_excludes`, `alignment_name`, `alignment_description`, `metadata`. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` + // How to order the retrieved families. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are: `created_date`, `modified_date`, `archived_date`. + // If left empty, items are ordered by `created_date` in descending order. + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc" + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListFamiliesRequest) Reset() { + *x = ListFamiliesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamiliesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamiliesRequest) ProtoMessage() {} + +func (x *ListFamiliesRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamiliesRequest.ProtoReflect.Descriptor instead. +func (*ListFamiliesRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{16} +} + +func (x *ListFamiliesRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListFamiliesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListFamiliesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListFamiliesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +type ListFamiliesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Families []*ListFamily `protobuf:"bytes,1,rep,name=families,proto3" json:"families,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListFamiliesResponse) Reset() { + *x = ListFamiliesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamiliesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamiliesResponse) ProtoMessage() {} + +func (x *ListFamiliesResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamiliesResponse.ProtoReflect.Descriptor instead. +func (*ListFamiliesResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{17} +} + +func (x *ListFamiliesResponse) GetFamilies() []*ListFamily { + if x != nil { + return x.Families + } + return nil +} + +func (x *ListFamiliesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type ListFamily struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Family *Family `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"` + // The latest family version associated with the Family. + FamilyVersion *FamilyVersion `protobuf:"bytes,2,opt,name=family_version,json=familyVersion,proto3" json:"family_version,omitempty"` +} + +func (x *ListFamily) Reset() { + *x = ListFamily{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamily) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamily) ProtoMessage() {} + +func (x *ListFamily) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamily.ProtoReflect.Descriptor instead. +func (*ListFamily) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{18} +} + +func (x *ListFamily) GetFamily() *Family { + if x != nil { + return x.Family + } + return nil +} + +func (x *ListFamily) GetFamilyVersion() *FamilyVersion { + if x != nil { + return x.FamilyVersion + } + return nil +} + +type CreateFamilyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Family level information about the family such as archival status and client_key are set in the Family. + Family *Family `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"` + // Version specific information about the family such as name, description, metadata, etc. are set in the FamilyVersion. + FamilyVersion *FamilyVersion `protobuf:"bytes,2,opt,name=family_version,json=familyVersion,proto3" json:"family_version,omitempty"` + // The runs to include in the family. At least one run must be specified. + FamilyRuns []*FamilyRun `protobuf:"bytes,3,rep,name=family_runs,json=familyRuns,proto3" json:"family_runs,omitempty"` + // The alignments to apply to the family. If not provided, a default alignment will be created for the Family. + FamilyAlignments []*FamilyAlignment `protobuf:"bytes,4,rep,name=family_alignments,json=familyAlignments,proto3" json:"family_alignments,omitempty"` + // The family stats to create for the family. If not provided, no family stats will be created. + FamilyStats []*FamilyStatDetails `protobuf:"bytes,5,rep,name=family_stats,json=familyStats,proto3" json:"family_stats,omitempty"` +} + +func (x *CreateFamilyRequest) Reset() { + *x = CreateFamilyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFamilyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFamilyRequest) ProtoMessage() {} + +func (x *CreateFamilyRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFamilyRequest.ProtoReflect.Descriptor instead. +func (*CreateFamilyRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{19} +} + +func (x *CreateFamilyRequest) GetFamily() *Family { + if x != nil { + return x.Family + } + return nil +} + +func (x *CreateFamilyRequest) GetFamilyVersion() *FamilyVersion { + if x != nil { + return x.FamilyVersion + } + return nil +} + +func (x *CreateFamilyRequest) GetFamilyRuns() []*FamilyRun { + if x != nil { + return x.FamilyRuns + } + return nil +} + +func (x *CreateFamilyRequest) GetFamilyAlignments() []*FamilyAlignment { + if x != nil { + return x.FamilyAlignments + } + return nil +} + +func (x *CreateFamilyRequest) GetFamilyStats() []*FamilyStatDetails { + if x != nil { + return x.FamilyStats + } + return nil +} + +type CreateFamilyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyId string `protobuf:"bytes,1,opt,name=family_id,json=familyId,proto3" json:"family_id,omitempty"` + Family *FamilyDetails `protobuf:"bytes,2,opt,name=family,proto3" json:"family,omitempty"` +} + +func (x *CreateFamilyResponse) Reset() { + *x = CreateFamilyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFamilyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFamilyResponse) ProtoMessage() {} + +func (x *CreateFamilyResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFamilyResponse.ProtoReflect.Descriptor instead. +func (*CreateFamilyResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{20} +} + +func (x *CreateFamilyResponse) GetFamilyId() string { + if x != nil { + return x.FamilyId + } + return "" +} + +func (x *CreateFamilyResponse) GetFamily() *FamilyDetails { + if x != nil { + return x.Family + } + return nil +} + +type UpdateFamilyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Provide either the family_id or client_key to identify the family to update. + // + // Types that are assignable to FamilyIdentifier: + // + // *UpdateFamilyRequest_FamilyId + // *UpdateFamilyRequest_ClientKey + FamilyIdentifier isUpdateFamilyRequest_FamilyIdentifier `protobuf_oneof:"family_identifier"` + // The family data to update. Only fields referenced in the update_mask will be updated. + Family *FamilyDetails `protobuf:"bytes,3,opt,name=family,proto3" json:"family,omitempty"` + // Note: Whenever the family is updated, the family stats are also updated to point to the new family version to ensure the family stats are always up to date. + // client_key can only be updated if it is not already set. It must be passed in via the family request and cannot be used as identifier. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateFamilyRequest) Reset() { + *x = UpdateFamilyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFamilyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFamilyRequest) ProtoMessage() {} + +func (x *UpdateFamilyRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFamilyRequest.ProtoReflect.Descriptor instead. +func (*UpdateFamilyRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{21} +} + +func (m *UpdateFamilyRequest) GetFamilyIdentifier() isUpdateFamilyRequest_FamilyIdentifier { + if m != nil { + return m.FamilyIdentifier + } + return nil +} + +func (x *UpdateFamilyRequest) GetFamilyId() string { + if x, ok := x.GetFamilyIdentifier().(*UpdateFamilyRequest_FamilyId); ok { + return x.FamilyId + } + return "" +} + +func (x *UpdateFamilyRequest) GetClientKey() string { + if x, ok := x.GetFamilyIdentifier().(*UpdateFamilyRequest_ClientKey); ok { + return x.ClientKey + } + return "" +} + +func (x *UpdateFamilyRequest) GetFamily() *FamilyDetails { + if x != nil { + return x.Family + } + return nil +} + +func (x *UpdateFamilyRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +type isUpdateFamilyRequest_FamilyIdentifier interface { + isUpdateFamilyRequest_FamilyIdentifier() +} + +type UpdateFamilyRequest_FamilyId struct { + FamilyId string `protobuf:"bytes,1,opt,name=family_id,json=familyId,proto3,oneof"` +} + +type UpdateFamilyRequest_ClientKey struct { + ClientKey string `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3,oneof"` +} + +func (*UpdateFamilyRequest_FamilyId) isUpdateFamilyRequest_FamilyIdentifier() {} + +func (*UpdateFamilyRequest_ClientKey) isUpdateFamilyRequest_FamilyIdentifier() {} + +type UpdateFamilyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyVersionId string `protobuf:"bytes,1,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` + Family *FamilyDetails `protobuf:"bytes,2,opt,name=family,proto3" json:"family,omitempty"` + FamilyStats []*FamilyStatDetails `protobuf:"bytes,3,rep,name=family_stats,json=familyStats,proto3" json:"family_stats,omitempty"` +} + +func (x *UpdateFamilyResponse) Reset() { + *x = UpdateFamilyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFamilyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFamilyResponse) ProtoMessage() {} + +func (x *UpdateFamilyResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFamilyResponse.ProtoReflect.Descriptor instead. +func (*UpdateFamilyResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{22} +} + +func (x *UpdateFamilyResponse) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +func (x *UpdateFamilyResponse) GetFamily() *FamilyDetails { + if x != nil { + return x.Family + } + return nil +} + +func (x *UpdateFamilyResponse) GetFamilyStats() []*FamilyStatDetails { + if x != nil { + return x.FamilyStats + } + return nil +} + +type ListFamilyVersionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of family versions to return. The service may return fewer than this value, even if + // there are additional pages. If unspecified, the max limit defaults to 50. The maximum value is 200. + PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are: `family_id`, `family_version_id`, `organization_id`, `name`, `description`, `run_query`, `user_notes`, `change_message`, `created_by_user_id`, `created_date`, `modified_by_user_id`, `modified_date`, `archived_date`, `is_archived`, `run_id_includes`, `run_id_excludes`, `alignment_name`, `alignment_description`. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // A page token, received from a previous `ListFamilyVersions` call. Provide this to retrieve the + // subsequent page. When paginating, all other parameters provided to `ListFamilyVersions` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // How to order the retrieved family versions. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are: `created_date`, `modified_date`, `name`. + // If left empty, items are ordered by `created_date` in descending order. + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc" + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListFamilyVersionsRequest) Reset() { + *x = ListFamilyVersionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamilyVersionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamilyVersionsRequest) ProtoMessage() {} + +func (x *ListFamilyVersionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamilyVersionsRequest.ProtoReflect.Descriptor instead. +func (*ListFamilyVersionsRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{23} +} + +func (x *ListFamilyVersionsRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListFamilyVersionsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListFamilyVersionsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListFamilyVersionsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +type ListFamilyVersionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyVersions []*FamilyVersion `protobuf:"bytes,1,rep,name=family_versions,json=familyVersions,proto3" json:"family_versions,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListFamilyVersionsResponse) Reset() { + *x = ListFamilyVersionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamilyVersionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamilyVersionsResponse) ProtoMessage() {} + +func (x *ListFamilyVersionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamilyVersionsResponse.ProtoReflect.Descriptor instead. +func (*ListFamilyVersionsResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{24} +} + +func (x *ListFamilyVersionsResponse) GetFamilyVersions() []*FamilyVersion { + if x != nil { + return x.FamilyVersions + } + return nil +} + +func (x *ListFamilyVersionsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type ListFamilyMembersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Provide family_version_id to identify the family to list members for. + FamilyVersionId string `protobuf:"bytes,1,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` + // The maximum number of family members to return. The service may return fewer than this value, even if + // there are additional pages. If unspecified, the max limit defaults to 200. The maximum value is 500. + PageSize uint32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are: `is_exclusion`, `rationale`, `added_date`, `added_by_user_id`, `added_in_version_id`, and for the associated Run:`name`, `description`, `start_time`, `end_time`, `duration`. + // Note: `name`, `description`, `start_time`, `end_time`, and `duration` are filters on the associated run. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` + // A page token, received from a previous `ListFamilyMembers` call. Provide this to retrieve the + // subsequent page. When paginating, all other parameters provided to `ListFamilyMembers` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListFamilyMembersRequest) Reset() { + *x = ListFamilyMembersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamilyMembersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamilyMembersRequest) ProtoMessage() {} + +func (x *ListFamilyMembersRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamilyMembersRequest.ProtoReflect.Descriptor instead. +func (*ListFamilyMembersRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{25} +} + +func (x *ListFamilyMembersRequest) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +func (x *ListFamilyMembersRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListFamilyMembersRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListFamilyMembersRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +type ListFamilyMembersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyRuns []*FamilyRun `protobuf:"bytes,1,rep,name=family_runs,json=familyRuns,proto3" json:"family_runs,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListFamilyMembersResponse) Reset() { + *x = ListFamilyMembersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamilyMembersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamilyMembersResponse) ProtoMessage() {} + +func (x *ListFamilyMembersResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamilyMembersResponse.ProtoReflect.Descriptor instead. +func (*ListFamilyMembersResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{26} +} + +func (x *ListFamilyMembersResponse) GetFamilyRuns() []*FamilyRun { + if x != nil { + return x.FamilyRuns + } + return nil +} + +func (x *ListFamilyMembersResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type ListFamilyAlignmentsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Provide family_id to identify the family to list alignments. + FamilyVersionId string `protobuf:"bytes,1,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` + // The maximum number of family version alignments to return. The service may return fewer than this value, even if + // there are additional pages. If unspecified, the limit defaults to 200. The maximum value is 1000. + PageSize uint32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are: `name`, `description`. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` + // A page token, received from a previous `ListFamilyAlignments` call. Provide this to retrieve the + // subsequent page. When paginating, all other parameters provided to `ListFamilyAlignments` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListFamilyAlignmentsRequest) Reset() { + *x = ListFamilyAlignmentsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamilyAlignmentsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamilyAlignmentsRequest) ProtoMessage() {} + +func (x *ListFamilyAlignmentsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamilyAlignmentsRequest.ProtoReflect.Descriptor instead. +func (*ListFamilyAlignmentsRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{27} +} + +func (x *ListFamilyAlignmentsRequest) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +func (x *ListFamilyAlignmentsRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListFamilyAlignmentsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListFamilyAlignmentsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +type ListFamilyAlignmentsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyAlignments []*FamilyAlignment `protobuf:"bytes,1,rep,name=family_alignments,json=familyAlignments,proto3" json:"family_alignments,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListFamilyAlignmentsResponse) Reset() { + *x = ListFamilyAlignmentsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamilyAlignmentsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamilyAlignmentsResponse) ProtoMessage() {} + +func (x *ListFamilyAlignmentsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamilyAlignmentsResponse.ProtoReflect.Descriptor instead. +func (*ListFamilyAlignmentsResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{28} +} + +func (x *ListFamilyAlignmentsResponse) GetFamilyAlignments() []*FamilyAlignment { + if x != nil { + return x.FamilyAlignments + } + return nil +} + +func (x *ListFamilyAlignmentsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type ListFamilyAlignmentPointsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Provide family_alignment_id to identify the family to list alignments points. + FamilyAlignmentId string `protobuf:"bytes,1,opt,name=family_alignment_id,json=familyAlignmentId,proto3" json:"family_alignment_id,omitempty"` + // The maximum number of family version alignment points to return. The service may return fewer than this value, even if + // there are additional pages. If unspecified, the limit defaults to 200. The maximum value is 1000. + PageSize uint32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are: `family_run_id`, and for the associated Run: `name`, `description`, `start_time`, `end_time`, `duration`. + // Note: `name`, `description`, `start_time`, `end_time`, and `duration` are filters on the associated run. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` + // A page token, received from a previous `ListFamilyAlignmentPoints` call. Provide this to retrieve the + // subsequent page. When paginating, all other parameters provided to `ListFamilyAlignmentPoints` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListFamilyAlignmentPointsRequest) Reset() { + *x = ListFamilyAlignmentPointsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamilyAlignmentPointsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamilyAlignmentPointsRequest) ProtoMessage() {} + +func (x *ListFamilyAlignmentPointsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamilyAlignmentPointsRequest.ProtoReflect.Descriptor instead. +func (*ListFamilyAlignmentPointsRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{29} +} + +func (x *ListFamilyAlignmentPointsRequest) GetFamilyAlignmentId() string { + if x != nil { + return x.FamilyAlignmentId + } + return "" +} + +func (x *ListFamilyAlignmentPointsRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListFamilyAlignmentPointsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListFamilyAlignmentPointsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +type ListFamilyAlignmentPointsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyAlignmentPoints []*FamilyAlignmentPoint `protobuf:"bytes,1,rep,name=family_alignment_points,json=familyAlignmentPoints,proto3" json:"family_alignment_points,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListFamilyAlignmentPointsResponse) Reset() { + *x = ListFamilyAlignmentPointsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamilyAlignmentPointsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamilyAlignmentPointsResponse) ProtoMessage() {} + +func (x *ListFamilyAlignmentPointsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamilyAlignmentPointsResponse.ProtoReflect.Descriptor instead. +func (*ListFamilyAlignmentPointsResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{30} +} + +func (x *ListFamilyAlignmentPointsResponse) GetFamilyAlignmentPoints() []*FamilyAlignmentPoint { + if x != nil { + return x.FamilyAlignmentPoints + } + return nil +} + +func (x *ListFamilyAlignmentPointsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type ImportFamilyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The source to import the family from. Must provide family_yaml. The contents of the source + // should match the shape of CreateFamilyRequest + FamilyYaml string `protobuf:"bytes,1,opt,name=family_yaml,json=familyYaml,proto3" json:"family_yaml,omitempty"` +} + +func (x *ImportFamilyRequest) Reset() { + *x = ImportFamilyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportFamilyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportFamilyRequest) ProtoMessage() {} + +func (x *ImportFamilyRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportFamilyRequest.ProtoReflect.Descriptor instead. +func (*ImportFamilyRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{31} +} + +func (x *ImportFamilyRequest) GetFamilyYaml() string { + if x != nil { + return x.FamilyYaml + } + return "" +} + +type ImportFamilyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyId string `protobuf:"bytes,1,opt,name=family_id,json=familyId,proto3" json:"family_id,omitempty"` + Family *FamilyDetails `protobuf:"bytes,2,opt,name=family,proto3" json:"family,omitempty"` +} + +func (x *ImportFamilyResponse) Reset() { + *x = ImportFamilyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportFamilyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportFamilyResponse) ProtoMessage() {} + +func (x *ImportFamilyResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportFamilyResponse.ProtoReflect.Descriptor instead. +func (*ImportFamilyResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{32} +} + +func (x *ImportFamilyResponse) GetFamilyId() string { + if x != nil { + return x.FamilyId + } + return "" +} + +func (x *ImportFamilyResponse) GetFamily() *FamilyDetails { + if x != nil { + return x.Family + } + return nil +} + +type ImportUpdateFamilyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Provide either the family_id or client_key to identify the family to update. + // + // Types that are assignable to FamilyIdentifier: + // + // *ImportUpdateFamilyRequest_FamilyId + // *ImportUpdateFamilyRequest_ClientKey + FamilyIdentifier isImportUpdateFamilyRequest_FamilyIdentifier `protobuf_oneof:"family_identifier"` + // The source to update the family from. Must provide family_yaml. The contents of the source + // should match the shape of UpdateFamilyRequest FamilyDetails. The update_mask is optional and defaults to updating provided fields. + FamilyYaml string `protobuf:"bytes,3,opt,name=family_yaml,json=familyYaml,proto3" json:"family_yaml,omitempty"` + // See UpdateFamilyRequest + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *ImportUpdateFamilyRequest) Reset() { + *x = ImportUpdateFamilyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportUpdateFamilyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportUpdateFamilyRequest) ProtoMessage() {} + +func (x *ImportUpdateFamilyRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportUpdateFamilyRequest.ProtoReflect.Descriptor instead. +func (*ImportUpdateFamilyRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{33} +} + +func (m *ImportUpdateFamilyRequest) GetFamilyIdentifier() isImportUpdateFamilyRequest_FamilyIdentifier { + if m != nil { + return m.FamilyIdentifier + } + return nil +} + +func (x *ImportUpdateFamilyRequest) GetFamilyId() string { + if x, ok := x.GetFamilyIdentifier().(*ImportUpdateFamilyRequest_FamilyId); ok { + return x.FamilyId + } + return "" +} + +func (x *ImportUpdateFamilyRequest) GetClientKey() string { + if x, ok := x.GetFamilyIdentifier().(*ImportUpdateFamilyRequest_ClientKey); ok { + return x.ClientKey + } + return "" +} + +func (x *ImportUpdateFamilyRequest) GetFamilyYaml() string { + if x != nil { + return x.FamilyYaml + } + return "" +} + +func (x *ImportUpdateFamilyRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +type isImportUpdateFamilyRequest_FamilyIdentifier interface { + isImportUpdateFamilyRequest_FamilyIdentifier() +} + +type ImportUpdateFamilyRequest_FamilyId struct { + FamilyId string `protobuf:"bytes,1,opt,name=family_id,json=familyId,proto3,oneof"` +} + +type ImportUpdateFamilyRequest_ClientKey struct { + ClientKey string `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3,oneof"` +} + +func (*ImportUpdateFamilyRequest_FamilyId) isImportUpdateFamilyRequest_FamilyIdentifier() {} + +func (*ImportUpdateFamilyRequest_ClientKey) isImportUpdateFamilyRequest_FamilyIdentifier() {} + +type ImportUpdateFamilyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyVersionId string `protobuf:"bytes,1,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` + Family *FamilyDetails `protobuf:"bytes,2,opt,name=family,proto3" json:"family,omitempty"` +} + +func (x *ImportUpdateFamilyResponse) Reset() { + *x = ImportUpdateFamilyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportUpdateFamilyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportUpdateFamilyResponse) ProtoMessage() {} + +func (x *ImportUpdateFamilyResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportUpdateFamilyResponse.ProtoReflect.Descriptor instead. +func (*ImportUpdateFamilyResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{34} +} + +func (x *ImportUpdateFamilyResponse) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +func (x *ImportUpdateFamilyResponse) GetFamily() *FamilyDetails { + if x != nil { + return x.Family + } + return nil +} + +type ExportFamilyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Provide either the family_id, client_key, or family_version_id to export. Export format is a YAML string. + // + // Types that are assignable to FamilyIdentifier: + // + // *ExportFamilyRequest_FamilyId + // *ExportFamilyRequest_ClientKey + // *ExportFamilyRequest_FamilyVersionId + FamilyIdentifier isExportFamilyRequest_FamilyIdentifier `protobuf_oneof:"family_identifier"` +} + +func (x *ExportFamilyRequest) Reset() { + *x = ExportFamilyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExportFamilyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExportFamilyRequest) ProtoMessage() {} + +func (x *ExportFamilyRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExportFamilyRequest.ProtoReflect.Descriptor instead. +func (*ExportFamilyRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{35} +} + +func (m *ExportFamilyRequest) GetFamilyIdentifier() isExportFamilyRequest_FamilyIdentifier { + if m != nil { + return m.FamilyIdentifier + } + return nil +} + +func (x *ExportFamilyRequest) GetFamilyId() string { + if x, ok := x.GetFamilyIdentifier().(*ExportFamilyRequest_FamilyId); ok { + return x.FamilyId + } + return "" +} + +func (x *ExportFamilyRequest) GetClientKey() string { + if x, ok := x.GetFamilyIdentifier().(*ExportFamilyRequest_ClientKey); ok { + return x.ClientKey + } + return "" +} + +func (x *ExportFamilyRequest) GetFamilyVersionId() string { + if x, ok := x.GetFamilyIdentifier().(*ExportFamilyRequest_FamilyVersionId); ok { + return x.FamilyVersionId + } + return "" +} + +type isExportFamilyRequest_FamilyIdentifier interface { + isExportFamilyRequest_FamilyIdentifier() +} + +type ExportFamilyRequest_FamilyId struct { + FamilyId string `protobuf:"bytes,1,opt,name=family_id,json=familyId,proto3,oneof"` +} + +type ExportFamilyRequest_ClientKey struct { + ClientKey string `protobuf:"bytes,2,opt,name=client_key,json=clientKey,proto3,oneof"` +} + +type ExportFamilyRequest_FamilyVersionId struct { + FamilyVersionId string `protobuf:"bytes,3,opt,name=family_version_id,json=familyVersionId,proto3,oneof"` +} + +func (*ExportFamilyRequest_FamilyId) isExportFamilyRequest_FamilyIdentifier() {} + +func (*ExportFamilyRequest_ClientKey) isExportFamilyRequest_FamilyIdentifier() {} + +func (*ExportFamilyRequest_FamilyVersionId) isExportFamilyRequest_FamilyIdentifier() {} + +type ExportFamilyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExportedFamily string `protobuf:"bytes,1,opt,name=exported_family,json=exportedFamily,proto3" json:"exported_family,omitempty"` +} + +func (x *ExportFamilyResponse) Reset() { + *x = ExportFamilyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExportFamilyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExportFamilyResponse) ProtoMessage() {} + +func (x *ExportFamilyResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExportFamilyResponse.ProtoReflect.Descriptor instead. +func (*ExportFamilyResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{36} +} + +func (x *ExportFamilyResponse) GetExportedFamily() string { + if x != nil { + return x.ExportedFamily + } + return "" +} + +type ValidateFamilyNameRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyName string `protobuf:"bytes,1,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"` +} + +func (x *ValidateFamilyNameRequest) Reset() { + *x = ValidateFamilyNameRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidateFamilyNameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateFamilyNameRequest) ProtoMessage() {} + +func (x *ValidateFamilyNameRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidateFamilyNameRequest.ProtoReflect.Descriptor instead. +func (*ValidateFamilyNameRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{37} +} + +func (x *ValidateFamilyNameRequest) GetFamilyName() string { + if x != nil { + return x.FamilyName + } + return "" +} + +type ValidateFamilyNameResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Result: + // + // *ValidateFamilyNameResponse_Success + // *ValidateFamilyNameResponse_ErrorMessage + Result isValidateFamilyNameResponse_Result `protobuf_oneof:"result"` +} + +func (x *ValidateFamilyNameResponse) Reset() { + *x = ValidateFamilyNameResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidateFamilyNameResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateFamilyNameResponse) ProtoMessage() {} + +func (x *ValidateFamilyNameResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidateFamilyNameResponse.ProtoReflect.Descriptor instead. +func (*ValidateFamilyNameResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{38} +} + +func (m *ValidateFamilyNameResponse) GetResult() isValidateFamilyNameResponse_Result { + if m != nil { + return m.Result + } + return nil +} + +func (x *ValidateFamilyNameResponse) GetSuccess() bool { + if x, ok := x.GetResult().(*ValidateFamilyNameResponse_Success); ok { + return x.Success + } + return false +} + +func (x *ValidateFamilyNameResponse) GetErrorMessage() string { + if x, ok := x.GetResult().(*ValidateFamilyNameResponse_ErrorMessage); ok { + return x.ErrorMessage + } + return "" +} + +type isValidateFamilyNameResponse_Result interface { + isValidateFamilyNameResponse_Result() +} + +type ValidateFamilyNameResponse_Success struct { + Success bool `protobuf:"varint,1,opt,name=success,proto3,oneof"` +} + +type ValidateFamilyNameResponse_ErrorMessage struct { + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3,oneof"` +} + +func (*ValidateFamilyNameResponse_Success) isValidateFamilyNameResponse_Result() {} + +func (*ValidateFamilyNameResponse_ErrorMessage) isValidateFamilyNameResponse_Result() {} + +type ValidateFamilyClientKeyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClientKey string `protobuf:"bytes,1,opt,name=client_key,json=clientKey,proto3" json:"client_key,omitempty"` +} + +func (x *ValidateFamilyClientKeyRequest) Reset() { + *x = ValidateFamilyClientKeyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidateFamilyClientKeyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateFamilyClientKeyRequest) ProtoMessage() {} + +func (x *ValidateFamilyClientKeyRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidateFamilyClientKeyRequest.ProtoReflect.Descriptor instead. +func (*ValidateFamilyClientKeyRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{39} +} + +func (x *ValidateFamilyClientKeyRequest) GetClientKey() string { + if x != nil { + return x.ClientKey + } + return "" +} + +type ValidateFamilyClientKeyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Result: + // + // *ValidateFamilyClientKeyResponse_Success + // *ValidateFamilyClientKeyResponse_ErrorMessage + Result isValidateFamilyClientKeyResponse_Result `protobuf_oneof:"result"` +} + +func (x *ValidateFamilyClientKeyResponse) Reset() { + *x = ValidateFamilyClientKeyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidateFamilyClientKeyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateFamilyClientKeyResponse) ProtoMessage() {} + +func (x *ValidateFamilyClientKeyResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidateFamilyClientKeyResponse.ProtoReflect.Descriptor instead. +func (*ValidateFamilyClientKeyResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{40} +} + +func (m *ValidateFamilyClientKeyResponse) GetResult() isValidateFamilyClientKeyResponse_Result { + if m != nil { + return m.Result + } + return nil +} + +func (x *ValidateFamilyClientKeyResponse) GetSuccess() bool { + if x, ok := x.GetResult().(*ValidateFamilyClientKeyResponse_Success); ok { + return x.Success + } + return false +} + +func (x *ValidateFamilyClientKeyResponse) GetErrorMessage() string { + if x, ok := x.GetResult().(*ValidateFamilyClientKeyResponse_ErrorMessage); ok { + return x.ErrorMessage + } + return "" +} + +type isValidateFamilyClientKeyResponse_Result interface { + isValidateFamilyClientKeyResponse_Result() +} + +type ValidateFamilyClientKeyResponse_Success struct { + Success bool `protobuf:"varint,1,opt,name=success,proto3,oneof"` +} + +type ValidateFamilyClientKeyResponse_ErrorMessage struct { + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3,oneof"` +} + +func (*ValidateFamilyClientKeyResponse_Success) isValidateFamilyClientKeyResponse_Result() {} + +func (*ValidateFamilyClientKeyResponse_ErrorMessage) isValidateFamilyClientKeyResponse_Result() {} + +type FamilyStat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyStatId string `protobuf:"bytes,1,opt,name=family_stat_id,json=familyStatId,proto3" json:"family_stat_id,omitempty"` + // The family version id of the family stat. + FamilyVersionId string `protobuf:"bytes,2,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` + // The name of the family stat. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // The description of the family stat. + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + // The sample rate of the family stat (Hz). + SampleRate float64 `protobuf:"fixed64,5,opt,name=sample_rate,json=sampleRate,proto3" json:"sample_rate,omitempty"` + // Ordered list of channel names to include in the family stat. + // The first channel name is the primary channel name across all the family members. + // The remaining channel names are fallback channels or individual overrides when the primary channel + // is not available across all the family members. + DefaultChannelNames []string `protobuf:"bytes,6,rep,name=default_channel_names,json=defaultChannelNames,proto3" json:"default_channel_names,omitempty"` + CreatedDate *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"` + ModifiedDate *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=modified_date,json=modifiedDate,proto3" json:"modified_date,omitempty"` + CreatedByUserId string `protobuf:"bytes,9,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` + ModifiedByUserId string `protobuf:"bytes,10,opt,name=modified_by_user_id,json=modifiedByUserId,proto3" json:"modified_by_user_id,omitempty"` + OrganizationId string `protobuf:"bytes,11,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` +} + +func (x *FamilyStat) Reset() { + *x = FamilyStat{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyStat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyStat) ProtoMessage() {} + +func (x *FamilyStat) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyStat.ProtoReflect.Descriptor instead. +func (*FamilyStat) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{41} +} + +func (x *FamilyStat) GetFamilyStatId() string { + if x != nil { + return x.FamilyStatId + } + return "" +} + +func (x *FamilyStat) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +func (x *FamilyStat) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FamilyStat) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *FamilyStat) GetSampleRate() float64 { + if x != nil { + return x.SampleRate + } + return 0 +} + +func (x *FamilyStat) GetDefaultChannelNames() []string { + if x != nil { + return x.DefaultChannelNames + } + return nil +} + +func (x *FamilyStat) GetCreatedDate() *timestamppb.Timestamp { + if x != nil { + return x.CreatedDate + } + return nil +} + +func (x *FamilyStat) GetModifiedDate() *timestamppb.Timestamp { + if x != nil { + return x.ModifiedDate + } + return nil +} + +func (x *FamilyStat) GetCreatedByUserId() string { + if x != nil { + return x.CreatedByUserId + } + return "" +} + +func (x *FamilyStat) GetModifiedByUserId() string { + if x != nil { + return x.ModifiedByUserId + } + return "" +} + +func (x *FamilyStat) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +type FamilyStatExpression struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyStatExpressionId string `protobuf:"bytes,1,opt,name=family_stat_expression_id,json=familyStatExpressionId,proto3" json:"family_stat_expression_id,omitempty"` + FamilyStatId string `protobuf:"bytes,2,opt,name=family_stat_id,json=familyStatId,proto3" json:"family_stat_id,omitempty"` + // The statistical expression to apply to the channels in the family stat. + // The expression can be any of the following: AVG, MEDIAN, MIN, MAX, STDEV, SUM, INPUT_COUNT, SIGMA. + // SIGMA is auto-managed by the backend: it is created only when both AVG and STDEV are present, + // and fails when either is absent. + // + // Types that are assignable to Expression: + // + // *FamilyStatExpression_Avg + // *FamilyStatExpression_Median + // *FamilyStatExpression_Min + // *FamilyStatExpression_Max + // *FamilyStatExpression_Stdev + // *FamilyStatExpression_Sum + // *FamilyStatExpression_InputCount + // *FamilyStatExpression_Sigma + Expression isFamilyStatExpression_Expression `protobuf_oneof:"expression"` +} + +func (x *FamilyStatExpression) Reset() { + *x = FamilyStatExpression{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyStatExpression) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyStatExpression) ProtoMessage() {} + +func (x *FamilyStatExpression) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyStatExpression.ProtoReflect.Descriptor instead. +func (*FamilyStatExpression) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{42} +} + +func (x *FamilyStatExpression) GetFamilyStatExpressionId() string { + if x != nil { + return x.FamilyStatExpressionId + } + return "" +} + +func (x *FamilyStatExpression) GetFamilyStatId() string { + if x != nil { + return x.FamilyStatId + } + return "" +} + +func (m *FamilyStatExpression) GetExpression() isFamilyStatExpression_Expression { + if m != nil { + return m.Expression + } + return nil +} + +func (x *FamilyStatExpression) GetAvg() *emptypb.Empty { + if x, ok := x.GetExpression().(*FamilyStatExpression_Avg); ok { + return x.Avg + } + return nil +} + +func (x *FamilyStatExpression) GetMedian() *emptypb.Empty { + if x, ok := x.GetExpression().(*FamilyStatExpression_Median); ok { + return x.Median + } + return nil +} + +func (x *FamilyStatExpression) GetMin() *emptypb.Empty { + if x, ok := x.GetExpression().(*FamilyStatExpression_Min); ok { + return x.Min + } + return nil +} + +func (x *FamilyStatExpression) GetMax() *emptypb.Empty { + if x, ok := x.GetExpression().(*FamilyStatExpression_Max); ok { + return x.Max + } + return nil +} + +func (x *FamilyStatExpression) GetStdev() *emptypb.Empty { + if x, ok := x.GetExpression().(*FamilyStatExpression_Stdev); ok { + return x.Stdev + } + return nil +} + +func (x *FamilyStatExpression) GetSum() *emptypb.Empty { + if x, ok := x.GetExpression().(*FamilyStatExpression_Sum); ok { + return x.Sum + } + return nil +} + +func (x *FamilyStatExpression) GetInputCount() *emptypb.Empty { + if x, ok := x.GetExpression().(*FamilyStatExpression_InputCount); ok { + return x.InputCount + } + return nil +} + +func (x *FamilyStatExpression) GetSigma() *emptypb.Empty { + if x, ok := x.GetExpression().(*FamilyStatExpression_Sigma); ok { + return x.Sigma + } + return nil +} + +type isFamilyStatExpression_Expression interface { + isFamilyStatExpression_Expression() +} + +type FamilyStatExpression_Avg struct { + Avg *emptypb.Empty `protobuf:"bytes,3,opt,name=avg,proto3,oneof"` +} + +type FamilyStatExpression_Median struct { + Median *emptypb.Empty `protobuf:"bytes,4,opt,name=median,proto3,oneof"` +} + +type FamilyStatExpression_Min struct { + Min *emptypb.Empty `protobuf:"bytes,5,opt,name=min,proto3,oneof"` +} + +type FamilyStatExpression_Max struct { + Max *emptypb.Empty `protobuf:"bytes,6,opt,name=max,proto3,oneof"` +} + +type FamilyStatExpression_Stdev struct { + Stdev *emptypb.Empty `protobuf:"bytes,7,opt,name=stdev,proto3,oneof"` +} + +type FamilyStatExpression_Sum struct { + Sum *emptypb.Empty `protobuf:"bytes,8,opt,name=sum,proto3,oneof"` +} + +type FamilyStatExpression_InputCount struct { + InputCount *emptypb.Empty `protobuf:"bytes,9,opt,name=input_count,json=inputCount,proto3,oneof"` +} + +type FamilyStatExpression_Sigma struct { + Sigma *emptypb.Empty `protobuf:"bytes,10,opt,name=sigma,proto3,oneof"` +} + +func (*FamilyStatExpression_Avg) isFamilyStatExpression_Expression() {} + +func (*FamilyStatExpression_Median) isFamilyStatExpression_Expression() {} + +func (*FamilyStatExpression_Min) isFamilyStatExpression_Expression() {} + +func (*FamilyStatExpression_Max) isFamilyStatExpression_Expression() {} + +func (*FamilyStatExpression_Stdev) isFamilyStatExpression_Expression() {} + +func (*FamilyStatExpression_Sum) isFamilyStatExpression_Expression() {} + +func (*FamilyStatExpression_InputCount) isFamilyStatExpression_Expression() {} + +func (*FamilyStatExpression_Sigma) isFamilyStatExpression_Expression() {} + +type FamilyStatChannel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyStatChannelId string `protobuf:"bytes,1,opt,name=family_stat_channel_id,json=familyStatChannelId,proto3" json:"family_stat_channel_id,omitempty"` + FamilyStatId string `protobuf:"bytes,2,opt,name=family_stat_id,json=familyStatId,proto3" json:"family_stat_id,omitempty"` + // The channel id of the channel to include in the family stat given the list of channel names provided in the family stat. + ChannelId string `protobuf:"bytes,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // Specific alignment point id of the family member / channel to include in the family stat. + // When creating a family stat with a new Family, this field should contain the temporary_id + // from FamilyAlignmentPoint.family_alignment_point_id. The service will resolve it to the actual alignment_point_id. + // When updating a family stat, this field must contain the actual alignment_point_id. + // This will be prevalent when multiple alignment points are supported for a given family member. + AlignmentPointId string `protobuf:"bytes,4,opt,name=alignment_point_id,json=alignmentPointId,proto3" json:"alignment_point_id,omitempty"` +} + +func (x *FamilyStatChannel) Reset() { + *x = FamilyStatChannel{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyStatChannel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyStatChannel) ProtoMessage() {} + +func (x *FamilyStatChannel) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyStatChannel.ProtoReflect.Descriptor instead. +func (*FamilyStatChannel) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{43} +} + +func (x *FamilyStatChannel) GetFamilyStatChannelId() string { + if x != nil { + return x.FamilyStatChannelId + } + return "" +} + +func (x *FamilyStatChannel) GetFamilyStatId() string { + if x != nil { + return x.FamilyStatId + } + return "" +} + +func (x *FamilyStatChannel) GetChannelId() string { + if x != nil { + return x.ChannelId + } + return "" +} + +func (x *FamilyStatChannel) GetAlignmentPointId() string { + if x != nil { + return x.AlignmentPointId + } + return "" +} + +// WindowType represents a window boundary that can be either an alignment ID or a duration. +type WindowType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Alignment ID to use as the window boundary. + // When creating a family stat with a new Family, this field should contain the temporary_id + // from FamilyAlignment.family_alignment_id. Default to the window's T-0 alignment. + // The service will resolve it to the actual alignment ID. + // When updating a family stat, this field must contain the actual family_alignment_id. + FamilyAlignmentId string `protobuf:"bytes,1,opt,name=family_alignment_id,json=familyAlignmentId,proto3" json:"family_alignment_id,omitempty"` + // Duration relative to the alignment used to compare the data. Defaults to 0 seconds. + Duration *durationpb.Duration `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"` +} + +func (x *WindowType) Reset() { + *x = WindowType{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WindowType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WindowType) ProtoMessage() {} + +func (x *WindowType) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WindowType.ProtoReflect.Descriptor instead. +func (*WindowType) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{44} +} + +func (x *WindowType) GetFamilyAlignmentId() string { + if x != nil { + return x.FamilyAlignmentId + } + return "" +} + +func (x *WindowType) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +type FamilyStatRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyStatRangeId string `protobuf:"bytes,1,opt,name=family_stat_range_id,json=familyStatRangeId,proto3" json:"family_stat_range_id,omitempty"` + FamilyStatId string `protobuf:"bytes,2,opt,name=family_stat_id,json=familyStatId,proto3" json:"family_stat_id,omitempty"` + // T-0 Alignment ID to align the data for stat calculation. + // When creating a family stat with a new Family, this field should contain the temporary_id + // from FamilyAlignment.family_alignment_id. The service will resolve it to the actual alignment ID. + // When updating a family stat, this field must contain the actual family_alignment_id. + FamilyAlignmentId string `protobuf:"bytes,3,opt,name=family_alignment_id,json=familyAlignmentId,proto3" json:"family_alignment_id,omitempty"` + // Unique name for the family stat range. + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // The start of the window for the stat calculation. + // The start is an alignment ID and a duration relative to the alignment. + // Defaults to T-0 alignment and 0 seconds. + WindowStart *WindowType `protobuf:"bytes,5,opt,name=window_start,json=windowStart,proto3,oneof" json:"window_start,omitempty"` + // The end of the window for the stat calculation. + // The end is an alignment ID and a duration relative to the alignment. + // Defaults to T-0 alignment and 0 seconds. However, window end must be after window start. + // Service provides basic validation: if window_start.family_alignment_id = window_end.family_alignment_id, then window_start.duration < window_end.duration. + WindowEnd *WindowType `protobuf:"bytes,6,opt,name=window_end,json=windowEnd,proto3,oneof" json:"window_end,omitempty"` +} + +func (x *FamilyStatRange) Reset() { + *x = FamilyStatRange{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyStatRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyStatRange) ProtoMessage() {} + +func (x *FamilyStatRange) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyStatRange.ProtoReflect.Descriptor instead. +func (*FamilyStatRange) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{45} +} + +func (x *FamilyStatRange) GetFamilyStatRangeId() string { + if x != nil { + return x.FamilyStatRangeId + } + return "" +} + +func (x *FamilyStatRange) GetFamilyStatId() string { + if x != nil { + return x.FamilyStatId + } + return "" +} + +func (x *FamilyStatRange) GetFamilyAlignmentId() string { + if x != nil { + return x.FamilyAlignmentId + } + return "" +} + +func (x *FamilyStatRange) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FamilyStatRange) GetWindowStart() *WindowType { + if x != nil { + return x.WindowStart + } + return nil +} + +func (x *FamilyStatRange) GetWindowEnd() *WindowType { + if x != nil { + return x.WindowEnd + } + return nil +} + +type FamilyStatDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyStat *FamilyStat `protobuf:"bytes,1,opt,name=family_stat,json=familyStat,proto3" json:"family_stat,omitempty"` + FamilyStatExpressions []*FamilyStatExpression `protobuf:"bytes,2,rep,name=family_stat_expressions,json=familyStatExpressions,proto3" json:"family_stat_expressions,omitempty"` + FamilyStatChannels []*FamilyStatChannel `protobuf:"bytes,3,rep,name=family_stat_channels,json=familyStatChannels,proto3" json:"family_stat_channels,omitempty"` + FamilyStatRanges []*FamilyStatRange `protobuf:"bytes,4,rep,name=family_stat_ranges,json=familyStatRanges,proto3" json:"family_stat_ranges,omitempty"` +} + +func (x *FamilyStatDetails) Reset() { + *x = FamilyStatDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyStatDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyStatDetails) ProtoMessage() {} + +func (x *FamilyStatDetails) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyStatDetails.ProtoReflect.Descriptor instead. +func (*FamilyStatDetails) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{46} +} + +func (x *FamilyStatDetails) GetFamilyStat() *FamilyStat { + if x != nil { + return x.FamilyStat + } + return nil +} + +func (x *FamilyStatDetails) GetFamilyStatExpressions() []*FamilyStatExpression { + if x != nil { + return x.FamilyStatExpressions + } + return nil +} + +func (x *FamilyStatDetails) GetFamilyStatChannels() []*FamilyStatChannel { + if x != nil { + return x.FamilyStatChannels + } + return nil +} + +func (x *FamilyStatDetails) GetFamilyStatRanges() []*FamilyStatRange { + if x != nil { + return x.FamilyStatRanges + } + return nil +} + +type GetFamilyStatRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyStatId string `protobuf:"bytes,1,opt,name=family_stat_id,json=familyStatId,proto3" json:"family_stat_id,omitempty"` +} + +func (x *GetFamilyStatRequest) Reset() { + *x = GetFamilyStatRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyStatRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyStatRequest) ProtoMessage() {} + +func (x *GetFamilyStatRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyStatRequest.ProtoReflect.Descriptor instead. +func (*GetFamilyStatRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{47} +} + +func (x *GetFamilyStatRequest) GetFamilyStatId() string { + if x != nil { + return x.FamilyStatId + } + return "" +} + +type GetFamilyStatResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyStatDetails *FamilyStatDetails `protobuf:"bytes,1,opt,name=family_stat_details,json=familyStatDetails,proto3" json:"family_stat_details,omitempty"` +} + +func (x *GetFamilyStatResponse) Reset() { + *x = GetFamilyStatResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyStatResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyStatResponse) ProtoMessage() {} + +func (x *GetFamilyStatResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyStatResponse.ProtoReflect.Descriptor instead. +func (*GetFamilyStatResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{48} +} + +func (x *GetFamilyStatResponse) GetFamilyStatDetails() *FamilyStatDetails { + if x != nil { + return x.FamilyStatDetails + } + return nil +} + +type GetFamilyStatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyVersionId string `protobuf:"bytes,1,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` +} + +func (x *GetFamilyStatsRequest) Reset() { + *x = GetFamilyStatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyStatsRequest) ProtoMessage() {} + +func (x *GetFamilyStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyStatsRequest.ProtoReflect.Descriptor instead. +func (*GetFamilyStatsRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{49} +} + +func (x *GetFamilyStatsRequest) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +type GetFamilyStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyStatsDetails []*FamilyStatDetails `protobuf:"bytes,1,rep,name=family_stats_details,json=familyStatsDetails,proto3" json:"family_stats_details,omitempty"` +} + +func (x *GetFamilyStatsResponse) Reset() { + *x = GetFamilyStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyStatsResponse) ProtoMessage() {} + +func (x *GetFamilyStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyStatsResponse.ProtoReflect.Descriptor instead. +func (*GetFamilyStatsResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{50} +} + +func (x *GetFamilyStatsResponse) GetFamilyStatsDetails() []*FamilyStatDetails { + if x != nil { + return x.FamilyStatsDetails + } + return nil +} + +type CreateFamilyStatRangesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyStatIds []string `protobuf:"bytes,1,rep,name=family_stat_ids,json=familyStatIds,proto3" json:"family_stat_ids,omitempty"` + FamilyStatRanges []*FamilyStatRange `protobuf:"bytes,2,rep,name=family_stat_ranges,json=familyStatRanges,proto3" json:"family_stat_ranges,omitempty"` +} + +func (x *CreateFamilyStatRangesRequest) Reset() { + *x = CreateFamilyStatRangesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFamilyStatRangesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFamilyStatRangesRequest) ProtoMessage() {} + +func (x *CreateFamilyStatRangesRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFamilyStatRangesRequest.ProtoReflect.Descriptor instead. +func (*CreateFamilyStatRangesRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{51} +} + +func (x *CreateFamilyStatRangesRequest) GetFamilyStatIds() []string { + if x != nil { + return x.FamilyStatIds + } + return nil +} + +func (x *CreateFamilyStatRangesRequest) GetFamilyStatRanges() []*FamilyStatRange { + if x != nil { + return x.FamilyStatRanges + } + return nil +} + +type CreateFamilyStatRangesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyVersionId string `protobuf:"bytes,1,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` + Family *FamilyDetails `protobuf:"bytes,2,opt,name=family,proto3" json:"family,omitempty"` + FamilyStats []*FamilyStatDetails `protobuf:"bytes,3,rep,name=family_stats,json=familyStats,proto3" json:"family_stats,omitempty"` +} + +func (x *CreateFamilyStatRangesResponse) Reset() { + *x = CreateFamilyStatRangesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFamilyStatRangesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFamilyStatRangesResponse) ProtoMessage() {} + +func (x *CreateFamilyStatRangesResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFamilyStatRangesResponse.ProtoReflect.Descriptor instead. +func (*CreateFamilyStatRangesResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{52} +} + +func (x *CreateFamilyStatRangesResponse) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +func (x *CreateFamilyStatRangesResponse) GetFamily() *FamilyDetails { + if x != nil { + return x.Family + } + return nil +} + +func (x *CreateFamilyStatRangesResponse) GetFamilyStats() []*FamilyStatDetails { + if x != nil { + return x.FamilyStats + } + return nil +} + +type GetFamilyRuleDependenciesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyId string `protobuf:"bytes,1,opt,name=family_id,json=familyId,proto3" json:"family_id,omitempty"` +} + +func (x *GetFamilyRuleDependenciesRequest) Reset() { + *x = GetFamilyRuleDependenciesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyRuleDependenciesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyRuleDependenciesRequest) ProtoMessage() {} + +func (x *GetFamilyRuleDependenciesRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyRuleDependenciesRequest.ProtoReflect.Descriptor instead. +func (*GetFamilyRuleDependenciesRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{53} +} + +func (x *GetFamilyRuleDependenciesRequest) GetFamilyId() string { + if x != nil { + return x.FamilyId + } + return "" +} + +type GetFamilyRuleDependenciesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RuleDependencies []*FamilyRuleDependency `protobuf:"bytes,1,rep,name=rule_dependencies,json=ruleDependencies,proto3" json:"rule_dependencies,omitempty"` +} + +func (x *GetFamilyRuleDependenciesResponse) Reset() { + *x = GetFamilyRuleDependenciesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyRuleDependenciesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyRuleDependenciesResponse) ProtoMessage() {} + +func (x *GetFamilyRuleDependenciesResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyRuleDependenciesResponse.ProtoReflect.Descriptor instead. +func (*GetFamilyRuleDependenciesResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{54} +} + +func (x *GetFamilyRuleDependenciesResponse) GetRuleDependencies() []*FamilyRuleDependency { + if x != nil { + return x.RuleDependencies + } + return nil +} + +type FamilyRuleDependency struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RuleId string `protobuf:"bytes,1,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + StatReference *v11.FamilyStatReference `protobuf:"bytes,3,opt,name=stat_reference,json=statReference,proto3" json:"stat_reference,omitempty"` +} + +func (x *FamilyRuleDependency) Reset() { + *x = FamilyRuleDependency{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyRuleDependency) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyRuleDependency) ProtoMessage() {} + +func (x *FamilyRuleDependency) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyRuleDependency.ProtoReflect.Descriptor instead. +func (*FamilyRuleDependency) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{55} +} + +func (x *FamilyRuleDependency) GetRuleId() string { + if x != nil { + return x.RuleId + } + return "" +} + +func (x *FamilyRuleDependency) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FamilyRuleDependency) GetStatReference() *v11.FamilyStatReference { + if x != nil { + return x.StatReference + } + return nil +} + +// AbstractWindowType represents a window boundary that is agnostic of the alignment ID. +type AbstractWindowType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyAlignmentName string `protobuf:"bytes,1,opt,name=family_alignment_name,json=familyAlignmentName,proto3" json:"family_alignment_name,omitempty"` + // Duration relative to the alignment used to compare the data. Defaults to 0 seconds. + Duration *durationpb.Duration `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"` +} + +func (x *AbstractWindowType) Reset() { + *x = AbstractWindowType{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AbstractWindowType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AbstractWindowType) ProtoMessage() {} + +func (x *AbstractWindowType) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AbstractWindowType.ProtoReflect.Descriptor instead. +func (*AbstractWindowType) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{56} +} + +func (x *AbstractWindowType) GetFamilyAlignmentName() string { + if x != nil { + return x.FamilyAlignmentName + } + return "" +} + +func (x *AbstractWindowType) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +type GenerateFamilyStatRangeNameRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyAlignmentName string `protobuf:"bytes,1,opt,name=family_alignment_name,json=familyAlignmentName,proto3" json:"family_alignment_name,omitempty"` + WindowStart *AbstractWindowType `protobuf:"bytes,2,opt,name=window_start,json=windowStart,proto3" json:"window_start,omitempty"` + WindowEnd *AbstractWindowType `protobuf:"bytes,3,opt,name=window_end,json=windowEnd,proto3" json:"window_end,omitempty"` +} + +func (x *GenerateFamilyStatRangeNameRequest) Reset() { + *x = GenerateFamilyStatRangeNameRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateFamilyStatRangeNameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateFamilyStatRangeNameRequest) ProtoMessage() {} + +func (x *GenerateFamilyStatRangeNameRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenerateFamilyStatRangeNameRequest.ProtoReflect.Descriptor instead. +func (*GenerateFamilyStatRangeNameRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{57} +} + +func (x *GenerateFamilyStatRangeNameRequest) GetFamilyAlignmentName() string { + if x != nil { + return x.FamilyAlignmentName + } + return "" +} + +func (x *GenerateFamilyStatRangeNameRequest) GetWindowStart() *AbstractWindowType { + if x != nil { + return x.WindowStart + } + return nil +} + +func (x *GenerateFamilyStatRangeNameRequest) GetWindowEnd() *AbstractWindowType { + if x != nil { + return x.WindowEnd + } + return nil +} + +type GenerateFamilyStatRangeNameResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GenerateFamilyStatRangeNameResponse) Reset() { + *x = GenerateFamilyStatRangeNameResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateFamilyStatRangeNameResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateFamilyStatRangeNameResponse) ProtoMessage() {} + +func (x *GenerateFamilyStatRangeNameResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenerateFamilyStatRangeNameResponse.ProtoReflect.Descriptor instead. +func (*GenerateFamilyStatRangeNameResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{58} +} + +func (x *GenerateFamilyStatRangeNameResponse) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type GetFamilyCandidateRunsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyVersionId string `protobuf:"bytes,1,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` +} + +func (x *GetFamilyCandidateRunsRequest) Reset() { + *x = GetFamilyCandidateRunsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyCandidateRunsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyCandidateRunsRequest) ProtoMessage() {} + +func (x *GetFamilyCandidateRunsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyCandidateRunsRequest.ProtoReflect.Descriptor instead. +func (*GetFamilyCandidateRunsRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{59} +} + +func (x *GetFamilyCandidateRunsRequest) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +type GetFamilyCandidateRunsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RunQuery string `protobuf:"bytes,1,opt,name=run_query,json=runQuery,proto3" json:"run_query,omitempty"` + CandidateRunIds []string `protobuf:"bytes,2,rep,name=candidate_run_ids,json=candidateRunIds,proto3" json:"candidate_run_ids,omitempty"` +} + +func (x *GetFamilyCandidateRunsResponse) Reset() { + *x = GetFamilyCandidateRunsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyCandidateRunsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyCandidateRunsResponse) ProtoMessage() {} + +func (x *GetFamilyCandidateRunsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyCandidateRunsResponse.ProtoReflect.Descriptor instead. +func (*GetFamilyCandidateRunsResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{60} +} + +func (x *GetFamilyCandidateRunsResponse) GetRunQuery() string { + if x != nil { + return x.RunQuery + } + return "" +} + +func (x *GetFamilyCandidateRunsResponse) GetCandidateRunIds() []string { + if x != nil { + return x.CandidateRunIds + } + return nil +} + +type GetFamilyCandidateRunCountRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyVersionId string `protobuf:"bytes,1,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` +} + +func (x *GetFamilyCandidateRunCountRequest) Reset() { + *x = GetFamilyCandidateRunCountRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyCandidateRunCountRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyCandidateRunCountRequest) ProtoMessage() {} + +func (x *GetFamilyCandidateRunCountRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyCandidateRunCountRequest.ProtoReflect.Descriptor instead. +func (*GetFamilyCandidateRunCountRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{61} +} + +func (x *GetFamilyCandidateRunCountRequest) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +type GetFamilyCandidateRunCountResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count uint32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *GetFamilyCandidateRunCountResponse) Reset() { + *x = GetFamilyCandidateRunCountResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyCandidateRunCountResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyCandidateRunCountResponse) ProtoMessage() {} + +func (x *GetFamilyCandidateRunCountResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyCandidateRunCountResponse.ProtoReflect.Descriptor instead. +func (*GetFamilyCandidateRunCountResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{62} +} + +func (x *GetFamilyCandidateRunCountResponse) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +// Request for `FamilyService.ListFamilyCandidateRuns`. +// +// The CEL filter supports the standard run filter fields plus an +// `include_archived` directive. Archived runs are excluded by default; pass +// `include_archived == true` in the filter to include them. +// +// When `family_id` is set, the server filters out runs already on that +// family's persisted membership (both included and excluded entries) so the +// response only contains runs not yet on the family. Clients editing an +// unsaved draft of family membership should omit `family_id` and apply their +// own draft-aware filtering, since the persisted membership does not reflect +// the draft state. +type ListFamilyCandidateRunsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of runs to return. + // The service may return fewer than this value. + // If unspecified, at most 50 runs will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Supports all ListRuns filter fields plus `include_archived`. + // When `include_archived` is not present in the filter, archived runs are excluded by default. + // Set `include_archived == true` in the filter to include archived runs. + // Note: `include_archived` is a directive and must appear at the top level of the filter + // (or within a top-level AND chain). It cannot be used inside an OR expression. + Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` + // How to order the retrieved runs. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are `name`, `description`, `created_date`, `modified_date`, `start_time`, and `stop_time`. + // If left empty, items are ordered by `created_date` in descending order (newest-first). + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // Optional family ID to filter out runs already on the family's persisted membership. + // When set, the response excludes runs that are already included or excluded in the family. + // Omit this field when working with draft membership changes. + FamilyId string `protobuf:"bytes,5,opt,name=family_id,json=familyId,proto3" json:"family_id,omitempty"` +} + +func (x *ListFamilyCandidateRunsRequest) Reset() { + *x = ListFamilyCandidateRunsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamilyCandidateRunsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamilyCandidateRunsRequest) ProtoMessage() {} + +func (x *ListFamilyCandidateRunsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamilyCandidateRunsRequest.ProtoReflect.Descriptor instead. +func (*ListFamilyCandidateRunsRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{63} +} + +func (x *ListFamilyCandidateRunsRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListFamilyCandidateRunsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListFamilyCandidateRunsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListFamilyCandidateRunsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +func (x *ListFamilyCandidateRunsRequest) GetFamilyId() string { + if x != nil { + return x.FamilyId + } + return "" +} + +type ListFamilyCandidateRunsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Runs []*v2.Run `protobuf:"bytes,1,rep,name=runs,proto3" json:"runs,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListFamilyCandidateRunsResponse) Reset() { + *x = ListFamilyCandidateRunsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFamilyCandidateRunsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFamilyCandidateRunsResponse) ProtoMessage() {} + +func (x *ListFamilyCandidateRunsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFamilyCandidateRunsResponse.ProtoReflect.Descriptor instead. +func (*ListFamilyCandidateRunsResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{64} +} + +func (x *ListFamilyCandidateRunsResponse) GetRuns() []*v2.Run { + if x != nil { + return x.Runs + } + return nil +} + +func (x *ListFamilyCandidateRunsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type GetFamilyCandidateRunFilterFieldsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetFamilyCandidateRunFilterFieldsRequest) Reset() { + *x = GetFamilyCandidateRunFilterFieldsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyCandidateRunFilterFieldsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyCandidateRunFilterFieldsRequest) ProtoMessage() {} + +func (x *GetFamilyCandidateRunFilterFieldsRequest) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyCandidateRunFilterFieldsRequest.ProtoReflect.Descriptor instead. +func (*GetFamilyCandidateRunFilterFieldsRequest) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{65} +} + +type GetFamilyCandidateRunFilterFieldsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FilterFields []*v12.FilterField `protobuf:"bytes,1,rep,name=filter_fields,json=filterFields,proto3" json:"filter_fields,omitempty"` +} + +func (x *GetFamilyCandidateRunFilterFieldsResponse) Reset() { + *x = GetFamilyCandidateRunFilterFieldsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_families_v1_families_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFamilyCandidateRunFilterFieldsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFamilyCandidateRunFilterFieldsResponse) ProtoMessage() {} + +func (x *GetFamilyCandidateRunFilterFieldsResponse) ProtoReflect() protoreflect.Message { + mi := &file_sift_families_v1_families_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFamilyCandidateRunFilterFieldsResponse.ProtoReflect.Descriptor instead. +func (*GetFamilyCandidateRunFilterFieldsResponse) Descriptor() ([]byte, []int) { + return file_sift_families_v1_families_proto_rawDescGZIP(), []int{66} +} + +func (x *GetFamilyCandidateRunFilterFieldsResponse) GetFilterFields() []*v12.FilterField { + if x != nil { + return x.FilterFields + } + return nil +} + +var File_sift_families_v1_families_proto protoreflect.FileDescriptor + +var file_sift_families_v1_families_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x10, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, + 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x21, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x17, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2f, 0x76, 0x32, 0x2f, + 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa3, 0x04, 0x0a, 0x06, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x23, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x34, + 0x0a, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, 0x41, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, + 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x2f, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x22, 0xe5, 0x05, 0x0a, 0x0d, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x06, 0xe0, 0x41, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, + 0x09, 0x72, 0x75, 0x6e, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x72, 0x75, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, + 0x22, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, + 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x14, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x12, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x35, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x2a, 0x0a, 0x0d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6e, + 0x49, 0x64, 0x12, 0x32, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x69, + 0x73, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x09, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x65, 0x12, 0x41, 0x0a, + 0x0a, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x64, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x2f, 0x0a, 0x10, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x35, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, + 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x61, 0x64, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xfe, 0x03, 0x0a, 0x0f, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x13, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x32, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x4e, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x63, 0x0a, 0x17, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x15, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xa6, 0x03, 0x0a, 0x14, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x19, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x72, 0x75, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x13, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x32, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x44, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0b, 0x0a, 0x09, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x4b, 0x0a, 0x0c, 0x52, 0x75, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x22, + 0x84, 0x02, 0x0a, 0x1a, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2c, + 0x0a, 0x0f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, + 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x05, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4b, 0x0a, 0x0a, 0x6f, 0x63, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6f, 0x63, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x53, 0x0a, 0x12, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x7c, 0x0a, 0x13, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x05, + 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x05, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xf8, 0x02, 0x0a, 0x0d, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x35, 0x0a, 0x06, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x12, 0x4b, 0x0a, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x41, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, + 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, + 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x22, 0x67, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x51, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x22, 0x5e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, + 0x22, 0x57, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x22, 0x4a, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, + 0x98, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x82, 0x01, 0x0a, 0x14, 0x4c, + 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, + 0x96, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x38, + 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x4e, 0x0a, 0x0e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xfe, 0x02, 0x0a, 0x13, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x35, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x4b, 0x0a, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x72, + 0x75, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0c, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x76, 0x0a, 0x14, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x22, 0xea, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x13, 0x0a, 0x11, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0xd2, + 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x4b, 0x0a, 0x0c, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x42, 0x79, 0x22, 0x98, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, + 0xae, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0x8b, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, + 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6e, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6e, + 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb1, + 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, + 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x22, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0xa0, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xba, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x22, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0xb5, 0x01, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x17, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x15, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, + 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3b, 0x0a, 0x13, 0x49, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x79, 0x61, 0x6d, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x59, 0x61, 0x6d, 0x6c, 0x22, 0x76, 0x0a, 0x14, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x20, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, + 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, + 0xd8, 0x01, 0x0a, 0x19, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, + 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x59, + 0x61, 0x6d, 0x6c, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x13, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x8b, 0x01, 0x0a, 0x1a, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x98, 0x01, 0x0a, 0x13, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, + 0x1f, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, + 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x42, 0x13, + 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x14, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x41, 0x0a, 0x19, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x69, 0x0a, 0x1a, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x44, 0x0a, 0x1e, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, + 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0x6e, 0x0a, + 0x1f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1a, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0d, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xba, 0x04, + 0x0a, 0x0a, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x0e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x11, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, + 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x52, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x45, 0x0a, + 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, + 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, + 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x35, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, + 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0f, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x97, 0x04, 0x0a, 0x14, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x19, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, + 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x03, 0x61, 0x76, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x03, 0x61, 0x76, 0x67, + 0x12, 0x30, 0x0a, 0x06, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x6e, 0x12, 0x2a, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x2a, + 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x2e, 0x0a, 0x05, 0x73, 0x74, + 0x64, 0x65, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x64, 0x65, 0x76, 0x12, 0x2a, 0x0a, 0x03, 0x73, 0x75, + 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, + 0x00, 0x52, 0x03, 0x73, 0x75, 0x6d, 0x12, 0x39, 0x0a, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x42, 0x0c, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd5, 0x01, 0x0a, 0x11, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3b, 0x0a, 0x16, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x7d, 0x0a, 0x0a, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x3a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xfb, 0x02, 0x0a, 0x0f, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x37, 0x0a, 0x14, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x00, 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x09, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x64, 0x22, 0xee, 0x02, 0x0a, 0x11, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, + 0x42, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x12, 0x63, 0x0a, 0x17, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x15, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5a, 0x0a, 0x14, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x12, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x54, 0x0a, 0x12, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x41, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0c, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x49, 0x64, 0x22, 0x71, 0x0a, + 0x15, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x22, 0x48, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x74, 0x0a, 0x16, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x14, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x22, 0xa2, 0x01, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x49, 0x64, 0x73, 0x12, + 0x54, 0x0a, 0x12, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x10, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xdc, 0x01, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x4b, 0x0a, 0x0c, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x22, 0x44, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x22, 0x7d, 0x0a, 0x21, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x58, 0x0a, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x63, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x14, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x63, 0x79, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x0e, 0x73, 0x74, 0x61, + 0x74, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x12, 0x41, 0x62, + 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x37, 0x0a, 0x15, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf5, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x15, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x65, 0x6e, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x45, 0x6e, 0x64, 0x22, 0x3e, 0x0a, + 0x23, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, + 0x1d, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, + 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, + 0x73, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x75, 0x6e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6e, 0x49, 0x64, 0x73, 0x22, 0x54, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x22, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x1e, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, + 0x79, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x49, 0x64, 0x22, 0x75, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6e, 0x73, + 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x72, 0x75, + 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x2a, 0x0a, 0x28, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x29, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2a, 0x6c, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x1c, 0x54, 0x49, 0x4d, 0x45, 0x5f, + 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x1a, 0x0a, + 0x16, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x55, 0x4e, + 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x49, 0x4d, + 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x45, 0x4e, + 0x44, 0x10, 0x02, 0x2a, 0xc2, 0x01, 0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x21, + 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x52, + 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x4e, 0x4e, 0x4f, 0x54, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x45, + 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x4e, 0x4e, 0x4f, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, + 0x45, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x4e, 0x4e, 0x4f, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, + 0x45, 0x5f, 0x45, 0x56, 0x45, 0x52, 0x59, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x4e, 0x4e, + 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, + 0x43, 0x45, 0x5f, 0x4e, 0x54, 0x48, 0x10, 0x04, 0x32, 0xfd, 0x33, 0x0a, 0x0d, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xe0, 0x01, 0x0a, 0x09, 0x47, + 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x89, 0x01, 0x92, 0x41, 0x36, 0x12, 0x09, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x1a, 0x29, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x4a, 0x5a, 0x2a, 0x12, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, + 0x65, 0x79, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x12, + 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xc5, 0x01, + 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x24, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x92, 0x41, 0x42, 0x12, + 0x0b, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x1a, 0x33, 0x52, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x47, 0x65, 0x74, 0x12, 0xe0, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x75, 0x92, 0x41, 0x3d, 0x12, 0x10, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x29, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa2, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x92, 0x41, 0x25, 0x12, 0x0c, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, 0x15, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, 0x10, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x98, 0x02, + 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x25, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb8, 0x01, + 0x92, 0x41, 0x5f, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x1a, 0x4f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x3a, 0x01, 0x2a, 0x5a, 0x2d, 0x3a, 0x01, 0x2a, + 0x32, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2f, 0x7b, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x32, 0x1c, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xc6, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x75, 0x6e, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc8, 0x01, 0x92, 0x41, 0x80, 0x01, 0x12, 0x16, 0x47, + 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x75, 0x6e, 0x73, 0x1a, 0x66, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, + 0x75, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6e, + 0x73, 0x12, 0xd8, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xce, 0x01, 0x92, 0x41, + 0x81, 0x01, 0x12, 0x1a, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x63, + 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, + 0x75, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x12, 0x41, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6e, 0x2d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xc9, 0x04, 0x0a, + 0x17, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc8, 0x03, + 0x92, 0x41, 0x9d, 0x03, 0x12, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x1a, 0x81, 0x03, + 0x4c, 0x69, 0x73, 0x74, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2d, 0x72, 0x75, 0x6e, 0x20, 0x43, 0x45, 0x4c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x2e, 0x20, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x60, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x20, 0x61, 0x73, + 0x20, 0x61, 0x20, 0x43, 0x45, 0x4c, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x20, 0x28, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x60, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x20, + 0x3d, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x60, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x60, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x61, 0x6c, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x27, 0x73, 0x20, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x20, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x20, 0x28, 0x62, 0x6f, 0x74, 0x68, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x78, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x64, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x79, + 0x65, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6e, 0x73, 0x12, 0x85, 0x03, 0x0a, 0x21, 0x47, 0x65, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x75, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3a, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe6, 0x01, 0x92, 0x41, 0xae, 0x01, 0x12, 0x21, + 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x1a, 0x88, 0x01, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x61, 0x6e, 0x64, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6e, 0x20, 0x43, 0x45, 0x4c, 0x20, 0x71, 0x75, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x20, 0x70, 0x6c, 0x75, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, + 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x29, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x72, + 0x75, 0x6e, 0x73, 0x3a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x12, 0xb6, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x57, 0x92, 0x41, 0x3c, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x1a, 0x2c, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, + 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0xca, 0x01, 0x0a, 0x12, 0x4c, 0x69, + 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x92, 0x41, 0x35, + 0x12, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xe9, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x92, 0x41, 0x3b, 0x12, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x26, 0x4c, + 0x69, 0x73, 0x74, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x12, 0x86, 0x02, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, 0x92, 0x41, 0x4b, + 0x12, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x33, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3a, 0x12, 0x38, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xaa, 0x02, 0x0a, 0x19, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xa3, 0x01, 0x92, 0x41, 0x60, 0x12, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x1a, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0xb3, 0x01, 0x0a, 0x0c, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x92, 0x41, 0x2f, 0x12, 0x0c, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, 0x1f, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x59, 0x41, 0x4d, 0x4c, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0xa2, + 0x02, 0x0a, 0x12, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xb0, 0x01, 0x92, 0x41, 0x3b, 0x12, 0x12, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, 0x25, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x59, 0x41, 0x4d, 0x4c, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x3a, 0x01, 0x2a, 0x5a, 0x3b, 0x3a, 0x01, 0x2a, 0x32, + 0x36, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2f, 0x7b, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x2d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x32, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0xa3, 0x02, 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xc3, 0x01, 0x92, 0x41, 0x29, 0x12, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, 0x19, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x59, 0x41, 0x4d, + 0x4c, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x90, 0x01, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5a, 0x36, 0x12, 0x34, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0xef, 0x01, 0x0a, 0x12, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7e, 0x92, 0x41, 0x4d, + 0x12, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x37, 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6f, + 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x28, 0x3a, 0x01, 0x2a, 0x22, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x3a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x82, 0x02, 0x0a, 0x17, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, + 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x92, + 0x41, 0x51, 0x12, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x36, 0x55, 0x73, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x77, 0x68, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x22, 0x22, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x3a, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, + 0x12, 0xc9, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x37, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x1a, 0x26, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x65, 0x73, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, + 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xe6, 0x01, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, + 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x80, 0x01, 0x92, 0x41, 0x4d, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x1a, 0x3b, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x65, 0x73, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x95, 0x02, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x12, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x97, 0x01, 0x92, 0x41, 0x67, 0x12, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x1a, 0x4d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x73, 0x20, 0x28, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, + 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x29, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0xad, 0x02, + 0x0a, 0x19, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, + 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x01, 0x92, 0x41, 0x6d, 0x12, 0x19, 0x47, 0x65, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, + 0x6e, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x50, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x61, + 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, + 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x75, 0x6c, 0x65, + 0x2d, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0xc1, 0x02, + 0x0a, 0x1b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb4, 0x01, 0x92, 0x41, 0x88, + 0x01, 0x12, 0x1b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x69, + 0x44, 0x65, 0x72, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x20, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, + 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x2d, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2f, 0x6e, 0x61, 0x6d, + 0x65, 0x1a, 0x45, 0x92, 0x41, 0x42, 0x12, 0x40, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x42, 0xdb, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x42, 0x0d, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, + 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, + 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x76, + 0x31, 0xa2, 0x02, 0x03, 0x53, 0x46, 0x58, 0xaa, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x53, 0x69, 0x66, + 0x74, 0x5c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, + 0x53, 0x69, 0x66, 0x74, 0x5c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x5c, 0x56, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x53, + 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x3a, 0x3a, 0x56, + 0x31, 0x92, 0x41, 0x12, 0x12, 0x10, 0x0a, 0x0e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_sift_families_v1_families_proto_rawDescOnce sync.Once + file_sift_families_v1_families_proto_rawDescData = file_sift_families_v1_families_proto_rawDesc +) + +func file_sift_families_v1_families_proto_rawDescGZIP() []byte { + file_sift_families_v1_families_proto_rawDescOnce.Do(func() { + file_sift_families_v1_families_proto_rawDescData = protoimpl.X.CompressGZIP(file_sift_families_v1_families_proto_rawDescData) + }) + return file_sift_families_v1_families_proto_rawDescData +} + +var file_sift_families_v1_families_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_sift_families_v1_families_proto_msgTypes = make([]protoimpl.MessageInfo, 67) +var file_sift_families_v1_families_proto_goTypes = []interface{}{ + (TimeRangeBound)(0), // 0: sift.families.v1.TimeRangeBound + (AnnotationOccurrence)(0), // 1: sift.families.v1.AnnotationOccurrence + (*Family)(nil), // 2: sift.families.v1.Family + (*FamilyVersion)(nil), // 3: sift.families.v1.FamilyVersion + (*FamilyRun)(nil), // 4: sift.families.v1.FamilyRun + (*FamilyAlignment)(nil), // 5: sift.families.v1.FamilyAlignment + (*FamilyAlignmentPoint)(nil), // 6: sift.families.v1.FamilyAlignmentPoint + (*RunAlignment)(nil), // 7: sift.families.v1.RunAlignment + (*DefaultAnnotationAlignment)(nil), // 8: sift.families.v1.DefaultAnnotationAlignment + (*TimestampAlignment)(nil), // 9: sift.families.v1.TimestampAlignment + (*AnnotationAlignment)(nil), // 10: sift.families.v1.AnnotationAlignment + (*FamilyDetails)(nil), // 11: sift.families.v1.FamilyDetails + (*GetFamilyRequest)(nil), // 12: sift.families.v1.GetFamilyRequest + (*GetFamilyResponse)(nil), // 13: sift.families.v1.GetFamilyResponse + (*GetFamiliesRequest)(nil), // 14: sift.families.v1.GetFamiliesRequest + (*GetFamiliesResponse)(nil), // 15: sift.families.v1.GetFamiliesResponse + (*GetFamilyVersionRequest)(nil), // 16: sift.families.v1.GetFamilyVersionRequest + (*GetFamilyVersionResponse)(nil), // 17: sift.families.v1.GetFamilyVersionResponse + (*ListFamiliesRequest)(nil), // 18: sift.families.v1.ListFamiliesRequest + (*ListFamiliesResponse)(nil), // 19: sift.families.v1.ListFamiliesResponse + (*ListFamily)(nil), // 20: sift.families.v1.ListFamily + (*CreateFamilyRequest)(nil), // 21: sift.families.v1.CreateFamilyRequest + (*CreateFamilyResponse)(nil), // 22: sift.families.v1.CreateFamilyResponse + (*UpdateFamilyRequest)(nil), // 23: sift.families.v1.UpdateFamilyRequest + (*UpdateFamilyResponse)(nil), // 24: sift.families.v1.UpdateFamilyResponse + (*ListFamilyVersionsRequest)(nil), // 25: sift.families.v1.ListFamilyVersionsRequest + (*ListFamilyVersionsResponse)(nil), // 26: sift.families.v1.ListFamilyVersionsResponse + (*ListFamilyMembersRequest)(nil), // 27: sift.families.v1.ListFamilyMembersRequest + (*ListFamilyMembersResponse)(nil), // 28: sift.families.v1.ListFamilyMembersResponse + (*ListFamilyAlignmentsRequest)(nil), // 29: sift.families.v1.ListFamilyAlignmentsRequest + (*ListFamilyAlignmentsResponse)(nil), // 30: sift.families.v1.ListFamilyAlignmentsResponse + (*ListFamilyAlignmentPointsRequest)(nil), // 31: sift.families.v1.ListFamilyAlignmentPointsRequest + (*ListFamilyAlignmentPointsResponse)(nil), // 32: sift.families.v1.ListFamilyAlignmentPointsResponse + (*ImportFamilyRequest)(nil), // 33: sift.families.v1.ImportFamilyRequest + (*ImportFamilyResponse)(nil), // 34: sift.families.v1.ImportFamilyResponse + (*ImportUpdateFamilyRequest)(nil), // 35: sift.families.v1.ImportUpdateFamilyRequest + (*ImportUpdateFamilyResponse)(nil), // 36: sift.families.v1.ImportUpdateFamilyResponse + (*ExportFamilyRequest)(nil), // 37: sift.families.v1.ExportFamilyRequest + (*ExportFamilyResponse)(nil), // 38: sift.families.v1.ExportFamilyResponse + (*ValidateFamilyNameRequest)(nil), // 39: sift.families.v1.ValidateFamilyNameRequest + (*ValidateFamilyNameResponse)(nil), // 40: sift.families.v1.ValidateFamilyNameResponse + (*ValidateFamilyClientKeyRequest)(nil), // 41: sift.families.v1.ValidateFamilyClientKeyRequest + (*ValidateFamilyClientKeyResponse)(nil), // 42: sift.families.v1.ValidateFamilyClientKeyResponse + (*FamilyStat)(nil), // 43: sift.families.v1.FamilyStat + (*FamilyStatExpression)(nil), // 44: sift.families.v1.FamilyStatExpression + (*FamilyStatChannel)(nil), // 45: sift.families.v1.FamilyStatChannel + (*WindowType)(nil), // 46: sift.families.v1.WindowType + (*FamilyStatRange)(nil), // 47: sift.families.v1.FamilyStatRange + (*FamilyStatDetails)(nil), // 48: sift.families.v1.FamilyStatDetails + (*GetFamilyStatRequest)(nil), // 49: sift.families.v1.GetFamilyStatRequest + (*GetFamilyStatResponse)(nil), // 50: sift.families.v1.GetFamilyStatResponse + (*GetFamilyStatsRequest)(nil), // 51: sift.families.v1.GetFamilyStatsRequest + (*GetFamilyStatsResponse)(nil), // 52: sift.families.v1.GetFamilyStatsResponse + (*CreateFamilyStatRangesRequest)(nil), // 53: sift.families.v1.CreateFamilyStatRangesRequest + (*CreateFamilyStatRangesResponse)(nil), // 54: sift.families.v1.CreateFamilyStatRangesResponse + (*GetFamilyRuleDependenciesRequest)(nil), // 55: sift.families.v1.GetFamilyRuleDependenciesRequest + (*GetFamilyRuleDependenciesResponse)(nil), // 56: sift.families.v1.GetFamilyRuleDependenciesResponse + (*FamilyRuleDependency)(nil), // 57: sift.families.v1.FamilyRuleDependency + (*AbstractWindowType)(nil), // 58: sift.families.v1.AbstractWindowType + (*GenerateFamilyStatRangeNameRequest)(nil), // 59: sift.families.v1.GenerateFamilyStatRangeNameRequest + (*GenerateFamilyStatRangeNameResponse)(nil), // 60: sift.families.v1.GenerateFamilyStatRangeNameResponse + (*GetFamilyCandidateRunsRequest)(nil), // 61: sift.families.v1.GetFamilyCandidateRunsRequest + (*GetFamilyCandidateRunsResponse)(nil), // 62: sift.families.v1.GetFamilyCandidateRunsResponse + (*GetFamilyCandidateRunCountRequest)(nil), // 63: sift.families.v1.GetFamilyCandidateRunCountRequest + (*GetFamilyCandidateRunCountResponse)(nil), // 64: sift.families.v1.GetFamilyCandidateRunCountResponse + (*ListFamilyCandidateRunsRequest)(nil), // 65: sift.families.v1.ListFamilyCandidateRunsRequest + (*ListFamilyCandidateRunsResponse)(nil), // 66: sift.families.v1.ListFamilyCandidateRunsResponse + (*GetFamilyCandidateRunFilterFieldsRequest)(nil), // 67: sift.families.v1.GetFamilyCandidateRunFilterFieldsRequest + (*GetFamilyCandidateRunFilterFieldsResponse)(nil), // 68: sift.families.v1.GetFamilyCandidateRunFilterFieldsResponse + (*timestamppb.Timestamp)(nil), // 69: google.protobuf.Timestamp + (*v1.MetadataValue)(nil), // 70: sift.metadata.v1.MetadataValue + (*fieldmaskpb.FieldMask)(nil), // 71: google.protobuf.FieldMask + (*emptypb.Empty)(nil), // 72: google.protobuf.Empty + (*durationpb.Duration)(nil), // 73: google.protobuf.Duration + (*v11.FamilyStatReference)(nil), // 74: sift.rules.v1.FamilyStatReference + (*v2.Run)(nil), // 75: sift.runs.v2.Run + (*v12.FilterField)(nil), // 76: sift.common.v1.FilterField +} +var file_sift_families_v1_families_proto_depIdxs = []int32{ + 69, // 0: sift.families.v1.Family.created_date:type_name -> google.protobuf.Timestamp + 69, // 1: sift.families.v1.Family.modified_date:type_name -> google.protobuf.Timestamp + 69, // 2: sift.families.v1.Family.archived_date:type_name -> google.protobuf.Timestamp + 70, // 3: sift.families.v1.FamilyVersion.metadata:type_name -> sift.metadata.v1.MetadataValue + 69, // 4: sift.families.v1.FamilyVersion.created_date:type_name -> google.protobuf.Timestamp + 69, // 5: sift.families.v1.FamilyVersion.modified_date:type_name -> google.protobuf.Timestamp + 69, // 6: sift.families.v1.FamilyRun.added_date:type_name -> google.protobuf.Timestamp + 7, // 7: sift.families.v1.FamilyAlignment.run:type_name -> sift.families.v1.RunAlignment + 8, // 8: sift.families.v1.FamilyAlignment.annotation:type_name -> sift.families.v1.DefaultAnnotationAlignment + 9, // 9: sift.families.v1.FamilyAlignment.timestamp:type_name -> sift.families.v1.TimestampAlignment + 6, // 10: sift.families.v1.FamilyAlignment.family_alignment_points:type_name -> sift.families.v1.FamilyAlignmentPoint + 7, // 11: sift.families.v1.FamilyAlignmentPoint.run:type_name -> sift.families.v1.RunAlignment + 10, // 12: sift.families.v1.FamilyAlignmentPoint.annotation:type_name -> sift.families.v1.AnnotationAlignment + 9, // 13: sift.families.v1.FamilyAlignmentPoint.timestamp:type_name -> sift.families.v1.TimestampAlignment + 0, // 14: sift.families.v1.RunAlignment.bound:type_name -> sift.families.v1.TimeRangeBound + 0, // 15: sift.families.v1.DefaultAnnotationAlignment.bound:type_name -> sift.families.v1.TimeRangeBound + 1, // 16: sift.families.v1.DefaultAnnotationAlignment.occurrence:type_name -> sift.families.v1.AnnotationOccurrence + 69, // 17: sift.families.v1.TimestampAlignment.timestamp:type_name -> google.protobuf.Timestamp + 0, // 18: sift.families.v1.AnnotationAlignment.bound:type_name -> sift.families.v1.TimeRangeBound + 2, // 19: sift.families.v1.FamilyDetails.family:type_name -> sift.families.v1.Family + 3, // 20: sift.families.v1.FamilyDetails.family_version:type_name -> sift.families.v1.FamilyVersion + 4, // 21: sift.families.v1.FamilyDetails.family_runs:type_name -> sift.families.v1.FamilyRun + 5, // 22: sift.families.v1.FamilyDetails.family_alignments:type_name -> sift.families.v1.FamilyAlignment + 48, // 23: sift.families.v1.FamilyDetails.family_stats:type_name -> sift.families.v1.FamilyStatDetails + 11, // 24: sift.families.v1.GetFamilyResponse.family:type_name -> sift.families.v1.FamilyDetails + 11, // 25: sift.families.v1.GetFamiliesResponse.families:type_name -> sift.families.v1.FamilyDetails + 11, // 26: sift.families.v1.GetFamilyVersionResponse.family:type_name -> sift.families.v1.FamilyDetails + 20, // 27: sift.families.v1.ListFamiliesResponse.families:type_name -> sift.families.v1.ListFamily + 2, // 28: sift.families.v1.ListFamily.family:type_name -> sift.families.v1.Family + 3, // 29: sift.families.v1.ListFamily.family_version:type_name -> sift.families.v1.FamilyVersion + 2, // 30: sift.families.v1.CreateFamilyRequest.family:type_name -> sift.families.v1.Family + 3, // 31: sift.families.v1.CreateFamilyRequest.family_version:type_name -> sift.families.v1.FamilyVersion + 4, // 32: sift.families.v1.CreateFamilyRequest.family_runs:type_name -> sift.families.v1.FamilyRun + 5, // 33: sift.families.v1.CreateFamilyRequest.family_alignments:type_name -> sift.families.v1.FamilyAlignment + 48, // 34: sift.families.v1.CreateFamilyRequest.family_stats:type_name -> sift.families.v1.FamilyStatDetails + 11, // 35: sift.families.v1.CreateFamilyResponse.family:type_name -> sift.families.v1.FamilyDetails + 11, // 36: sift.families.v1.UpdateFamilyRequest.family:type_name -> sift.families.v1.FamilyDetails + 71, // 37: sift.families.v1.UpdateFamilyRequest.update_mask:type_name -> google.protobuf.FieldMask + 11, // 38: sift.families.v1.UpdateFamilyResponse.family:type_name -> sift.families.v1.FamilyDetails + 48, // 39: sift.families.v1.UpdateFamilyResponse.family_stats:type_name -> sift.families.v1.FamilyStatDetails + 3, // 40: sift.families.v1.ListFamilyVersionsResponse.family_versions:type_name -> sift.families.v1.FamilyVersion + 4, // 41: sift.families.v1.ListFamilyMembersResponse.family_runs:type_name -> sift.families.v1.FamilyRun + 5, // 42: sift.families.v1.ListFamilyAlignmentsResponse.family_alignments:type_name -> sift.families.v1.FamilyAlignment + 6, // 43: sift.families.v1.ListFamilyAlignmentPointsResponse.family_alignment_points:type_name -> sift.families.v1.FamilyAlignmentPoint + 11, // 44: sift.families.v1.ImportFamilyResponse.family:type_name -> sift.families.v1.FamilyDetails + 71, // 45: sift.families.v1.ImportUpdateFamilyRequest.update_mask:type_name -> google.protobuf.FieldMask + 11, // 46: sift.families.v1.ImportUpdateFamilyResponse.family:type_name -> sift.families.v1.FamilyDetails + 69, // 47: sift.families.v1.FamilyStat.created_date:type_name -> google.protobuf.Timestamp + 69, // 48: sift.families.v1.FamilyStat.modified_date:type_name -> google.protobuf.Timestamp + 72, // 49: sift.families.v1.FamilyStatExpression.avg:type_name -> google.protobuf.Empty + 72, // 50: sift.families.v1.FamilyStatExpression.median:type_name -> google.protobuf.Empty + 72, // 51: sift.families.v1.FamilyStatExpression.min:type_name -> google.protobuf.Empty + 72, // 52: sift.families.v1.FamilyStatExpression.max:type_name -> google.protobuf.Empty + 72, // 53: sift.families.v1.FamilyStatExpression.stdev:type_name -> google.protobuf.Empty + 72, // 54: sift.families.v1.FamilyStatExpression.sum:type_name -> google.protobuf.Empty + 72, // 55: sift.families.v1.FamilyStatExpression.input_count:type_name -> google.protobuf.Empty + 72, // 56: sift.families.v1.FamilyStatExpression.sigma:type_name -> google.protobuf.Empty + 73, // 57: sift.families.v1.WindowType.duration:type_name -> google.protobuf.Duration + 46, // 58: sift.families.v1.FamilyStatRange.window_start:type_name -> sift.families.v1.WindowType + 46, // 59: sift.families.v1.FamilyStatRange.window_end:type_name -> sift.families.v1.WindowType + 43, // 60: sift.families.v1.FamilyStatDetails.family_stat:type_name -> sift.families.v1.FamilyStat + 44, // 61: sift.families.v1.FamilyStatDetails.family_stat_expressions:type_name -> sift.families.v1.FamilyStatExpression + 45, // 62: sift.families.v1.FamilyStatDetails.family_stat_channels:type_name -> sift.families.v1.FamilyStatChannel + 47, // 63: sift.families.v1.FamilyStatDetails.family_stat_ranges:type_name -> sift.families.v1.FamilyStatRange + 48, // 64: sift.families.v1.GetFamilyStatResponse.family_stat_details:type_name -> sift.families.v1.FamilyStatDetails + 48, // 65: sift.families.v1.GetFamilyStatsResponse.family_stats_details:type_name -> sift.families.v1.FamilyStatDetails + 47, // 66: sift.families.v1.CreateFamilyStatRangesRequest.family_stat_ranges:type_name -> sift.families.v1.FamilyStatRange + 11, // 67: sift.families.v1.CreateFamilyStatRangesResponse.family:type_name -> sift.families.v1.FamilyDetails + 48, // 68: sift.families.v1.CreateFamilyStatRangesResponse.family_stats:type_name -> sift.families.v1.FamilyStatDetails + 57, // 69: sift.families.v1.GetFamilyRuleDependenciesResponse.rule_dependencies:type_name -> sift.families.v1.FamilyRuleDependency + 74, // 70: sift.families.v1.FamilyRuleDependency.stat_reference:type_name -> sift.rules.v1.FamilyStatReference + 73, // 71: sift.families.v1.AbstractWindowType.duration:type_name -> google.protobuf.Duration + 58, // 72: sift.families.v1.GenerateFamilyStatRangeNameRequest.window_start:type_name -> sift.families.v1.AbstractWindowType + 58, // 73: sift.families.v1.GenerateFamilyStatRangeNameRequest.window_end:type_name -> sift.families.v1.AbstractWindowType + 75, // 74: sift.families.v1.ListFamilyCandidateRunsResponse.runs:type_name -> sift.runs.v2.Run + 76, // 75: sift.families.v1.GetFamilyCandidateRunFilterFieldsResponse.filter_fields:type_name -> sift.common.v1.FilterField + 12, // 76: sift.families.v1.FamilyService.GetFamily:input_type -> sift.families.v1.GetFamilyRequest + 14, // 77: sift.families.v1.FamilyService.GetFamilies:input_type -> sift.families.v1.GetFamiliesRequest + 16, // 78: sift.families.v1.FamilyService.GetFamilyVersion:input_type -> sift.families.v1.GetFamilyVersionRequest + 21, // 79: sift.families.v1.FamilyService.CreateFamily:input_type -> sift.families.v1.CreateFamilyRequest + 23, // 80: sift.families.v1.FamilyService.UpdateFamily:input_type -> sift.families.v1.UpdateFamilyRequest + 61, // 81: sift.families.v1.FamilyService.GetFamilyCandidateRuns:input_type -> sift.families.v1.GetFamilyCandidateRunsRequest + 63, // 82: sift.families.v1.FamilyService.GetFamilyCandidateRunCount:input_type -> sift.families.v1.GetFamilyCandidateRunCountRequest + 65, // 83: sift.families.v1.FamilyService.ListFamilyCandidateRuns:input_type -> sift.families.v1.ListFamilyCandidateRunsRequest + 67, // 84: sift.families.v1.FamilyService.GetFamilyCandidateRunFilterFields:input_type -> sift.families.v1.GetFamilyCandidateRunFilterFieldsRequest + 18, // 85: sift.families.v1.FamilyService.ListFamilies:input_type -> sift.families.v1.ListFamiliesRequest + 25, // 86: sift.families.v1.FamilyService.ListFamilyVersions:input_type -> sift.families.v1.ListFamilyVersionsRequest + 27, // 87: sift.families.v1.FamilyService.ListFamilyMembers:input_type -> sift.families.v1.ListFamilyMembersRequest + 29, // 88: sift.families.v1.FamilyService.ListFamilyAlignments:input_type -> sift.families.v1.ListFamilyAlignmentsRequest + 31, // 89: sift.families.v1.FamilyService.ListFamilyAlignmentPoints:input_type -> sift.families.v1.ListFamilyAlignmentPointsRequest + 33, // 90: sift.families.v1.FamilyService.ImportFamily:input_type -> sift.families.v1.ImportFamilyRequest + 35, // 91: sift.families.v1.FamilyService.ImportUpdateFamily:input_type -> sift.families.v1.ImportUpdateFamilyRequest + 37, // 92: sift.families.v1.FamilyService.ExportFamily:input_type -> sift.families.v1.ExportFamilyRequest + 39, // 93: sift.families.v1.FamilyService.ValidateFamilyName:input_type -> sift.families.v1.ValidateFamilyNameRequest + 41, // 94: sift.families.v1.FamilyService.ValidateFamilyClientKey:input_type -> sift.families.v1.ValidateFamilyClientKeyRequest + 49, // 95: sift.families.v1.FamilyService.GetFamilyStat:input_type -> sift.families.v1.GetFamilyStatRequest + 51, // 96: sift.families.v1.FamilyService.GetFamilyStats:input_type -> sift.families.v1.GetFamilyStatsRequest + 53, // 97: sift.families.v1.FamilyService.CreateFamilyStatRanges:input_type -> sift.families.v1.CreateFamilyStatRangesRequest + 55, // 98: sift.families.v1.FamilyService.GetFamilyRuleDependencies:input_type -> sift.families.v1.GetFamilyRuleDependenciesRequest + 59, // 99: sift.families.v1.FamilyService.GenerateFamilyStatRangeName:input_type -> sift.families.v1.GenerateFamilyStatRangeNameRequest + 13, // 100: sift.families.v1.FamilyService.GetFamily:output_type -> sift.families.v1.GetFamilyResponse + 15, // 101: sift.families.v1.FamilyService.GetFamilies:output_type -> sift.families.v1.GetFamiliesResponse + 17, // 102: sift.families.v1.FamilyService.GetFamilyVersion:output_type -> sift.families.v1.GetFamilyVersionResponse + 22, // 103: sift.families.v1.FamilyService.CreateFamily:output_type -> sift.families.v1.CreateFamilyResponse + 24, // 104: sift.families.v1.FamilyService.UpdateFamily:output_type -> sift.families.v1.UpdateFamilyResponse + 62, // 105: sift.families.v1.FamilyService.GetFamilyCandidateRuns:output_type -> sift.families.v1.GetFamilyCandidateRunsResponse + 64, // 106: sift.families.v1.FamilyService.GetFamilyCandidateRunCount:output_type -> sift.families.v1.GetFamilyCandidateRunCountResponse + 66, // 107: sift.families.v1.FamilyService.ListFamilyCandidateRuns:output_type -> sift.families.v1.ListFamilyCandidateRunsResponse + 68, // 108: sift.families.v1.FamilyService.GetFamilyCandidateRunFilterFields:output_type -> sift.families.v1.GetFamilyCandidateRunFilterFieldsResponse + 19, // 109: sift.families.v1.FamilyService.ListFamilies:output_type -> sift.families.v1.ListFamiliesResponse + 26, // 110: sift.families.v1.FamilyService.ListFamilyVersions:output_type -> sift.families.v1.ListFamilyVersionsResponse + 28, // 111: sift.families.v1.FamilyService.ListFamilyMembers:output_type -> sift.families.v1.ListFamilyMembersResponse + 30, // 112: sift.families.v1.FamilyService.ListFamilyAlignments:output_type -> sift.families.v1.ListFamilyAlignmentsResponse + 32, // 113: sift.families.v1.FamilyService.ListFamilyAlignmentPoints:output_type -> sift.families.v1.ListFamilyAlignmentPointsResponse + 34, // 114: sift.families.v1.FamilyService.ImportFamily:output_type -> sift.families.v1.ImportFamilyResponse + 36, // 115: sift.families.v1.FamilyService.ImportUpdateFamily:output_type -> sift.families.v1.ImportUpdateFamilyResponse + 38, // 116: sift.families.v1.FamilyService.ExportFamily:output_type -> sift.families.v1.ExportFamilyResponse + 40, // 117: sift.families.v1.FamilyService.ValidateFamilyName:output_type -> sift.families.v1.ValidateFamilyNameResponse + 42, // 118: sift.families.v1.FamilyService.ValidateFamilyClientKey:output_type -> sift.families.v1.ValidateFamilyClientKeyResponse + 50, // 119: sift.families.v1.FamilyService.GetFamilyStat:output_type -> sift.families.v1.GetFamilyStatResponse + 52, // 120: sift.families.v1.FamilyService.GetFamilyStats:output_type -> sift.families.v1.GetFamilyStatsResponse + 54, // 121: sift.families.v1.FamilyService.CreateFamilyStatRanges:output_type -> sift.families.v1.CreateFamilyStatRangesResponse + 56, // 122: sift.families.v1.FamilyService.GetFamilyRuleDependencies:output_type -> sift.families.v1.GetFamilyRuleDependenciesResponse + 60, // 123: sift.families.v1.FamilyService.GenerateFamilyStatRangeName:output_type -> sift.families.v1.GenerateFamilyStatRangeNameResponse + 100, // [100:124] is the sub-list for method output_type + 76, // [76:100] is the sub-list for method input_type + 76, // [76:76] is the sub-list for extension type_name + 76, // [76:76] is the sub-list for extension extendee + 0, // [0:76] is the sub-list for field type_name +} + +func init() { file_sift_families_v1_families_proto_init() } +func file_sift_families_v1_families_proto_init() { + if File_sift_families_v1_families_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_sift_families_v1_families_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Family); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FamilyVersion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FamilyRun); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FamilyAlignment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FamilyAlignmentPoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RunAlignment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DefaultAnnotationAlignment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimestampAlignment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotationAlignment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FamilyDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamiliesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamiliesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyVersionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyVersionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamiliesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamiliesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamily); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFamilyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFamilyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFamilyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFamilyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamilyVersionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamilyVersionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamilyMembersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamilyMembersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamilyAlignmentsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamilyAlignmentsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamilyAlignmentPointsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamilyAlignmentPointsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportFamilyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportFamilyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportUpdateFamilyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportUpdateFamilyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExportFamilyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExportFamilyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateFamilyNameRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateFamilyNameResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateFamilyClientKeyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateFamilyClientKeyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FamilyStat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FamilyStatExpression); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FamilyStatChannel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WindowType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FamilyStatRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FamilyStatDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyStatRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyStatResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFamilyStatRangesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFamilyStatRangesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyRuleDependenciesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyRuleDependenciesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FamilyRuleDependency); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AbstractWindowType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateFamilyStatRangeNameRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateFamilyStatRangeNameResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyCandidateRunsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyCandidateRunsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyCandidateRunCountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyCandidateRunCountResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamilyCandidateRunsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFamilyCandidateRunsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyCandidateRunFilterFieldsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_families_v1_families_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFamilyCandidateRunFilterFieldsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_sift_families_v1_families_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*FamilyAlignment_Run)(nil), + (*FamilyAlignment_Annotation)(nil), + (*FamilyAlignment_Timestamp)(nil), + } + file_sift_families_v1_families_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*FamilyAlignmentPoint_Run)(nil), + (*FamilyAlignmentPoint_Annotation)(nil), + (*FamilyAlignmentPoint_Timestamp)(nil), + } + file_sift_families_v1_families_proto_msgTypes[10].OneofWrappers = []interface{}{ + (*GetFamilyRequest_FamilyId)(nil), + (*GetFamilyRequest_ClientKey)(nil), + } + file_sift_families_v1_families_proto_msgTypes[21].OneofWrappers = []interface{}{ + (*UpdateFamilyRequest_FamilyId)(nil), + (*UpdateFamilyRequest_ClientKey)(nil), + } + file_sift_families_v1_families_proto_msgTypes[33].OneofWrappers = []interface{}{ + (*ImportUpdateFamilyRequest_FamilyId)(nil), + (*ImportUpdateFamilyRequest_ClientKey)(nil), + } + file_sift_families_v1_families_proto_msgTypes[35].OneofWrappers = []interface{}{ + (*ExportFamilyRequest_FamilyId)(nil), + (*ExportFamilyRequest_ClientKey)(nil), + (*ExportFamilyRequest_FamilyVersionId)(nil), + } + file_sift_families_v1_families_proto_msgTypes[38].OneofWrappers = []interface{}{ + (*ValidateFamilyNameResponse_Success)(nil), + (*ValidateFamilyNameResponse_ErrorMessage)(nil), + } + file_sift_families_v1_families_proto_msgTypes[40].OneofWrappers = []interface{}{ + (*ValidateFamilyClientKeyResponse_Success)(nil), + (*ValidateFamilyClientKeyResponse_ErrorMessage)(nil), + } + file_sift_families_v1_families_proto_msgTypes[42].OneofWrappers = []interface{}{ + (*FamilyStatExpression_Avg)(nil), + (*FamilyStatExpression_Median)(nil), + (*FamilyStatExpression_Min)(nil), + (*FamilyStatExpression_Max)(nil), + (*FamilyStatExpression_Stdev)(nil), + (*FamilyStatExpression_Sum)(nil), + (*FamilyStatExpression_InputCount)(nil), + (*FamilyStatExpression_Sigma)(nil), + } + file_sift_families_v1_families_proto_msgTypes[45].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_sift_families_v1_families_proto_rawDesc, + NumEnums: 2, + NumMessages: 67, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_sift_families_v1_families_proto_goTypes, + DependencyIndexes: file_sift_families_v1_families_proto_depIdxs, + EnumInfos: file_sift_families_v1_families_proto_enumTypes, + MessageInfos: file_sift_families_v1_families_proto_msgTypes, + }.Build() + File_sift_families_v1_families_proto = out.File + file_sift_families_v1_families_proto_rawDesc = nil + file_sift_families_v1_families_proto_goTypes = nil + file_sift_families_v1_families_proto_depIdxs = nil +} diff --git a/go/gen/sift/families/v1/families.pb.gw.go b/go/gen/sift/families/v1/families.pb.gw.go new file mode 100644 index 0000000000..6750ec234c --- /dev/null +++ b/go/gen/sift/families/v1/families.pb.gw.go @@ -0,0 +1,3165 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: sift/families/v1/families.proto + +/* +Package familiesv1 is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package familiesv1 + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +var ( + filter_FamilyService_GetFamily_0 = &utilities.DoubleArray{Encoding: map[string]int{"family_id": 0, "familyId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FamilyService_GetFamily_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_id") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &GetFamilyRequest_FamilyId{} + } else if _, ok := protoReq.FamilyIdentifier.(*GetFamilyRequest_FamilyId); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *GetFamilyRequest_FamilyId, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*GetFamilyRequest_FamilyId).FamilyId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_GetFamily_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetFamily(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_GetFamily_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_id") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &GetFamilyRequest_FamilyId{} + } else if _, ok := protoReq.FamilyIdentifier.(*GetFamilyRequest_FamilyId); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *GetFamilyRequest_FamilyId, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*GetFamilyRequest_FamilyId).FamilyId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_GetFamily_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetFamily(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FamilyService_GetFamily_1 = &utilities.DoubleArray{Encoding: map[string]int{"client_key": 0, "clientKey": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FamilyService_GetFamily_1(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["client_key"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "client_key") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &GetFamilyRequest_ClientKey{} + } else if _, ok := protoReq.FamilyIdentifier.(*GetFamilyRequest_ClientKey); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *GetFamilyRequest_ClientKey, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*GetFamilyRequest_ClientKey).ClientKey, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "client_key", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_GetFamily_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetFamily(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_GetFamily_1(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["client_key"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "client_key") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &GetFamilyRequest_ClientKey{} + } else if _, ok := protoReq.FamilyIdentifier.(*GetFamilyRequest_ClientKey); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *GetFamilyRequest_ClientKey, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*GetFamilyRequest_ClientKey).ClientKey, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "client_key", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_GetFamily_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetFamily(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_GetFamilies_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamiliesRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetFamilies(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_GetFamilies_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamiliesRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetFamilies(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_GetFamilyVersion_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyVersionRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + msg, err := client.GetFamilyVersion(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_GetFamilyVersion_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyVersionRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + msg, err := server.GetFamilyVersion(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_CreateFamily_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateFamily(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_CreateFamily_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateFamily(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_UpdateFamily_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_id") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &UpdateFamilyRequest_FamilyId{} + } else if _, ok := protoReq.FamilyIdentifier.(*UpdateFamilyRequest_FamilyId); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *UpdateFamilyRequest_FamilyId, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*UpdateFamilyRequest_FamilyId).FamilyId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_id", err) + } + + msg, err := client.UpdateFamily(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_UpdateFamily_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_id") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &UpdateFamilyRequest_FamilyId{} + } else if _, ok := protoReq.FamilyIdentifier.(*UpdateFamilyRequest_FamilyId); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *UpdateFamilyRequest_FamilyId, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*UpdateFamilyRequest_FamilyId).FamilyId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_id", err) + } + + msg, err := server.UpdateFamily(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_UpdateFamily_1(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["client_key"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "client_key") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &UpdateFamilyRequest_ClientKey{} + } else if _, ok := protoReq.FamilyIdentifier.(*UpdateFamilyRequest_ClientKey); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *UpdateFamilyRequest_ClientKey, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*UpdateFamilyRequest_ClientKey).ClientKey, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "client_key", err) + } + + msg, err := client.UpdateFamily(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_UpdateFamily_1(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["client_key"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "client_key") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &UpdateFamilyRequest_ClientKey{} + } else if _, ok := protoReq.FamilyIdentifier.(*UpdateFamilyRequest_ClientKey); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *UpdateFamilyRequest_ClientKey, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*UpdateFamilyRequest_ClientKey).ClientKey, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "client_key", err) + } + + msg, err := server.UpdateFamily(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_GetFamilyCandidateRuns_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyCandidateRunsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + msg, err := client.GetFamilyCandidateRuns(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_GetFamilyCandidateRuns_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyCandidateRunsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + msg, err := server.GetFamilyCandidateRuns(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_GetFamilyCandidateRunCount_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyCandidateRunCountRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + msg, err := client.GetFamilyCandidateRunCount(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_GetFamilyCandidateRunCount_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyCandidateRunCountRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + msg, err := server.GetFamilyCandidateRunCount(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FamilyService_ListFamilyCandidateRuns_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_FamilyService_ListFamilyCandidateRuns_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamilyCandidateRunsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilyCandidateRuns_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListFamilyCandidateRuns(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ListFamilyCandidateRuns_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamilyCandidateRunsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilyCandidateRuns_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListFamilyCandidateRuns(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_GetFamilyCandidateRunFilterFields_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyCandidateRunFilterFieldsRequest + var metadata runtime.ServerMetadata + + msg, err := client.GetFamilyCandidateRunFilterFields(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_GetFamilyCandidateRunFilterFields_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyCandidateRunFilterFieldsRequest + var metadata runtime.ServerMetadata + + msg, err := server.GetFamilyCandidateRunFilterFields(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FamilyService_ListFamilies_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_FamilyService_ListFamilies_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamiliesRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilies_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListFamilies(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ListFamilies_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamiliesRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilies_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListFamilies(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FamilyService_ListFamilyVersions_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_FamilyService_ListFamilyVersions_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamilyVersionsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilyVersions_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListFamilyVersions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ListFamilyVersions_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamilyVersionsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilyVersions_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListFamilyVersions(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FamilyService_ListFamilyMembers_0 = &utilities.DoubleArray{Encoding: map[string]int{"family_version_id": 0, "familyVersionId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FamilyService_ListFamilyMembers_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamilyMembersRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilyMembers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListFamilyMembers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ListFamilyMembers_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamilyMembersRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilyMembers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListFamilyMembers(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FamilyService_ListFamilyAlignments_0 = &utilities.DoubleArray{Encoding: map[string]int{"family_version_id": 0, "familyVersionId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FamilyService_ListFamilyAlignments_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamilyAlignmentsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilyAlignments_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListFamilyAlignments(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ListFamilyAlignments_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamilyAlignmentsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilyAlignments_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListFamilyAlignments(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FamilyService_ListFamilyAlignmentPoints_0 = &utilities.DoubleArray{Encoding: map[string]int{"family_alignment_id": 0, "familyAlignmentId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FamilyService_ListFamilyAlignmentPoints_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamilyAlignmentPointsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_alignment_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_alignment_id") + } + + protoReq.FamilyAlignmentId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_alignment_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilyAlignmentPoints_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListFamilyAlignmentPoints(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ListFamilyAlignmentPoints_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFamilyAlignmentPointsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_alignment_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_alignment_id") + } + + protoReq.FamilyAlignmentId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_alignment_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ListFamilyAlignmentPoints_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListFamilyAlignmentPoints(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_ImportFamily_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ImportFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ImportFamily(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ImportFamily_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ImportFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ImportFamily(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_ImportUpdateFamily_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ImportUpdateFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_id") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &ImportUpdateFamilyRequest_FamilyId{} + } else if _, ok := protoReq.FamilyIdentifier.(*ImportUpdateFamilyRequest_FamilyId); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *ImportUpdateFamilyRequest_FamilyId, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*ImportUpdateFamilyRequest_FamilyId).FamilyId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_id", err) + } + + msg, err := client.ImportUpdateFamily(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ImportUpdateFamily_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ImportUpdateFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_id") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &ImportUpdateFamilyRequest_FamilyId{} + } else if _, ok := protoReq.FamilyIdentifier.(*ImportUpdateFamilyRequest_FamilyId); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *ImportUpdateFamilyRequest_FamilyId, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*ImportUpdateFamilyRequest_FamilyId).FamilyId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_id", err) + } + + msg, err := server.ImportUpdateFamily(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_ImportUpdateFamily_1(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ImportUpdateFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["client_key"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "client_key") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &ImportUpdateFamilyRequest_ClientKey{} + } else if _, ok := protoReq.FamilyIdentifier.(*ImportUpdateFamilyRequest_ClientKey); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *ImportUpdateFamilyRequest_ClientKey, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*ImportUpdateFamilyRequest_ClientKey).ClientKey, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "client_key", err) + } + + msg, err := client.ImportUpdateFamily(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ImportUpdateFamily_1(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ImportUpdateFamilyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["client_key"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "client_key") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &ImportUpdateFamilyRequest_ClientKey{} + } else if _, ok := protoReq.FamilyIdentifier.(*ImportUpdateFamilyRequest_ClientKey); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *ImportUpdateFamilyRequest_ClientKey, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*ImportUpdateFamilyRequest_ClientKey).ClientKey, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "client_key", err) + } + + msg, err := server.ImportUpdateFamily(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FamilyService_ExportFamily_0 = &utilities.DoubleArray{Encoding: map[string]int{"family_id": 0, "familyId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FamilyService_ExportFamily_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExportFamilyRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_id") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &ExportFamilyRequest_FamilyId{} + } else if _, ok := protoReq.FamilyIdentifier.(*ExportFamilyRequest_FamilyId); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *ExportFamilyRequest_FamilyId, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*ExportFamilyRequest_FamilyId).FamilyId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ExportFamily_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ExportFamily(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ExportFamily_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExportFamilyRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_id") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &ExportFamilyRequest_FamilyId{} + } else if _, ok := protoReq.FamilyIdentifier.(*ExportFamilyRequest_FamilyId); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *ExportFamilyRequest_FamilyId, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*ExportFamilyRequest_FamilyId).FamilyId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ExportFamily_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ExportFamily(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FamilyService_ExportFamily_1 = &utilities.DoubleArray{Encoding: map[string]int{"client_key": 0, "clientKey": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FamilyService_ExportFamily_1(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExportFamilyRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["client_key"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "client_key") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &ExportFamilyRequest_ClientKey{} + } else if _, ok := protoReq.FamilyIdentifier.(*ExportFamilyRequest_ClientKey); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *ExportFamilyRequest_ClientKey, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*ExportFamilyRequest_ClientKey).ClientKey, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "client_key", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ExportFamily_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ExportFamily(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ExportFamily_1(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExportFamilyRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["client_key"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "client_key") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &ExportFamilyRequest_ClientKey{} + } else if _, ok := protoReq.FamilyIdentifier.(*ExportFamilyRequest_ClientKey); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *ExportFamilyRequest_ClientKey, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*ExportFamilyRequest_ClientKey).ClientKey, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "client_key", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ExportFamily_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ExportFamily(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FamilyService_ExportFamily_2 = &utilities.DoubleArray{Encoding: map[string]int{"family_version_id": 0, "familyVersionId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FamilyService_ExportFamily_2(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExportFamilyRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &ExportFamilyRequest_FamilyVersionId{} + } else if _, ok := protoReq.FamilyIdentifier.(*ExportFamilyRequest_FamilyVersionId); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *ExportFamilyRequest_FamilyVersionId, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*ExportFamilyRequest_FamilyVersionId).FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ExportFamily_2); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ExportFamily(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ExportFamily_2(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExportFamilyRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + if protoReq.FamilyIdentifier == nil { + protoReq.FamilyIdentifier = &ExportFamilyRequest_FamilyVersionId{} + } else if _, ok := protoReq.FamilyIdentifier.(*ExportFamilyRequest_FamilyVersionId); !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "expect type: *ExportFamilyRequest_FamilyVersionId, but: %t\n", protoReq.FamilyIdentifier) + } + protoReq.FamilyIdentifier.(*ExportFamilyRequest_FamilyVersionId).FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_ExportFamily_2); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ExportFamily(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_ValidateFamilyName_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ValidateFamilyNameRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ValidateFamilyName(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ValidateFamilyName_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ValidateFamilyNameRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ValidateFamilyName(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_ValidateFamilyClientKey_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ValidateFamilyClientKeyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ValidateFamilyClientKey(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_ValidateFamilyClientKey_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ValidateFamilyClientKeyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ValidateFamilyClientKey(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_GetFamilyStat_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyStatRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_stat_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_stat_id") + } + + protoReq.FamilyStatId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_stat_id", err) + } + + msg, err := client.GetFamilyStat(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_GetFamilyStat_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyStatRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_stat_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_stat_id") + } + + protoReq.FamilyStatId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_stat_id", err) + } + + msg, err := server.GetFamilyStat(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_GetFamilyStats_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyStatsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + msg, err := client.GetFamilyStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_GetFamilyStats_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyStatsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_version_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_version_id") + } + + protoReq.FamilyVersionId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_version_id", err) + } + + msg, err := server.GetFamilyStats(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_CreateFamilyStatRanges_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateFamilyStatRangesRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateFamilyStatRanges(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_CreateFamilyStatRanges_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateFamilyStatRangesRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateFamilyStatRanges(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FamilyService_GetFamilyRuleDependencies_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyRuleDependenciesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_id") + } + + protoReq.FamilyId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_id", err) + } + + msg, err := client.GetFamilyRuleDependencies(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_GetFamilyRuleDependencies_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFamilyRuleDependenciesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["family_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "family_id") + } + + protoReq.FamilyId, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "family_id", err) + } + + msg, err := server.GetFamilyRuleDependencies(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FamilyService_GenerateFamilyStatRangeName_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_FamilyService_GenerateFamilyStatRangeName_0(ctx context.Context, marshaler runtime.Marshaler, client FamilyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GenerateFamilyStatRangeNameRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_GenerateFamilyStatRangeName_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GenerateFamilyStatRangeName(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FamilyService_GenerateFamilyStatRangeName_0(ctx context.Context, marshaler runtime.Marshaler, server FamilyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GenerateFamilyStatRangeNameRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FamilyService_GenerateFamilyStatRangeName_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GenerateFamilyStatRangeName(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterFamilyServiceHandlerServer registers the http handlers for service FamilyService to "mux". +// UnaryRPC :call FamilyServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterFamilyServiceHandlerFromEndpoint instead. +func RegisterFamilyServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server FamilyServiceServer) error { + + mux.Handle("GET", pattern_FamilyService_GetFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamily", runtime.WithHTTPPathPattern("/api/v1/families/{family_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_GetFamily_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamily_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamily", runtime.WithHTTPPathPattern("/api/v1/families/client_key/{client_key}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_GetFamily_1(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamily_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_GetFamilies_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilies", runtime.WithHTTPPathPattern("/api/v1/families:batchGet")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_GetFamilies_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilies_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyVersion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyVersion", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_GetFamilyVersion_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyVersion_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_CreateFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/CreateFamily", runtime.WithHTTPPathPattern("/api/v1/families")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_CreateFamily_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_CreateFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FamilyService_UpdateFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/UpdateFamily", runtime.WithHTTPPathPattern("/api/v1/families/{family_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_UpdateFamily_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_UpdateFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FamilyService_UpdateFamily_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/UpdateFamily", runtime.WithHTTPPathPattern("/api/v1/families/client_key/{client_key}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_UpdateFamily_1(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_UpdateFamily_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyCandidateRuns_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyCandidateRuns", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}/candidate-runs")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_GetFamilyCandidateRuns_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyCandidateRuns_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyCandidateRunCount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyCandidateRunCount", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}/candidate-run-count")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_GetFamilyCandidateRunCount_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyCandidateRunCount_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilyCandidateRuns_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilyCandidateRuns", runtime.WithHTTPPathPattern("/api/v1/families/candidate-runs")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ListFamilyCandidateRuns_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilyCandidateRuns_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyCandidateRunFilterFields_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyCandidateRunFilterFields", runtime.WithHTTPPathPattern("/api/v1/families/candidate-runs:filterFields")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_GetFamilyCandidateRunFilterFields_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyCandidateRunFilterFields_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilies_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilies", runtime.WithHTTPPathPattern("/api/v1/families")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ListFamilies_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilies_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilyVersions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilyVersions", runtime.WithHTTPPathPattern("/api/v1/families/versions")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ListFamilyVersions_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilyVersions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilyMembers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilyMembers", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}/members")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ListFamilyMembers_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilyMembers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilyAlignments_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilyAlignments", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}/alignments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ListFamilyAlignments_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilyAlignments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilyAlignmentPoints_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilyAlignmentPoints", runtime.WithHTTPPathPattern("/api/v1/families/alignments/{family_alignment_id}/points")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ListFamilyAlignmentPoints_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilyAlignmentPoints_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_ImportFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ImportFamily", runtime.WithHTTPPathPattern("/api/v1/families:import")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ImportFamily_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ImportFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FamilyService_ImportUpdateFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ImportUpdateFamily", runtime.WithHTTPPathPattern("/api/v1/families/{family_id}/import-update")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ImportUpdateFamily_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ImportUpdateFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FamilyService_ImportUpdateFamily_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ImportUpdateFamily", runtime.WithHTTPPathPattern("/api/v1/families/client_key/{client_key}/import-update")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ImportUpdateFamily_1(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ImportUpdateFamily_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ExportFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ExportFamily", runtime.WithHTTPPathPattern("/api/v1/families/{family_id}/export")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ExportFamily_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ExportFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ExportFamily_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ExportFamily", runtime.WithHTTPPathPattern("/api/v1/families/client_key/{client_key}/export")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ExportFamily_1(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ExportFamily_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ExportFamily_2, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ExportFamily", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}/export")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ExportFamily_2(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ExportFamily_2(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_ValidateFamilyName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ValidateFamilyName", runtime.WithHTTPPathPattern("/api/v1/families:validateFamilyName")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ValidateFamilyName_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ValidateFamilyName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_ValidateFamilyClientKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/ValidateFamilyClientKey", runtime.WithHTTPPathPattern("/api/v1/families:validateClientKey")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_ValidateFamilyClientKey_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ValidateFamilyClientKey_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyStat_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyStat", runtime.WithHTTPPathPattern("/api/v1/family_stats/{family_stat_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_GetFamilyStat_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyStat_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyStats_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyStats", runtime.WithHTTPPathPattern("/api/v1/family_stats/{family_version_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_GetFamilyStats_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_CreateFamilyStatRanges_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/CreateFamilyStatRanges", runtime.WithHTTPPathPattern("/api/v1/family_stats/create-ranges")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_CreateFamilyStatRanges_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_CreateFamilyStatRanges_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyRuleDependencies_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyRuleDependencies", runtime.WithHTTPPathPattern("/api/v1/families/{family_id}/rule-dependencies")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_GetFamilyRuleDependencies_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyRuleDependencies_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_GenerateFamilyStatRangeName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/sift.families.v1.FamilyService/GenerateFamilyStatRangeName", runtime.WithHTTPPathPattern("/api/v1/families/stat-range/name")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FamilyService_GenerateFamilyStatRangeName_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GenerateFamilyStatRangeName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterFamilyServiceHandlerFromEndpoint is same as RegisterFamilyServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterFamilyServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterFamilyServiceHandler(ctx, mux, conn) +} + +// RegisterFamilyServiceHandler registers the http handlers for service FamilyService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterFamilyServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterFamilyServiceHandlerClient(ctx, mux, NewFamilyServiceClient(conn)) +} + +// RegisterFamilyServiceHandlerClient registers the http handlers for service FamilyService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "FamilyServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "FamilyServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "FamilyServiceClient" to call the correct interceptors. +func RegisterFamilyServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client FamilyServiceClient) error { + + mux.Handle("GET", pattern_FamilyService_GetFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamily", runtime.WithHTTPPathPattern("/api/v1/families/{family_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_GetFamily_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamily_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamily", runtime.WithHTTPPathPattern("/api/v1/families/client_key/{client_key}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_GetFamily_1(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamily_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_GetFamilies_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilies", runtime.WithHTTPPathPattern("/api/v1/families:batchGet")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_GetFamilies_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilies_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyVersion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyVersion", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_GetFamilyVersion_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyVersion_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_CreateFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/CreateFamily", runtime.WithHTTPPathPattern("/api/v1/families")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_CreateFamily_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_CreateFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FamilyService_UpdateFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/UpdateFamily", runtime.WithHTTPPathPattern("/api/v1/families/{family_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_UpdateFamily_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_UpdateFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FamilyService_UpdateFamily_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/UpdateFamily", runtime.WithHTTPPathPattern("/api/v1/families/client_key/{client_key}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_UpdateFamily_1(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_UpdateFamily_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyCandidateRuns_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyCandidateRuns", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}/candidate-runs")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_GetFamilyCandidateRuns_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyCandidateRuns_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyCandidateRunCount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyCandidateRunCount", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}/candidate-run-count")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_GetFamilyCandidateRunCount_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyCandidateRunCount_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilyCandidateRuns_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilyCandidateRuns", runtime.WithHTTPPathPattern("/api/v1/families/candidate-runs")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ListFamilyCandidateRuns_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilyCandidateRuns_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyCandidateRunFilterFields_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyCandidateRunFilterFields", runtime.WithHTTPPathPattern("/api/v1/families/candidate-runs:filterFields")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_GetFamilyCandidateRunFilterFields_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyCandidateRunFilterFields_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilies_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilies", runtime.WithHTTPPathPattern("/api/v1/families")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ListFamilies_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilies_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilyVersions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilyVersions", runtime.WithHTTPPathPattern("/api/v1/families/versions")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ListFamilyVersions_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilyVersions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilyMembers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilyMembers", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}/members")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ListFamilyMembers_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilyMembers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilyAlignments_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilyAlignments", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}/alignments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ListFamilyAlignments_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilyAlignments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ListFamilyAlignmentPoints_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ListFamilyAlignmentPoints", runtime.WithHTTPPathPattern("/api/v1/families/alignments/{family_alignment_id}/points")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ListFamilyAlignmentPoints_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ListFamilyAlignmentPoints_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_ImportFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ImportFamily", runtime.WithHTTPPathPattern("/api/v1/families:import")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ImportFamily_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ImportFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FamilyService_ImportUpdateFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ImportUpdateFamily", runtime.WithHTTPPathPattern("/api/v1/families/{family_id}/import-update")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ImportUpdateFamily_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ImportUpdateFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FamilyService_ImportUpdateFamily_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ImportUpdateFamily", runtime.WithHTTPPathPattern("/api/v1/families/client_key/{client_key}/import-update")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ImportUpdateFamily_1(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ImportUpdateFamily_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ExportFamily_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ExportFamily", runtime.WithHTTPPathPattern("/api/v1/families/{family_id}/export")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ExportFamily_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ExportFamily_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ExportFamily_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ExportFamily", runtime.WithHTTPPathPattern("/api/v1/families/client_key/{client_key}/export")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ExportFamily_1(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ExportFamily_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_ExportFamily_2, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ExportFamily", runtime.WithHTTPPathPattern("/api/v1/families/versions/{family_version_id}/export")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ExportFamily_2(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ExportFamily_2(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_ValidateFamilyName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ValidateFamilyName", runtime.WithHTTPPathPattern("/api/v1/families:validateFamilyName")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ValidateFamilyName_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ValidateFamilyName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_ValidateFamilyClientKey_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/ValidateFamilyClientKey", runtime.WithHTTPPathPattern("/api/v1/families:validateClientKey")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_ValidateFamilyClientKey_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_ValidateFamilyClientKey_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyStat_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyStat", runtime.WithHTTPPathPattern("/api/v1/family_stats/{family_stat_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_GetFamilyStat_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyStat_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyStats_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyStats", runtime.WithHTTPPathPattern("/api/v1/family_stats/{family_version_id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_GetFamilyStats_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_CreateFamilyStatRanges_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/CreateFamilyStatRanges", runtime.WithHTTPPathPattern("/api/v1/family_stats/create-ranges")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_CreateFamilyStatRanges_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_CreateFamilyStatRanges_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FamilyService_GetFamilyRuleDependencies_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/GetFamilyRuleDependencies", runtime.WithHTTPPathPattern("/api/v1/families/{family_id}/rule-dependencies")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_GetFamilyRuleDependencies_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GetFamilyRuleDependencies_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FamilyService_GenerateFamilyStatRangeName_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/sift.families.v1.FamilyService/GenerateFamilyStatRangeName", runtime.WithHTTPPathPattern("/api/v1/families/stat-range/name")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FamilyService_GenerateFamilyStatRangeName_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FamilyService_GenerateFamilyStatRangeName_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_FamilyService_GetFamily_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "families", "family_id"}, "")) + + pattern_FamilyService_GetFamily_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "families", "client_key"}, "")) + + pattern_FamilyService_GetFamilies_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "families"}, "batchGet")) + + pattern_FamilyService_GetFamilyVersion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "families", "versions", "family_version_id"}, "")) + + pattern_FamilyService_CreateFamily_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "families"}, "")) + + pattern_FamilyService_UpdateFamily_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "families", "family_id"}, "")) + + pattern_FamilyService_UpdateFamily_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "families", "client_key"}, "")) + + pattern_FamilyService_GetFamilyCandidateRuns_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "families", "versions", "family_version_id", "candidate-runs"}, "")) + + pattern_FamilyService_GetFamilyCandidateRunCount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "families", "versions", "family_version_id", "candidate-run-count"}, "")) + + pattern_FamilyService_ListFamilyCandidateRuns_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "families", "candidate-runs"}, "")) + + pattern_FamilyService_GetFamilyCandidateRunFilterFields_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "families", "candidate-runs"}, "filterFields")) + + pattern_FamilyService_ListFamilies_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "families"}, "")) + + pattern_FamilyService_ListFamilyVersions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "families", "versions"}, "")) + + pattern_FamilyService_ListFamilyMembers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "families", "versions", "family_version_id", "members"}, "")) + + pattern_FamilyService_ListFamilyAlignments_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "families", "versions", "family_version_id", "alignments"}, "")) + + pattern_FamilyService_ListFamilyAlignmentPoints_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "families", "alignments", "family_alignment_id", "points"}, "")) + + pattern_FamilyService_ImportFamily_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "families"}, "import")) + + pattern_FamilyService_ImportUpdateFamily_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "families", "family_id", "import-update"}, "")) + + pattern_FamilyService_ImportUpdateFamily_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "families", "client_key", "import-update"}, "")) + + pattern_FamilyService_ExportFamily_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "families", "family_id", "export"}, "")) + + pattern_FamilyService_ExportFamily_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "families", "client_key", "export"}, "")) + + pattern_FamilyService_ExportFamily_2 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"api", "v1", "families", "versions", "family_version_id", "export"}, "")) + + pattern_FamilyService_ValidateFamilyName_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "families"}, "validateFamilyName")) + + pattern_FamilyService_ValidateFamilyClientKey_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "families"}, "validateClientKey")) + + pattern_FamilyService_GetFamilyStat_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "family_stats", "family_stat_id"}, "")) + + pattern_FamilyService_GetFamilyStats_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "family_stats", "family_version_id"}, "")) + + pattern_FamilyService_CreateFamilyStatRanges_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "family_stats", "create-ranges"}, "")) + + pattern_FamilyService_GetFamilyRuleDependencies_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4}, []string{"api", "v1", "families", "family_id", "rule-dependencies"}, "")) + + pattern_FamilyService_GenerateFamilyStatRangeName_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"api", "v1", "families", "stat-range", "name"}, "")) +) + +var ( + forward_FamilyService_GetFamily_0 = runtime.ForwardResponseMessage + + forward_FamilyService_GetFamily_1 = runtime.ForwardResponseMessage + + forward_FamilyService_GetFamilies_0 = runtime.ForwardResponseMessage + + forward_FamilyService_GetFamilyVersion_0 = runtime.ForwardResponseMessage + + forward_FamilyService_CreateFamily_0 = runtime.ForwardResponseMessage + + forward_FamilyService_UpdateFamily_0 = runtime.ForwardResponseMessage + + forward_FamilyService_UpdateFamily_1 = runtime.ForwardResponseMessage + + forward_FamilyService_GetFamilyCandidateRuns_0 = runtime.ForwardResponseMessage + + forward_FamilyService_GetFamilyCandidateRunCount_0 = runtime.ForwardResponseMessage + + forward_FamilyService_ListFamilyCandidateRuns_0 = runtime.ForwardResponseMessage + + forward_FamilyService_GetFamilyCandidateRunFilterFields_0 = runtime.ForwardResponseMessage + + forward_FamilyService_ListFamilies_0 = runtime.ForwardResponseMessage + + forward_FamilyService_ListFamilyVersions_0 = runtime.ForwardResponseMessage + + forward_FamilyService_ListFamilyMembers_0 = runtime.ForwardResponseMessage + + forward_FamilyService_ListFamilyAlignments_0 = runtime.ForwardResponseMessage + + forward_FamilyService_ListFamilyAlignmentPoints_0 = runtime.ForwardResponseMessage + + forward_FamilyService_ImportFamily_0 = runtime.ForwardResponseMessage + + forward_FamilyService_ImportUpdateFamily_0 = runtime.ForwardResponseMessage + + forward_FamilyService_ImportUpdateFamily_1 = runtime.ForwardResponseMessage + + forward_FamilyService_ExportFamily_0 = runtime.ForwardResponseMessage + + forward_FamilyService_ExportFamily_1 = runtime.ForwardResponseMessage + + forward_FamilyService_ExportFamily_2 = runtime.ForwardResponseMessage + + forward_FamilyService_ValidateFamilyName_0 = runtime.ForwardResponseMessage + + forward_FamilyService_ValidateFamilyClientKey_0 = runtime.ForwardResponseMessage + + forward_FamilyService_GetFamilyStat_0 = runtime.ForwardResponseMessage + + forward_FamilyService_GetFamilyStats_0 = runtime.ForwardResponseMessage + + forward_FamilyService_CreateFamilyStatRanges_0 = runtime.ForwardResponseMessage + + forward_FamilyService_GetFamilyRuleDependencies_0 = runtime.ForwardResponseMessage + + forward_FamilyService_GenerateFamilyStatRangeName_0 = runtime.ForwardResponseMessage +) diff --git a/go/gen/sift/families/v1/families_vtproto.pb.go b/go/gen/sift/families/v1/families_vtproto.pb.go new file mode 100644 index 0000000000..3845005b33 --- /dev/null +++ b/go/gen/sift/families/v1/families_vtproto.pb.go @@ -0,0 +1,36323 @@ +// Code generated by protoc-gen-go-vtproto. DO NOT EDIT. +// protoc-gen-go-vtproto version: v0.6.0 +// source: sift/families/v1/families.proto + +package familiesv1 + +import ( + context "context" + binary "encoding/binary" + fmt "fmt" + protohelpers "github.com/planetscale/vtprotobuf/protohelpers" + durationpb1 "github.com/planetscale/vtprotobuf/types/known/durationpb" + emptypb1 "github.com/planetscale/vtprotobuf/types/known/emptypb" + fieldmaskpb1 "github.com/planetscale/vtprotobuf/types/known/fieldmaskpb" + timestamppb1 "github.com/planetscale/vtprotobuf/types/known/timestamppb" + v12 "github.com/sift-stack/sift/go/gen/sift/common/v1" + v1 "github.com/sift-stack/sift/go/gen/sift/metadata/v1" + v11 "github.com/sift-stack/sift/go/gen/sift/rules/v1" + v2 "github.com/sift-stack/sift/go/gen/sift/runs/v2" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + proto "google.golang.org/protobuf/proto" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" + emptypb "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + io "io" + math "math" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +func (m *Family) CloneVT() *Family { + if m == nil { + return (*Family)(nil) + } + r := new(Family) + r.FamilyId = m.FamilyId + r.ClientKey = m.ClientKey + r.CurrentVersionId = m.CurrentVersionId + r.IsArchived = m.IsArchived + r.CreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CreatedDate).CloneVT()) + r.ModifiedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ModifiedDate).CloneVT()) + r.ArchivedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ArchivedDate).CloneVT()) + r.CreatedByUserId = m.CreatedByUserId + r.ModifiedByUserId = m.ModifiedByUserId + r.OrganizationId = m.OrganizationId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *Family) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FamilyVersion) CloneVT() *FamilyVersion { + if m == nil { + return (*FamilyVersion)(nil) + } + r := new(FamilyVersion) + r.FamilyVersionId = m.FamilyVersionId + r.FamilyId = m.FamilyId + r.Version = m.Version + r.Name = m.Name + r.Description = m.Description + r.RunQuery = m.RunQuery + r.UserNotes = m.UserNotes + r.ChangeMessage = m.ChangeMessage + r.CreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CreatedDate).CloneVT()) + r.ModifiedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ModifiedDate).CloneVT()) + r.CreatedByUserId = m.CreatedByUserId + r.ModifiedByUserId = m.ModifiedByUserId + r.OrganizationId = m.OrganizationId + if rhs := m.Metadata; rhs != nil { + tmpContainer := make([]*v1.MetadataValue, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v1.MetadataValue }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v1.MetadataValue) + } + } + r.Metadata = tmpContainer + } + if rhs := m.SigmaDefaultValues; rhs != nil { + tmpContainer := make([]float64, len(rhs)) + copy(tmpContainer, rhs) + r.SigmaDefaultValues = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyVersion) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FamilyRun) CloneVT() *FamilyRun { + if m == nil { + return (*FamilyRun)(nil) + } + r := new(FamilyRun) + r.FamilyRunId = m.FamilyRunId + r.FamilyVersionId = m.FamilyVersionId + r.RunId = m.RunId + r.IsExclusion = m.IsExclusion + r.Rationale = m.Rationale + r.AddedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.AddedDate).CloneVT()) + r.AddedByUserId = m.AddedByUserId + r.AddedInVersionId = m.AddedInVersionId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyRun) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FamilyAlignment) CloneVT() *FamilyAlignment { + if m == nil { + return (*FamilyAlignment)(nil) + } + r := new(FamilyAlignment) + r.FamilyAlignmentId = m.FamilyAlignmentId + r.FamilyVersionId = m.FamilyVersionId + r.Name = m.Name + r.Description = m.Description + if m.DefaultAlignment != nil { + r.DefaultAlignment = m.DefaultAlignment.(interface { + CloneVT() isFamilyAlignment_DefaultAlignment + }).CloneVT() + } + if rhs := m.FamilyAlignmentPoints; rhs != nil { + tmpContainer := make([]*FamilyAlignmentPoint, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyAlignmentPoints = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyAlignment) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FamilyAlignment_Run) CloneVT() isFamilyAlignment_DefaultAlignment { + if m == nil { + return (*FamilyAlignment_Run)(nil) + } + r := new(FamilyAlignment_Run) + r.Run = m.Run.CloneVT() + return r +} + +func (m *FamilyAlignment_Annotation) CloneVT() isFamilyAlignment_DefaultAlignment { + if m == nil { + return (*FamilyAlignment_Annotation)(nil) + } + r := new(FamilyAlignment_Annotation) + r.Annotation = m.Annotation.CloneVT() + return r +} + +func (m *FamilyAlignment_Timestamp) CloneVT() isFamilyAlignment_DefaultAlignment { + if m == nil { + return (*FamilyAlignment_Timestamp)(nil) + } + r := new(FamilyAlignment_Timestamp) + r.Timestamp = m.Timestamp.CloneVT() + return r +} + +func (m *FamilyAlignmentPoint) CloneVT() *FamilyAlignmentPoint { + if m == nil { + return (*FamilyAlignmentPoint)(nil) + } + r := new(FamilyAlignmentPoint) + r.FamilyAlignmentPointId = m.FamilyAlignmentPointId + r.FamilyRunId = m.FamilyRunId + r.RunId = m.RunId + r.FamilyAlignmentId = m.FamilyAlignmentId + if m.Alignment != nil { + r.Alignment = m.Alignment.(interface { + CloneVT() isFamilyAlignmentPoint_Alignment + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyAlignmentPoint) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FamilyAlignmentPoint_Run) CloneVT() isFamilyAlignmentPoint_Alignment { + if m == nil { + return (*FamilyAlignmentPoint_Run)(nil) + } + r := new(FamilyAlignmentPoint_Run) + r.Run = m.Run.CloneVT() + return r +} + +func (m *FamilyAlignmentPoint_Annotation) CloneVT() isFamilyAlignmentPoint_Alignment { + if m == nil { + return (*FamilyAlignmentPoint_Annotation)(nil) + } + r := new(FamilyAlignmentPoint_Annotation) + r.Annotation = m.Annotation.CloneVT() + return r +} + +func (m *FamilyAlignmentPoint_Timestamp) CloneVT() isFamilyAlignmentPoint_Alignment { + if m == nil { + return (*FamilyAlignmentPoint_Timestamp)(nil) + } + r := new(FamilyAlignmentPoint_Timestamp) + r.Timestamp = m.Timestamp.CloneVT() + return r +} + +func (m *RunAlignment) CloneVT() *RunAlignment { + if m == nil { + return (*RunAlignment)(nil) + } + r := new(RunAlignment) + r.Bound = m.Bound + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *RunAlignment) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *DefaultAnnotationAlignment) CloneVT() *DefaultAnnotationAlignment { + if m == nil { + return (*DefaultAnnotationAlignment)(nil) + } + r := new(DefaultAnnotationAlignment) + r.AnnotationName = m.AnnotationName + r.Bound = m.Bound + r.Occurrence = m.Occurrence + r.OccurrenceIndex = m.OccurrenceIndex + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *DefaultAnnotationAlignment) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *TimestampAlignment) CloneVT() *TimestampAlignment { + if m == nil { + return (*TimestampAlignment)(nil) + } + r := new(TimestampAlignment) + r.Timestamp = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.Timestamp).CloneVT()) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *TimestampAlignment) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *AnnotationAlignment) CloneVT() *AnnotationAlignment { + if m == nil { + return (*AnnotationAlignment)(nil) + } + r := new(AnnotationAlignment) + r.AnnotationId = m.AnnotationId + r.Bound = m.Bound + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *AnnotationAlignment) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FamilyDetails) CloneVT() *FamilyDetails { + if m == nil { + return (*FamilyDetails)(nil) + } + r := new(FamilyDetails) + r.Family = m.Family.CloneVT() + r.FamilyVersion = m.FamilyVersion.CloneVT() + if rhs := m.FamilyRuns; rhs != nil { + tmpContainer := make([]*FamilyRun, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyRuns = tmpContainer + } + if rhs := m.FamilyAlignments; rhs != nil { + tmpContainer := make([]*FamilyAlignment, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyAlignments = tmpContainer + } + if rhs := m.FamilyStats; rhs != nil { + tmpContainer := make([]*FamilyStatDetails, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyStats = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyDetails) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyRequest) CloneVT() *GetFamilyRequest { + if m == nil { + return (*GetFamilyRequest)(nil) + } + r := new(GetFamilyRequest) + if m.FamilyIdentifier != nil { + r.FamilyIdentifier = m.FamilyIdentifier.(interface { + CloneVT() isGetFamilyRequest_FamilyIdentifier + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyRequest_FamilyId) CloneVT() isGetFamilyRequest_FamilyIdentifier { + if m == nil { + return (*GetFamilyRequest_FamilyId)(nil) + } + r := new(GetFamilyRequest_FamilyId) + r.FamilyId = m.FamilyId + return r +} + +func (m *GetFamilyRequest_ClientKey) CloneVT() isGetFamilyRequest_FamilyIdentifier { + if m == nil { + return (*GetFamilyRequest_ClientKey)(nil) + } + r := new(GetFamilyRequest_ClientKey) + r.ClientKey = m.ClientKey + return r +} + +func (m *GetFamilyResponse) CloneVT() *GetFamilyResponse { + if m == nil { + return (*GetFamilyResponse)(nil) + } + r := new(GetFamilyResponse) + r.Family = m.Family.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamiliesRequest) CloneVT() *GetFamiliesRequest { + if m == nil { + return (*GetFamiliesRequest)(nil) + } + r := new(GetFamiliesRequest) + if rhs := m.FamilyIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.FamilyIds = tmpContainer + } + if rhs := m.ClientKeys; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.ClientKeys = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamiliesRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamiliesResponse) CloneVT() *GetFamiliesResponse { + if m == nil { + return (*GetFamiliesResponse)(nil) + } + r := new(GetFamiliesResponse) + if rhs := m.Families; rhs != nil { + tmpContainer := make([]*FamilyDetails, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Families = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamiliesResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyVersionRequest) CloneVT() *GetFamilyVersionRequest { + if m == nil { + return (*GetFamilyVersionRequest)(nil) + } + r := new(GetFamilyVersionRequest) + r.FamilyVersionId = m.FamilyVersionId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyVersionRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyVersionResponse) CloneVT() *GetFamilyVersionResponse { + if m == nil { + return (*GetFamilyVersionResponse)(nil) + } + r := new(GetFamilyVersionResponse) + r.Family = m.Family.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyVersionResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamiliesRequest) CloneVT() *ListFamiliesRequest { + if m == nil { + return (*ListFamiliesRequest)(nil) + } + r := new(ListFamiliesRequest) + r.PageSize = m.PageSize + r.PageToken = m.PageToken + r.Filter = m.Filter + r.OrderBy = m.OrderBy + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamiliesRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamiliesResponse) CloneVT() *ListFamiliesResponse { + if m == nil { + return (*ListFamiliesResponse)(nil) + } + r := new(ListFamiliesResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.Families; rhs != nil { + tmpContainer := make([]*ListFamily, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.Families = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamiliesResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamily) CloneVT() *ListFamily { + if m == nil { + return (*ListFamily)(nil) + } + r := new(ListFamily) + r.Family = m.Family.CloneVT() + r.FamilyVersion = m.FamilyVersion.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamily) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreateFamilyRequest) CloneVT() *CreateFamilyRequest { + if m == nil { + return (*CreateFamilyRequest)(nil) + } + r := new(CreateFamilyRequest) + r.Family = m.Family.CloneVT() + r.FamilyVersion = m.FamilyVersion.CloneVT() + if rhs := m.FamilyRuns; rhs != nil { + tmpContainer := make([]*FamilyRun, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyRuns = tmpContainer + } + if rhs := m.FamilyAlignments; rhs != nil { + tmpContainer := make([]*FamilyAlignment, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyAlignments = tmpContainer + } + if rhs := m.FamilyStats; rhs != nil { + tmpContainer := make([]*FamilyStatDetails, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyStats = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreateFamilyRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreateFamilyResponse) CloneVT() *CreateFamilyResponse { + if m == nil { + return (*CreateFamilyResponse)(nil) + } + r := new(CreateFamilyResponse) + r.FamilyId = m.FamilyId + r.Family = m.Family.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreateFamilyResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *UpdateFamilyRequest) CloneVT() *UpdateFamilyRequest { + if m == nil { + return (*UpdateFamilyRequest)(nil) + } + r := new(UpdateFamilyRequest) + r.Family = m.Family.CloneVT() + r.UpdateMask = (*fieldmaskpb.FieldMask)((*fieldmaskpb1.FieldMask)(m.UpdateMask).CloneVT()) + if m.FamilyIdentifier != nil { + r.FamilyIdentifier = m.FamilyIdentifier.(interface { + CloneVT() isUpdateFamilyRequest_FamilyIdentifier + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UpdateFamilyRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *UpdateFamilyRequest_FamilyId) CloneVT() isUpdateFamilyRequest_FamilyIdentifier { + if m == nil { + return (*UpdateFamilyRequest_FamilyId)(nil) + } + r := new(UpdateFamilyRequest_FamilyId) + r.FamilyId = m.FamilyId + return r +} + +func (m *UpdateFamilyRequest_ClientKey) CloneVT() isUpdateFamilyRequest_FamilyIdentifier { + if m == nil { + return (*UpdateFamilyRequest_ClientKey)(nil) + } + r := new(UpdateFamilyRequest_ClientKey) + r.ClientKey = m.ClientKey + return r +} + +func (m *UpdateFamilyResponse) CloneVT() *UpdateFamilyResponse { + if m == nil { + return (*UpdateFamilyResponse)(nil) + } + r := new(UpdateFamilyResponse) + r.FamilyVersionId = m.FamilyVersionId + r.Family = m.Family.CloneVT() + if rhs := m.FamilyStats; rhs != nil { + tmpContainer := make([]*FamilyStatDetails, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyStats = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *UpdateFamilyResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamilyVersionsRequest) CloneVT() *ListFamilyVersionsRequest { + if m == nil { + return (*ListFamilyVersionsRequest)(nil) + } + r := new(ListFamilyVersionsRequest) + r.PageSize = m.PageSize + r.Filter = m.Filter + r.PageToken = m.PageToken + r.OrderBy = m.OrderBy + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamilyVersionsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamilyVersionsResponse) CloneVT() *ListFamilyVersionsResponse { + if m == nil { + return (*ListFamilyVersionsResponse)(nil) + } + r := new(ListFamilyVersionsResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.FamilyVersions; rhs != nil { + tmpContainer := make([]*FamilyVersion, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyVersions = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamilyVersionsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamilyMembersRequest) CloneVT() *ListFamilyMembersRequest { + if m == nil { + return (*ListFamilyMembersRequest)(nil) + } + r := new(ListFamilyMembersRequest) + r.FamilyVersionId = m.FamilyVersionId + r.PageSize = m.PageSize + r.Filter = m.Filter + r.PageToken = m.PageToken + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamilyMembersRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamilyMembersResponse) CloneVT() *ListFamilyMembersResponse { + if m == nil { + return (*ListFamilyMembersResponse)(nil) + } + r := new(ListFamilyMembersResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.FamilyRuns; rhs != nil { + tmpContainer := make([]*FamilyRun, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyRuns = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamilyMembersResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamilyAlignmentsRequest) CloneVT() *ListFamilyAlignmentsRequest { + if m == nil { + return (*ListFamilyAlignmentsRequest)(nil) + } + r := new(ListFamilyAlignmentsRequest) + r.FamilyVersionId = m.FamilyVersionId + r.PageSize = m.PageSize + r.Filter = m.Filter + r.PageToken = m.PageToken + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamilyAlignmentsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamilyAlignmentsResponse) CloneVT() *ListFamilyAlignmentsResponse { + if m == nil { + return (*ListFamilyAlignmentsResponse)(nil) + } + r := new(ListFamilyAlignmentsResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.FamilyAlignments; rhs != nil { + tmpContainer := make([]*FamilyAlignment, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyAlignments = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamilyAlignmentsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamilyAlignmentPointsRequest) CloneVT() *ListFamilyAlignmentPointsRequest { + if m == nil { + return (*ListFamilyAlignmentPointsRequest)(nil) + } + r := new(ListFamilyAlignmentPointsRequest) + r.FamilyAlignmentId = m.FamilyAlignmentId + r.PageSize = m.PageSize + r.Filter = m.Filter + r.PageToken = m.PageToken + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamilyAlignmentPointsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamilyAlignmentPointsResponse) CloneVT() *ListFamilyAlignmentPointsResponse { + if m == nil { + return (*ListFamilyAlignmentPointsResponse)(nil) + } + r := new(ListFamilyAlignmentPointsResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.FamilyAlignmentPoints; rhs != nil { + tmpContainer := make([]*FamilyAlignmentPoint, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyAlignmentPoints = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamilyAlignmentPointsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ImportFamilyRequest) CloneVT() *ImportFamilyRequest { + if m == nil { + return (*ImportFamilyRequest)(nil) + } + r := new(ImportFamilyRequest) + r.FamilyYaml = m.FamilyYaml + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ImportFamilyRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ImportFamilyResponse) CloneVT() *ImportFamilyResponse { + if m == nil { + return (*ImportFamilyResponse)(nil) + } + r := new(ImportFamilyResponse) + r.FamilyId = m.FamilyId + r.Family = m.Family.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ImportFamilyResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ImportUpdateFamilyRequest) CloneVT() *ImportUpdateFamilyRequest { + if m == nil { + return (*ImportUpdateFamilyRequest)(nil) + } + r := new(ImportUpdateFamilyRequest) + r.FamilyYaml = m.FamilyYaml + r.UpdateMask = (*fieldmaskpb.FieldMask)((*fieldmaskpb1.FieldMask)(m.UpdateMask).CloneVT()) + if m.FamilyIdentifier != nil { + r.FamilyIdentifier = m.FamilyIdentifier.(interface { + CloneVT() isImportUpdateFamilyRequest_FamilyIdentifier + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ImportUpdateFamilyRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ImportUpdateFamilyRequest_FamilyId) CloneVT() isImportUpdateFamilyRequest_FamilyIdentifier { + if m == nil { + return (*ImportUpdateFamilyRequest_FamilyId)(nil) + } + r := new(ImportUpdateFamilyRequest_FamilyId) + r.FamilyId = m.FamilyId + return r +} + +func (m *ImportUpdateFamilyRequest_ClientKey) CloneVT() isImportUpdateFamilyRequest_FamilyIdentifier { + if m == nil { + return (*ImportUpdateFamilyRequest_ClientKey)(nil) + } + r := new(ImportUpdateFamilyRequest_ClientKey) + r.ClientKey = m.ClientKey + return r +} + +func (m *ImportUpdateFamilyResponse) CloneVT() *ImportUpdateFamilyResponse { + if m == nil { + return (*ImportUpdateFamilyResponse)(nil) + } + r := new(ImportUpdateFamilyResponse) + r.FamilyVersionId = m.FamilyVersionId + r.Family = m.Family.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ImportUpdateFamilyResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ExportFamilyRequest) CloneVT() *ExportFamilyRequest { + if m == nil { + return (*ExportFamilyRequest)(nil) + } + r := new(ExportFamilyRequest) + if m.FamilyIdentifier != nil { + r.FamilyIdentifier = m.FamilyIdentifier.(interface { + CloneVT() isExportFamilyRequest_FamilyIdentifier + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ExportFamilyRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ExportFamilyRequest_FamilyId) CloneVT() isExportFamilyRequest_FamilyIdentifier { + if m == nil { + return (*ExportFamilyRequest_FamilyId)(nil) + } + r := new(ExportFamilyRequest_FamilyId) + r.FamilyId = m.FamilyId + return r +} + +func (m *ExportFamilyRequest_ClientKey) CloneVT() isExportFamilyRequest_FamilyIdentifier { + if m == nil { + return (*ExportFamilyRequest_ClientKey)(nil) + } + r := new(ExportFamilyRequest_ClientKey) + r.ClientKey = m.ClientKey + return r +} + +func (m *ExportFamilyRequest_FamilyVersionId) CloneVT() isExportFamilyRequest_FamilyIdentifier { + if m == nil { + return (*ExportFamilyRequest_FamilyVersionId)(nil) + } + r := new(ExportFamilyRequest_FamilyVersionId) + r.FamilyVersionId = m.FamilyVersionId + return r +} + +func (m *ExportFamilyResponse) CloneVT() *ExportFamilyResponse { + if m == nil { + return (*ExportFamilyResponse)(nil) + } + r := new(ExportFamilyResponse) + r.ExportedFamily = m.ExportedFamily + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ExportFamilyResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ValidateFamilyNameRequest) CloneVT() *ValidateFamilyNameRequest { + if m == nil { + return (*ValidateFamilyNameRequest)(nil) + } + r := new(ValidateFamilyNameRequest) + r.FamilyName = m.FamilyName + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ValidateFamilyNameRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ValidateFamilyNameResponse) CloneVT() *ValidateFamilyNameResponse { + if m == nil { + return (*ValidateFamilyNameResponse)(nil) + } + r := new(ValidateFamilyNameResponse) + if m.Result != nil { + r.Result = m.Result.(interface { + CloneVT() isValidateFamilyNameResponse_Result + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ValidateFamilyNameResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ValidateFamilyNameResponse_Success) CloneVT() isValidateFamilyNameResponse_Result { + if m == nil { + return (*ValidateFamilyNameResponse_Success)(nil) + } + r := new(ValidateFamilyNameResponse_Success) + r.Success = m.Success + return r +} + +func (m *ValidateFamilyNameResponse_ErrorMessage) CloneVT() isValidateFamilyNameResponse_Result { + if m == nil { + return (*ValidateFamilyNameResponse_ErrorMessage)(nil) + } + r := new(ValidateFamilyNameResponse_ErrorMessage) + r.ErrorMessage = m.ErrorMessage + return r +} + +func (m *ValidateFamilyClientKeyRequest) CloneVT() *ValidateFamilyClientKeyRequest { + if m == nil { + return (*ValidateFamilyClientKeyRequest)(nil) + } + r := new(ValidateFamilyClientKeyRequest) + r.ClientKey = m.ClientKey + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ValidateFamilyClientKeyRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ValidateFamilyClientKeyResponse) CloneVT() *ValidateFamilyClientKeyResponse { + if m == nil { + return (*ValidateFamilyClientKeyResponse)(nil) + } + r := new(ValidateFamilyClientKeyResponse) + if m.Result != nil { + r.Result = m.Result.(interface { + CloneVT() isValidateFamilyClientKeyResponse_Result + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ValidateFamilyClientKeyResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ValidateFamilyClientKeyResponse_Success) CloneVT() isValidateFamilyClientKeyResponse_Result { + if m == nil { + return (*ValidateFamilyClientKeyResponse_Success)(nil) + } + r := new(ValidateFamilyClientKeyResponse_Success) + r.Success = m.Success + return r +} + +func (m *ValidateFamilyClientKeyResponse_ErrorMessage) CloneVT() isValidateFamilyClientKeyResponse_Result { + if m == nil { + return (*ValidateFamilyClientKeyResponse_ErrorMessage)(nil) + } + r := new(ValidateFamilyClientKeyResponse_ErrorMessage) + r.ErrorMessage = m.ErrorMessage + return r +} + +func (m *FamilyStat) CloneVT() *FamilyStat { + if m == nil { + return (*FamilyStat)(nil) + } + r := new(FamilyStat) + r.FamilyStatId = m.FamilyStatId + r.FamilyVersionId = m.FamilyVersionId + r.Name = m.Name + r.Description = m.Description + r.SampleRate = m.SampleRate + r.CreatedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.CreatedDate).CloneVT()) + r.ModifiedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.ModifiedDate).CloneVT()) + r.CreatedByUserId = m.CreatedByUserId + r.ModifiedByUserId = m.ModifiedByUserId + r.OrganizationId = m.OrganizationId + if rhs := m.DefaultChannelNames; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.DefaultChannelNames = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyStat) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FamilyStatExpression) CloneVT() *FamilyStatExpression { + if m == nil { + return (*FamilyStatExpression)(nil) + } + r := new(FamilyStatExpression) + r.FamilyStatExpressionId = m.FamilyStatExpressionId + r.FamilyStatId = m.FamilyStatId + if m.Expression != nil { + r.Expression = m.Expression.(interface { + CloneVT() isFamilyStatExpression_Expression + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyStatExpression) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FamilyStatExpression_Avg) CloneVT() isFamilyStatExpression_Expression { + if m == nil { + return (*FamilyStatExpression_Avg)(nil) + } + r := new(FamilyStatExpression_Avg) + r.Avg = (*emptypb.Empty)((*emptypb1.Empty)(m.Avg).CloneVT()) + return r +} + +func (m *FamilyStatExpression_Median) CloneVT() isFamilyStatExpression_Expression { + if m == nil { + return (*FamilyStatExpression_Median)(nil) + } + r := new(FamilyStatExpression_Median) + r.Median = (*emptypb.Empty)((*emptypb1.Empty)(m.Median).CloneVT()) + return r +} + +func (m *FamilyStatExpression_Min) CloneVT() isFamilyStatExpression_Expression { + if m == nil { + return (*FamilyStatExpression_Min)(nil) + } + r := new(FamilyStatExpression_Min) + r.Min = (*emptypb.Empty)((*emptypb1.Empty)(m.Min).CloneVT()) + return r +} + +func (m *FamilyStatExpression_Max) CloneVT() isFamilyStatExpression_Expression { + if m == nil { + return (*FamilyStatExpression_Max)(nil) + } + r := new(FamilyStatExpression_Max) + r.Max = (*emptypb.Empty)((*emptypb1.Empty)(m.Max).CloneVT()) + return r +} + +func (m *FamilyStatExpression_Stdev) CloneVT() isFamilyStatExpression_Expression { + if m == nil { + return (*FamilyStatExpression_Stdev)(nil) + } + r := new(FamilyStatExpression_Stdev) + r.Stdev = (*emptypb.Empty)((*emptypb1.Empty)(m.Stdev).CloneVT()) + return r +} + +func (m *FamilyStatExpression_Sum) CloneVT() isFamilyStatExpression_Expression { + if m == nil { + return (*FamilyStatExpression_Sum)(nil) + } + r := new(FamilyStatExpression_Sum) + r.Sum = (*emptypb.Empty)((*emptypb1.Empty)(m.Sum).CloneVT()) + return r +} + +func (m *FamilyStatExpression_InputCount) CloneVT() isFamilyStatExpression_Expression { + if m == nil { + return (*FamilyStatExpression_InputCount)(nil) + } + r := new(FamilyStatExpression_InputCount) + r.InputCount = (*emptypb.Empty)((*emptypb1.Empty)(m.InputCount).CloneVT()) + return r +} + +func (m *FamilyStatExpression_Sigma) CloneVT() isFamilyStatExpression_Expression { + if m == nil { + return (*FamilyStatExpression_Sigma)(nil) + } + r := new(FamilyStatExpression_Sigma) + r.Sigma = (*emptypb.Empty)((*emptypb1.Empty)(m.Sigma).CloneVT()) + return r +} + +func (m *FamilyStatChannel) CloneVT() *FamilyStatChannel { + if m == nil { + return (*FamilyStatChannel)(nil) + } + r := new(FamilyStatChannel) + r.FamilyStatChannelId = m.FamilyStatChannelId + r.FamilyStatId = m.FamilyStatId + r.ChannelId = m.ChannelId + r.AlignmentPointId = m.AlignmentPointId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyStatChannel) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *WindowType) CloneVT() *WindowType { + if m == nil { + return (*WindowType)(nil) + } + r := new(WindowType) + r.FamilyAlignmentId = m.FamilyAlignmentId + r.Duration = (*durationpb.Duration)((*durationpb1.Duration)(m.Duration).CloneVT()) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *WindowType) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FamilyStatRange) CloneVT() *FamilyStatRange { + if m == nil { + return (*FamilyStatRange)(nil) + } + r := new(FamilyStatRange) + r.FamilyStatRangeId = m.FamilyStatRangeId + r.FamilyStatId = m.FamilyStatId + r.FamilyAlignmentId = m.FamilyAlignmentId + r.Name = m.Name + r.WindowStart = m.WindowStart.CloneVT() + r.WindowEnd = m.WindowEnd.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyStatRange) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FamilyStatDetails) CloneVT() *FamilyStatDetails { + if m == nil { + return (*FamilyStatDetails)(nil) + } + r := new(FamilyStatDetails) + r.FamilyStat = m.FamilyStat.CloneVT() + if rhs := m.FamilyStatExpressions; rhs != nil { + tmpContainer := make([]*FamilyStatExpression, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyStatExpressions = tmpContainer + } + if rhs := m.FamilyStatChannels; rhs != nil { + tmpContainer := make([]*FamilyStatChannel, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyStatChannels = tmpContainer + } + if rhs := m.FamilyStatRanges; rhs != nil { + tmpContainer := make([]*FamilyStatRange, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyStatRanges = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyStatDetails) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyStatRequest) CloneVT() *GetFamilyStatRequest { + if m == nil { + return (*GetFamilyStatRequest)(nil) + } + r := new(GetFamilyStatRequest) + r.FamilyStatId = m.FamilyStatId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyStatRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyStatResponse) CloneVT() *GetFamilyStatResponse { + if m == nil { + return (*GetFamilyStatResponse)(nil) + } + r := new(GetFamilyStatResponse) + r.FamilyStatDetails = m.FamilyStatDetails.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyStatResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyStatsRequest) CloneVT() *GetFamilyStatsRequest { + if m == nil { + return (*GetFamilyStatsRequest)(nil) + } + r := new(GetFamilyStatsRequest) + r.FamilyVersionId = m.FamilyVersionId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyStatsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyStatsResponse) CloneVT() *GetFamilyStatsResponse { + if m == nil { + return (*GetFamilyStatsResponse)(nil) + } + r := new(GetFamilyStatsResponse) + if rhs := m.FamilyStatsDetails; rhs != nil { + tmpContainer := make([]*FamilyStatDetails, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyStatsDetails = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyStatsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreateFamilyStatRangesRequest) CloneVT() *CreateFamilyStatRangesRequest { + if m == nil { + return (*CreateFamilyStatRangesRequest)(nil) + } + r := new(CreateFamilyStatRangesRequest) + if rhs := m.FamilyStatIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.FamilyStatIds = tmpContainer + } + if rhs := m.FamilyStatRanges; rhs != nil { + tmpContainer := make([]*FamilyStatRange, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyStatRanges = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreateFamilyStatRangesRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *CreateFamilyStatRangesResponse) CloneVT() *CreateFamilyStatRangesResponse { + if m == nil { + return (*CreateFamilyStatRangesResponse)(nil) + } + r := new(CreateFamilyStatRangesResponse) + r.FamilyVersionId = m.FamilyVersionId + r.Family = m.Family.CloneVT() + if rhs := m.FamilyStats; rhs != nil { + tmpContainer := make([]*FamilyStatDetails, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.FamilyStats = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *CreateFamilyStatRangesResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyRuleDependenciesRequest) CloneVT() *GetFamilyRuleDependenciesRequest { + if m == nil { + return (*GetFamilyRuleDependenciesRequest)(nil) + } + r := new(GetFamilyRuleDependenciesRequest) + r.FamilyId = m.FamilyId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyRuleDependenciesRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyRuleDependenciesResponse) CloneVT() *GetFamilyRuleDependenciesResponse { + if m == nil { + return (*GetFamilyRuleDependenciesResponse)(nil) + } + r := new(GetFamilyRuleDependenciesResponse) + if rhs := m.RuleDependencies; rhs != nil { + tmpContainer := make([]*FamilyRuleDependency, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.RuleDependencies = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyRuleDependenciesResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *FamilyRuleDependency) CloneVT() *FamilyRuleDependency { + if m == nil { + return (*FamilyRuleDependency)(nil) + } + r := new(FamilyRuleDependency) + r.RuleId = m.RuleId + r.Name = m.Name + if rhs := m.StatReference; rhs != nil { + if vtpb, ok := interface{}(rhs).(interface { + CloneVT() *v11.FamilyStatReference + }); ok { + r.StatReference = vtpb.CloneVT() + } else { + r.StatReference = proto.Clone(rhs).(*v11.FamilyStatReference) + } + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyRuleDependency) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *AbstractWindowType) CloneVT() *AbstractWindowType { + if m == nil { + return (*AbstractWindowType)(nil) + } + r := new(AbstractWindowType) + r.FamilyAlignmentName = m.FamilyAlignmentName + r.Duration = (*durationpb.Duration)((*durationpb1.Duration)(m.Duration).CloneVT()) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *AbstractWindowType) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GenerateFamilyStatRangeNameRequest) CloneVT() *GenerateFamilyStatRangeNameRequest { + if m == nil { + return (*GenerateFamilyStatRangeNameRequest)(nil) + } + r := new(GenerateFamilyStatRangeNameRequest) + r.FamilyAlignmentName = m.FamilyAlignmentName + r.WindowStart = m.WindowStart.CloneVT() + r.WindowEnd = m.WindowEnd.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GenerateFamilyStatRangeNameRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GenerateFamilyStatRangeNameResponse) CloneVT() *GenerateFamilyStatRangeNameResponse { + if m == nil { + return (*GenerateFamilyStatRangeNameResponse)(nil) + } + r := new(GenerateFamilyStatRangeNameResponse) + r.Name = m.Name + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GenerateFamilyStatRangeNameResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyCandidateRunsRequest) CloneVT() *GetFamilyCandidateRunsRequest { + if m == nil { + return (*GetFamilyCandidateRunsRequest)(nil) + } + r := new(GetFamilyCandidateRunsRequest) + r.FamilyVersionId = m.FamilyVersionId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyCandidateRunsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyCandidateRunsResponse) CloneVT() *GetFamilyCandidateRunsResponse { + if m == nil { + return (*GetFamilyCandidateRunsResponse)(nil) + } + r := new(GetFamilyCandidateRunsResponse) + r.RunQuery = m.RunQuery + if rhs := m.CandidateRunIds; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.CandidateRunIds = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyCandidateRunsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyCandidateRunCountRequest) CloneVT() *GetFamilyCandidateRunCountRequest { + if m == nil { + return (*GetFamilyCandidateRunCountRequest)(nil) + } + r := new(GetFamilyCandidateRunCountRequest) + r.FamilyVersionId = m.FamilyVersionId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyCandidateRunCountRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyCandidateRunCountResponse) CloneVT() *GetFamilyCandidateRunCountResponse { + if m == nil { + return (*GetFamilyCandidateRunCountResponse)(nil) + } + r := new(GetFamilyCandidateRunCountResponse) + r.Count = m.Count + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyCandidateRunCountResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamilyCandidateRunsRequest) CloneVT() *ListFamilyCandidateRunsRequest { + if m == nil { + return (*ListFamilyCandidateRunsRequest)(nil) + } + r := new(ListFamilyCandidateRunsRequest) + r.PageSize = m.PageSize + r.PageToken = m.PageToken + r.Filter = m.Filter + r.OrderBy = m.OrderBy + r.FamilyId = m.FamilyId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamilyCandidateRunsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ListFamilyCandidateRunsResponse) CloneVT() *ListFamilyCandidateRunsResponse { + if m == nil { + return (*ListFamilyCandidateRunsResponse)(nil) + } + r := new(ListFamilyCandidateRunsResponse) + r.NextPageToken = m.NextPageToken + if rhs := m.Runs; rhs != nil { + tmpContainer := make([]*v2.Run, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v2.Run }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v2.Run) + } + } + r.Runs = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ListFamilyCandidateRunsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyCandidateRunFilterFieldsRequest) CloneVT() *GetFamilyCandidateRunFilterFieldsRequest { + if m == nil { + return (*GetFamilyCandidateRunFilterFieldsRequest)(nil) + } + r := new(GetFamilyCandidateRunFilterFieldsRequest) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyCandidateRunFilterFieldsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *GetFamilyCandidateRunFilterFieldsResponse) CloneVT() *GetFamilyCandidateRunFilterFieldsResponse { + if m == nil { + return (*GetFamilyCandidateRunFilterFieldsResponse)(nil) + } + r := new(GetFamilyCandidateRunFilterFieldsResponse) + if rhs := m.FilterFields; rhs != nil { + tmpContainer := make([]*v12.FilterField, len(rhs)) + for k, v := range rhs { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v12.FilterField }); ok { + tmpContainer[k] = vtpb.CloneVT() + } else { + tmpContainer[k] = proto.Clone(v).(*v12.FilterField) + } + } + r.FilterFields = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *GetFamilyCandidateRunFilterFieldsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (this *Family) EqualVT(that *Family) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + if this.ClientKey != that.ClientKey { + return false + } + if this.CurrentVersionId != that.CurrentVersionId { + return false + } + if this.IsArchived != that.IsArchived { + return false + } + if !(*timestamppb1.Timestamp)(this.CreatedDate).EqualVT((*timestamppb1.Timestamp)(that.CreatedDate)) { + return false + } + if !(*timestamppb1.Timestamp)(this.ModifiedDate).EqualVT((*timestamppb1.Timestamp)(that.ModifiedDate)) { + return false + } + if !(*timestamppb1.Timestamp)(this.ArchivedDate).EqualVT((*timestamppb1.Timestamp)(that.ArchivedDate)) { + return false + } + if this.CreatedByUserId != that.CreatedByUserId { + return false + } + if this.ModifiedByUserId != that.ModifiedByUserId { + return false + } + if this.OrganizationId != that.OrganizationId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Family) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Family) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FamilyVersion) EqualVT(that *FamilyVersion) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + if this.Version != that.Version { + return false + } + if this.Name != that.Name { + return false + } + if this.Description != that.Description { + return false + } + if this.RunQuery != that.RunQuery { + return false + } + if this.UserNotes != that.UserNotes { + return false + } + if this.ChangeMessage != that.ChangeMessage { + return false + } + if len(this.Metadata) != len(that.Metadata) { + return false + } + for i, vx := range this.Metadata { + vy := that.Metadata[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v1.MetadataValue{} + } + if q == nil { + q = &v1.MetadataValue{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*v1.MetadataValue) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } + if len(this.SigmaDefaultValues) != len(that.SigmaDefaultValues) { + return false + } + for i, vx := range this.SigmaDefaultValues { + vy := that.SigmaDefaultValues[i] + if vx != vy { + return false + } + } + if !(*timestamppb1.Timestamp)(this.CreatedDate).EqualVT((*timestamppb1.Timestamp)(that.CreatedDate)) { + return false + } + if !(*timestamppb1.Timestamp)(this.ModifiedDate).EqualVT((*timestamppb1.Timestamp)(that.ModifiedDate)) { + return false + } + if this.CreatedByUserId != that.CreatedByUserId { + return false + } + if this.ModifiedByUserId != that.ModifiedByUserId { + return false + } + if this.OrganizationId != that.OrganizationId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyVersion) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyVersion) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FamilyRun) EqualVT(that *FamilyRun) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyRunId != that.FamilyRunId { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + if this.RunId != that.RunId { + return false + } + if this.IsExclusion != that.IsExclusion { + return false + } + if this.Rationale != that.Rationale { + return false + } + if !(*timestamppb1.Timestamp)(this.AddedDate).EqualVT((*timestamppb1.Timestamp)(that.AddedDate)) { + return false + } + if this.AddedByUserId != that.AddedByUserId { + return false + } + if this.AddedInVersionId != that.AddedInVersionId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyRun) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyRun) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FamilyAlignment) EqualVT(that *FamilyAlignment) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.DefaultAlignment == nil && that.DefaultAlignment != nil { + return false + } else if this.DefaultAlignment != nil { + if that.DefaultAlignment == nil { + return false + } + if !this.DefaultAlignment.(interface { + EqualVT(isFamilyAlignment_DefaultAlignment) bool + }).EqualVT(that.DefaultAlignment) { + return false + } + } + if this.FamilyAlignmentId != that.FamilyAlignmentId { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + if this.Name != that.Name { + return false + } + if this.Description != that.Description { + return false + } + if len(this.FamilyAlignmentPoints) != len(that.FamilyAlignmentPoints) { + return false + } + for i, vx := range this.FamilyAlignmentPoints { + vy := that.FamilyAlignmentPoints[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyAlignmentPoint{} + } + if q == nil { + q = &FamilyAlignmentPoint{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyAlignment) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyAlignment) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FamilyAlignment_Run) EqualVT(thatIface isFamilyAlignment_DefaultAlignment) bool { + that, ok := thatIface.(*FamilyAlignment_Run) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Run, that.Run; p != q { + if p == nil { + p = &RunAlignment{} + } + if q == nil { + q = &RunAlignment{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FamilyAlignment_Annotation) EqualVT(thatIface isFamilyAlignment_DefaultAlignment) bool { + that, ok := thatIface.(*FamilyAlignment_Annotation) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Annotation, that.Annotation; p != q { + if p == nil { + p = &DefaultAnnotationAlignment{} + } + if q == nil { + q = &DefaultAnnotationAlignment{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FamilyAlignment_Timestamp) EqualVT(thatIface isFamilyAlignment_DefaultAlignment) bool { + that, ok := thatIface.(*FamilyAlignment_Timestamp) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Timestamp, that.Timestamp; p != q { + if p == nil { + p = &TimestampAlignment{} + } + if q == nil { + q = &TimestampAlignment{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FamilyAlignmentPoint) EqualVT(that *FamilyAlignmentPoint) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Alignment == nil && that.Alignment != nil { + return false + } else if this.Alignment != nil { + if that.Alignment == nil { + return false + } + if !this.Alignment.(interface { + EqualVT(isFamilyAlignmentPoint_Alignment) bool + }).EqualVT(that.Alignment) { + return false + } + } + if this.FamilyAlignmentPointId != that.FamilyAlignmentPointId { + return false + } + if this.FamilyRunId != that.FamilyRunId { + return false + } + if this.RunId != that.RunId { + return false + } + if this.FamilyAlignmentId != that.FamilyAlignmentId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyAlignmentPoint) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyAlignmentPoint) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FamilyAlignmentPoint_Run) EqualVT(thatIface isFamilyAlignmentPoint_Alignment) bool { + that, ok := thatIface.(*FamilyAlignmentPoint_Run) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Run, that.Run; p != q { + if p == nil { + p = &RunAlignment{} + } + if q == nil { + q = &RunAlignment{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FamilyAlignmentPoint_Annotation) EqualVT(thatIface isFamilyAlignmentPoint_Alignment) bool { + that, ok := thatIface.(*FamilyAlignmentPoint_Annotation) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Annotation, that.Annotation; p != q { + if p == nil { + p = &AnnotationAlignment{} + } + if q == nil { + q = &AnnotationAlignment{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *FamilyAlignmentPoint_Timestamp) EqualVT(thatIface isFamilyAlignmentPoint_Alignment) bool { + that, ok := thatIface.(*FamilyAlignmentPoint_Timestamp) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Timestamp, that.Timestamp; p != q { + if p == nil { + p = &TimestampAlignment{} + } + if q == nil { + q = &TimestampAlignment{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *RunAlignment) EqualVT(that *RunAlignment) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Bound != that.Bound { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *RunAlignment) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*RunAlignment) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *DefaultAnnotationAlignment) EqualVT(that *DefaultAnnotationAlignment) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.AnnotationName != that.AnnotationName { + return false + } + if this.Bound != that.Bound { + return false + } + if this.Occurrence != that.Occurrence { + return false + } + if this.OccurrenceIndex != that.OccurrenceIndex { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *DefaultAnnotationAlignment) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*DefaultAnnotationAlignment) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *TimestampAlignment) EqualVT(that *TimestampAlignment) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !(*timestamppb1.Timestamp)(this.Timestamp).EqualVT((*timestamppb1.Timestamp)(that.Timestamp)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *TimestampAlignment) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*TimestampAlignment) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *AnnotationAlignment) EqualVT(that *AnnotationAlignment) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.AnnotationId != that.AnnotationId { + return false + } + if this.Bound != that.Bound { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *AnnotationAlignment) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*AnnotationAlignment) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FamilyDetails) EqualVT(that *FamilyDetails) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Family.EqualVT(that.Family) { + return false + } + if !this.FamilyVersion.EqualVT(that.FamilyVersion) { + return false + } + if len(this.FamilyRuns) != len(that.FamilyRuns) { + return false + } + for i, vx := range this.FamilyRuns { + vy := that.FamilyRuns[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyRun{} + } + if q == nil { + q = &FamilyRun{} + } + if !p.EqualVT(q) { + return false + } + } + } + if len(this.FamilyAlignments) != len(that.FamilyAlignments) { + return false + } + for i, vx := range this.FamilyAlignments { + vy := that.FamilyAlignments[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyAlignment{} + } + if q == nil { + q = &FamilyAlignment{} + } + if !p.EqualVT(q) { + return false + } + } + } + if len(this.FamilyStats) != len(that.FamilyStats) { + return false + } + for i, vx := range this.FamilyStats { + vy := that.FamilyStats[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyStatDetails{} + } + if q == nil { + q = &FamilyStatDetails{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyDetails) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyDetails) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyRequest) EqualVT(that *GetFamilyRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyIdentifier == nil && that.FamilyIdentifier != nil { + return false + } else if this.FamilyIdentifier != nil { + if that.FamilyIdentifier == nil { + return false + } + if !this.FamilyIdentifier.(interface { + EqualVT(isGetFamilyRequest_FamilyIdentifier) bool + }).EqualVT(that.FamilyIdentifier) { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyRequest_FamilyId) EqualVT(thatIface isGetFamilyRequest_FamilyIdentifier) bool { + that, ok := thatIface.(*GetFamilyRequest_FamilyId) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + return true +} + +func (this *GetFamilyRequest_ClientKey) EqualVT(thatIface isGetFamilyRequest_FamilyIdentifier) bool { + that, ok := thatIface.(*GetFamilyRequest_ClientKey) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.ClientKey != that.ClientKey { + return false + } + return true +} + +func (this *GetFamilyResponse) EqualVT(that *GetFamilyResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Family.EqualVT(that.Family) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamiliesRequest) EqualVT(that *GetFamiliesRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.FamilyIds) != len(that.FamilyIds) { + return false + } + for i, vx := range this.FamilyIds { + vy := that.FamilyIds[i] + if vx != vy { + return false + } + } + if len(this.ClientKeys) != len(that.ClientKeys) { + return false + } + for i, vx := range this.ClientKeys { + vy := that.ClientKeys[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamiliesRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamiliesRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamiliesResponse) EqualVT(that *GetFamiliesResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Families) != len(that.Families) { + return false + } + for i, vx := range this.Families { + vy := that.Families[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyDetails{} + } + if q == nil { + q = &FamilyDetails{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamiliesResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamiliesResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyVersionRequest) EqualVT(that *GetFamilyVersionRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyVersionRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyVersionRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyVersionResponse) EqualVT(that *GetFamilyVersionResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Family.EqualVT(that.Family) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyVersionResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyVersionResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamiliesRequest) EqualVT(that *ListFamiliesRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.PageToken != that.PageToken { + return false + } + if this.Filter != that.Filter { + return false + } + if this.OrderBy != that.OrderBy { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamiliesRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamiliesRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamiliesResponse) EqualVT(that *ListFamiliesResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Families) != len(that.Families) { + return false + } + for i, vx := range this.Families { + vy := that.Families[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &ListFamily{} + } + if q == nil { + q = &ListFamily{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamiliesResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamiliesResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamily) EqualVT(that *ListFamily) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Family.EqualVT(that.Family) { + return false + } + if !this.FamilyVersion.EqualVT(that.FamilyVersion) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamily) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamily) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreateFamilyRequest) EqualVT(that *CreateFamilyRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Family.EqualVT(that.Family) { + return false + } + if !this.FamilyVersion.EqualVT(that.FamilyVersion) { + return false + } + if len(this.FamilyRuns) != len(that.FamilyRuns) { + return false + } + for i, vx := range this.FamilyRuns { + vy := that.FamilyRuns[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyRun{} + } + if q == nil { + q = &FamilyRun{} + } + if !p.EqualVT(q) { + return false + } + } + } + if len(this.FamilyAlignments) != len(that.FamilyAlignments) { + return false + } + for i, vx := range this.FamilyAlignments { + vy := that.FamilyAlignments[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyAlignment{} + } + if q == nil { + q = &FamilyAlignment{} + } + if !p.EqualVT(q) { + return false + } + } + } + if len(this.FamilyStats) != len(that.FamilyStats) { + return false + } + for i, vx := range this.FamilyStats { + vy := that.FamilyStats[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyStatDetails{} + } + if q == nil { + q = &FamilyStatDetails{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreateFamilyRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreateFamilyRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreateFamilyResponse) EqualVT(that *CreateFamilyResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + if !this.Family.EqualVT(that.Family) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreateFamilyResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreateFamilyResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UpdateFamilyRequest) EqualVT(that *UpdateFamilyRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyIdentifier == nil && that.FamilyIdentifier != nil { + return false + } else if this.FamilyIdentifier != nil { + if that.FamilyIdentifier == nil { + return false + } + if !this.FamilyIdentifier.(interface { + EqualVT(isUpdateFamilyRequest_FamilyIdentifier) bool + }).EqualVT(that.FamilyIdentifier) { + return false + } + } + if !this.Family.EqualVT(that.Family) { + return false + } + if !(*fieldmaskpb1.FieldMask)(this.UpdateMask).EqualVT((*fieldmaskpb1.FieldMask)(that.UpdateMask)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UpdateFamilyRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UpdateFamilyRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *UpdateFamilyRequest_FamilyId) EqualVT(thatIface isUpdateFamilyRequest_FamilyIdentifier) bool { + that, ok := thatIface.(*UpdateFamilyRequest_FamilyId) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + return true +} + +func (this *UpdateFamilyRequest_ClientKey) EqualVT(thatIface isUpdateFamilyRequest_FamilyIdentifier) bool { + that, ok := thatIface.(*UpdateFamilyRequest_ClientKey) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.ClientKey != that.ClientKey { + return false + } + return true +} + +func (this *UpdateFamilyResponse) EqualVT(that *UpdateFamilyResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + if !this.Family.EqualVT(that.Family) { + return false + } + if len(this.FamilyStats) != len(that.FamilyStats) { + return false + } + for i, vx := range this.FamilyStats { + vy := that.FamilyStats[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyStatDetails{} + } + if q == nil { + q = &FamilyStatDetails{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *UpdateFamilyResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*UpdateFamilyResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamilyVersionsRequest) EqualVT(that *ListFamilyVersionsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.Filter != that.Filter { + return false + } + if this.PageToken != that.PageToken { + return false + } + if this.OrderBy != that.OrderBy { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamilyVersionsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamilyVersionsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamilyVersionsResponse) EqualVT(that *ListFamilyVersionsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.FamilyVersions) != len(that.FamilyVersions) { + return false + } + for i, vx := range this.FamilyVersions { + vy := that.FamilyVersions[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyVersion{} + } + if q == nil { + q = &FamilyVersion{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamilyVersionsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamilyVersionsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamilyMembersRequest) EqualVT(that *ListFamilyMembersRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.Filter != that.Filter { + return false + } + if this.PageToken != that.PageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamilyMembersRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamilyMembersRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamilyMembersResponse) EqualVT(that *ListFamilyMembersResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.FamilyRuns) != len(that.FamilyRuns) { + return false + } + for i, vx := range this.FamilyRuns { + vy := that.FamilyRuns[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyRun{} + } + if q == nil { + q = &FamilyRun{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamilyMembersResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamilyMembersResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamilyAlignmentsRequest) EqualVT(that *ListFamilyAlignmentsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.Filter != that.Filter { + return false + } + if this.PageToken != that.PageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamilyAlignmentsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamilyAlignmentsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamilyAlignmentsResponse) EqualVT(that *ListFamilyAlignmentsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.FamilyAlignments) != len(that.FamilyAlignments) { + return false + } + for i, vx := range this.FamilyAlignments { + vy := that.FamilyAlignments[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyAlignment{} + } + if q == nil { + q = &FamilyAlignment{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamilyAlignmentsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamilyAlignmentsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamilyAlignmentPointsRequest) EqualVT(that *ListFamilyAlignmentPointsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyAlignmentId != that.FamilyAlignmentId { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.Filter != that.Filter { + return false + } + if this.PageToken != that.PageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamilyAlignmentPointsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamilyAlignmentPointsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamilyAlignmentPointsResponse) EqualVT(that *ListFamilyAlignmentPointsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.FamilyAlignmentPoints) != len(that.FamilyAlignmentPoints) { + return false + } + for i, vx := range this.FamilyAlignmentPoints { + vy := that.FamilyAlignmentPoints[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyAlignmentPoint{} + } + if q == nil { + q = &FamilyAlignmentPoint{} + } + if !p.EqualVT(q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamilyAlignmentPointsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamilyAlignmentPointsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ImportFamilyRequest) EqualVT(that *ImportFamilyRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyYaml != that.FamilyYaml { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ImportFamilyRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ImportFamilyRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ImportFamilyResponse) EqualVT(that *ImportFamilyResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + if !this.Family.EqualVT(that.Family) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ImportFamilyResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ImportFamilyResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ImportUpdateFamilyRequest) EqualVT(that *ImportUpdateFamilyRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyIdentifier == nil && that.FamilyIdentifier != nil { + return false + } else if this.FamilyIdentifier != nil { + if that.FamilyIdentifier == nil { + return false + } + if !this.FamilyIdentifier.(interface { + EqualVT(isImportUpdateFamilyRequest_FamilyIdentifier) bool + }).EqualVT(that.FamilyIdentifier) { + return false + } + } + if this.FamilyYaml != that.FamilyYaml { + return false + } + if !(*fieldmaskpb1.FieldMask)(this.UpdateMask).EqualVT((*fieldmaskpb1.FieldMask)(that.UpdateMask)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ImportUpdateFamilyRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ImportUpdateFamilyRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ImportUpdateFamilyRequest_FamilyId) EqualVT(thatIface isImportUpdateFamilyRequest_FamilyIdentifier) bool { + that, ok := thatIface.(*ImportUpdateFamilyRequest_FamilyId) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + return true +} + +func (this *ImportUpdateFamilyRequest_ClientKey) EqualVT(thatIface isImportUpdateFamilyRequest_FamilyIdentifier) bool { + that, ok := thatIface.(*ImportUpdateFamilyRequest_ClientKey) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.ClientKey != that.ClientKey { + return false + } + return true +} + +func (this *ImportUpdateFamilyResponse) EqualVT(that *ImportUpdateFamilyResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + if !this.Family.EqualVT(that.Family) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ImportUpdateFamilyResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ImportUpdateFamilyResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ExportFamilyRequest) EqualVT(that *ExportFamilyRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyIdentifier == nil && that.FamilyIdentifier != nil { + return false + } else if this.FamilyIdentifier != nil { + if that.FamilyIdentifier == nil { + return false + } + if !this.FamilyIdentifier.(interface { + EqualVT(isExportFamilyRequest_FamilyIdentifier) bool + }).EqualVT(that.FamilyIdentifier) { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ExportFamilyRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ExportFamilyRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ExportFamilyRequest_FamilyId) EqualVT(thatIface isExportFamilyRequest_FamilyIdentifier) bool { + that, ok := thatIface.(*ExportFamilyRequest_FamilyId) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + return true +} + +func (this *ExportFamilyRequest_ClientKey) EqualVT(thatIface isExportFamilyRequest_FamilyIdentifier) bool { + that, ok := thatIface.(*ExportFamilyRequest_ClientKey) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.ClientKey != that.ClientKey { + return false + } + return true +} + +func (this *ExportFamilyRequest_FamilyVersionId) EqualVT(thatIface isExportFamilyRequest_FamilyIdentifier) bool { + that, ok := thatIface.(*ExportFamilyRequest_FamilyVersionId) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + return true +} + +func (this *ExportFamilyResponse) EqualVT(that *ExportFamilyResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.ExportedFamily != that.ExportedFamily { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ExportFamilyResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ExportFamilyResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ValidateFamilyNameRequest) EqualVT(that *ValidateFamilyNameRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyName != that.FamilyName { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ValidateFamilyNameRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ValidateFamilyNameRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ValidateFamilyNameResponse) EqualVT(that *ValidateFamilyNameResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Result == nil && that.Result != nil { + return false + } else if this.Result != nil { + if that.Result == nil { + return false + } + if !this.Result.(interface { + EqualVT(isValidateFamilyNameResponse_Result) bool + }).EqualVT(that.Result) { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ValidateFamilyNameResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ValidateFamilyNameResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ValidateFamilyNameResponse_Success) EqualVT(thatIface isValidateFamilyNameResponse_Result) bool { + that, ok := thatIface.(*ValidateFamilyNameResponse_Success) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Success != that.Success { + return false + } + return true +} + +func (this *ValidateFamilyNameResponse_ErrorMessage) EqualVT(thatIface isValidateFamilyNameResponse_Result) bool { + that, ok := thatIface.(*ValidateFamilyNameResponse_ErrorMessage) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.ErrorMessage != that.ErrorMessage { + return false + } + return true +} + +func (this *ValidateFamilyClientKeyRequest) EqualVT(that *ValidateFamilyClientKeyRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.ClientKey != that.ClientKey { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ValidateFamilyClientKeyRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ValidateFamilyClientKeyRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ValidateFamilyClientKeyResponse) EqualVT(that *ValidateFamilyClientKeyResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Result == nil && that.Result != nil { + return false + } else if this.Result != nil { + if that.Result == nil { + return false + } + if !this.Result.(interface { + EqualVT(isValidateFamilyClientKeyResponse_Result) bool + }).EqualVT(that.Result) { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ValidateFamilyClientKeyResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ValidateFamilyClientKeyResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ValidateFamilyClientKeyResponse_Success) EqualVT(thatIface isValidateFamilyClientKeyResponse_Result) bool { + that, ok := thatIface.(*ValidateFamilyClientKeyResponse_Success) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.Success != that.Success { + return false + } + return true +} + +func (this *ValidateFamilyClientKeyResponse_ErrorMessage) EqualVT(thatIface isValidateFamilyClientKeyResponse_Result) bool { + that, ok := thatIface.(*ValidateFamilyClientKeyResponse_ErrorMessage) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if this.ErrorMessage != that.ErrorMessage { + return false + } + return true +} + +func (this *FamilyStat) EqualVT(that *FamilyStat) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyStatId != that.FamilyStatId { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + if this.Name != that.Name { + return false + } + if this.Description != that.Description { + return false + } + if this.SampleRate != that.SampleRate { + return false + } + if len(this.DefaultChannelNames) != len(that.DefaultChannelNames) { + return false + } + for i, vx := range this.DefaultChannelNames { + vy := that.DefaultChannelNames[i] + if vx != vy { + return false + } + } + if !(*timestamppb1.Timestamp)(this.CreatedDate).EqualVT((*timestamppb1.Timestamp)(that.CreatedDate)) { + return false + } + if !(*timestamppb1.Timestamp)(this.ModifiedDate).EqualVT((*timestamppb1.Timestamp)(that.ModifiedDate)) { + return false + } + if this.CreatedByUserId != that.CreatedByUserId { + return false + } + if this.ModifiedByUserId != that.ModifiedByUserId { + return false + } + if this.OrganizationId != that.OrganizationId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyStat) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyStat) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FamilyStatExpression) EqualVT(that *FamilyStatExpression) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Expression == nil && that.Expression != nil { + return false + } else if this.Expression != nil { + if that.Expression == nil { + return false + } + if !this.Expression.(interface { + EqualVT(isFamilyStatExpression_Expression) bool + }).EqualVT(that.Expression) { + return false + } + } + if this.FamilyStatExpressionId != that.FamilyStatExpressionId { + return false + } + if this.FamilyStatId != that.FamilyStatId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyStatExpression) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyStatExpression) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FamilyStatExpression_Avg) EqualVT(thatIface isFamilyStatExpression_Expression) bool { + that, ok := thatIface.(*FamilyStatExpression_Avg) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Avg, that.Avg; p != q { + if p == nil { + p = &emptypb.Empty{} + } + if q == nil { + q = &emptypb.Empty{} + } + if !(*emptypb1.Empty)(p).EqualVT((*emptypb1.Empty)(q)) { + return false + } + } + return true +} + +func (this *FamilyStatExpression_Median) EqualVT(thatIface isFamilyStatExpression_Expression) bool { + that, ok := thatIface.(*FamilyStatExpression_Median) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Median, that.Median; p != q { + if p == nil { + p = &emptypb.Empty{} + } + if q == nil { + q = &emptypb.Empty{} + } + if !(*emptypb1.Empty)(p).EqualVT((*emptypb1.Empty)(q)) { + return false + } + } + return true +} + +func (this *FamilyStatExpression_Min) EqualVT(thatIface isFamilyStatExpression_Expression) bool { + that, ok := thatIface.(*FamilyStatExpression_Min) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Min, that.Min; p != q { + if p == nil { + p = &emptypb.Empty{} + } + if q == nil { + q = &emptypb.Empty{} + } + if !(*emptypb1.Empty)(p).EqualVT((*emptypb1.Empty)(q)) { + return false + } + } + return true +} + +func (this *FamilyStatExpression_Max) EqualVT(thatIface isFamilyStatExpression_Expression) bool { + that, ok := thatIface.(*FamilyStatExpression_Max) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Max, that.Max; p != q { + if p == nil { + p = &emptypb.Empty{} + } + if q == nil { + q = &emptypb.Empty{} + } + if !(*emptypb1.Empty)(p).EqualVT((*emptypb1.Empty)(q)) { + return false + } + } + return true +} + +func (this *FamilyStatExpression_Stdev) EqualVT(thatIface isFamilyStatExpression_Expression) bool { + that, ok := thatIface.(*FamilyStatExpression_Stdev) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Stdev, that.Stdev; p != q { + if p == nil { + p = &emptypb.Empty{} + } + if q == nil { + q = &emptypb.Empty{} + } + if !(*emptypb1.Empty)(p).EqualVT((*emptypb1.Empty)(q)) { + return false + } + } + return true +} + +func (this *FamilyStatExpression_Sum) EqualVT(thatIface isFamilyStatExpression_Expression) bool { + that, ok := thatIface.(*FamilyStatExpression_Sum) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Sum, that.Sum; p != q { + if p == nil { + p = &emptypb.Empty{} + } + if q == nil { + q = &emptypb.Empty{} + } + if !(*emptypb1.Empty)(p).EqualVT((*emptypb1.Empty)(q)) { + return false + } + } + return true +} + +func (this *FamilyStatExpression_InputCount) EqualVT(thatIface isFamilyStatExpression_Expression) bool { + that, ok := thatIface.(*FamilyStatExpression_InputCount) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.InputCount, that.InputCount; p != q { + if p == nil { + p = &emptypb.Empty{} + } + if q == nil { + q = &emptypb.Empty{} + } + if !(*emptypb1.Empty)(p).EqualVT((*emptypb1.Empty)(q)) { + return false + } + } + return true +} + +func (this *FamilyStatExpression_Sigma) EqualVT(thatIface isFamilyStatExpression_Expression) bool { + that, ok := thatIface.(*FamilyStatExpression_Sigma) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Sigma, that.Sigma; p != q { + if p == nil { + p = &emptypb.Empty{} + } + if q == nil { + q = &emptypb.Empty{} + } + if !(*emptypb1.Empty)(p).EqualVT((*emptypb1.Empty)(q)) { + return false + } + } + return true +} + +func (this *FamilyStatChannel) EqualVT(that *FamilyStatChannel) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyStatChannelId != that.FamilyStatChannelId { + return false + } + if this.FamilyStatId != that.FamilyStatId { + return false + } + if this.ChannelId != that.ChannelId { + return false + } + if this.AlignmentPointId != that.AlignmentPointId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyStatChannel) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyStatChannel) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *WindowType) EqualVT(that *WindowType) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyAlignmentId != that.FamilyAlignmentId { + return false + } + if !(*durationpb1.Duration)(this.Duration).EqualVT((*durationpb1.Duration)(that.Duration)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *WindowType) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*WindowType) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FamilyStatRange) EqualVT(that *FamilyStatRange) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyStatRangeId != that.FamilyStatRangeId { + return false + } + if this.FamilyStatId != that.FamilyStatId { + return false + } + if this.FamilyAlignmentId != that.FamilyAlignmentId { + return false + } + if this.Name != that.Name { + return false + } + if !this.WindowStart.EqualVT(that.WindowStart) { + return false + } + if !this.WindowEnd.EqualVT(that.WindowEnd) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyStatRange) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyStatRange) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FamilyStatDetails) EqualVT(that *FamilyStatDetails) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.FamilyStat.EqualVT(that.FamilyStat) { + return false + } + if len(this.FamilyStatExpressions) != len(that.FamilyStatExpressions) { + return false + } + for i, vx := range this.FamilyStatExpressions { + vy := that.FamilyStatExpressions[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyStatExpression{} + } + if q == nil { + q = &FamilyStatExpression{} + } + if !p.EqualVT(q) { + return false + } + } + } + if len(this.FamilyStatChannels) != len(that.FamilyStatChannels) { + return false + } + for i, vx := range this.FamilyStatChannels { + vy := that.FamilyStatChannels[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyStatChannel{} + } + if q == nil { + q = &FamilyStatChannel{} + } + if !p.EqualVT(q) { + return false + } + } + } + if len(this.FamilyStatRanges) != len(that.FamilyStatRanges) { + return false + } + for i, vx := range this.FamilyStatRanges { + vy := that.FamilyStatRanges[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyStatRange{} + } + if q == nil { + q = &FamilyStatRange{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyStatDetails) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyStatDetails) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyStatRequest) EqualVT(that *GetFamilyStatRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyStatId != that.FamilyStatId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyStatRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyStatRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyStatResponse) EqualVT(that *GetFamilyStatResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.FamilyStatDetails.EqualVT(that.FamilyStatDetails) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyStatResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyStatResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyStatsRequest) EqualVT(that *GetFamilyStatsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyStatsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyStatsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyStatsResponse) EqualVT(that *GetFamilyStatsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.FamilyStatsDetails) != len(that.FamilyStatsDetails) { + return false + } + for i, vx := range this.FamilyStatsDetails { + vy := that.FamilyStatsDetails[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyStatDetails{} + } + if q == nil { + q = &FamilyStatDetails{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyStatsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyStatsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreateFamilyStatRangesRequest) EqualVT(that *CreateFamilyStatRangesRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.FamilyStatIds) != len(that.FamilyStatIds) { + return false + } + for i, vx := range this.FamilyStatIds { + vy := that.FamilyStatIds[i] + if vx != vy { + return false + } + } + if len(this.FamilyStatRanges) != len(that.FamilyStatRanges) { + return false + } + for i, vx := range this.FamilyStatRanges { + vy := that.FamilyStatRanges[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyStatRange{} + } + if q == nil { + q = &FamilyStatRange{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreateFamilyStatRangesRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreateFamilyStatRangesRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *CreateFamilyStatRangesResponse) EqualVT(that *CreateFamilyStatRangesResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + if !this.Family.EqualVT(that.Family) { + return false + } + if len(this.FamilyStats) != len(that.FamilyStats) { + return false + } + for i, vx := range this.FamilyStats { + vy := that.FamilyStats[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyStatDetails{} + } + if q == nil { + q = &FamilyStatDetails{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *CreateFamilyStatRangesResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*CreateFamilyStatRangesResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyRuleDependenciesRequest) EqualVT(that *GetFamilyRuleDependenciesRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyRuleDependenciesRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyRuleDependenciesRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyRuleDependenciesResponse) EqualVT(that *GetFamilyRuleDependenciesResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.RuleDependencies) != len(that.RuleDependencies) { + return false + } + for i, vx := range this.RuleDependencies { + vy := that.RuleDependencies[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &FamilyRuleDependency{} + } + if q == nil { + q = &FamilyRuleDependency{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyRuleDependenciesResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyRuleDependenciesResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *FamilyRuleDependency) EqualVT(that *FamilyRuleDependency) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.RuleId != that.RuleId { + return false + } + if this.Name != that.Name { + return false + } + if equal, ok := interface{}(this.StatReference).(interface { + EqualVT(*v11.FamilyStatReference) bool + }); ok { + if !equal.EqualVT(that.StatReference) { + return false + } + } else if !proto.Equal(this.StatReference, that.StatReference) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyRuleDependency) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyRuleDependency) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *AbstractWindowType) EqualVT(that *AbstractWindowType) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyAlignmentName != that.FamilyAlignmentName { + return false + } + if !(*durationpb1.Duration)(this.Duration).EqualVT((*durationpb1.Duration)(that.Duration)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *AbstractWindowType) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*AbstractWindowType) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GenerateFamilyStatRangeNameRequest) EqualVT(that *GenerateFamilyStatRangeNameRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyAlignmentName != that.FamilyAlignmentName { + return false + } + if !this.WindowStart.EqualVT(that.WindowStart) { + return false + } + if !this.WindowEnd.EqualVT(that.WindowEnd) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GenerateFamilyStatRangeNameRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GenerateFamilyStatRangeNameRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GenerateFamilyStatRangeNameResponse) EqualVT(that *GenerateFamilyStatRangeNameResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Name != that.Name { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GenerateFamilyStatRangeNameResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GenerateFamilyStatRangeNameResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyCandidateRunsRequest) EqualVT(that *GetFamilyCandidateRunsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyCandidateRunsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyCandidateRunsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyCandidateRunsResponse) EqualVT(that *GetFamilyCandidateRunsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.RunQuery != that.RunQuery { + return false + } + if len(this.CandidateRunIds) != len(that.CandidateRunIds) { + return false + } + for i, vx := range this.CandidateRunIds { + vy := that.CandidateRunIds[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyCandidateRunsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyCandidateRunsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyCandidateRunCountRequest) EqualVT(that *GetFamilyCandidateRunCountRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyCandidateRunCountRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyCandidateRunCountRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyCandidateRunCountResponse) EqualVT(that *GetFamilyCandidateRunCountResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Count != that.Count { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyCandidateRunCountResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyCandidateRunCountResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamilyCandidateRunsRequest) EqualVT(that *ListFamilyCandidateRunsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PageSize != that.PageSize { + return false + } + if this.PageToken != that.PageToken { + return false + } + if this.Filter != that.Filter { + return false + } + if this.OrderBy != that.OrderBy { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamilyCandidateRunsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamilyCandidateRunsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ListFamilyCandidateRunsResponse) EqualVT(that *ListFamilyCandidateRunsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Runs) != len(that.Runs) { + return false + } + for i, vx := range this.Runs { + vy := that.Runs[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v2.Run{} + } + if q == nil { + q = &v2.Run{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*v2.Run) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } + if this.NextPageToken != that.NextPageToken { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ListFamilyCandidateRunsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ListFamilyCandidateRunsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyCandidateRunFilterFieldsRequest) EqualVT(that *GetFamilyCandidateRunFilterFieldsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyCandidateRunFilterFieldsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyCandidateRunFilterFieldsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *GetFamilyCandidateRunFilterFieldsResponse) EqualVT(that *GetFamilyCandidateRunFilterFieldsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.FilterFields) != len(that.FilterFields) { + return false + } + for i, vx := range this.FilterFields { + vy := that.FilterFields[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &v12.FilterField{} + } + if q == nil { + q = &v12.FilterField{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*v12.FilterField) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *GetFamilyCandidateRunFilterFieldsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*GetFamilyCandidateRunFilterFieldsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// FamilyServiceClient is the client API for FamilyService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type FamilyServiceClient interface { + GetFamily(ctx context.Context, in *GetFamilyRequest, opts ...grpc.CallOption) (*GetFamilyResponse, error) + GetFamilies(ctx context.Context, in *GetFamiliesRequest, opts ...grpc.CallOption) (*GetFamiliesResponse, error) + GetFamilyVersion(ctx context.Context, in *GetFamilyVersionRequest, opts ...grpc.CallOption) (*GetFamilyVersionResponse, error) + CreateFamily(ctx context.Context, in *CreateFamilyRequest, opts ...grpc.CallOption) (*CreateFamilyResponse, error) + UpdateFamily(ctx context.Context, in *UpdateFamilyRequest, opts ...grpc.CallOption) (*UpdateFamilyResponse, error) + GetFamilyCandidateRuns(ctx context.Context, in *GetFamilyCandidateRunsRequest, opts ...grpc.CallOption) (*GetFamilyCandidateRunsResponse, error) + GetFamilyCandidateRunCount(ctx context.Context, in *GetFamilyCandidateRunCountRequest, opts ...grpc.CallOption) (*GetFamilyCandidateRunCountResponse, error) + ListFamilyCandidateRuns(ctx context.Context, in *ListFamilyCandidateRunsRequest, opts ...grpc.CallOption) (*ListFamilyCandidateRunsResponse, error) + GetFamilyCandidateRunFilterFields(ctx context.Context, in *GetFamilyCandidateRunFilterFieldsRequest, opts ...grpc.CallOption) (*GetFamilyCandidateRunFilterFieldsResponse, error) + ListFamilies(ctx context.Context, in *ListFamiliesRequest, opts ...grpc.CallOption) (*ListFamiliesResponse, error) + ListFamilyVersions(ctx context.Context, in *ListFamilyVersionsRequest, opts ...grpc.CallOption) (*ListFamilyVersionsResponse, error) + ListFamilyMembers(ctx context.Context, in *ListFamilyMembersRequest, opts ...grpc.CallOption) (*ListFamilyMembersResponse, error) + ListFamilyAlignments(ctx context.Context, in *ListFamilyAlignmentsRequest, opts ...grpc.CallOption) (*ListFamilyAlignmentsResponse, error) + ListFamilyAlignmentPoints(ctx context.Context, in *ListFamilyAlignmentPointsRequest, opts ...grpc.CallOption) (*ListFamilyAlignmentPointsResponse, error) + ImportFamily(ctx context.Context, in *ImportFamilyRequest, opts ...grpc.CallOption) (*ImportFamilyResponse, error) + ImportUpdateFamily(ctx context.Context, in *ImportUpdateFamilyRequest, opts ...grpc.CallOption) (*ImportUpdateFamilyResponse, error) + ExportFamily(ctx context.Context, in *ExportFamilyRequest, opts ...grpc.CallOption) (*ExportFamilyResponse, error) + ValidateFamilyName(ctx context.Context, in *ValidateFamilyNameRequest, opts ...grpc.CallOption) (*ValidateFamilyNameResponse, error) + ValidateFamilyClientKey(ctx context.Context, in *ValidateFamilyClientKeyRequest, opts ...grpc.CallOption) (*ValidateFamilyClientKeyResponse, error) + GetFamilyStat(ctx context.Context, in *GetFamilyStatRequest, opts ...grpc.CallOption) (*GetFamilyStatResponse, error) + GetFamilyStats(ctx context.Context, in *GetFamilyStatsRequest, opts ...grpc.CallOption) (*GetFamilyStatsResponse, error) + CreateFamilyStatRanges(ctx context.Context, in *CreateFamilyStatRangesRequest, opts ...grpc.CallOption) (*CreateFamilyStatRangesResponse, error) + GetFamilyRuleDependencies(ctx context.Context, in *GetFamilyRuleDependenciesRequest, opts ...grpc.CallOption) (*GetFamilyRuleDependenciesResponse, error) + GenerateFamilyStatRangeName(ctx context.Context, in *GenerateFamilyStatRangeNameRequest, opts ...grpc.CallOption) (*GenerateFamilyStatRangeNameResponse, error) +} + +type familyServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewFamilyServiceClient(cc grpc.ClientConnInterface) FamilyServiceClient { + return &familyServiceClient{cc} +} + +func (c *familyServiceClient) GetFamily(ctx context.Context, in *GetFamilyRequest, opts ...grpc.CallOption) (*GetFamilyResponse, error) { + out := new(GetFamilyResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/GetFamily", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) GetFamilies(ctx context.Context, in *GetFamiliesRequest, opts ...grpc.CallOption) (*GetFamiliesResponse, error) { + out := new(GetFamiliesResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/GetFamilies", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) GetFamilyVersion(ctx context.Context, in *GetFamilyVersionRequest, opts ...grpc.CallOption) (*GetFamilyVersionResponse, error) { + out := new(GetFamilyVersionResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/GetFamilyVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) CreateFamily(ctx context.Context, in *CreateFamilyRequest, opts ...grpc.CallOption) (*CreateFamilyResponse, error) { + out := new(CreateFamilyResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/CreateFamily", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) UpdateFamily(ctx context.Context, in *UpdateFamilyRequest, opts ...grpc.CallOption) (*UpdateFamilyResponse, error) { + out := new(UpdateFamilyResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/UpdateFamily", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) GetFamilyCandidateRuns(ctx context.Context, in *GetFamilyCandidateRunsRequest, opts ...grpc.CallOption) (*GetFamilyCandidateRunsResponse, error) { + out := new(GetFamilyCandidateRunsResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/GetFamilyCandidateRuns", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) GetFamilyCandidateRunCount(ctx context.Context, in *GetFamilyCandidateRunCountRequest, opts ...grpc.CallOption) (*GetFamilyCandidateRunCountResponse, error) { + out := new(GetFamilyCandidateRunCountResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/GetFamilyCandidateRunCount", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) ListFamilyCandidateRuns(ctx context.Context, in *ListFamilyCandidateRunsRequest, opts ...grpc.CallOption) (*ListFamilyCandidateRunsResponse, error) { + out := new(ListFamilyCandidateRunsResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/ListFamilyCandidateRuns", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) GetFamilyCandidateRunFilterFields(ctx context.Context, in *GetFamilyCandidateRunFilterFieldsRequest, opts ...grpc.CallOption) (*GetFamilyCandidateRunFilterFieldsResponse, error) { + out := new(GetFamilyCandidateRunFilterFieldsResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/GetFamilyCandidateRunFilterFields", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) ListFamilies(ctx context.Context, in *ListFamiliesRequest, opts ...grpc.CallOption) (*ListFamiliesResponse, error) { + out := new(ListFamiliesResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/ListFamilies", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) ListFamilyVersions(ctx context.Context, in *ListFamilyVersionsRequest, opts ...grpc.CallOption) (*ListFamilyVersionsResponse, error) { + out := new(ListFamilyVersionsResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/ListFamilyVersions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) ListFamilyMembers(ctx context.Context, in *ListFamilyMembersRequest, opts ...grpc.CallOption) (*ListFamilyMembersResponse, error) { + out := new(ListFamilyMembersResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/ListFamilyMembers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) ListFamilyAlignments(ctx context.Context, in *ListFamilyAlignmentsRequest, opts ...grpc.CallOption) (*ListFamilyAlignmentsResponse, error) { + out := new(ListFamilyAlignmentsResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/ListFamilyAlignments", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) ListFamilyAlignmentPoints(ctx context.Context, in *ListFamilyAlignmentPointsRequest, opts ...grpc.CallOption) (*ListFamilyAlignmentPointsResponse, error) { + out := new(ListFamilyAlignmentPointsResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/ListFamilyAlignmentPoints", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) ImportFamily(ctx context.Context, in *ImportFamilyRequest, opts ...grpc.CallOption) (*ImportFamilyResponse, error) { + out := new(ImportFamilyResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/ImportFamily", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) ImportUpdateFamily(ctx context.Context, in *ImportUpdateFamilyRequest, opts ...grpc.CallOption) (*ImportUpdateFamilyResponse, error) { + out := new(ImportUpdateFamilyResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/ImportUpdateFamily", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) ExportFamily(ctx context.Context, in *ExportFamilyRequest, opts ...grpc.CallOption) (*ExportFamilyResponse, error) { + out := new(ExportFamilyResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/ExportFamily", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) ValidateFamilyName(ctx context.Context, in *ValidateFamilyNameRequest, opts ...grpc.CallOption) (*ValidateFamilyNameResponse, error) { + out := new(ValidateFamilyNameResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/ValidateFamilyName", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) ValidateFamilyClientKey(ctx context.Context, in *ValidateFamilyClientKeyRequest, opts ...grpc.CallOption) (*ValidateFamilyClientKeyResponse, error) { + out := new(ValidateFamilyClientKeyResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/ValidateFamilyClientKey", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) GetFamilyStat(ctx context.Context, in *GetFamilyStatRequest, opts ...grpc.CallOption) (*GetFamilyStatResponse, error) { + out := new(GetFamilyStatResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/GetFamilyStat", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) GetFamilyStats(ctx context.Context, in *GetFamilyStatsRequest, opts ...grpc.CallOption) (*GetFamilyStatsResponse, error) { + out := new(GetFamilyStatsResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/GetFamilyStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) CreateFamilyStatRanges(ctx context.Context, in *CreateFamilyStatRangesRequest, opts ...grpc.CallOption) (*CreateFamilyStatRangesResponse, error) { + out := new(CreateFamilyStatRangesResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/CreateFamilyStatRanges", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) GetFamilyRuleDependencies(ctx context.Context, in *GetFamilyRuleDependenciesRequest, opts ...grpc.CallOption) (*GetFamilyRuleDependenciesResponse, error) { + out := new(GetFamilyRuleDependenciesResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/GetFamilyRuleDependencies", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *familyServiceClient) GenerateFamilyStatRangeName(ctx context.Context, in *GenerateFamilyStatRangeNameRequest, opts ...grpc.CallOption) (*GenerateFamilyStatRangeNameResponse, error) { + out := new(GenerateFamilyStatRangeNameResponse) + err := c.cc.Invoke(ctx, "/sift.families.v1.FamilyService/GenerateFamilyStatRangeName", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FamilyServiceServer is the server API for FamilyService service. +// All implementations must embed UnimplementedFamilyServiceServer +// for forward compatibility +type FamilyServiceServer interface { + GetFamily(context.Context, *GetFamilyRequest) (*GetFamilyResponse, error) + GetFamilies(context.Context, *GetFamiliesRequest) (*GetFamiliesResponse, error) + GetFamilyVersion(context.Context, *GetFamilyVersionRequest) (*GetFamilyVersionResponse, error) + CreateFamily(context.Context, *CreateFamilyRequest) (*CreateFamilyResponse, error) + UpdateFamily(context.Context, *UpdateFamilyRequest) (*UpdateFamilyResponse, error) + GetFamilyCandidateRuns(context.Context, *GetFamilyCandidateRunsRequest) (*GetFamilyCandidateRunsResponse, error) + GetFamilyCandidateRunCount(context.Context, *GetFamilyCandidateRunCountRequest) (*GetFamilyCandidateRunCountResponse, error) + ListFamilyCandidateRuns(context.Context, *ListFamilyCandidateRunsRequest) (*ListFamilyCandidateRunsResponse, error) + GetFamilyCandidateRunFilterFields(context.Context, *GetFamilyCandidateRunFilterFieldsRequest) (*GetFamilyCandidateRunFilterFieldsResponse, error) + ListFamilies(context.Context, *ListFamiliesRequest) (*ListFamiliesResponse, error) + ListFamilyVersions(context.Context, *ListFamilyVersionsRequest) (*ListFamilyVersionsResponse, error) + ListFamilyMembers(context.Context, *ListFamilyMembersRequest) (*ListFamilyMembersResponse, error) + ListFamilyAlignments(context.Context, *ListFamilyAlignmentsRequest) (*ListFamilyAlignmentsResponse, error) + ListFamilyAlignmentPoints(context.Context, *ListFamilyAlignmentPointsRequest) (*ListFamilyAlignmentPointsResponse, error) + ImportFamily(context.Context, *ImportFamilyRequest) (*ImportFamilyResponse, error) + ImportUpdateFamily(context.Context, *ImportUpdateFamilyRequest) (*ImportUpdateFamilyResponse, error) + ExportFamily(context.Context, *ExportFamilyRequest) (*ExportFamilyResponse, error) + ValidateFamilyName(context.Context, *ValidateFamilyNameRequest) (*ValidateFamilyNameResponse, error) + ValidateFamilyClientKey(context.Context, *ValidateFamilyClientKeyRequest) (*ValidateFamilyClientKeyResponse, error) + GetFamilyStat(context.Context, *GetFamilyStatRequest) (*GetFamilyStatResponse, error) + GetFamilyStats(context.Context, *GetFamilyStatsRequest) (*GetFamilyStatsResponse, error) + CreateFamilyStatRanges(context.Context, *CreateFamilyStatRangesRequest) (*CreateFamilyStatRangesResponse, error) + GetFamilyRuleDependencies(context.Context, *GetFamilyRuleDependenciesRequest) (*GetFamilyRuleDependenciesResponse, error) + GenerateFamilyStatRangeName(context.Context, *GenerateFamilyStatRangeNameRequest) (*GenerateFamilyStatRangeNameResponse, error) + mustEmbedUnimplementedFamilyServiceServer() +} + +// UnimplementedFamilyServiceServer must be embedded to have forward compatible implementations. +type UnimplementedFamilyServiceServer struct { +} + +func (UnimplementedFamilyServiceServer) GetFamily(context.Context, *GetFamilyRequest) (*GetFamilyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFamily not implemented") +} +func (UnimplementedFamilyServiceServer) GetFamilies(context.Context, *GetFamiliesRequest) (*GetFamiliesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFamilies not implemented") +} +func (UnimplementedFamilyServiceServer) GetFamilyVersion(context.Context, *GetFamilyVersionRequest) (*GetFamilyVersionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFamilyVersion not implemented") +} +func (UnimplementedFamilyServiceServer) CreateFamily(context.Context, *CreateFamilyRequest) (*CreateFamilyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateFamily not implemented") +} +func (UnimplementedFamilyServiceServer) UpdateFamily(context.Context, *UpdateFamilyRequest) (*UpdateFamilyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateFamily not implemented") +} +func (UnimplementedFamilyServiceServer) GetFamilyCandidateRuns(context.Context, *GetFamilyCandidateRunsRequest) (*GetFamilyCandidateRunsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFamilyCandidateRuns not implemented") +} +func (UnimplementedFamilyServiceServer) GetFamilyCandidateRunCount(context.Context, *GetFamilyCandidateRunCountRequest) (*GetFamilyCandidateRunCountResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFamilyCandidateRunCount not implemented") +} +func (UnimplementedFamilyServiceServer) ListFamilyCandidateRuns(context.Context, *ListFamilyCandidateRunsRequest) (*ListFamilyCandidateRunsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFamilyCandidateRuns not implemented") +} +func (UnimplementedFamilyServiceServer) GetFamilyCandidateRunFilterFields(context.Context, *GetFamilyCandidateRunFilterFieldsRequest) (*GetFamilyCandidateRunFilterFieldsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFamilyCandidateRunFilterFields not implemented") +} +func (UnimplementedFamilyServiceServer) ListFamilies(context.Context, *ListFamiliesRequest) (*ListFamiliesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFamilies not implemented") +} +func (UnimplementedFamilyServiceServer) ListFamilyVersions(context.Context, *ListFamilyVersionsRequest) (*ListFamilyVersionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFamilyVersions not implemented") +} +func (UnimplementedFamilyServiceServer) ListFamilyMembers(context.Context, *ListFamilyMembersRequest) (*ListFamilyMembersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFamilyMembers not implemented") +} +func (UnimplementedFamilyServiceServer) ListFamilyAlignments(context.Context, *ListFamilyAlignmentsRequest) (*ListFamilyAlignmentsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFamilyAlignments not implemented") +} +func (UnimplementedFamilyServiceServer) ListFamilyAlignmentPoints(context.Context, *ListFamilyAlignmentPointsRequest) (*ListFamilyAlignmentPointsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFamilyAlignmentPoints not implemented") +} +func (UnimplementedFamilyServiceServer) ImportFamily(context.Context, *ImportFamilyRequest) (*ImportFamilyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ImportFamily not implemented") +} +func (UnimplementedFamilyServiceServer) ImportUpdateFamily(context.Context, *ImportUpdateFamilyRequest) (*ImportUpdateFamilyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ImportUpdateFamily not implemented") +} +func (UnimplementedFamilyServiceServer) ExportFamily(context.Context, *ExportFamilyRequest) (*ExportFamilyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ExportFamily not implemented") +} +func (UnimplementedFamilyServiceServer) ValidateFamilyName(context.Context, *ValidateFamilyNameRequest) (*ValidateFamilyNameResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ValidateFamilyName not implemented") +} +func (UnimplementedFamilyServiceServer) ValidateFamilyClientKey(context.Context, *ValidateFamilyClientKeyRequest) (*ValidateFamilyClientKeyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ValidateFamilyClientKey not implemented") +} +func (UnimplementedFamilyServiceServer) GetFamilyStat(context.Context, *GetFamilyStatRequest) (*GetFamilyStatResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFamilyStat not implemented") +} +func (UnimplementedFamilyServiceServer) GetFamilyStats(context.Context, *GetFamilyStatsRequest) (*GetFamilyStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFamilyStats not implemented") +} +func (UnimplementedFamilyServiceServer) CreateFamilyStatRanges(context.Context, *CreateFamilyStatRangesRequest) (*CreateFamilyStatRangesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateFamilyStatRanges not implemented") +} +func (UnimplementedFamilyServiceServer) GetFamilyRuleDependencies(context.Context, *GetFamilyRuleDependenciesRequest) (*GetFamilyRuleDependenciesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFamilyRuleDependencies not implemented") +} +func (UnimplementedFamilyServiceServer) GenerateFamilyStatRangeName(context.Context, *GenerateFamilyStatRangeNameRequest) (*GenerateFamilyStatRangeNameResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GenerateFamilyStatRangeName not implemented") +} +func (UnimplementedFamilyServiceServer) mustEmbedUnimplementedFamilyServiceServer() {} + +// UnsafeFamilyServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to FamilyServiceServer will +// result in compilation errors. +type UnsafeFamilyServiceServer interface { + mustEmbedUnimplementedFamilyServiceServer() +} + +func RegisterFamilyServiceServer(s grpc.ServiceRegistrar, srv FamilyServiceServer) { + s.RegisterService(&FamilyService_ServiceDesc, srv) +} + +func _FamilyService_GetFamily_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFamilyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).GetFamily(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/GetFamily", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).GetFamily(ctx, req.(*GetFamilyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_GetFamilies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFamiliesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).GetFamilies(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/GetFamilies", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).GetFamilies(ctx, req.(*GetFamiliesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_GetFamilyVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFamilyVersionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).GetFamilyVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/GetFamilyVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).GetFamilyVersion(ctx, req.(*GetFamilyVersionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_CreateFamily_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateFamilyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).CreateFamily(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/CreateFamily", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).CreateFamily(ctx, req.(*CreateFamilyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_UpdateFamily_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateFamilyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).UpdateFamily(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/UpdateFamily", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).UpdateFamily(ctx, req.(*UpdateFamilyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_GetFamilyCandidateRuns_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFamilyCandidateRunsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).GetFamilyCandidateRuns(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/GetFamilyCandidateRuns", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).GetFamilyCandidateRuns(ctx, req.(*GetFamilyCandidateRunsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_GetFamilyCandidateRunCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFamilyCandidateRunCountRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).GetFamilyCandidateRunCount(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/GetFamilyCandidateRunCount", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).GetFamilyCandidateRunCount(ctx, req.(*GetFamilyCandidateRunCountRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_ListFamilyCandidateRuns_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFamilyCandidateRunsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).ListFamilyCandidateRuns(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/ListFamilyCandidateRuns", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).ListFamilyCandidateRuns(ctx, req.(*ListFamilyCandidateRunsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_GetFamilyCandidateRunFilterFields_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFamilyCandidateRunFilterFieldsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).GetFamilyCandidateRunFilterFields(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/GetFamilyCandidateRunFilterFields", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).GetFamilyCandidateRunFilterFields(ctx, req.(*GetFamilyCandidateRunFilterFieldsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_ListFamilies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFamiliesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).ListFamilies(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/ListFamilies", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).ListFamilies(ctx, req.(*ListFamiliesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_ListFamilyVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFamilyVersionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).ListFamilyVersions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/ListFamilyVersions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).ListFamilyVersions(ctx, req.(*ListFamilyVersionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_ListFamilyMembers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFamilyMembersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).ListFamilyMembers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/ListFamilyMembers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).ListFamilyMembers(ctx, req.(*ListFamilyMembersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_ListFamilyAlignments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFamilyAlignmentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).ListFamilyAlignments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/ListFamilyAlignments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).ListFamilyAlignments(ctx, req.(*ListFamilyAlignmentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_ListFamilyAlignmentPoints_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFamilyAlignmentPointsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).ListFamilyAlignmentPoints(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/ListFamilyAlignmentPoints", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).ListFamilyAlignmentPoints(ctx, req.(*ListFamilyAlignmentPointsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_ImportFamily_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ImportFamilyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).ImportFamily(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/ImportFamily", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).ImportFamily(ctx, req.(*ImportFamilyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_ImportUpdateFamily_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ImportUpdateFamilyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).ImportUpdateFamily(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/ImportUpdateFamily", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).ImportUpdateFamily(ctx, req.(*ImportUpdateFamilyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_ExportFamily_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExportFamilyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).ExportFamily(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/ExportFamily", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).ExportFamily(ctx, req.(*ExportFamilyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_ValidateFamilyName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidateFamilyNameRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).ValidateFamilyName(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/ValidateFamilyName", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).ValidateFamilyName(ctx, req.(*ValidateFamilyNameRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_ValidateFamilyClientKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidateFamilyClientKeyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).ValidateFamilyClientKey(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/ValidateFamilyClientKey", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).ValidateFamilyClientKey(ctx, req.(*ValidateFamilyClientKeyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_GetFamilyStat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFamilyStatRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).GetFamilyStat(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/GetFamilyStat", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).GetFamilyStat(ctx, req.(*GetFamilyStatRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_GetFamilyStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFamilyStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).GetFamilyStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/GetFamilyStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).GetFamilyStats(ctx, req.(*GetFamilyStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_CreateFamilyStatRanges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateFamilyStatRangesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).CreateFamilyStatRanges(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/CreateFamilyStatRanges", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).CreateFamilyStatRanges(ctx, req.(*CreateFamilyStatRangesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_GetFamilyRuleDependencies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFamilyRuleDependenciesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).GetFamilyRuleDependencies(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/GetFamilyRuleDependencies", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).GetFamilyRuleDependencies(ctx, req.(*GetFamilyRuleDependenciesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FamilyService_GenerateFamilyStatRangeName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateFamilyStatRangeNameRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FamilyServiceServer).GenerateFamilyStatRangeName(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/sift.families.v1.FamilyService/GenerateFamilyStatRangeName", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FamilyServiceServer).GenerateFamilyStatRangeName(ctx, req.(*GenerateFamilyStatRangeNameRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// FamilyService_ServiceDesc is the grpc.ServiceDesc for FamilyService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var FamilyService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "sift.families.v1.FamilyService", + HandlerType: (*FamilyServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetFamily", + Handler: _FamilyService_GetFamily_Handler, + }, + { + MethodName: "GetFamilies", + Handler: _FamilyService_GetFamilies_Handler, + }, + { + MethodName: "GetFamilyVersion", + Handler: _FamilyService_GetFamilyVersion_Handler, + }, + { + MethodName: "CreateFamily", + Handler: _FamilyService_CreateFamily_Handler, + }, + { + MethodName: "UpdateFamily", + Handler: _FamilyService_UpdateFamily_Handler, + }, + { + MethodName: "GetFamilyCandidateRuns", + Handler: _FamilyService_GetFamilyCandidateRuns_Handler, + }, + { + MethodName: "GetFamilyCandidateRunCount", + Handler: _FamilyService_GetFamilyCandidateRunCount_Handler, + }, + { + MethodName: "ListFamilyCandidateRuns", + Handler: _FamilyService_ListFamilyCandidateRuns_Handler, + }, + { + MethodName: "GetFamilyCandidateRunFilterFields", + Handler: _FamilyService_GetFamilyCandidateRunFilterFields_Handler, + }, + { + MethodName: "ListFamilies", + Handler: _FamilyService_ListFamilies_Handler, + }, + { + MethodName: "ListFamilyVersions", + Handler: _FamilyService_ListFamilyVersions_Handler, + }, + { + MethodName: "ListFamilyMembers", + Handler: _FamilyService_ListFamilyMembers_Handler, + }, + { + MethodName: "ListFamilyAlignments", + Handler: _FamilyService_ListFamilyAlignments_Handler, + }, + { + MethodName: "ListFamilyAlignmentPoints", + Handler: _FamilyService_ListFamilyAlignmentPoints_Handler, + }, + { + MethodName: "ImportFamily", + Handler: _FamilyService_ImportFamily_Handler, + }, + { + MethodName: "ImportUpdateFamily", + Handler: _FamilyService_ImportUpdateFamily_Handler, + }, + { + MethodName: "ExportFamily", + Handler: _FamilyService_ExportFamily_Handler, + }, + { + MethodName: "ValidateFamilyName", + Handler: _FamilyService_ValidateFamilyName_Handler, + }, + { + MethodName: "ValidateFamilyClientKey", + Handler: _FamilyService_ValidateFamilyClientKey_Handler, + }, + { + MethodName: "GetFamilyStat", + Handler: _FamilyService_GetFamilyStat_Handler, + }, + { + MethodName: "GetFamilyStats", + Handler: _FamilyService_GetFamilyStats_Handler, + }, + { + MethodName: "CreateFamilyStatRanges", + Handler: _FamilyService_CreateFamilyStatRanges_Handler, + }, + { + MethodName: "GetFamilyRuleDependencies", + Handler: _FamilyService_GetFamilyRuleDependencies_Handler, + }, + { + MethodName: "GenerateFamilyStatRangeName", + Handler: _FamilyService_GenerateFamilyStatRangeName_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "sift/families/v1/families.proto", +} + +func (m *Family) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Family) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Family) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x52 + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x4a + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x42 + } + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if len(m.CurrentVersionId) > 0 { + i -= len(m.CurrentVersionId) + copy(dAtA[i:], m.CurrentVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CurrentVersionId))) + i-- + dAtA[i] = 0x1a + } + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyVersion) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyVersion) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyVersion) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x7a + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x72 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x6a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x62 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x5a + } + if len(m.SigmaDefaultValues) > 0 { + for iNdEx := len(m.SigmaDefaultValues) - 1; iNdEx >= 0; iNdEx-- { + f1 := math.Float64bits(float64(m.SigmaDefaultValues[iNdEx])) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f1)) + } + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SigmaDefaultValues)*8)) + i-- + dAtA[i] = 0x52 + } + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x4a + } + } + if len(m.ChangeMessage) > 0 { + i -= len(m.ChangeMessage) + copy(dAtA[i:], m.ChangeMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChangeMessage))) + i-- + dAtA[i] = 0x42 + } + if len(m.UserNotes) > 0 { + i -= len(m.UserNotes) + copy(dAtA[i:], m.UserNotes) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.UserNotes))) + i-- + dAtA[i] = 0x3a + } + if len(m.RunQuery) > 0 { + i -= len(m.RunQuery) + copy(dAtA[i:], m.RunQuery) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunQuery))) + i-- + dAtA[i] = 0x32 + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x2a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x22 + } + if m.Version != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version)) + i-- + dAtA[i] = 0x18 + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyRun) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyRun) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyRun) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.AddedInVersionId) > 0 { + i -= len(m.AddedInVersionId) + copy(dAtA[i:], m.AddedInVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AddedInVersionId))) + i-- + dAtA[i] = 0x42 + } + if len(m.AddedByUserId) > 0 { + i -= len(m.AddedByUserId) + copy(dAtA[i:], m.AddedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AddedByUserId))) + i-- + dAtA[i] = 0x3a + } + if m.AddedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.AddedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if len(m.Rationale) > 0 { + i -= len(m.Rationale) + copy(dAtA[i:], m.Rationale) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Rationale))) + i-- + dAtA[i] = 0x2a + } + if m.IsExclusion { + i-- + if m.IsExclusion { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if len(m.RunId) > 0 { + i -= len(m.RunId) + copy(dAtA[i:], m.RunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunId))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyRunId) > 0 { + i -= len(m.FamilyRunId) + copy(dAtA[i:], m.FamilyRunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyRunId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyAlignment) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyAlignment) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyAlignment) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.DefaultAlignment.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.FamilyAlignmentPoints) > 0 { + for iNdEx := len(m.FamilyAlignmentPoints) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyAlignmentPoints[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x22 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentId) > 0 { + i -= len(m.FamilyAlignmentId) + copy(dAtA[i:], m.FamilyAlignmentId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyAlignment_Run) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyAlignment_Run) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Run != nil { + size, err := m.Run.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *FamilyAlignment_Annotation) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyAlignment_Annotation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *FamilyAlignment_Timestamp) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyAlignment_Timestamp) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Timestamp != nil { + size, err := m.Timestamp.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} +func (m *FamilyAlignmentPoint) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyAlignmentPoint) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyAlignmentPoint) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Alignment.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.FamilyAlignmentId) > 0 { + i -= len(m.FamilyAlignmentId) + copy(dAtA[i:], m.FamilyAlignmentId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentId))) + i-- + dAtA[i] = 0x22 + } + if len(m.RunId) > 0 { + i -= len(m.RunId) + copy(dAtA[i:], m.RunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunId))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyRunId) > 0 { + i -= len(m.FamilyRunId) + copy(dAtA[i:], m.FamilyRunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyRunId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentPointId) > 0 { + i -= len(m.FamilyAlignmentPointId) + copy(dAtA[i:], m.FamilyAlignmentPointId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentPointId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyAlignmentPoint_Run) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyAlignmentPoint_Run) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Run != nil { + size, err := m.Run.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *FamilyAlignmentPoint_Annotation) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyAlignmentPoint_Annotation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *FamilyAlignmentPoint_Timestamp) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyAlignmentPoint_Timestamp) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Timestamp != nil { + size, err := m.Timestamp.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} +func (m *RunAlignment) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RunAlignment) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *RunAlignment) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Bound != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Bound)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *DefaultAnnotationAlignment) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DefaultAnnotationAlignment) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *DefaultAnnotationAlignment) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.OccurrenceIndex != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OccurrenceIndex)) + i-- + dAtA[i] = 0x20 + } + if m.Occurrence != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Occurrence)) + i-- + dAtA[i] = 0x18 + } + if m.Bound != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Bound)) + i-- + dAtA[i] = 0x10 + } + if len(m.AnnotationName) > 0 { + i -= len(m.AnnotationName) + copy(dAtA[i:], m.AnnotationName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TimestampAlignment) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TimestampAlignment) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *TimestampAlignment) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Timestamp != nil { + size, err := (*timestamppb1.Timestamp)(m.Timestamp).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AnnotationAlignment) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnnotationAlignment) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *AnnotationAlignment) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Bound != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Bound)) + i-- + dAtA[i] = 0x10 + } + if len(m.AnnotationId) > 0 { + i -= len(m.AnnotationId) + copy(dAtA[i:], m.AnnotationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyDetails) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyDetails) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyDetails) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStats) > 0 { + for iNdEx := len(m.FamilyStats) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStats[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + } + if len(m.FamilyAlignments) > 0 { + for iNdEx := len(m.FamilyAlignments) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyAlignments[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + } + if len(m.FamilyRuns) > 0 { + for iNdEx := len(m.FamilyRuns) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyRuns[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + if m.FamilyVersion != nil { + size, err := m.FamilyVersion.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.FamilyIdentifier.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyRequest_FamilyId) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyRequest_FamilyId) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *GetFamilyRequest_ClientKey) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyRequest_ClientKey) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *GetFamilyResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamiliesRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamiliesRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamiliesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ClientKeys) > 0 { + for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ClientKeys[iNdEx]) + copy(dAtA[i:], m.ClientKeys[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.FamilyIds) > 0 { + for iNdEx := len(m.FamilyIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FamilyIds[iNdEx]) + copy(dAtA[i:], m.FamilyIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *GetFamiliesResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamiliesResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamiliesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Families) > 0 { + for iNdEx := len(m.Families) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Families[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyVersionRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyVersionRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyVersionRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyVersionResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyVersionResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyVersionResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListFamiliesRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamiliesRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamiliesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListFamiliesResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamiliesResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamiliesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Families) > 0 { + for iNdEx := len(m.Families) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Families[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ListFamily) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamily) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamily) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.FamilyVersion != nil { + size, err := m.FamilyVersion.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreateFamilyRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateFamilyRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreateFamilyRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStats) > 0 { + for iNdEx := len(m.FamilyStats) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStats[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + } + if len(m.FamilyAlignments) > 0 { + for iNdEx := len(m.FamilyAlignments) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyAlignments[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + } + if len(m.FamilyRuns) > 0 { + for iNdEx := len(m.FamilyRuns) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyRuns[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + if m.FamilyVersion != nil { + size, err := m.FamilyVersion.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreateFamilyResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateFamilyResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreateFamilyResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdateFamilyRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateFamilyRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UpdateFamilyRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.FamilyIdentifier.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.UpdateMask != nil { + size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} + +func (m *UpdateFamilyRequest_FamilyId) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UpdateFamilyRequest_FamilyId) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *UpdateFamilyRequest_ClientKey) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UpdateFamilyRequest_ClientKey) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *UpdateFamilyResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateFamilyResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *UpdateFamilyResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStats) > 0 { + for iNdEx := len(m.FamilyStats) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStats[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyVersionsRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyVersionsRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamilyVersionsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x1a + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyVersionsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyVersionsResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamilyVersionsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyVersions) > 0 { + for iNdEx := len(m.FamilyVersions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyVersions[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyMembersRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyMembersRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamilyMembersRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x10 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyMembersResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyMembersResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamilyMembersResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyRuns) > 0 { + for iNdEx := len(m.FamilyRuns) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyRuns[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyAlignmentsRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyAlignmentsRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamilyAlignmentsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x10 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyAlignmentsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyAlignmentsResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamilyAlignmentsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignments) > 0 { + for iNdEx := len(m.FamilyAlignments) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyAlignments[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyAlignmentPointsRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyAlignmentPointsRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamilyAlignmentPointsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x10 + } + if len(m.FamilyAlignmentId) > 0 { + i -= len(m.FamilyAlignmentId) + copy(dAtA[i:], m.FamilyAlignmentId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyAlignmentPointsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyAlignmentPointsResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamilyAlignmentPointsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentPoints) > 0 { + for iNdEx := len(m.FamilyAlignmentPoints) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyAlignmentPoints[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ImportFamilyRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ImportFamilyRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ImportFamilyRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyYaml) > 0 { + i -= len(m.FamilyYaml) + copy(dAtA[i:], m.FamilyYaml) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyYaml))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ImportFamilyResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ImportFamilyResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ImportFamilyResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ImportUpdateFamilyRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ImportUpdateFamilyRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ImportUpdateFamilyRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.FamilyIdentifier.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.UpdateMask != nil { + size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if len(m.FamilyYaml) > 0 { + i -= len(m.FamilyYaml) + copy(dAtA[i:], m.FamilyYaml) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyYaml))) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} + +func (m *ImportUpdateFamilyRequest_FamilyId) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ImportUpdateFamilyRequest_FamilyId) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *ImportUpdateFamilyRequest_ClientKey) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ImportUpdateFamilyRequest_ClientKey) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *ImportUpdateFamilyResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ImportUpdateFamilyResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ImportUpdateFamilyResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ExportFamilyRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExportFamilyRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExportFamilyRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.FamilyIdentifier.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *ExportFamilyRequest_FamilyId) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExportFamilyRequest_FamilyId) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *ExportFamilyRequest_ClientKey) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExportFamilyRequest_ClientKey) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *ExportFamilyRequest_FamilyVersionId) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExportFamilyRequest_FamilyVersionId) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0x1a + return len(dAtA) - i, nil +} +func (m *ExportFamilyResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExportFamilyResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExportFamilyResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ExportedFamily) > 0 { + i -= len(m.ExportedFamily) + copy(dAtA[i:], m.ExportedFamily) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ExportedFamily))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValidateFamilyNameRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidateFamilyNameRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ValidateFamilyNameRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyName) > 0 { + i -= len(m.FamilyName) + copy(dAtA[i:], m.FamilyName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValidateFamilyNameResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidateFamilyNameResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ValidateFamilyNameResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Result.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *ValidateFamilyNameResponse_Success) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ValidateFamilyNameResponse_Success) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} +func (m *ValidateFamilyNameResponse_ErrorMessage) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ValidateFamilyNameResponse_ErrorMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ErrorMessage) + copy(dAtA[i:], m.ErrorMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ErrorMessage))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *ValidateFamilyClientKeyRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidateFamilyClientKeyRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ValidateFamilyClientKeyRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValidateFamilyClientKeyResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidateFamilyClientKeyResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ValidateFamilyClientKeyResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Result.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *ValidateFamilyClientKeyResponse_Success) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ValidateFamilyClientKeyResponse_Success) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} +func (m *ValidateFamilyClientKeyResponse_ErrorMessage) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ValidateFamilyClientKeyResponse_ErrorMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ErrorMessage) + copy(dAtA[i:], m.ErrorMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ErrorMessage))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *FamilyStat) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStat) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStat) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x5a + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x52 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x4a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if len(m.DefaultChannelNames) > 0 { + for iNdEx := len(m.DefaultChannelNames) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.DefaultChannelNames[iNdEx]) + copy(dAtA[i:], m.DefaultChannelNames[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DefaultChannelNames[iNdEx]))) + i-- + dAtA[i] = 0x32 + } + } + if m.SampleRate != 0 { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.SampleRate)))) + i-- + dAtA[i] = 0x29 + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x22 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyStatId) > 0 { + i -= len(m.FamilyStatId) + copy(dAtA[i:], m.FamilyStatId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyStatExpression) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStatExpression) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatExpression) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Expression.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.FamilyStatId) > 0 { + i -= len(m.FamilyStatId) + copy(dAtA[i:], m.FamilyStatId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyStatExpressionId) > 0 { + i -= len(m.FamilyStatExpressionId) + copy(dAtA[i:], m.FamilyStatExpressionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatExpressionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyStatExpression_Avg) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatExpression_Avg) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Avg != nil { + size, err := (*emptypb1.Empty)(m.Avg).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Median) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatExpression_Median) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Median != nil { + size, err := (*emptypb1.Empty)(m.Median).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Min) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatExpression_Min) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Min != nil { + size, err := (*emptypb1.Empty)(m.Min).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Max) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatExpression_Max) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Max != nil { + size, err := (*emptypb1.Empty)(m.Max).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Stdev) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatExpression_Stdev) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Stdev != nil { + size, err := (*emptypb1.Empty)(m.Stdev).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Sum) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatExpression_Sum) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sum != nil { + size, err := (*emptypb1.Empty)(m.Sum).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_InputCount) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatExpression_InputCount) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.InputCount != nil { + size, err := (*emptypb1.Empty)(m.InputCount).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Sigma) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatExpression_Sigma) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sigma != nil { + size, err := (*emptypb1.Empty)(m.Sigma).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 + } + return len(dAtA) - i, nil +} +func (m *FamilyStatChannel) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStatChannel) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatChannel) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.AlignmentPointId) > 0 { + i -= len(m.AlignmentPointId) + copy(dAtA[i:], m.AlignmentPointId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AlignmentPointId))) + i-- + dAtA[i] = 0x22 + } + if len(m.ChannelId) > 0 { + i -= len(m.ChannelId) + copy(dAtA[i:], m.ChannelId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyStatId) > 0 { + i -= len(m.FamilyStatId) + copy(dAtA[i:], m.FamilyStatId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyStatChannelId) > 0 { + i -= len(m.FamilyStatChannelId) + copy(dAtA[i:], m.FamilyStatChannelId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatChannelId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WindowType) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WindowType) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *WindowType) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Duration != nil { + size, err := (*durationpb1.Duration)(m.Duration).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentId) > 0 { + i -= len(m.FamilyAlignmentId) + copy(dAtA[i:], m.FamilyAlignmentId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyStatRange) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStatRange) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatRange) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.WindowEnd != nil { + size, err := m.WindowEnd.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if m.WindowStart != nil { + size, err := m.WindowStart.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x22 + } + if len(m.FamilyAlignmentId) > 0 { + i -= len(m.FamilyAlignmentId) + copy(dAtA[i:], m.FamilyAlignmentId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentId))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyStatId) > 0 { + i -= len(m.FamilyStatId) + copy(dAtA[i:], m.FamilyStatId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyStatRangeId) > 0 { + i -= len(m.FamilyStatRangeId) + copy(dAtA[i:], m.FamilyStatRangeId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatRangeId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyStatDetails) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStatDetails) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatDetails) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatRanges) > 0 { + for iNdEx := len(m.FamilyStatRanges) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStatRanges[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + } + if len(m.FamilyStatChannels) > 0 { + for iNdEx := len(m.FamilyStatChannels) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStatChannels[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + if len(m.FamilyStatExpressions) > 0 { + for iNdEx := len(m.FamilyStatExpressions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStatExpressions[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + } + if m.FamilyStat != nil { + size, err := m.FamilyStat.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyStatRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyStatRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyStatRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatId) > 0 { + i -= len(m.FamilyStatId) + copy(dAtA[i:], m.FamilyStatId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyStatResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyStatResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyStatResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.FamilyStatDetails != nil { + size, err := m.FamilyStatDetails.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyStatsRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyStatsRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyStatsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyStatsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyStatsResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyStatsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatsDetails) > 0 { + for iNdEx := len(m.FamilyStatsDetails) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStatsDetails[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *CreateFamilyStatRangesRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateFamilyStatRangesRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreateFamilyStatRangesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatRanges) > 0 { + for iNdEx := len(m.FamilyStatRanges) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStatRanges[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + } + if len(m.FamilyStatIds) > 0 { + for iNdEx := len(m.FamilyStatIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FamilyStatIds[iNdEx]) + copy(dAtA[i:], m.FamilyStatIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *CreateFamilyStatRangesResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateFamilyStatRangesResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CreateFamilyStatRangesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStats) > 0 { + for iNdEx := len(m.FamilyStats) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStats[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyRuleDependenciesRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyRuleDependenciesRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyRuleDependenciesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyRuleDependenciesResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyRuleDependenciesResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyRuleDependenciesResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.RuleDependencies) > 0 { + for iNdEx := len(m.RuleDependencies) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.RuleDependencies[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *FamilyRuleDependency) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyRuleDependency) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyRuleDependency) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.StatReference != nil { + if vtmsg, ok := interface{}(m.StatReference).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.StatReference) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x1a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AbstractWindowType) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AbstractWindowType) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *AbstractWindowType) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Duration != nil { + size, err := (*durationpb1.Duration)(m.Duration).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentName) > 0 { + i -= len(m.FamilyAlignmentName) + copy(dAtA[i:], m.FamilyAlignmentName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GenerateFamilyStatRangeNameRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GenerateFamilyStatRangeNameRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GenerateFamilyStatRangeNameRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.WindowEnd != nil { + size, err := m.WindowEnd.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if m.WindowStart != nil { + size, err := m.WindowStart.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentName) > 0 { + i -= len(m.FamilyAlignmentName) + copy(dAtA[i:], m.FamilyAlignmentName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GenerateFamilyStatRangeNameResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GenerateFamilyStatRangeNameResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GenerateFamilyStatRangeNameResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunsRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunsRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunsResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.CandidateRunIds) > 0 { + for iNdEx := len(m.CandidateRunIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.CandidateRunIds[iNdEx]) + copy(dAtA[i:], m.CandidateRunIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CandidateRunIds[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.RunQuery) > 0 { + i -= len(m.RunQuery) + copy(dAtA[i:], m.RunQuery) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunQuery))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunCountRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunCountRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunCountRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunCountResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunCountResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunCountResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Count != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Count)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyCandidateRunsRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyCandidateRunsRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamilyCandidateRunsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0x2a + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyCandidateRunsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyCandidateRunsResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ListFamilyCandidateRunsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Runs) > 0 { + for iNdEx := len(m.Runs) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Runs[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Runs[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunFilterFieldsRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunFilterFieldsRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunFilterFieldsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunFilterFieldsResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunFilterFieldsResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunFilterFieldsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FilterFields) > 0 { + for iNdEx := len(m.FilterFields) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.FilterFields[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.FilterFields[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Family) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Family) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *Family) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x52 + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x4a + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x42 + } + if m.ArchivedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ArchivedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if len(m.CurrentVersionId) > 0 { + i -= len(m.CurrentVersionId) + copy(dAtA[i:], m.CurrentVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CurrentVersionId))) + i-- + dAtA[i] = 0x1a + } + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyVersion) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyVersion) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyVersion) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x7a + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x72 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x6a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x62 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x5a + } + if len(m.SigmaDefaultValues) > 0 { + for iNdEx := len(m.SigmaDefaultValues) - 1; iNdEx >= 0; iNdEx-- { + f1 := math.Float64bits(float64(m.SigmaDefaultValues[iNdEx])) + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f1)) + } + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SigmaDefaultValues)*8)) + i-- + dAtA[i] = 0x52 + } + if len(m.Metadata) > 0 { + for iNdEx := len(m.Metadata) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Metadata[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Metadata[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x4a + } + } + if len(m.ChangeMessage) > 0 { + i -= len(m.ChangeMessage) + copy(dAtA[i:], m.ChangeMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChangeMessage))) + i-- + dAtA[i] = 0x42 + } + if len(m.UserNotes) > 0 { + i -= len(m.UserNotes) + copy(dAtA[i:], m.UserNotes) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.UserNotes))) + i-- + dAtA[i] = 0x3a + } + if len(m.RunQuery) > 0 { + i -= len(m.RunQuery) + copy(dAtA[i:], m.RunQuery) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunQuery))) + i-- + dAtA[i] = 0x32 + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x2a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x22 + } + if m.Version != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Version)) + i-- + dAtA[i] = 0x18 + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyRun) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyRun) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyRun) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.AddedInVersionId) > 0 { + i -= len(m.AddedInVersionId) + copy(dAtA[i:], m.AddedInVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AddedInVersionId))) + i-- + dAtA[i] = 0x42 + } + if len(m.AddedByUserId) > 0 { + i -= len(m.AddedByUserId) + copy(dAtA[i:], m.AddedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AddedByUserId))) + i-- + dAtA[i] = 0x3a + } + if m.AddedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.AddedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if len(m.Rationale) > 0 { + i -= len(m.Rationale) + copy(dAtA[i:], m.Rationale) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Rationale))) + i-- + dAtA[i] = 0x2a + } + if m.IsExclusion { + i-- + if m.IsExclusion { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if len(m.RunId) > 0 { + i -= len(m.RunId) + copy(dAtA[i:], m.RunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunId))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyRunId) > 0 { + i -= len(m.FamilyRunId) + copy(dAtA[i:], m.FamilyRunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyRunId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyAlignment) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyAlignment) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyAlignment) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyAlignmentPoints) > 0 { + for iNdEx := len(m.FamilyAlignmentPoints) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyAlignmentPoints[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + } + if msg, ok := m.DefaultAlignment.(*FamilyAlignment_Timestamp); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.DefaultAlignment.(*FamilyAlignment_Annotation); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.DefaultAlignment.(*FamilyAlignment_Run); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x22 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentId) > 0 { + i -= len(m.FamilyAlignmentId) + copy(dAtA[i:], m.FamilyAlignmentId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyAlignment_Run) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyAlignment_Run) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Run != nil { + size, err := m.Run.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *FamilyAlignment_Annotation) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyAlignment_Annotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *FamilyAlignment_Timestamp) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyAlignment_Timestamp) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Timestamp != nil { + size, err := m.Timestamp.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} +func (m *FamilyAlignmentPoint) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyAlignmentPoint) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyAlignmentPoint) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if msg, ok := m.Alignment.(*FamilyAlignmentPoint_Timestamp); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Alignment.(*FamilyAlignmentPoint_Annotation); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Alignment.(*FamilyAlignmentPoint_Run); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.FamilyAlignmentId) > 0 { + i -= len(m.FamilyAlignmentId) + copy(dAtA[i:], m.FamilyAlignmentId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentId))) + i-- + dAtA[i] = 0x22 + } + if len(m.RunId) > 0 { + i -= len(m.RunId) + copy(dAtA[i:], m.RunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunId))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyRunId) > 0 { + i -= len(m.FamilyRunId) + copy(dAtA[i:], m.FamilyRunId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyRunId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentPointId) > 0 { + i -= len(m.FamilyAlignmentPointId) + copy(dAtA[i:], m.FamilyAlignmentPointId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentPointId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyAlignmentPoint_Run) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyAlignmentPoint_Run) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Run != nil { + size, err := m.Run.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *FamilyAlignmentPoint_Annotation) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyAlignmentPoint_Annotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Annotation != nil { + size, err := m.Annotation.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *FamilyAlignmentPoint_Timestamp) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyAlignmentPoint_Timestamp) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Timestamp != nil { + size, err := m.Timestamp.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} +func (m *RunAlignment) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RunAlignment) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RunAlignment) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Bound != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Bound)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *DefaultAnnotationAlignment) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DefaultAnnotationAlignment) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *DefaultAnnotationAlignment) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.OccurrenceIndex != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OccurrenceIndex)) + i-- + dAtA[i] = 0x20 + } + if m.Occurrence != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Occurrence)) + i-- + dAtA[i] = 0x18 + } + if m.Bound != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Bound)) + i-- + dAtA[i] = 0x10 + } + if len(m.AnnotationName) > 0 { + i -= len(m.AnnotationName) + copy(dAtA[i:], m.AnnotationName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TimestampAlignment) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TimestampAlignment) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *TimestampAlignment) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Timestamp != nil { + size, err := (*timestamppb1.Timestamp)(m.Timestamp).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AnnotationAlignment) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnnotationAlignment) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *AnnotationAlignment) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Bound != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Bound)) + i-- + dAtA[i] = 0x10 + } + if len(m.AnnotationId) > 0 { + i -= len(m.AnnotationId) + copy(dAtA[i:], m.AnnotationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AnnotationId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyDetails) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyDetails) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyDetails) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStats) > 0 { + for iNdEx := len(m.FamilyStats) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStats[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + } + if len(m.FamilyAlignments) > 0 { + for iNdEx := len(m.FamilyAlignments) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyAlignments[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + } + if len(m.FamilyRuns) > 0 { + for iNdEx := len(m.FamilyRuns) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyRuns[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + if m.FamilyVersion != nil { + size, err := m.FamilyVersion.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if msg, ok := m.FamilyIdentifier.(*GetFamilyRequest_ClientKey); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.FamilyIdentifier.(*GetFamilyRequest_FamilyId); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyRequest_FamilyId) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyRequest_FamilyId) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *GetFamilyRequest_ClientKey) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyRequest_ClientKey) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *GetFamilyResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamiliesRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamiliesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamiliesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ClientKeys) > 0 { + for iNdEx := len(m.ClientKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ClientKeys[iNdEx]) + copy(dAtA[i:], m.ClientKeys[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKeys[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.FamilyIds) > 0 { + for iNdEx := len(m.FamilyIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FamilyIds[iNdEx]) + copy(dAtA[i:], m.FamilyIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *GetFamiliesResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamiliesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamiliesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Families) > 0 { + for iNdEx := len(m.Families) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Families[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyVersionRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyVersionRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyVersionRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyVersionResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyVersionResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyVersionResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListFamiliesRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamiliesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamiliesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListFamiliesResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamiliesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamiliesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Families) > 0 { + for iNdEx := len(m.Families) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Families[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ListFamily) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamily) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamily) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.FamilyVersion != nil { + size, err := m.FamilyVersion.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreateFamilyRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateFamilyRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreateFamilyRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStats) > 0 { + for iNdEx := len(m.FamilyStats) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStats[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + } + if len(m.FamilyAlignments) > 0 { + for iNdEx := len(m.FamilyAlignments) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyAlignments[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + } + if len(m.FamilyRuns) > 0 { + for iNdEx := len(m.FamilyRuns) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyRuns[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + if m.FamilyVersion != nil { + size, err := m.FamilyVersion.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CreateFamilyResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateFamilyResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreateFamilyResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UpdateFamilyRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateFamilyRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UpdateFamilyRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.UpdateMask != nil { + size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if msg, ok := m.FamilyIdentifier.(*UpdateFamilyRequest_ClientKey); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.FamilyIdentifier.(*UpdateFamilyRequest_FamilyId); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *UpdateFamilyRequest_FamilyId) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UpdateFamilyRequest_FamilyId) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *UpdateFamilyRequest_ClientKey) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UpdateFamilyRequest_ClientKey) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *UpdateFamilyResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateFamilyResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *UpdateFamilyResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStats) > 0 { + for iNdEx := len(m.FamilyStats) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStats[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyVersionsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyVersionsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamilyVersionsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x1a + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyVersionsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyVersionsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamilyVersionsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyVersions) > 0 { + for iNdEx := len(m.FamilyVersions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyVersions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyMembersRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyMembersRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamilyMembersRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x10 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyMembersResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyMembersResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamilyMembersResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyRuns) > 0 { + for iNdEx := len(m.FamilyRuns) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyRuns[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyAlignmentsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyAlignmentsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamilyAlignmentsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x10 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyAlignmentsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyAlignmentsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamilyAlignmentsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignments) > 0 { + for iNdEx := len(m.FamilyAlignments) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyAlignments[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyAlignmentPointsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyAlignmentPointsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamilyAlignmentPointsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x10 + } + if len(m.FamilyAlignmentId) > 0 { + i -= len(m.FamilyAlignmentId) + copy(dAtA[i:], m.FamilyAlignmentId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyAlignmentPointsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyAlignmentPointsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamilyAlignmentPointsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentPoints) > 0 { + for iNdEx := len(m.FamilyAlignmentPoints) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyAlignmentPoints[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ImportFamilyRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ImportFamilyRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ImportFamilyRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyYaml) > 0 { + i -= len(m.FamilyYaml) + copy(dAtA[i:], m.FamilyYaml) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyYaml))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ImportFamilyResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ImportFamilyResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ImportFamilyResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ImportUpdateFamilyRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ImportUpdateFamilyRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ImportUpdateFamilyRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.UpdateMask != nil { + size, err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if len(m.FamilyYaml) > 0 { + i -= len(m.FamilyYaml) + copy(dAtA[i:], m.FamilyYaml) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyYaml))) + i-- + dAtA[i] = 0x1a + } + if msg, ok := m.FamilyIdentifier.(*ImportUpdateFamilyRequest_ClientKey); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.FamilyIdentifier.(*ImportUpdateFamilyRequest_FamilyId); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *ImportUpdateFamilyRequest_FamilyId) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ImportUpdateFamilyRequest_FamilyId) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *ImportUpdateFamilyRequest_ClientKey) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ImportUpdateFamilyRequest_ClientKey) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *ImportUpdateFamilyResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ImportUpdateFamilyResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ImportUpdateFamilyResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ExportFamilyRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExportFamilyRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ExportFamilyRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if msg, ok := m.FamilyIdentifier.(*ExportFamilyRequest_FamilyVersionId); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.FamilyIdentifier.(*ExportFamilyRequest_ClientKey); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.FamilyIdentifier.(*ExportFamilyRequest_FamilyId); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *ExportFamilyRequest_FamilyId) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ExportFamilyRequest_FamilyId) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} +func (m *ExportFamilyRequest_ClientKey) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ExportFamilyRequest_ClientKey) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *ExportFamilyRequest_FamilyVersionId) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ExportFamilyRequest_FamilyVersionId) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0x1a + return len(dAtA) - i, nil +} +func (m *ExportFamilyResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExportFamilyResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ExportFamilyResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ExportedFamily) > 0 { + i -= len(m.ExportedFamily) + copy(dAtA[i:], m.ExportedFamily) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ExportedFamily))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValidateFamilyNameRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidateFamilyNameRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ValidateFamilyNameRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyName) > 0 { + i -= len(m.FamilyName) + copy(dAtA[i:], m.FamilyName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValidateFamilyNameResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidateFamilyNameResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ValidateFamilyNameResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if msg, ok := m.Result.(*ValidateFamilyNameResponse_ErrorMessage); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Result.(*ValidateFamilyNameResponse_Success); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *ValidateFamilyNameResponse_Success) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ValidateFamilyNameResponse_Success) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} +func (m *ValidateFamilyNameResponse_ErrorMessage) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ValidateFamilyNameResponse_ErrorMessage) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ErrorMessage) + copy(dAtA[i:], m.ErrorMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ErrorMessage))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *ValidateFamilyClientKeyRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidateFamilyClientKeyRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ValidateFamilyClientKeyRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ClientKey) > 0 { + i -= len(m.ClientKey) + copy(dAtA[i:], m.ClientKey) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClientKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValidateFamilyClientKeyResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidateFamilyClientKeyResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ValidateFamilyClientKeyResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if msg, ok := m.Result.(*ValidateFamilyClientKeyResponse_ErrorMessage); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Result.(*ValidateFamilyClientKeyResponse_Success); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *ValidateFamilyClientKeyResponse_Success) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ValidateFamilyClientKeyResponse_Success) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.Success { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} +func (m *ValidateFamilyClientKeyResponse_ErrorMessage) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ValidateFamilyClientKeyResponse_ErrorMessage) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.ErrorMessage) + copy(dAtA[i:], m.ErrorMessage) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ErrorMessage))) + i-- + dAtA[i] = 0x12 + return len(dAtA) - i, nil +} +func (m *FamilyStat) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStat) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStat) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OrganizationId) > 0 { + i -= len(m.OrganizationId) + copy(dAtA[i:], m.OrganizationId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrganizationId))) + i-- + dAtA[i] = 0x5a + } + if len(m.ModifiedByUserId) > 0 { + i -= len(m.ModifiedByUserId) + copy(dAtA[i:], m.ModifiedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ModifiedByUserId))) + i-- + dAtA[i] = 0x52 + } + if len(m.CreatedByUserId) > 0 { + i -= len(m.CreatedByUserId) + copy(dAtA[i:], m.CreatedByUserId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CreatedByUserId))) + i-- + dAtA[i] = 0x4a + } + if m.ModifiedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.ModifiedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + if m.CreatedDate != nil { + size, err := (*timestamppb1.Timestamp)(m.CreatedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if len(m.DefaultChannelNames) > 0 { + for iNdEx := len(m.DefaultChannelNames) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.DefaultChannelNames[iNdEx]) + copy(dAtA[i:], m.DefaultChannelNames[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DefaultChannelNames[iNdEx]))) + i-- + dAtA[i] = 0x32 + } + } + if m.SampleRate != 0 { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.SampleRate)))) + i-- + dAtA[i] = 0x29 + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x22 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyStatId) > 0 { + i -= len(m.FamilyStatId) + copy(dAtA[i:], m.FamilyStatId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyStatExpression) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStatExpression) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatExpression) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if msg, ok := m.Expression.(*FamilyStatExpression_Sigma); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Expression.(*FamilyStatExpression_InputCount); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Expression.(*FamilyStatExpression_Sum); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Expression.(*FamilyStatExpression_Stdev); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Expression.(*FamilyStatExpression_Max); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Expression.(*FamilyStatExpression_Min); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Expression.(*FamilyStatExpression_Median); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.Expression.(*FamilyStatExpression_Avg); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if len(m.FamilyStatId) > 0 { + i -= len(m.FamilyStatId) + copy(dAtA[i:], m.FamilyStatId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyStatExpressionId) > 0 { + i -= len(m.FamilyStatExpressionId) + copy(dAtA[i:], m.FamilyStatExpressionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatExpressionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyStatExpression_Avg) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatExpression_Avg) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Avg != nil { + size, err := (*emptypb1.Empty)(m.Avg).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Median) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatExpression_Median) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Median != nil { + size, err := (*emptypb1.Empty)(m.Median).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Min) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatExpression_Min) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Min != nil { + size, err := (*emptypb1.Empty)(m.Min).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Max) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatExpression_Max) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Max != nil { + size, err := (*emptypb1.Empty)(m.Max).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Stdev) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatExpression_Stdev) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Stdev != nil { + size, err := (*emptypb1.Empty)(m.Stdev).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Sum) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatExpression_Sum) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sum != nil { + size, err := (*emptypb1.Empty)(m.Sum).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x42 + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_InputCount) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatExpression_InputCount) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.InputCount != nil { + size, err := (*emptypb1.Empty)(m.InputCount).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + return len(dAtA) - i, nil +} +func (m *FamilyStatExpression_Sigma) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatExpression_Sigma) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Sigma != nil { + size, err := (*emptypb1.Empty)(m.Sigma).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 + } + return len(dAtA) - i, nil +} +func (m *FamilyStatChannel) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStatChannel) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatChannel) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.AlignmentPointId) > 0 { + i -= len(m.AlignmentPointId) + copy(dAtA[i:], m.AlignmentPointId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AlignmentPointId))) + i-- + dAtA[i] = 0x22 + } + if len(m.ChannelId) > 0 { + i -= len(m.ChannelId) + copy(dAtA[i:], m.ChannelId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelId))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyStatId) > 0 { + i -= len(m.FamilyStatId) + copy(dAtA[i:], m.FamilyStatId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyStatChannelId) > 0 { + i -= len(m.FamilyStatChannelId) + copy(dAtA[i:], m.FamilyStatChannelId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatChannelId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WindowType) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WindowType) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *WindowType) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Duration != nil { + size, err := (*durationpb1.Duration)(m.Duration).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentId) > 0 { + i -= len(m.FamilyAlignmentId) + copy(dAtA[i:], m.FamilyAlignmentId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyStatRange) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStatRange) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatRange) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.WindowEnd != nil { + size, err := m.WindowEnd.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if m.WindowStart != nil { + size, err := m.WindowStart.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x22 + } + if len(m.FamilyAlignmentId) > 0 { + i -= len(m.FamilyAlignmentId) + copy(dAtA[i:], m.FamilyAlignmentId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentId))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyStatId) > 0 { + i -= len(m.FamilyStatId) + copy(dAtA[i:], m.FamilyStatId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatId))) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyStatRangeId) > 0 { + i -= len(m.FamilyStatRangeId) + copy(dAtA[i:], m.FamilyStatRangeId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatRangeId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FamilyStatDetails) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStatDetails) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatDetails) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatRanges) > 0 { + for iNdEx := len(m.FamilyStatRanges) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStatRanges[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + } + if len(m.FamilyStatChannels) > 0 { + for iNdEx := len(m.FamilyStatChannels) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStatChannels[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + if len(m.FamilyStatExpressions) > 0 { + for iNdEx := len(m.FamilyStatExpressions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStatExpressions[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + } + if m.FamilyStat != nil { + size, err := m.FamilyStat.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyStatRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyStatRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyStatRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatId) > 0 { + i -= len(m.FamilyStatId) + copy(dAtA[i:], m.FamilyStatId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyStatResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyStatResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyStatResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.FamilyStatDetails != nil { + size, err := m.FamilyStatDetails.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyStatsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyStatsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyStatsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyStatsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyStatsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyStatsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatsDetails) > 0 { + for iNdEx := len(m.FamilyStatsDetails) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStatsDetails[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *CreateFamilyStatRangesRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateFamilyStatRangesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreateFamilyStatRangesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatRanges) > 0 { + for iNdEx := len(m.FamilyStatRanges) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStatRanges[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + } + if len(m.FamilyStatIds) > 0 { + for iNdEx := len(m.FamilyStatIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FamilyStatIds[iNdEx]) + copy(dAtA[i:], m.FamilyStatIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *CreateFamilyStatRangesResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateFamilyStatRangesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *CreateFamilyStatRangesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStats) > 0 { + for iNdEx := len(m.FamilyStats) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.FamilyStats[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + } + if m.Family != nil { + size, err := m.Family.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyRuleDependenciesRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyRuleDependenciesRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyRuleDependenciesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyRuleDependenciesResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyRuleDependenciesResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyRuleDependenciesResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.RuleDependencies) > 0 { + for iNdEx := len(m.RuleDependencies) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.RuleDependencies[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *FamilyRuleDependency) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyRuleDependency) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyRuleDependency) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.StatReference != nil { + if vtmsg, ok := interface{}(m.StatReference).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.StatReference) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x1a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + } + if len(m.RuleId) > 0 { + i -= len(m.RuleId) + copy(dAtA[i:], m.RuleId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuleId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AbstractWindowType) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AbstractWindowType) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *AbstractWindowType) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Duration != nil { + size, err := (*durationpb1.Duration)(m.Duration).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentName) > 0 { + i -= len(m.FamilyAlignmentName) + copy(dAtA[i:], m.FamilyAlignmentName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GenerateFamilyStatRangeNameRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GenerateFamilyStatRangeNameRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GenerateFamilyStatRangeNameRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.WindowEnd != nil { + size, err := m.WindowEnd.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if m.WindowStart != nil { + size, err := m.WindowStart.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.FamilyAlignmentName) > 0 { + i -= len(m.FamilyAlignmentName) + copy(dAtA[i:], m.FamilyAlignmentName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GenerateFamilyStatRangeNameResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GenerateFamilyStatRangeNameResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GenerateFamilyStatRangeNameResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.CandidateRunIds) > 0 { + for iNdEx := len(m.CandidateRunIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.CandidateRunIds[iNdEx]) + copy(dAtA[i:], m.CandidateRunIds[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CandidateRunIds[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.RunQuery) > 0 { + i -= len(m.RunQuery) + copy(dAtA[i:], m.RunQuery) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RunQuery))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunCountRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunCountRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunCountRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunCountResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunCountResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunCountResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Count != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Count)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyCandidateRunsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyCandidateRunsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamilyCandidateRunsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0x2a + } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Filter) > 0 { + i -= len(m.Filter) + copy(dAtA[i:], m.Filter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Filter))) + i-- + dAtA[i] = 0x1a + } + if len(m.PageToken) > 0 { + i -= len(m.PageToken) + copy(dAtA[i:], m.PageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PageToken))) + i-- + dAtA[i] = 0x12 + } + if m.PageSize != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.PageSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ListFamilyCandidateRunsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListFamilyCandidateRunsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ListFamilyCandidateRunsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.NextPageToken) > 0 { + i -= len(m.NextPageToken) + copy(dAtA[i:], m.NextPageToken) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.NextPageToken))) + i-- + dAtA[i] = 0x12 + } + if len(m.Runs) > 0 { + for iNdEx := len(m.Runs) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Runs[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Runs[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunFilterFieldsRequest) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunFilterFieldsRequest) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunFilterFieldsRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *GetFamilyCandidateRunFilterFieldsResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetFamilyCandidateRunFilterFieldsResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *GetFamilyCandidateRunFilterFieldsResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FilterFields) > 0 { + for iNdEx := len(m.FilterFields) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.FilterFields[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.FilterFields[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Family) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ClientKey) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CurrentVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.IsArchived { + n += 2 + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ArchivedDate != nil { + l = (*timestamppb1.Timestamp)(m.ArchivedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *FamilyVersion) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Version != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Version)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.RunQuery) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.UserNotes) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ChangeMessage) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.Metadata) > 0 { + for _, e := range m.Metadata { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.SigmaDefaultValues) > 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(len(m.SigmaDefaultValues)*8)) + len(m.SigmaDefaultValues)*8 + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *FamilyRun) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyRunId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.RunId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.IsExclusion { + n += 2 + } + l = len(m.Rationale) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.AddedDate != nil { + l = (*timestamppb1.Timestamp)(m.AddedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.AddedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.AddedInVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *FamilyAlignment) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyAlignmentId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if vtmsg, ok := m.DefaultAlignment.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if len(m.FamilyAlignmentPoints) > 0 { + for _, e := range m.FamilyAlignmentPoints { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *FamilyAlignment_Run) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Run != nil { + l = m.Run.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyAlignment_Annotation) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Annotation != nil { + l = m.Annotation.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyAlignment_Timestamp) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Timestamp != nil { + l = m.Timestamp.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyAlignmentPoint) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyAlignmentPointId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyRunId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.RunId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyAlignmentId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if vtmsg, ok := m.Alignment.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *FamilyAlignmentPoint_Run) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Run != nil { + l = m.Run.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyAlignmentPoint_Annotation) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Annotation != nil { + l = m.Annotation.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyAlignmentPoint_Timestamp) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Timestamp != nil { + l = m.Timestamp.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *RunAlignment) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Bound != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Bound)) + } + n += len(m.unknownFields) + return n +} + +func (m *DefaultAnnotationAlignment) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AnnotationName) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Bound != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Bound)) + } + if m.Occurrence != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Occurrence)) + } + if m.OccurrenceIndex != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.OccurrenceIndex)) + } + n += len(m.unknownFields) + return n +} + +func (m *TimestampAlignment) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Timestamp != nil { + l = (*timestamppb1.Timestamp)(m.Timestamp).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *AnnotationAlignment) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AnnotationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Bound != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Bound)) + } + n += len(m.unknownFields) + return n +} + +func (m *FamilyDetails) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Family != nil { + l = m.Family.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.FamilyVersion != nil { + l = m.FamilyVersion.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.FamilyRuns) > 0 { + for _, e := range m.FamilyRuns { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.FamilyAlignments) > 0 { + for _, e := range m.FamilyAlignments { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.FamilyStats) > 0 { + for _, e := range m.FamilyStats { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.FamilyIdentifier.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyRequest_FamilyId) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *GetFamilyRequest_ClientKey) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ClientKey) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *GetFamilyResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Family != nil { + l = m.Family.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamiliesRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FamilyIds) > 0 { + for _, s := range m.FamilyIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.ClientKeys) > 0 { + for _, s := range m.ClientKeys { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamiliesResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Families) > 0 { + for _, e := range m.Families { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyVersionRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyVersionResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Family != nil { + l = m.Family.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamiliesRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamiliesResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Families) > 0 { + for _, e := range m.Families { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamily) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Family != nil { + l = m.Family.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.FamilyVersion != nil { + l = m.FamilyVersion.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *CreateFamilyRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Family != nil { + l = m.Family.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.FamilyVersion != nil { + l = m.FamilyVersion.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.FamilyRuns) > 0 { + for _, e := range m.FamilyRuns { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.FamilyAlignments) > 0 { + for _, e := range m.FamilyAlignments { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.FamilyStats) > 0 { + for _, e := range m.FamilyStats { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *CreateFamilyResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Family != nil { + l = m.Family.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UpdateFamilyRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.FamilyIdentifier.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + if m.Family != nil { + l = m.Family.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.UpdateMask != nil { + l = (*fieldmaskpb1.FieldMask)(m.UpdateMask).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *UpdateFamilyRequest_FamilyId) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *UpdateFamilyRequest_ClientKey) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ClientKey) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *UpdateFamilyResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Family != nil { + l = m.Family.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.FamilyStats) > 0 { + for _, e := range m.FamilyStats { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamilyVersionsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamilyVersionsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FamilyVersions) > 0 { + for _, e := range m.FamilyVersions { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamilyMembersRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamilyMembersResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FamilyRuns) > 0 { + for _, e := range m.FamilyRuns { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamilyAlignmentsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamilyAlignmentsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FamilyAlignments) > 0 { + for _, e := range m.FamilyAlignments { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamilyAlignmentPointsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyAlignmentId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamilyAlignmentPointsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FamilyAlignmentPoints) > 0 { + for _, e := range m.FamilyAlignmentPoints { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ImportFamilyRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyYaml) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ImportFamilyResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Family != nil { + l = m.Family.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ImportUpdateFamilyRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.FamilyIdentifier.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + l = len(m.FamilyYaml) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.UpdateMask != nil { + l = (*fieldmaskpb1.FieldMask)(m.UpdateMask).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ImportUpdateFamilyRequest_FamilyId) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *ImportUpdateFamilyRequest_ClientKey) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ClientKey) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *ImportUpdateFamilyResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Family != nil { + l = m.Family.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ExportFamilyRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.FamilyIdentifier.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *ExportFamilyRequest_FamilyId) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *ExportFamilyRequest_ClientKey) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ClientKey) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *ExportFamilyRequest_FamilyVersionId) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyVersionId) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *ExportFamilyResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ExportedFamily) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ValidateFamilyNameRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyName) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ValidateFamilyNameResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.Result.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *ValidateFamilyNameResponse_Success) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *ValidateFamilyNameResponse_ErrorMessage) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ErrorMessage) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *ValidateFamilyClientKeyRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ClientKey) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ValidateFamilyClientKeyResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if vtmsg, ok := m.Result.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *ValidateFamilyClientKeyResponse_Success) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} +func (m *ValidateFamilyClientKeyResponse_ErrorMessage) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ErrorMessage) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + return n +} +func (m *FamilyStat) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyStatId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.SampleRate != 0 { + n += 9 + } + if len(m.DefaultChannelNames) > 0 { + for _, s := range m.DefaultChannelNames { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.CreatedDate != nil { + l = (*timestamppb1.Timestamp)(m.CreatedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.ModifiedDate != nil { + l = (*timestamppb1.Timestamp)(m.ModifiedDate).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.CreatedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ModifiedByUserId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrganizationId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *FamilyStatExpression) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyStatExpressionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyStatId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if vtmsg, ok := m.Expression.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *FamilyStatExpression_Avg) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Avg != nil { + l = (*emptypb1.Empty)(m.Avg).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyStatExpression_Median) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Median != nil { + l = (*emptypb1.Empty)(m.Median).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyStatExpression_Min) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Min != nil { + l = (*emptypb1.Empty)(m.Min).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyStatExpression_Max) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Max != nil { + l = (*emptypb1.Empty)(m.Max).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyStatExpression_Stdev) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Stdev != nil { + l = (*emptypb1.Empty)(m.Stdev).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyStatExpression_Sum) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Sum != nil { + l = (*emptypb1.Empty)(m.Sum).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyStatExpression_InputCount) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.InputCount != nil { + l = (*emptypb1.Empty)(m.InputCount).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyStatExpression_Sigma) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Sigma != nil { + l = (*emptypb1.Empty)(m.Sigma).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *FamilyStatChannel) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyStatChannelId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyStatId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.ChannelId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.AlignmentPointId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *WindowType) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyAlignmentId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Duration != nil { + l = (*durationpb1.Duration)(m.Duration).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *FamilyStatRange) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyStatRangeId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyStatId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyAlignmentId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.WindowStart != nil { + l = m.WindowStart.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.WindowEnd != nil { + l = m.WindowEnd.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *FamilyStatDetails) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.FamilyStat != nil { + l = m.FamilyStat.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.FamilyStatExpressions) > 0 { + for _, e := range m.FamilyStatExpressions { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.FamilyStatChannels) > 0 { + for _, e := range m.FamilyStatChannels { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.FamilyStatRanges) > 0 { + for _, e := range m.FamilyStatRanges { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyStatRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyStatId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyStatResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.FamilyStatDetails != nil { + l = m.FamilyStatDetails.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyStatsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyStatsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FamilyStatsDetails) > 0 { + for _, e := range m.FamilyStatsDetails { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *CreateFamilyStatRangesRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FamilyStatIds) > 0 { + for _, s := range m.FamilyStatIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.FamilyStatRanges) > 0 { + for _, e := range m.FamilyStatRanges { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *CreateFamilyStatRangesResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Family != nil { + l = m.Family.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.FamilyStats) > 0 { + for _, e := range m.FamilyStats { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyRuleDependenciesRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyRuleDependenciesResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.RuleDependencies) > 0 { + for _, e := range m.RuleDependencies { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *FamilyRuleDependency) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.RuleId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.StatReference != nil { + if size, ok := interface{}(m.StatReference).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.StatReference) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *AbstractWindowType) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyAlignmentName) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Duration != nil { + l = (*durationpb1.Duration)(m.Duration).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GenerateFamilyStatRangeNameRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyAlignmentName) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.WindowStart != nil { + l = m.WindowStart.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.WindowEnd != nil { + l = m.WindowEnd.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GenerateFamilyStatRangeNameResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyCandidateRunsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyCandidateRunsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.RunQuery) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if len(m.CandidateRunIds) > 0 { + for _, s := range m.CandidateRunIds { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyCandidateRunCountRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyCandidateRunCountResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Count != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.Count)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamilyCandidateRunsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PageSize != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.PageSize)) + } + l = len(m.PageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Filter) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ListFamilyCandidateRunsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Runs) > 0 { + for _, e := range m.Runs { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + l = len(m.NextPageToken) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyCandidateRunFilterFieldsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *GetFamilyCandidateRunFilterFieldsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FilterFields) > 0 { + for _, e := range m.FilterFields { + if size, ok := interface{}(e).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(e) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + n += len(m.unknownFields) + return n +} + +func (m *Family) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Family: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Family: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClientKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CurrentVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyVersion) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyVersion: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyVersion: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + m.Version = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Version |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunQuery", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RunQuery = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserNotes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UserNotes = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChangeMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChangeMessage = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metadata = append(m.Metadata, &v1.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 10: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.SigmaDefaultValues = append(m.SigmaDefaultValues, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.SigmaDefaultValues) == 0 { + m.SigmaDefaultValues = make([]float64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.SigmaDefaultValues = append(m.SigmaDefaultValues, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field SigmaDefaultValues", wireType) + } + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyRun) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyRun: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyRun: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyRunId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyRunId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RunId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsExclusion", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsExclusion = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rationale", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rationale = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AddedDate == nil { + m.AddedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.AddedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AddedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddedInVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AddedInVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyAlignment) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyAlignment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyAlignment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.DefaultAlignment.(*FamilyAlignment_Run); ok { + if err := oneof.Run.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &RunAlignment{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.DefaultAlignment = &FamilyAlignment_Run{Run: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.DefaultAlignment.(*FamilyAlignment_Annotation); ok { + if err := oneof.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DefaultAnnotationAlignment{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.DefaultAlignment = &FamilyAlignment_Annotation{Annotation: v} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.DefaultAlignment.(*FamilyAlignment_Timestamp); ok { + if err := oneof.Timestamp.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &TimestampAlignment{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.DefaultAlignment = &FamilyAlignment_Timestamp{Timestamp: v} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentPoints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentPoints = append(m.FamilyAlignmentPoints, &FamilyAlignmentPoint{}) + if err := m.FamilyAlignmentPoints[len(m.FamilyAlignmentPoints)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyAlignmentPoint) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyAlignmentPoint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyAlignmentPoint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentPointId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentPointId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyRunId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyRunId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RunId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Alignment.(*FamilyAlignmentPoint_Run); ok { + if err := oneof.Run.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &RunAlignment{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Alignment = &FamilyAlignmentPoint_Run{Run: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Alignment.(*FamilyAlignmentPoint_Annotation); ok { + if err := oneof.Annotation.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &AnnotationAlignment{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Alignment = &FamilyAlignmentPoint_Annotation{Annotation: v} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Alignment.(*FamilyAlignmentPoint_Timestamp); ok { + if err := oneof.Timestamp.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &TimestampAlignment{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Alignment = &FamilyAlignmentPoint_Timestamp{Timestamp: v} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RunAlignment) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RunAlignment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RunAlignment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Bound", wireType) + } + m.Bound = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Bound |= TimeRangeBound(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DefaultAnnotationAlignment) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DefaultAnnotationAlignment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DefaultAnnotationAlignment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AnnotationName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Bound", wireType) + } + m.Bound = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Bound |= TimeRangeBound(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Occurrence", wireType) + } + m.Occurrence = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Occurrence |= AnnotationOccurrence(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OccurrenceIndex", wireType) + } + m.OccurrenceIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OccurrenceIndex |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TimestampAlignment) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TimestampAlignment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TimestampAlignment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Timestamp == nil { + m.Timestamp = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.Timestamp).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnnotationAlignment) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnnotationAlignment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnnotationAlignment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AnnotationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Bound", wireType) + } + m.Bound = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Bound |= TimeRangeBound(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyDetails) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &Family{} + } + if err := m.Family.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersion", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FamilyVersion == nil { + m.FamilyVersion = &FamilyVersion{} + } + if err := m.FamilyVersion.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyRuns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyRuns = append(m.FamilyRuns, &FamilyRun{}) + if err := m.FamilyRuns[len(m.FamilyRuns)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignments", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignments = append(m.FamilyAlignments, &FamilyAlignment{}) + if err := m.FamilyAlignments[len(m.FamilyAlignments)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStats = append(m.FamilyStats, &FamilyStatDetails{}) + if err := m.FamilyStats[len(m.FamilyStats)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyIdentifier = &GetFamilyRequest_FamilyId{FamilyId: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyIdentifier = &GetFamilyRequest_ClientKey{ClientKey: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamiliesRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamiliesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamiliesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyIds = append(m.FamilyIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClientKeys = append(m.ClientKeys, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamiliesResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamiliesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamiliesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Families", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Families = append(m.Families, &FamilyDetails{}) + if err := m.Families[len(m.Families)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyVersionRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyVersionRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyVersionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyVersionResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyVersionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyVersionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamiliesRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamiliesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamiliesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderBy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamiliesResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamiliesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamiliesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Families", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Families = append(m.Families, &ListFamily{}) + if err := m.Families[len(m.Families)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamily) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamily: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamily: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &Family{} + } + if err := m.Family.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersion", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FamilyVersion == nil { + m.FamilyVersion = &FamilyVersion{} + } + if err := m.FamilyVersion.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateFamilyRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &Family{} + } + if err := m.Family.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersion", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FamilyVersion == nil { + m.FamilyVersion = &FamilyVersion{} + } + if err := m.FamilyVersion.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyRuns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyRuns = append(m.FamilyRuns, &FamilyRun{}) + if err := m.FamilyRuns[len(m.FamilyRuns)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignments", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignments = append(m.FamilyAlignments, &FamilyAlignment{}) + if err := m.FamilyAlignments[len(m.FamilyAlignments)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStats = append(m.FamilyStats, &FamilyStatDetails{}) + if err := m.FamilyStats[len(m.FamilyStats)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateFamilyResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateFamilyRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyIdentifier = &UpdateFamilyRequest_FamilyId{FamilyId: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyIdentifier = &UpdateFamilyRequest_ClientKey{ClientKey: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} + } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateFamilyResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStats = append(m.FamilyStats, &FamilyStatDetails{}) + if err := m.FamilyStats[len(m.FamilyStats)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyVersionsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyVersionsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyVersionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderBy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyVersionsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyVersionsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyVersionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersions = append(m.FamilyVersions, &FamilyVersion{}) + if err := m.FamilyVersions[len(m.FamilyVersions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyMembersRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyMembersRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyMembersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyMembersResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyMembersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyMembersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyRuns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyRuns = append(m.FamilyRuns, &FamilyRun{}) + if err := m.FamilyRuns[len(m.FamilyRuns)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyAlignmentsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyAlignmentsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyAlignmentsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyAlignmentsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyAlignmentsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyAlignmentsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignments", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignments = append(m.FamilyAlignments, &FamilyAlignment{}) + if err := m.FamilyAlignments[len(m.FamilyAlignments)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyAlignmentPointsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyAlignmentPointsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyAlignmentPointsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyAlignmentPointsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyAlignmentPointsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyAlignmentPointsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentPoints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentPoints = append(m.FamilyAlignmentPoints, &FamilyAlignmentPoint{}) + if err := m.FamilyAlignmentPoints[len(m.FamilyAlignmentPoints)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ImportFamilyRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ImportFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ImportFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyYaml", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyYaml = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ImportFamilyResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ImportFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ImportFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ImportUpdateFamilyRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ImportUpdateFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ImportUpdateFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyIdentifier = &ImportUpdateFamilyRequest_FamilyId{FamilyId: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyIdentifier = &ImportUpdateFamilyRequest_ClientKey{ClientKey: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyYaml", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyYaml = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} + } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ImportUpdateFamilyResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ImportUpdateFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ImportUpdateFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExportFamilyRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExportFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExportFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyIdentifier = &ExportFamilyRequest_FamilyId{FamilyId: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyIdentifier = &ExportFamilyRequest_ClientKey{ClientKey: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyIdentifier = &ExportFamilyRequest_FamilyVersionId{FamilyVersionId: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExportFamilyResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExportFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExportFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExportedFamily", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExportedFamily = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidateFamilyNameRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidateFamilyNameRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidateFamilyNameRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidateFamilyNameResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidateFamilyNameResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidateFamilyNameResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Result = &ValidateFamilyNameResponse_Success{Success: b} + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Result = &ValidateFamilyNameResponse_ErrorMessage{ErrorMessage: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidateFamilyClientKeyRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidateFamilyClientKeyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidateFamilyClientKeyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClientKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidateFamilyClientKeyResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidateFamilyClientKeyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidateFamilyClientKeyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Result = &ValidateFamilyClientKeyResponse_Success{Success: b} + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Result = &ValidateFamilyClientKeyResponse_ErrorMessage{ErrorMessage: string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyStat) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStat: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStat: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field SampleRate", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.SampleRate = float64(math.Float64frombits(v)) + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultChannelNames", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DefaultChannelNames = append(m.DefaultChannelNames, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ModifiedByUserId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyStatExpression) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStatExpression: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStatExpression: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatExpressionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatExpressionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Avg", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Avg); ok { + if err := (*emptypb1.Empty)(oneof.Avg).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Avg{Avg: v} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Median", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Median); ok { + if err := (*emptypb1.Empty)(oneof.Median).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Median{Median: v} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Min", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Min); ok { + if err := (*emptypb1.Empty)(oneof.Min).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Min{Min: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Max", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Max); ok { + if err := (*emptypb1.Empty)(oneof.Max).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Max{Max: v} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Stdev", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Stdev); ok { + if err := (*emptypb1.Empty)(oneof.Stdev).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Stdev{Stdev: v} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sum", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Sum); ok { + if err := (*emptypb1.Empty)(oneof.Sum).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Sum{Sum: v} + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InputCount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_InputCount); ok { + if err := (*emptypb1.Empty)(oneof.InputCount).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_InputCount{InputCount: v} + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sigma", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Sigma); ok { + if err := (*emptypb1.Empty)(oneof.Sigma).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Sigma{Sigma: v} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyStatChannel) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStatChannel: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStatChannel: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatChannelId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatChannelId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChannelId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AlignmentPointId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AlignmentPointId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WindowType) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WindowType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WindowType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Duration == nil { + m.Duration = &durationpb.Duration{} + } + if err := (*durationpb1.Duration)(m.Duration).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyStatRange) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStatRange: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStatRange: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatRangeId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatRangeId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WindowStart", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WindowStart == nil { + m.WindowStart = &WindowType{} + } + if err := m.WindowStart.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WindowEnd", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WindowEnd == nil { + m.WindowEnd = &WindowType{} + } + if err := m.WindowEnd.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyStatDetails) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStatDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStatDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStat", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FamilyStat == nil { + m.FamilyStat = &FamilyStat{} + } + if err := m.FamilyStat.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatExpressions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatExpressions = append(m.FamilyStatExpressions, &FamilyStatExpression{}) + if err := m.FamilyStatExpressions[len(m.FamilyStatExpressions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatChannels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatChannels = append(m.FamilyStatChannels, &FamilyStatChannel{}) + if err := m.FamilyStatChannels[len(m.FamilyStatChannels)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatRanges", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatRanges = append(m.FamilyStatRanges, &FamilyStatRange{}) + if err := m.FamilyStatRanges[len(m.FamilyStatRanges)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyStatRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyStatRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyStatRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyStatResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyStatResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyStatResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FamilyStatDetails == nil { + m.FamilyStatDetails = &FamilyStatDetails{} + } + if err := m.FamilyStatDetails.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyStatsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyStatsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyStatsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyStatsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyStatsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyStatsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatsDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatsDetails = append(m.FamilyStatsDetails, &FamilyStatDetails{}) + if err := m.FamilyStatsDetails[len(m.FamilyStatsDetails)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateFamilyStatRangesRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateFamilyStatRangesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateFamilyStatRangesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatIds = append(m.FamilyStatIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatRanges", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatRanges = append(m.FamilyStatRanges, &FamilyStatRange{}) + if err := m.FamilyStatRanges[len(m.FamilyStatRanges)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateFamilyStatRangesResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateFamilyStatRangesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateFamilyStatRangesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStats = append(m.FamilyStats, &FamilyStatDetails{}) + if err := m.FamilyStats[len(m.FamilyStats)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyRuleDependenciesRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyRuleDependenciesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyRuleDependenciesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyRuleDependenciesResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyRuleDependenciesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyRuleDependenciesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleDependencies", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RuleDependencies = append(m.RuleDependencies, &FamilyRuleDependency{}) + if err := m.RuleDependencies[len(m.RuleDependencies)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyRuleDependency) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyRuleDependency: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyRuleDependency: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RuleId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StatReference", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StatReference == nil { + m.StatReference = &v11.FamilyStatReference{} + } + if unmarshal, ok := interface{}(m.StatReference).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.StatReference); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AbstractWindowType) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AbstractWindowType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AbstractWindowType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Duration == nil { + m.Duration = &durationpb.Duration{} + } + if err := (*durationpb1.Duration)(m.Duration).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenerateFamilyStatRangeNameRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GenerateFamilyStatRangeNameRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenerateFamilyStatRangeNameRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WindowStart", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WindowStart == nil { + m.WindowStart = &AbstractWindowType{} + } + if err := m.WindowStart.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WindowEnd", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WindowEnd == nil { + m.WindowEnd = &AbstractWindowType{} + } + if err := m.WindowEnd.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenerateFamilyStatRangeNameResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GenerateFamilyStatRangeNameResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenerateFamilyStatRangeNameResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunQuery", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RunQuery = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CandidateRunIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CandidateRunIds = append(m.CandidateRunIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunCountRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunCountRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunCountRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunCountResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunCountResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunCountResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Count |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyCandidateRunsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyCandidateRunsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyCandidateRunsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderBy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyCandidateRunsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyCandidateRunsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyCandidateRunsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Runs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Runs = append(m.Runs, &v2.Run{}) + if unmarshal, ok := interface{}(m.Runs[len(m.Runs)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Runs[len(m.Runs)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunFilterFieldsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunFilterFieldsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunFilterFieldsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunFilterFieldsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunFilterFieldsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunFilterFieldsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FilterFields", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FilterFields = append(m.FilterFields, &v12.FilterField{}) + if unmarshal, ok := interface{}(m.FilterFields[len(m.FilterFields)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.FilterFields[len(m.FilterFields)-1]); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Family) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Family: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Family: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ClientKey = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CurrentVersionId = stringValue + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyVersion) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyVersion: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyVersion: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyId = stringValue + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + m.Version = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Version |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Description = stringValue + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunQuery", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RunQuery = stringValue + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserNotes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.UserNotes = stringValue + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChangeMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ChangeMessage = stringValue + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metadata = append(m.Metadata, &v1.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 10: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.SigmaDefaultValues = append(m.SigmaDefaultValues, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen / 8 + if elementCount != 0 && len(m.SigmaDefaultValues) == 0 { + m.SigmaDefaultValues = make([]float64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.SigmaDefaultValues = append(m.SigmaDefaultValues, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field SigmaDefaultValues", wireType) + } + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyRun) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyRun: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyRun: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyRunId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyRunId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RunId = stringValue + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsExclusion", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsExclusion = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rationale", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Rationale = stringValue + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AddedDate == nil { + m.AddedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.AddedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.AddedByUserId = stringValue + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddedInVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.AddedInVersionId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyAlignment) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyAlignment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyAlignment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyAlignmentId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Description = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.DefaultAlignment.(*FamilyAlignment_Run); ok { + if err := oneof.Run.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &RunAlignment{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.DefaultAlignment = &FamilyAlignment_Run{Run: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.DefaultAlignment.(*FamilyAlignment_Annotation); ok { + if err := oneof.Annotation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &DefaultAnnotationAlignment{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.DefaultAlignment = &FamilyAlignment_Annotation{Annotation: v} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.DefaultAlignment.(*FamilyAlignment_Timestamp); ok { + if err := oneof.Timestamp.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &TimestampAlignment{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.DefaultAlignment = &FamilyAlignment_Timestamp{Timestamp: v} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentPoints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentPoints = append(m.FamilyAlignmentPoints, &FamilyAlignmentPoint{}) + if err := m.FamilyAlignmentPoints[len(m.FamilyAlignmentPoints)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyAlignmentPoint) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyAlignmentPoint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyAlignmentPoint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentPointId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyAlignmentPointId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyRunId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyRunId = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RunId = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyAlignmentId = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Alignment.(*FamilyAlignmentPoint_Run); ok { + if err := oneof.Run.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &RunAlignment{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Alignment = &FamilyAlignmentPoint_Run{Run: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Alignment.(*FamilyAlignmentPoint_Annotation); ok { + if err := oneof.Annotation.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &AnnotationAlignment{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Alignment = &FamilyAlignmentPoint_Annotation{Annotation: v} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Alignment.(*FamilyAlignmentPoint_Timestamp); ok { + if err := oneof.Timestamp.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &TimestampAlignment{} + if err := v.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Alignment = &FamilyAlignmentPoint_Timestamp{Timestamp: v} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RunAlignment) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RunAlignment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RunAlignment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Bound", wireType) + } + m.Bound = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Bound |= TimeRangeBound(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DefaultAnnotationAlignment) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DefaultAnnotationAlignment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DefaultAnnotationAlignment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.AnnotationName = stringValue + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Bound", wireType) + } + m.Bound = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Bound |= TimeRangeBound(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Occurrence", wireType) + } + m.Occurrence = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Occurrence |= AnnotationOccurrence(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OccurrenceIndex", wireType) + } + m.OccurrenceIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OccurrenceIndex |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TimestampAlignment) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TimestampAlignment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TimestampAlignment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Timestamp == nil { + m.Timestamp = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.Timestamp).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnnotationAlignment) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnnotationAlignment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnnotationAlignment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.AnnotationId = stringValue + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Bound", wireType) + } + m.Bound = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Bound |= TimeRangeBound(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyDetails) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &Family{} + } + if err := m.Family.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersion", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FamilyVersion == nil { + m.FamilyVersion = &FamilyVersion{} + } + if err := m.FamilyVersion.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyRuns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyRuns = append(m.FamilyRuns, &FamilyRun{}) + if err := m.FamilyRuns[len(m.FamilyRuns)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignments", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignments = append(m.FamilyAlignments, &FamilyAlignment{}) + if err := m.FamilyAlignments[len(m.FamilyAlignments)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStats = append(m.FamilyStats, &FamilyStatDetails{}) + if err := m.FamilyStats[len(m.FamilyStats)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyIdentifier = &GetFamilyRequest_FamilyId{FamilyId: stringValue} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyIdentifier = &GetFamilyRequest_ClientKey{ClientKey: stringValue} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamiliesRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamiliesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamiliesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyIds = append(m.FamilyIds, stringValue) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKeys", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ClientKeys = append(m.ClientKeys, stringValue) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamiliesResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamiliesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamiliesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Families", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Families = append(m.Families, &FamilyDetails{}) + if err := m.Families[len(m.Families)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyVersionRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyVersionRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyVersionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyVersionResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyVersionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyVersionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamiliesRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamiliesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamiliesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PageToken = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Filter = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrderBy = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamiliesResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamiliesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamiliesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Families", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Families = append(m.Families, &ListFamily{}) + if err := m.Families[len(m.Families)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamily) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamily: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamily: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &Family{} + } + if err := m.Family.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersion", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FamilyVersion == nil { + m.FamilyVersion = &FamilyVersion{} + } + if err := m.FamilyVersion.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateFamilyRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &Family{} + } + if err := m.Family.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersion", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FamilyVersion == nil { + m.FamilyVersion = &FamilyVersion{} + } + if err := m.FamilyVersion.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyRuns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyRuns = append(m.FamilyRuns, &FamilyRun{}) + if err := m.FamilyRuns[len(m.FamilyRuns)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignments", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignments = append(m.FamilyAlignments, &FamilyAlignment{}) + if err := m.FamilyAlignments[len(m.FamilyAlignments)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStats = append(m.FamilyStats, &FamilyStatDetails{}) + if err := m.FamilyStats[len(m.FamilyStats)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateFamilyResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateFamilyRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyIdentifier = &UpdateFamilyRequest_FamilyId{FamilyId: stringValue} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyIdentifier = &UpdateFamilyRequest_ClientKey{ClientKey: stringValue} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} + } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateFamilyResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStats = append(m.FamilyStats, &FamilyStatDetails{}) + if err := m.FamilyStats[len(m.FamilyStats)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyVersionsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyVersionsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyVersionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Filter = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PageToken = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrderBy = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyVersionsResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyVersionsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyVersionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyVersions = append(m.FamilyVersions, &FamilyVersion{}) + if err := m.FamilyVersions[len(m.FamilyVersions)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyMembersRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyMembersRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyMembersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Filter = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyMembersResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyMembersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyMembersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyRuns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyRuns = append(m.FamilyRuns, &FamilyRun{}) + if err := m.FamilyRuns[len(m.FamilyRuns)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyAlignmentsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyAlignmentsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyAlignmentsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Filter = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyAlignmentsResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyAlignmentsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyAlignmentsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignments", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignments = append(m.FamilyAlignments, &FamilyAlignment{}) + if err := m.FamilyAlignments[len(m.FamilyAlignments)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyAlignmentPointsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyAlignmentPointsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyAlignmentPointsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyAlignmentId = stringValue + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Filter = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyAlignmentPointsResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyAlignmentPointsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyAlignmentPointsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentPoints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentPoints = append(m.FamilyAlignmentPoints, &FamilyAlignmentPoint{}) + if err := m.FamilyAlignmentPoints[len(m.FamilyAlignmentPoints)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ImportFamilyRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ImportFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ImportFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyYaml", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyYaml = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ImportFamilyResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ImportFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ImportFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ImportUpdateFamilyRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ImportUpdateFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ImportUpdateFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyIdentifier = &ImportUpdateFamilyRequest_FamilyId{FamilyId: stringValue} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyIdentifier = &ImportUpdateFamilyRequest_ClientKey{ClientKey: stringValue} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyYaml", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyYaml = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} + } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ImportUpdateFamilyResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ImportUpdateFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ImportUpdateFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExportFamilyRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExportFamilyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExportFamilyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyIdentifier = &ExportFamilyRequest_FamilyId{FamilyId: stringValue} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyIdentifier = &ExportFamilyRequest_ClientKey{ClientKey: stringValue} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyIdentifier = &ExportFamilyRequest_FamilyVersionId{FamilyVersionId: stringValue} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExportFamilyResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExportFamilyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExportFamilyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExportedFamily", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ExportedFamily = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidateFamilyNameRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidateFamilyNameRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidateFamilyNameRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyName = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidateFamilyNameResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidateFamilyNameResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidateFamilyNameResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Result = &ValidateFamilyNameResponse_Success{Success: b} + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Result = &ValidateFamilyNameResponse_ErrorMessage{ErrorMessage: stringValue} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidateFamilyClientKeyRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidateFamilyClientKeyRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidateFamilyClientKeyRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ClientKey = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidateFamilyClientKeyResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidateFamilyClientKeyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidateFamilyClientKeyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Result = &ValidateFamilyClientKeyResponse_Success{Success: b} + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Result = &ValidateFamilyClientKeyResponse_ErrorMessage{ErrorMessage: stringValue} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyStat) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStat: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStat: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Description = stringValue + iNdEx = postIndex + case 5: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field SampleRate", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + m.SampleRate = float64(math.Float64frombits(v)) + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DefaultChannelNames", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.DefaultChannelNames = append(m.DefaultChannelNames, stringValue) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CreatedByUserId = stringValue + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ModifiedByUserId = stringValue + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyStatExpression) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStatExpression: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStatExpression: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatExpressionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatExpressionId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatId = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Avg", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Avg); ok { + if err := (*emptypb1.Empty)(oneof.Avg).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Avg{Avg: v} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Median", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Median); ok { + if err := (*emptypb1.Empty)(oneof.Median).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Median{Median: v} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Min", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Min); ok { + if err := (*emptypb1.Empty)(oneof.Min).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Min{Min: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Max", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Max); ok { + if err := (*emptypb1.Empty)(oneof.Max).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Max{Max: v} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Stdev", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Stdev); ok { + if err := (*emptypb1.Empty)(oneof.Stdev).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Stdev{Stdev: v} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sum", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Sum); ok { + if err := (*emptypb1.Empty)(oneof.Sum).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Sum{Sum: v} + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InputCount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_InputCount); ok { + if err := (*emptypb1.Empty)(oneof.InputCount).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_InputCount{InputCount: v} + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sigma", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Expression.(*FamilyStatExpression_Sigma); ok { + if err := (*emptypb1.Empty)(oneof.Sigma).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &emptypb.Empty{} + if err := (*emptypb1.Empty)(v).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Expression = &FamilyStatExpression_Sigma{Sigma: v} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyStatChannel) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStatChannel: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStatChannel: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatChannelId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatChannelId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatId = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ChannelId = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AlignmentPointId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.AlignmentPointId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WindowType) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WindowType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WindowType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyAlignmentId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Duration == nil { + m.Duration = &durationpb.Duration{} + } + if err := (*durationpb1.Duration)(m.Duration).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyStatRange) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStatRange: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStatRange: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatRangeId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatRangeId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatId = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyAlignmentId = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WindowStart", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WindowStart == nil { + m.WindowStart = &WindowType{} + } + if err := m.WindowStart.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WindowEnd", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WindowEnd == nil { + m.WindowEnd = &WindowType{} + } + if err := m.WindowEnd.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyStatDetails) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStatDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStatDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStat", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FamilyStat == nil { + m.FamilyStat = &FamilyStat{} + } + if err := m.FamilyStat.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatExpressions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatExpressions = append(m.FamilyStatExpressions, &FamilyStatExpression{}) + if err := m.FamilyStatExpressions[len(m.FamilyStatExpressions)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatChannels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatChannels = append(m.FamilyStatChannels, &FamilyStatChannel{}) + if err := m.FamilyStatChannels[len(m.FamilyStatChannels)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatRanges", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatRanges = append(m.FamilyStatRanges, &FamilyStatRange{}) + if err := m.FamilyStatRanges[len(m.FamilyStatRanges)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyStatRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyStatRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyStatRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyStatResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyStatResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyStatResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FamilyStatDetails == nil { + m.FamilyStatDetails = &FamilyStatDetails{} + } + if err := m.FamilyStatDetails.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyStatsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyStatsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyStatsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyStatsResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyStatsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyStatsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatsDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatsDetails = append(m.FamilyStatsDetails, &FamilyStatDetails{}) + if err := m.FamilyStatsDetails[len(m.FamilyStatsDetails)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateFamilyStatRangesRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateFamilyStatRangesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateFamilyStatRangesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatIds = append(m.FamilyStatIds, stringValue) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatRanges", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatRanges = append(m.FamilyStatRanges, &FamilyStatRange{}) + if err := m.FamilyStatRanges[len(m.FamilyStatRanges)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateFamilyStatRangesResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateFamilyStatRangesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateFamilyStatRangesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Family == nil { + m.Family = &FamilyDetails{} + } + if err := m.Family.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStats = append(m.FamilyStats, &FamilyStatDetails{}) + if err := m.FamilyStats[len(m.FamilyStats)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyRuleDependenciesRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyRuleDependenciesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyRuleDependenciesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyRuleDependenciesResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyRuleDependenciesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyRuleDependenciesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleDependencies", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RuleDependencies = append(m.RuleDependencies, &FamilyRuleDependency{}) + if err := m.RuleDependencies[len(m.RuleDependencies)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyRuleDependency) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyRuleDependency: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyRuleDependency: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RuleId = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StatReference", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StatReference == nil { + m.StatReference = &v11.FamilyStatReference{} + } + if unmarshal, ok := interface{}(m.StatReference).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.StatReference); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AbstractWindowType) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AbstractWindowType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AbstractWindowType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyAlignmentName = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Duration == nil { + m.Duration = &durationpb.Duration{} + } + if err := (*durationpb1.Duration)(m.Duration).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenerateFamilyStatRangeNameRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GenerateFamilyStatRangeNameRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenerateFamilyStatRangeNameRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyAlignmentName = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WindowStart", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WindowStart == nil { + m.WindowStart = &AbstractWindowType{} + } + if err := m.WindowStart.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WindowEnd", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WindowEnd == nil { + m.WindowEnd = &AbstractWindowType{} + } + if err := m.WindowEnd.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenerateFamilyStatRangeNameResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GenerateFamilyStatRangeNameResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenerateFamilyStatRangeNameResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Name = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunsResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunQuery", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RunQuery = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CandidateRunIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.CandidateRunIds = append(m.CandidateRunIds, stringValue) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunCountRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunCountRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunCountRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunCountResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunCountResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunCountResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Count |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyCandidateRunsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyCandidateRunsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyCandidateRunsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.PageToken = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Filter = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrderBy = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListFamilyCandidateRunsResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListFamilyCandidateRunsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListFamilyCandidateRunsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Runs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Runs = append(m.Runs, &v2.Run{}) + if unmarshal, ok := interface{}(m.Runs[len(m.Runs)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Runs[len(m.Runs)-1]); err != nil { + return err + } + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.NextPageToken = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunFilterFieldsRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunFilterFieldsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunFilterFieldsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetFamilyCandidateRunFilterFieldsResponse) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetFamilyCandidateRunFilterFieldsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetFamilyCandidateRunFilterFieldsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FilterFields", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FilterFields = append(m.FilterFields, &v12.FilterField{}) + if unmarshal, ok := interface{}(m.FilterFields[len(m.FilterFields)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.FilterFields[len(m.FilterFields)-1]); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} diff --git a/go/gen/sift/reports/v1/reports.pb.go b/go/gen/sift/reports/v1/reports.pb.go index 3b4faf8c51..3d678f255c 100644 --- a/go/gen/sift/reports/v1/reports.pb.go +++ b/go/gen/sift/reports/v1/reports.pb.go @@ -9,6 +9,8 @@ package reportsv1 import ( _ "github.com/sift-stack/sift/go/gen/google/api" _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" + v11 "github.com/sift-stack/sift/go/gen/sift/canvas/v1" + v12 "github.com/sift-stack/sift/go/gen/sift/families/v1" v1 "github.com/sift-stack/sift/go/gen/sift/metadata/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -33,6 +35,7 @@ type ReportType int32 const ( ReportType_REPORT_TYPE_UNSPECIFIED ReportType = 0 ReportType_REPORT_TYPE_RULE_EVALUATION ReportType = 1 + ReportType_REPORT_TYPE_CANVAS ReportType = 2 ) // Enum value maps for ReportType. @@ -40,10 +43,12 @@ var ( ReportType_name = map[int32]string{ 0: "REPORT_TYPE_UNSPECIFIED", 1: "REPORT_TYPE_RULE_EVALUATION", + 2: "REPORT_TYPE_CANVAS", } ReportType_value = map[string]int32{ "REPORT_TYPE_UNSPECIFIED": 0, "REPORT_TYPE_RULE_EVALUATION": 1, + "REPORT_TYPE_CANVAS": 2, } ) @@ -165,6 +170,14 @@ type Report struct { IsArchived bool `protobuf:"varint,17,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` // Discriminates the report kind. Defaults to RULE_EVALUATION for existing rows. ReportType ReportType `protobuf:"varint,18,opt,name=report_type,json=reportType,proto3,enum=sift.reports.v1.ReportType" json:"report_type,omitempty"` + // For CANVAS reports, the id of the published canvas_execution this report row + // is linked to (read-through from canvas_executions.canvas_execution_id). Empty + // for RULE_EVALUATION reports. Used by clients to route to the canvas detail page. + CanvasExecutionId *string `protobuf:"bytes,19,opt,name=canvas_execution_id,json=canvasExecutionId,proto3,oneof" json:"canvas_execution_id,omitempty"` + // For CANVAS reports, the execution status read through from the linked + // canvas_executions.status. Unset for RULE_EVALUATION reports (whose status is + // conveyed via the per-rule `summaries` instead). + CanvasStatus *v11.CanvasCellExecutionStatus `protobuf:"varint,20,opt,name=canvas_status,json=canvasStatus,proto3,enum=sift.canvas.v1.CanvasCellExecutionStatus,oneof" json:"canvas_status,omitempty"` } func (x *Report) Reset() { @@ -325,6 +338,20 @@ func (x *Report) GetReportType() ReportType { return ReportType_REPORT_TYPE_UNSPECIFIED } +func (x *Report) GetCanvasExecutionId() string { + if x != nil && x.CanvasExecutionId != nil { + return *x.CanvasExecutionId + } + return "" +} + +func (x *Report) GetCanvasStatus() v11.CanvasCellExecutionStatus { + if x != nil && x.CanvasStatus != nil { + return *x.CanvasStatus + } + return v11.CanvasCellExecutionStatus(0) +} + // ReportWithCumulativeSummary is a projection of `Report` that replaces the per-rule `summaries` // list with a single `cumulative_summary` aggregated across all rules. It is returned by // `ListReportsWithCumulativeSummary` to keep response sizes manageable when listing many reports. @@ -367,6 +394,14 @@ type ReportWithCumulativeSummary struct { IsArchived bool `protobuf:"varint,16,opt,name=is_archived,json=isArchived,proto3" json:"is_archived,omitempty"` // Discriminates the report kind. Defaults to RULE_EVALUATION for existing rows. ReportType ReportType `protobuf:"varint,17,opt,name=report_type,json=reportType,proto3,enum=sift.reports.v1.ReportType" json:"report_type,omitempty"` + // For CANVAS reports, the id of the published canvas_execution this report row + // is linked to (read-through from canvas_executions.canvas_execution_id). Empty + // for RULE_EVALUATION reports. Used by clients to route to the canvas detail page. + CanvasExecutionId *string `protobuf:"bytes,18,opt,name=canvas_execution_id,json=canvasExecutionId,proto3,oneof" json:"canvas_execution_id,omitempty"` + // For CANVAS reports, the execution status read through from the linked + // canvas_executions.status. Unset for RULE_EVALUATION reports (whose status is + // conveyed via the `cumulative_summary` instead). + CanvasStatus *v11.CanvasCellExecutionStatus `protobuf:"varint,19,opt,name=canvas_status,json=canvasStatus,proto3,enum=sift.canvas.v1.CanvasCellExecutionStatus,oneof" json:"canvas_status,omitempty"` } func (x *ReportWithCumulativeSummary) Reset() { @@ -520,25 +555,41 @@ func (x *ReportWithCumulativeSummary) GetReportType() ReportType { return ReportType_REPORT_TYPE_UNSPECIFIED } +func (x *ReportWithCumulativeSummary) GetCanvasExecutionId() string { + if x != nil && x.CanvasExecutionId != nil { + return *x.CanvasExecutionId + } + return "" +} + +func (x *ReportWithCumulativeSummary) GetCanvasStatus() v11.CanvasCellExecutionStatus { + if x != nil && x.CanvasStatus != nil { + return *x.CanvasStatus + } + return v11.CanvasCellExecutionStatus(0) +} + type ReportRuleSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RuleId string `protobuf:"bytes,1,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` - RuleClientKey string `protobuf:"bytes,2,opt,name=rule_client_key,json=ruleClientKey,proto3" json:"rule_client_key,omitempty"` - RuleVersionId string `protobuf:"bytes,3,opt,name=rule_version_id,json=ruleVersionId,proto3" json:"rule_version_id,omitempty"` - RuleVersionNumber uint32 `protobuf:"varint,4,opt,name=rule_version_number,json=ruleVersionNumber,proto3" json:"rule_version_number,omitempty"` - ReportRuleVersionId string `protobuf:"bytes,5,opt,name=report_rule_version_id,json=reportRuleVersionId,proto3" json:"report_rule_version_id,omitempty"` - NumOpen uint32 `protobuf:"varint,6,opt,name=num_open,json=numOpen,proto3" json:"num_open,omitempty"` - NumFailed uint32 `protobuf:"varint,7,opt,name=num_failed,json=numFailed,proto3" json:"num_failed,omitempty"` - NumPassed uint32 `protobuf:"varint,8,opt,name=num_passed,json=numPassed,proto3" json:"num_passed,omitempty"` - Status ReportRuleStatus `protobuf:"varint,9,opt,name=status,proto3,enum=sift.reports.v1.ReportRuleStatus" json:"status,omitempty"` - StatusDetails *ReportRuleStatusDetails `protobuf:"bytes,10,opt,name=status_details,json=statusDetails,proto3" json:"status_details,omitempty"` - CreatedDate *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"` - ModifiedDate *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=modified_date,json=modifiedDate,proto3" json:"modified_date,omitempty"` - AssetId string `protobuf:"bytes,13,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` - DeletedDate *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=deleted_date,json=deletedDate,proto3" json:"deleted_date,omitempty"` + RuleId string `protobuf:"bytes,1,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` + RuleClientKey string `protobuf:"bytes,2,opt,name=rule_client_key,json=ruleClientKey,proto3" json:"rule_client_key,omitempty"` + RuleVersionId string `protobuf:"bytes,3,opt,name=rule_version_id,json=ruleVersionId,proto3" json:"rule_version_id,omitempty"` + RuleVersionNumber uint32 `protobuf:"varint,4,opt,name=rule_version_number,json=ruleVersionNumber,proto3" json:"rule_version_number,omitempty"` + ReportRuleVersionId string `protobuf:"bytes,5,opt,name=report_rule_version_id,json=reportRuleVersionId,proto3" json:"report_rule_version_id,omitempty"` + NumOpen uint32 `protobuf:"varint,6,opt,name=num_open,json=numOpen,proto3" json:"num_open,omitempty"` + NumFailed uint32 `protobuf:"varint,7,opt,name=num_failed,json=numFailed,proto3" json:"num_failed,omitempty"` + NumPassed uint32 `protobuf:"varint,8,opt,name=num_passed,json=numPassed,proto3" json:"num_passed,omitempty"` + Status ReportRuleStatus `protobuf:"varint,9,opt,name=status,proto3,enum=sift.reports.v1.ReportRuleStatus" json:"status,omitempty"` + StatusDetails *ReportRuleStatusDetails `protobuf:"bytes,10,opt,name=status_details,json=statusDetails,proto3" json:"status_details,omitempty"` + CreatedDate *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=created_date,json=createdDate,proto3" json:"created_date,omitempty"` + ModifiedDate *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=modified_date,json=modifiedDate,proto3" json:"modified_date,omitempty"` + AssetId string `protobuf:"bytes,13,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + DeletedDate *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=deleted_date,json=deletedDate,proto3" json:"deleted_date,omitempty"` + ResolvedFamilyStats []*ResolvedFamilyStat `protobuf:"bytes,15,rep,name=resolved_family_stats,json=resolvedFamilyStats,proto3" json:"resolved_family_stats,omitempty"` + ResolvedAlignmentConfigs []*ResolvedAlignmentEntry `protobuf:"bytes,16,rep,name=resolved_alignment_configs,json=resolvedAlignmentConfigs,proto3" json:"resolved_alignment_configs,omitempty"` // Zero-based position of this rule line on the report. Copied from the report template rule's `display_order`, or from the // position of `rule_id` in `CreateReportRequestRuleIds.rule_ids` when creating from explicit rule IDs. Lower values run first. DisplayOrder uint32 `protobuf:"varint,17,opt,name=display_order,json=displayOrder,proto3" json:"display_order,omitempty"` @@ -674,6 +725,20 @@ func (x *ReportRuleSummary) GetDeletedDate() *timestamppb.Timestamp { return nil } +func (x *ReportRuleSummary) GetResolvedFamilyStats() []*ResolvedFamilyStat { + if x != nil { + return x.ResolvedFamilyStats + } + return nil +} + +func (x *ReportRuleSummary) GetResolvedAlignmentConfigs() []*ResolvedAlignmentEntry { + if x != nil { + return x.ResolvedAlignmentConfigs + } + return nil +} + func (x *ReportRuleSummary) GetDisplayOrder() uint32 { if x != nil { return x.DisplayOrder @@ -880,6 +945,259 @@ func (x *ReportCumulativeRuleSummary) GetNumOfRulesWithoutAnnotations() uint32 { return 0 } +type ResolvedFamilyStat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reference string `protobuf:"bytes,1,opt,name=reference,proto3" json:"reference,omitempty"` + FamilyId string `protobuf:"bytes,2,opt,name=family_id,json=familyId,proto3" json:"family_id,omitempty"` + FamilyVersionId string `protobuf:"bytes,3,opt,name=family_version_id,json=familyVersionId,proto3" json:"family_version_id,omitempty"` + FamilyStatExpressionId string `protobuf:"bytes,4,opt,name=family_stat_expression_id,json=familyStatExpressionId,proto3" json:"family_stat_expression_id,omitempty"` + FamilyStatRangeId string `protobuf:"bytes,5,opt,name=family_stat_range_id,json=familyStatRangeId,proto3" json:"family_stat_range_id,omitempty"` +} + +func (x *ResolvedFamilyStat) Reset() { + *x = ResolvedFamilyStat{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_reports_v1_reports_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResolvedFamilyStat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResolvedFamilyStat) ProtoMessage() {} + +func (x *ResolvedFamilyStat) ProtoReflect() protoreflect.Message { + mi := &file_sift_reports_v1_reports_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResolvedFamilyStat.ProtoReflect.Descriptor instead. +func (*ResolvedFamilyStat) Descriptor() ([]byte, []int) { + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{5} +} + +func (x *ResolvedFamilyStat) GetReference() string { + if x != nil { + return x.Reference + } + return "" +} + +func (x *ResolvedFamilyStat) GetFamilyId() string { + if x != nil { + return x.FamilyId + } + return "" +} + +func (x *ResolvedFamilyStat) GetFamilyVersionId() string { + if x != nil { + return x.FamilyVersionId + } + return "" +} + +func (x *ResolvedFamilyStat) GetFamilyStatExpressionId() string { + if x != nil { + return x.FamilyStatExpressionId + } + return "" +} + +func (x *ResolvedFamilyStat) GetFamilyStatRangeId() string { + if x != nil { + return x.FamilyStatRangeId + } + return "" +} + +type ResolvedAlignmentEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelReferences []string `protobuf:"bytes,1,rep,name=channel_references,json=channelReferences,proto3" json:"channel_references,omitempty"` + T0 *ResolvedAlignmentPoint `protobuf:"bytes,2,opt,name=t0,proto3" json:"t0,omitempty"` + StartTime *ResolvedAlignmentPoint `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + EndTime *ResolvedAlignmentPoint `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` +} + +func (x *ResolvedAlignmentEntry) Reset() { + *x = ResolvedAlignmentEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_reports_v1_reports_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResolvedAlignmentEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResolvedAlignmentEntry) ProtoMessage() {} + +func (x *ResolvedAlignmentEntry) ProtoReflect() protoreflect.Message { + mi := &file_sift_reports_v1_reports_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResolvedAlignmentEntry.ProtoReflect.Descriptor instead. +func (*ResolvedAlignmentEntry) Descriptor() ([]byte, []int) { + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{6} +} + +func (x *ResolvedAlignmentEntry) GetChannelReferences() []string { + if x != nil { + return x.ChannelReferences + } + return nil +} + +func (x *ResolvedAlignmentEntry) GetT0() *ResolvedAlignmentPoint { + if x != nil { + return x.T0 + } + return nil +} + +func (x *ResolvedAlignmentEntry) GetStartTime() *ResolvedAlignmentPoint { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *ResolvedAlignmentEntry) GetEndTime() *ResolvedAlignmentPoint { + if x != nil { + return x.EndTime + } + return nil +} + +type ResolvedAlignmentPoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // Types that are assignable to AlignmentConfig: + // + // *ResolvedAlignmentPoint_Run + // *ResolvedAlignmentPoint_Annotation + // *ResolvedAlignmentPoint_TimestampConfig + AlignmentConfig isResolvedAlignmentPoint_AlignmentConfig `protobuf_oneof:"alignment_config"` +} + +func (x *ResolvedAlignmentPoint) Reset() { + *x = ResolvedAlignmentPoint{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_reports_v1_reports_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResolvedAlignmentPoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResolvedAlignmentPoint) ProtoMessage() {} + +func (x *ResolvedAlignmentPoint) ProtoReflect() protoreflect.Message { + mi := &file_sift_reports_v1_reports_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResolvedAlignmentPoint.ProtoReflect.Descriptor instead. +func (*ResolvedAlignmentPoint) Descriptor() ([]byte, []int) { + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{7} +} + +func (x *ResolvedAlignmentPoint) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (m *ResolvedAlignmentPoint) GetAlignmentConfig() isResolvedAlignmentPoint_AlignmentConfig { + if m != nil { + return m.AlignmentConfig + } + return nil +} + +func (x *ResolvedAlignmentPoint) GetRun() *v12.RunAlignment { + if x, ok := x.GetAlignmentConfig().(*ResolvedAlignmentPoint_Run); ok { + return x.Run + } + return nil +} + +func (x *ResolvedAlignmentPoint) GetAnnotation() *v12.AnnotationAlignment { + if x, ok := x.GetAlignmentConfig().(*ResolvedAlignmentPoint_Annotation); ok { + return x.Annotation + } + return nil +} + +func (x *ResolvedAlignmentPoint) GetTimestampConfig() *v12.TimestampAlignment { + if x, ok := x.GetAlignmentConfig().(*ResolvedAlignmentPoint_TimestampConfig); ok { + return x.TimestampConfig + } + return nil +} + +type isResolvedAlignmentPoint_AlignmentConfig interface { + isResolvedAlignmentPoint_AlignmentConfig() +} + +type ResolvedAlignmentPoint_Run struct { + Run *v12.RunAlignment `protobuf:"bytes,3,opt,name=run,proto3,oneof"` +} + +type ResolvedAlignmentPoint_Annotation struct { + Annotation *v12.AnnotationAlignment `protobuf:"bytes,4,opt,name=annotation,proto3,oneof"` +} + +type ResolvedAlignmentPoint_TimestampConfig struct { + TimestampConfig *v12.TimestampAlignment `protobuf:"bytes,5,opt,name=timestamp_config,json=timestampConfig,proto3,oneof"` +} + +func (*ResolvedAlignmentPoint_Run) isResolvedAlignmentPoint_AlignmentConfig() {} + +func (*ResolvedAlignmentPoint_Annotation) isResolvedAlignmentPoint_AlignmentConfig() {} + +func (*ResolvedAlignmentPoint_TimestampConfig) isResolvedAlignmentPoint_AlignmentConfig() {} + type ReportRuleStatusDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -899,7 +1217,7 @@ type ReportRuleStatusDetails struct { func (x *ReportRuleStatusDetails) Reset() { *x = ReportRuleStatusDetails{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[5] + mi := &file_sift_reports_v1_reports_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -912,7 +1230,7 @@ func (x *ReportRuleStatusDetails) String() string { func (*ReportRuleStatusDetails) ProtoMessage() {} func (x *ReportRuleStatusDetails) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[5] + mi := &file_sift_reports_v1_reports_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -925,7 +1243,7 @@ func (x *ReportRuleStatusDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportRuleStatusDetails.ProtoReflect.Descriptor instead. func (*ReportRuleStatusDetails) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{5} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{8} } func (m *ReportRuleStatusDetails) GetDetails() isReportRuleStatusDetails_Details { @@ -1026,7 +1344,7 @@ type ReportRuleStatusDetailsCreated struct { func (x *ReportRuleStatusDetailsCreated) Reset() { *x = ReportRuleStatusDetailsCreated{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[6] + mi := &file_sift_reports_v1_reports_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1039,7 +1357,7 @@ func (x *ReportRuleStatusDetailsCreated) String() string { func (*ReportRuleStatusDetailsCreated) ProtoMessage() {} func (x *ReportRuleStatusDetailsCreated) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[6] + mi := &file_sift_reports_v1_reports_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1052,7 +1370,7 @@ func (x *ReportRuleStatusDetailsCreated) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportRuleStatusDetailsCreated.ProtoReflect.Descriptor instead. func (*ReportRuleStatusDetailsCreated) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{6} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{9} } type ReportRuleStatusDetailsLive struct { @@ -1064,7 +1382,7 @@ type ReportRuleStatusDetailsLive struct { func (x *ReportRuleStatusDetailsLive) Reset() { *x = ReportRuleStatusDetailsLive{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[7] + mi := &file_sift_reports_v1_reports_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1077,7 +1395,7 @@ func (x *ReportRuleStatusDetailsLive) String() string { func (*ReportRuleStatusDetailsLive) ProtoMessage() {} func (x *ReportRuleStatusDetailsLive) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[7] + mi := &file_sift_reports_v1_reports_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1090,7 +1408,7 @@ func (x *ReportRuleStatusDetailsLive) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportRuleStatusDetailsLive.ProtoReflect.Descriptor instead. func (*ReportRuleStatusDetailsLive) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{7} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{10} } type ReportRuleStatusDetailsFinished struct { @@ -1105,7 +1423,7 @@ type ReportRuleStatusDetailsFinished struct { func (x *ReportRuleStatusDetailsFinished) Reset() { *x = ReportRuleStatusDetailsFinished{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[8] + mi := &file_sift_reports_v1_reports_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1118,7 +1436,7 @@ func (x *ReportRuleStatusDetailsFinished) String() string { func (*ReportRuleStatusDetailsFinished) ProtoMessage() {} func (x *ReportRuleStatusDetailsFinished) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[8] + mi := &file_sift_reports_v1_reports_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1131,7 +1449,7 @@ func (x *ReportRuleStatusDetailsFinished) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportRuleStatusDetailsFinished.ProtoReflect.Descriptor instead. func (*ReportRuleStatusDetailsFinished) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{8} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{11} } func (x *ReportRuleStatusDetailsFinished) GetStdout() string { @@ -1162,7 +1480,7 @@ type ReportRuleStatusDetailsFailed struct { func (x *ReportRuleStatusDetailsFailed) Reset() { *x = ReportRuleStatusDetailsFailed{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[9] + mi := &file_sift_reports_v1_reports_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1175,7 +1493,7 @@ func (x *ReportRuleStatusDetailsFailed) String() string { func (*ReportRuleStatusDetailsFailed) ProtoMessage() {} func (x *ReportRuleStatusDetailsFailed) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[9] + mi := &file_sift_reports_v1_reports_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1188,7 +1506,7 @@ func (x *ReportRuleStatusDetailsFailed) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportRuleStatusDetailsFailed.ProtoReflect.Descriptor instead. func (*ReportRuleStatusDetailsFailed) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{9} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{12} } func (x *ReportRuleStatusDetailsFailed) GetErrorMessage() string { @@ -1228,7 +1546,7 @@ type ReportRuleStatusDetailsCanceled struct { func (x *ReportRuleStatusDetailsCanceled) Reset() { *x = ReportRuleStatusDetailsCanceled{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[10] + mi := &file_sift_reports_v1_reports_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1241,7 +1559,7 @@ func (x *ReportRuleStatusDetailsCanceled) String() string { func (*ReportRuleStatusDetailsCanceled) ProtoMessage() {} func (x *ReportRuleStatusDetailsCanceled) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[10] + mi := &file_sift_reports_v1_reports_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1254,7 +1572,7 @@ func (x *ReportRuleStatusDetailsCanceled) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportRuleStatusDetailsCanceled.ProtoReflect.Descriptor instead. func (*ReportRuleStatusDetailsCanceled) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{10} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{13} } type ReportRuleStatusDetailsError struct { @@ -1271,7 +1589,7 @@ type ReportRuleStatusDetailsError struct { func (x *ReportRuleStatusDetailsError) Reset() { *x = ReportRuleStatusDetailsError{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[11] + mi := &file_sift_reports_v1_reports_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1284,7 +1602,7 @@ func (x *ReportRuleStatusDetailsError) String() string { func (*ReportRuleStatusDetailsError) ProtoMessage() {} func (x *ReportRuleStatusDetailsError) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[11] + mi := &file_sift_reports_v1_reports_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1297,7 +1615,7 @@ func (x *ReportRuleStatusDetailsError) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportRuleStatusDetailsError.ProtoReflect.Descriptor instead. func (*ReportRuleStatusDetailsError) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{11} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{14} } func (x *ReportRuleStatusDetailsError) GetErrorMessage() string { @@ -1349,7 +1667,7 @@ type CreateReportRequest struct { func (x *CreateReportRequest) Reset() { *x = CreateReportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[12] + mi := &file_sift_reports_v1_reports_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1362,7 +1680,7 @@ func (x *CreateReportRequest) String() string { func (*CreateReportRequest) ProtoMessage() {} func (x *CreateReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[12] + mi := &file_sift_reports_v1_reports_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1375,7 +1693,7 @@ func (x *CreateReportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateReportRequest.ProtoReflect.Descriptor instead. func (*CreateReportRequest) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{12} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{15} } func (m *CreateReportRequest) GetRequest() isCreateReportRequest_Request { @@ -1455,7 +1773,7 @@ type CreateReportResponse struct { func (x *CreateReportResponse) Reset() { *x = CreateReportResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[13] + mi := &file_sift_reports_v1_reports_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1468,7 +1786,7 @@ func (x *CreateReportResponse) String() string { func (*CreateReportResponse) ProtoMessage() {} func (x *CreateReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[13] + mi := &file_sift_reports_v1_reports_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1481,7 +1799,7 @@ func (x *CreateReportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateReportResponse.ProtoReflect.Descriptor instead. func (*CreateReportResponse) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{13} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{16} } func (x *CreateReportResponse) GetReport() *Report { @@ -1504,7 +1822,7 @@ type CreateReportFromReportTemplateRequest struct { func (x *CreateReportFromReportTemplateRequest) Reset() { *x = CreateReportFromReportTemplateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[14] + mi := &file_sift_reports_v1_reports_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1517,7 +1835,7 @@ func (x *CreateReportFromReportTemplateRequest) String() string { func (*CreateReportFromReportTemplateRequest) ProtoMessage() {} func (x *CreateReportFromReportTemplateRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[14] + mi := &file_sift_reports_v1_reports_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1530,7 +1848,7 @@ func (x *CreateReportFromReportTemplateRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use CreateReportFromReportTemplateRequest.ProtoReflect.Descriptor instead. func (*CreateReportFromReportTemplateRequest) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{14} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{17} } func (x *CreateReportFromReportTemplateRequest) GetReportTemplateId() string { @@ -1561,7 +1879,7 @@ type CreateReportFromRulesRequest struct { func (x *CreateReportFromRulesRequest) Reset() { *x = CreateReportFromRulesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[15] + mi := &file_sift_reports_v1_reports_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1574,7 +1892,7 @@ func (x *CreateReportFromRulesRequest) String() string { func (*CreateReportFromRulesRequest) ProtoMessage() {} func (x *CreateReportFromRulesRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[15] + mi := &file_sift_reports_v1_reports_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1587,7 +1905,7 @@ func (x *CreateReportFromRulesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateReportFromRulesRequest.ProtoReflect.Descriptor instead. func (*CreateReportFromRulesRequest) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{15} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{18} } func (x *CreateReportFromRulesRequest) GetName() string { @@ -1676,7 +1994,7 @@ type CreateReportRequestRuleIds struct { func (x *CreateReportRequestRuleIds) Reset() { *x = CreateReportRequestRuleIds{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[16] + mi := &file_sift_reports_v1_reports_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1689,7 +2007,7 @@ func (x *CreateReportRequestRuleIds) String() string { func (*CreateReportRequestRuleIds) ProtoMessage() {} func (x *CreateReportRequestRuleIds) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[16] + mi := &file_sift_reports_v1_reports_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1702,7 +2020,7 @@ func (x *CreateReportRequestRuleIds) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateReportRequestRuleIds.ProtoReflect.Descriptor instead. func (*CreateReportRequestRuleIds) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{16} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{19} } func (x *CreateReportRequestRuleIds) GetRuleIds() []string { @@ -1725,7 +2043,7 @@ type CreateReportRequestClientKeys struct { func (x *CreateReportRequestClientKeys) Reset() { *x = CreateReportRequestClientKeys{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[17] + mi := &file_sift_reports_v1_reports_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1738,7 +2056,7 @@ func (x *CreateReportRequestClientKeys) String() string { func (*CreateReportRequestClientKeys) ProtoMessage() {} func (x *CreateReportRequestClientKeys) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[17] + mi := &file_sift_reports_v1_reports_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1751,7 +2069,7 @@ func (x *CreateReportRequestClientKeys) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateReportRequestClientKeys.ProtoReflect.Descriptor instead. func (*CreateReportRequestClientKeys) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{17} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{20} } func (x *CreateReportRequestClientKeys) GetRuleClientKeys() []string { @@ -1773,7 +2091,7 @@ type CreateReportRequestRuleVersionIds struct { func (x *CreateReportRequestRuleVersionIds) Reset() { *x = CreateReportRequestRuleVersionIds{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[18] + mi := &file_sift_reports_v1_reports_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1786,7 +2104,7 @@ func (x *CreateReportRequestRuleVersionIds) String() string { func (*CreateReportRequestRuleVersionIds) ProtoMessage() {} func (x *CreateReportRequestRuleVersionIds) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[18] + mi := &file_sift_reports_v1_reports_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1799,7 +2117,7 @@ func (x *CreateReportRequestRuleVersionIds) ProtoReflect() protoreflect.Message // Deprecated: Use CreateReportRequestRuleVersionIds.ProtoReflect.Descriptor instead. func (*CreateReportRequestRuleVersionIds) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{18} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{21} } func (x *CreateReportRequestRuleVersionIds) GetRuleVersionIds() []string { @@ -1821,7 +2139,7 @@ type GetReportRequest struct { func (x *GetReportRequest) Reset() { *x = GetReportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[19] + mi := &file_sift_reports_v1_reports_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1834,7 +2152,7 @@ func (x *GetReportRequest) String() string { func (*GetReportRequest) ProtoMessage() {} func (x *GetReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[19] + mi := &file_sift_reports_v1_reports_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1847,7 +2165,7 @@ func (x *GetReportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReportRequest.ProtoReflect.Descriptor instead. func (*GetReportRequest) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{19} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{22} } func (x *GetReportRequest) GetReportId() string { @@ -1869,7 +2187,7 @@ type GetReportResponse struct { func (x *GetReportResponse) Reset() { *x = GetReportResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[20] + mi := &file_sift_reports_v1_reports_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1882,7 +2200,7 @@ func (x *GetReportResponse) String() string { func (*GetReportResponse) ProtoMessage() {} func (x *GetReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[20] + mi := &file_sift_reports_v1_reports_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1895,7 +2213,7 @@ func (x *GetReportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReportResponse.ProtoReflect.Descriptor instead. func (*GetReportResponse) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{20} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{23} } func (x *GetReportResponse) GetReport() *Report { @@ -1939,7 +2257,7 @@ type ListReportsRequest struct { func (x *ListReportsRequest) Reset() { *x = ListReportsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[21] + mi := &file_sift_reports_v1_reports_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1952,7 +2270,7 @@ func (x *ListReportsRequest) String() string { func (*ListReportsRequest) ProtoMessage() {} func (x *ListReportsRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[21] + mi := &file_sift_reports_v1_reports_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1965,7 +2283,7 @@ func (x *ListReportsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListReportsRequest.ProtoReflect.Descriptor instead. func (*ListReportsRequest) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{21} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{24} } func (x *ListReportsRequest) GetPageSize() uint32 { @@ -2016,7 +2334,7 @@ type ListReportsResponse struct { func (x *ListReportsResponse) Reset() { *x = ListReportsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[22] + mi := &file_sift_reports_v1_reports_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2029,7 +2347,7 @@ func (x *ListReportsResponse) String() string { func (*ListReportsResponse) ProtoMessage() {} func (x *ListReportsResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[22] + mi := &file_sift_reports_v1_reports_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2042,7 +2360,7 @@ func (x *ListReportsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListReportsResponse.ProtoReflect.Descriptor instead. func (*ListReportsResponse) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{22} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{25} } func (x *ListReportsResponse) GetReports() []*Report { @@ -2093,7 +2411,7 @@ type ListReportsWithCumulativeSummaryRequest struct { func (x *ListReportsWithCumulativeSummaryRequest) Reset() { *x = ListReportsWithCumulativeSummaryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[23] + mi := &file_sift_reports_v1_reports_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2106,7 +2424,7 @@ func (x *ListReportsWithCumulativeSummaryRequest) String() string { func (*ListReportsWithCumulativeSummaryRequest) ProtoMessage() {} func (x *ListReportsWithCumulativeSummaryRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[23] + mi := &file_sift_reports_v1_reports_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2119,7 +2437,7 @@ func (x *ListReportsWithCumulativeSummaryRequest) ProtoReflect() protoreflect.Me // Deprecated: Use ListReportsWithCumulativeSummaryRequest.ProtoReflect.Descriptor instead. func (*ListReportsWithCumulativeSummaryRequest) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{23} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{26} } func (x *ListReportsWithCumulativeSummaryRequest) GetPageSize() uint32 { @@ -2170,7 +2488,7 @@ type ListReportsWithCumulativeSummaryResponse struct { func (x *ListReportsWithCumulativeSummaryResponse) Reset() { *x = ListReportsWithCumulativeSummaryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[24] + mi := &file_sift_reports_v1_reports_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2183,7 +2501,7 @@ func (x *ListReportsWithCumulativeSummaryResponse) String() string { func (*ListReportsWithCumulativeSummaryResponse) ProtoMessage() {} func (x *ListReportsWithCumulativeSummaryResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[24] + mi := &file_sift_reports_v1_reports_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2196,7 +2514,7 @@ func (x *ListReportsWithCumulativeSummaryResponse) ProtoReflect() protoreflect.M // Deprecated: Use ListReportsWithCumulativeSummaryResponse.ProtoReflect.Descriptor instead. func (*ListReportsWithCumulativeSummaryResponse) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{24} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{27} } func (x *ListReportsWithCumulativeSummaryResponse) GetReports() []*ReportWithCumulativeSummary { @@ -2224,7 +2542,7 @@ type RerunReportRequest struct { func (x *RerunReportRequest) Reset() { *x = RerunReportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[25] + mi := &file_sift_reports_v1_reports_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2237,7 +2555,7 @@ func (x *RerunReportRequest) String() string { func (*RerunReportRequest) ProtoMessage() {} func (x *RerunReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[25] + mi := &file_sift_reports_v1_reports_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2250,7 +2568,7 @@ func (x *RerunReportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RerunReportRequest.ProtoReflect.Descriptor instead. func (*RerunReportRequest) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{25} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{28} } func (x *RerunReportRequest) GetReportId() string { @@ -2272,7 +2590,7 @@ type RerunReportResponse struct { func (x *RerunReportResponse) Reset() { *x = RerunReportResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[26] + mi := &file_sift_reports_v1_reports_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2285,7 +2603,7 @@ func (x *RerunReportResponse) String() string { func (*RerunReportResponse) ProtoMessage() {} func (x *RerunReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[26] + mi := &file_sift_reports_v1_reports_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2298,7 +2616,7 @@ func (x *RerunReportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RerunReportResponse.ProtoReflect.Descriptor instead. func (*RerunReportResponse) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{26} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{29} } func (x *RerunReportResponse) GetJobId() string { @@ -2326,7 +2644,7 @@ type CancelReportRequest struct { func (x *CancelReportRequest) Reset() { *x = CancelReportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[27] + mi := &file_sift_reports_v1_reports_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2339,7 +2657,7 @@ func (x *CancelReportRequest) String() string { func (*CancelReportRequest) ProtoMessage() {} func (x *CancelReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[27] + mi := &file_sift_reports_v1_reports_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2352,7 +2670,7 @@ func (x *CancelReportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelReportRequest.ProtoReflect.Descriptor instead. func (*CancelReportRequest) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{27} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{30} } func (x *CancelReportRequest) GetReportId() string { @@ -2371,7 +2689,7 @@ type CancelReportResponse struct { func (x *CancelReportResponse) Reset() { *x = CancelReportResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[28] + mi := &file_sift_reports_v1_reports_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2384,7 +2702,7 @@ func (x *CancelReportResponse) String() string { func (*CancelReportResponse) ProtoMessage() {} func (x *CancelReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[28] + mi := &file_sift_reports_v1_reports_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2397,7 +2715,7 @@ func (x *CancelReportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelReportResponse.ProtoReflect.Descriptor instead. func (*CancelReportResponse) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{28} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{31} } type UpdateReportRequest struct { @@ -2416,7 +2734,7 @@ type UpdateReportRequest struct { func (x *UpdateReportRequest) Reset() { *x = UpdateReportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[29] + mi := &file_sift_reports_v1_reports_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2429,7 +2747,7 @@ func (x *UpdateReportRequest) String() string { func (*UpdateReportRequest) ProtoMessage() {} func (x *UpdateReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[29] + mi := &file_sift_reports_v1_reports_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2442,7 +2760,7 @@ func (x *UpdateReportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateReportRequest.ProtoReflect.Descriptor instead. func (*UpdateReportRequest) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{29} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{32} } func (x *UpdateReportRequest) GetReport() *Report { @@ -2468,7 +2786,7 @@ type UpdateReportResponse struct { func (x *UpdateReportResponse) Reset() { *x = UpdateReportResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[30] + mi := &file_sift_reports_v1_reports_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2481,7 +2799,7 @@ func (x *UpdateReportResponse) String() string { func (*UpdateReportResponse) ProtoMessage() {} func (x *UpdateReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[30] + mi := &file_sift_reports_v1_reports_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2494,7 +2812,7 @@ func (x *UpdateReportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateReportResponse.ProtoReflect.Descriptor instead. func (*UpdateReportResponse) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{30} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{33} } // The request for a call to `ReportService_ListReportRuleSummaries`. @@ -2525,7 +2843,7 @@ type ListReportRuleSummariesRequest struct { func (x *ListReportRuleSummariesRequest) Reset() { *x = ListReportRuleSummariesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[31] + mi := &file_sift_reports_v1_reports_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2538,7 +2856,7 @@ func (x *ListReportRuleSummariesRequest) String() string { func (*ListReportRuleSummariesRequest) ProtoMessage() {} func (x *ListReportRuleSummariesRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[31] + mi := &file_sift_reports_v1_reports_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2551,7 +2869,7 @@ func (x *ListReportRuleSummariesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListReportRuleSummariesRequest.ProtoReflect.Descriptor instead. func (*ListReportRuleSummariesRequest) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{31} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{34} } func (x *ListReportRuleSummariesRequest) GetReportId() string { @@ -2602,7 +2920,7 @@ type ListReportRuleSummariesResponse struct { func (x *ListReportRuleSummariesResponse) Reset() { *x = ListReportRuleSummariesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[32] + mi := &file_sift_reports_v1_reports_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2615,7 +2933,7 @@ func (x *ListReportRuleSummariesResponse) String() string { func (*ListReportRuleSummariesResponse) ProtoMessage() {} func (x *ListReportRuleSummariesResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[32] + mi := &file_sift_reports_v1_reports_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2628,7 +2946,7 @@ func (x *ListReportRuleSummariesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListReportRuleSummariesResponse.ProtoReflect.Descriptor instead. func (*ListReportRuleSummariesResponse) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{32} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{35} } func (x *ListReportRuleSummariesResponse) GetReportRuleSummaries() []*ReportRuleSummary { @@ -2669,7 +2987,7 @@ type ListReportMetadataValuesRequest struct { func (x *ListReportMetadataValuesRequest) Reset() { *x = ListReportMetadataValuesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[33] + mi := &file_sift_reports_v1_reports_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2682,7 +3000,7 @@ func (x *ListReportMetadataValuesRequest) String() string { func (*ListReportMetadataValuesRequest) ProtoMessage() {} func (x *ListReportMetadataValuesRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[33] + mi := &file_sift_reports_v1_reports_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2695,7 +3013,7 @@ func (x *ListReportMetadataValuesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListReportMetadataValuesRequest.ProtoReflect.Descriptor instead. func (*ListReportMetadataValuesRequest) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{33} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{36} } func (x *ListReportMetadataValuesRequest) GetReportId() string { @@ -2739,7 +3057,7 @@ type ListReportMetadataValuesResponse struct { func (x *ListReportMetadataValuesResponse) Reset() { *x = ListReportMetadataValuesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_reports_v1_reports_proto_msgTypes[34] + mi := &file_sift_reports_v1_reports_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2752,7 +3070,7 @@ func (x *ListReportMetadataValuesResponse) String() string { func (*ListReportMetadataValuesResponse) ProtoMessage() {} func (x *ListReportMetadataValuesResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_reports_v1_reports_proto_msgTypes[34] + mi := &file_sift_reports_v1_reports_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2765,7 +3083,7 @@ func (x *ListReportMetadataValuesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListReportMetadataValuesResponse.ProtoReflect.Descriptor instead. func (*ListReportMetadataValuesResponse) Descriptor() ([]byte, []int) { - return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{34} + return file_sift_reports_v1_reports_proto_rawDescGZIP(), []int{37} } func (x *ListReportMetadataValuesResponse) GetMetadataValues() []*v1.MetadataValue { @@ -2799,409 +3117,481 @@ var file_sift_reports_v1_reports_proto_rawDesc = []byte{ 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xf0, 0x07, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, - 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, - 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, - 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, - 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, - 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x61, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x39, - 0x0a, 0x14, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x06, 0x6a, 0x6f, 0x62, - 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, - 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x74, 0x6f, 0x1a, 0x1b, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x76, + 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, + 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xae, 0x09, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x31, + 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, + 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, + 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x41, 0x0a, - 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, - 0x62, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0xde, 0x07, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, - 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, - 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, - 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x60, 0x0a, 0x12, 0x63, 0x75, - 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, - 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x75, 0x6d, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x04, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, 0x67, - 0x73, 0x12, 0x39, 0x0a, 0x14, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x46, 0x72, 0x6f, - 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x06, - 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x48, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, - 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x41, - 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x45, 0x0a, 0x09, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, + 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x14, + 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x01, 0x52, 0x11, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, + 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x05, + 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x03, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x0b, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, + 0x0a, 0x13, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x04, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x76, + 0x61, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x43, 0x65, 0x6c, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x05, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, + 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, + 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x61, 0x6e, + 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x9c, 0x09, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x57, 0x69, 0x74, + 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, + 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x60, 0x0a, 0x12, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x75, 0x6d, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, + 0x61, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x39, 0x0a, + 0x14, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, + 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, + 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x03, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, + 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x0b, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, + 0x13, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x04, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x76, 0x61, + 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x43, 0x65, 0x6c, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x05, + 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, + 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0x90, 0x06, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1c, 0x0a, - 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x16, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6e, 0x75, 0x6d, - 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6e, - 0x75, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, - 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, 0x0e, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, - 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x08, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, + 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x61, 0x6e, 0x76, + 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0xda, 0x07, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, + 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, + 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, + 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x22, + 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x46, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6e, 0x75, 0x6d, + 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0c, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x2b, 0x0a, 0x09, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, - 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9b, 0x05, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x14, 0x6e, 0x75, 0x6d, 0x5f, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x6e, 0x75, 0x6d, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x39, - 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x16, 0x6e, 0x75, 0x6d, - 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x73, - 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, - 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, - 0x73, 0x73, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2f, 0x0a, - 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x6e, - 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x29, - 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6e, 0x75, 0x6d, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x31, 0x0a, 0x12, 0x6e, 0x75, 0x6d, - 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x10, - 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6e, 0x75, 0x6d, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x6e, - 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6e, 0x75, - 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x12, 0x2b, - 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, 0x75, - 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, - 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x4b, 0x0a, 0x20, 0x6e, 0x75, 0x6d, 0x5f, - 0x6f, 0x66, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, - 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe6, 0x03, 0x0a, 0x17, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x42, - 0x0a, 0x04, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, + 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x6c, 0x76, 0x65, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x6a, 0x0a, 0x1a, 0x72, 0x65, 0x73, 0x6f, + 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, - 0x76, 0x65, 0x12, 0x4e, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x48, 0x00, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x08, - 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, - 0x48, 0x00, 0x52, 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x69, + 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x18, 0x72, 0x65, 0x73, 0x6f, + 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x2b, + 0x0a, 0x09, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x08, 0x74, + 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9b, 0x05, 0x0a, 0x1b, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x14, 0x6e, + 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6f, + 0x70, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, + 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x70, + 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, + 0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x5f, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x6e, 0x75, + 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x2f, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x29, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, + 0x6c, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0c, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x31, 0x0a, + 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, + 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x12, 0x2d, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0e, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, + 0x31, 0x0a, 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x2b, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, + 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x4b, 0x0a, 0x20, + 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x6e, 0x75, 0x6d, + 0x4f, 0x66, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x80, 0x02, 0x0a, 0x12, 0x52, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x12, 0x21, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x19, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x14, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x22, 0x8c, 0x02, 0x0a, + 0x16, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x02, 0x74, 0x30, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x02, 0x74, 0x30, 0x12, + 0x46, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb6, 0x02, 0x0a, 0x16, + 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x32, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x03, 0x72, 0x75, 0x6e, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, + 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x42, 0x12, 0x0a, 0x10, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0xe6, 0x03, 0x0a, 0x17, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x4b, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, + 0x04, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x20, - 0x0a, 0x1e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x22, - 0x71, 0x0a, 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, - 0x72, 0x72, 0x22, 0xc9, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, - 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, - 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, - 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0x21, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x76, + 0x65, 0x12, 0x4e, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x12, 0x48, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x08, 0x63, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x48, + 0x00, 0x52, 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x20, 0x0a, + 0x1e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, + 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x22, 0x71, 0x0a, 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, - 0x64, 0x22, 0xc8, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x09, - 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, - 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x73, - 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x78, 0x69, - 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0xd2, 0x03, 0x0a, - 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x23, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, - 0x00, 0x52, 0x1f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x6f, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x72, 0x6f, - 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x16, 0x72, 0x65, 0x70, + 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, + 0x72, 0x22, 0xc9, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, + 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, + 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x78, + 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x6f, + 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0x21, 0x0a, + 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, + 0x22, 0xc8, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x65, + 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, + 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, + 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x78, 0x69, 0x74, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0xd2, 0x03, 0x0a, 0x13, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x23, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, + 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, + 0x52, 0x1f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x6f, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, + 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, - 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x4c, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, - 0x5a, 0x0a, 0x25, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, - 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0xbe, 0x03, 0x0a, 0x1c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, - 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x61, 0x67, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, - 0x64, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, - 0x64, 0x73, 0x12, 0x5f, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, + 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x16, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, + 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x4c, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x5a, + 0x0a, 0x25, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, + 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0xbe, 0x03, 0x0a, 0x1c, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x20, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, + 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, + 0x73, 0x12, 0x5f, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, + 0x79, 0x73, 0x12, 0x63, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, - 0x65, 0x79, 0x73, 0x12, 0x63, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, - 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3c, 0x0a, 0x1a, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, - 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x22, 0x4e, 0x0a, 0x1d, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x52, 0x0a, 0x21, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, - 0x2d, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, - 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x34, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, - 0xc5, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x70, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, - 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, - 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xda, 0x01, 0x0a, 0x27, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, - 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3c, 0x0a, 0x1a, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, + 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x22, 0x4e, 0x0a, 0x1d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x52, 0x0a, 0x21, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x2d, + 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, + 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x34, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xc5, + 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, @@ -3213,249 +3603,271 @@ var file_sift_reports_v1_reports_proto_rawDesc = []byte{ 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x28, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x57, 0x69, 0x74, - 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0x36, 0x0a, 0x12, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x13, 0x52, - 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x22, 0x37, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, - 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, - 0x6b, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x1e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, - 0x79, 0x22, 0xa1, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x26, 0x0a, - 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x94, - 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, - 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2a, 0x4a, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x01, 0x2a, 0xf2, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, - 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, - 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, - 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x32, 0xad, 0x10, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x99, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x92, - 0x41, 0x1f, 0x12, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x12, 0x52, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9a, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, - 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x12, 0x9a, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x3d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x1a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x1a, 0x0f, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x90, - 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x23, + 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x70, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, + 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x92, 0x41, 0x1c, 0x12, 0x0b, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x0d, 0x4c, 0x69, 0x73, - 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, - 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x12, 0xc2, 0x02, 0x0a, 0x0b, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe7, 0x01, 0x92, - 0x41, 0xba, 0x01, 0x12, 0x0b, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x1a, 0xaa, 0x01, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, - 0x75, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x75, 0x70, 0x2d, 0x74, 0x6f, 0x2d, 0x64, 0x61, 0x74, 0x65, - 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x23, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, - 0x3a, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x12, 0xc4, 0x02, 0x0a, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, + 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xda, 0x01, 0x0a, 0x27, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, + 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x28, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x46, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x57, 0x69, 0x74, 0x68, + 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0x36, 0x0a, 0x12, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x13, 0x52, 0x65, + 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, + 0x37, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x40, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, + 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, + 0x22, 0xa1, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x94, 0x01, + 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x2a, 0x62, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, + 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, + 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x43, 0x41, 0x4e, 0x56, 0x41, 0x53, 0x10, 0x02, 0x2a, 0xf2, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, + 0x1e, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, + 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x1f, + 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x03, 0x12, + 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1f, + 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, + 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x32, 0xad, 0x10, + 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x99, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe6, 0x01, 0x92, 0x41, 0xb8, 0x01, 0x12, 0x0c, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0xa7, 0x01, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x69, - 0x74, 0x20, 0x61, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x2e, 0x20, 0x41, - 0x6e, 0x79, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x61, 0x76, - 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x83, 0x02, - 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x69, 0x66, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x92, 0x41, 0x1f, 0x12, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x12, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, + 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9a, 0x01, 0x0a, 0x0c, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x20, 0x12, 0x0c, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x10, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x9a, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x14, 0x3a, 0x01, 0x2a, 0x1a, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x84, 0x01, 0x92, - 0x41, 0x4f, 0x12, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x34, 0x4c, 0x69, 0x73, - 0x74, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x2d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x69, 0x65, 0x73, 0x12, 0x89, 0x02, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, 0x92, 0x41, 0x51, 0x12, 0x18, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x35, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x94, 0x02, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, - 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x12, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x36, 0x92, 0x41, 0x1c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x1a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0xc2, 0x02, 0x0a, 0x0b, 0x52, 0x65, 0x72, + 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xe7, 0x01, 0x92, 0x41, 0xba, 0x01, 0x12, 0x0b, 0x52, 0x65, 0x72, 0x75, + 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0xaa, 0x01, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x75, 0x70, 0x2d, + 0x74, 0x6f, 0x2d, 0x64, 0x61, 0x74, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x12, 0xc4, 0x02, + 0x0a, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, - 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x92, 0x41, 0x49, 0x12, 0x20, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, - 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x1a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x77, - 0x69, 0x74, 0x68, 0x2d, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x2d, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0xd3, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, - 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, - 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, - 0x31, 0x3b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x52, - 0x58, 0xaa, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x12, 0x12, 0x10, 0x0a, 0x0e, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe6, 0x01, 0x92, 0x41, + 0xb8, 0x01, 0x12, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x1a, 0xa7, 0x01, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x69, 0x74, 0x20, 0x61, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x65, 0x64, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, + 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x75, 0x70, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, + 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x83, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, + 0x12, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x84, 0x01, 0x92, 0x41, 0x4f, 0x12, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, + 0x65, 0x73, 0x1a, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, + 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x75, 0x6c, 0x65, + 0x2d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x89, 0x02, 0x0a, 0x18, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, 0x92, + 0x41, 0x51, 0x12, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x35, 0x4c, 0x69, + 0x73, 0x74, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x94, 0x02, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x38, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x7b, 0x92, 0x41, 0x49, 0x12, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x1a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x63, 0x75, 0x6d, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x77, 0x69, 0x74, 0x68, 0x2d, 0x63, 0x75, 0x6d, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x2d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0xd3, 0x01, + 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, + 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0f, 0x53, 0x69, 0x66, + 0x74, 0x5c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1b, 0x53, + 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x53, 0x69, 0x66, + 0x74, 0x3a, 0x3a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, + 0x12, 0x12, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3471,7 +3883,7 @@ func file_sift_reports_v1_reports_proto_rawDescGZIP() []byte { } var file_sift_reports_v1_reports_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_sift_reports_v1_reports_proto_msgTypes = make([]protoimpl.MessageInfo, 35) +var file_sift_reports_v1_reports_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_sift_reports_v1_reports_proto_goTypes = []interface{}{ (ReportType)(0), // 0: sift.reports.v1.ReportType (ReportRuleStatus)(0), // 1: sift.reports.v1.ReportRuleStatus @@ -3480,102 +3892,120 @@ var file_sift_reports_v1_reports_proto_goTypes = []interface{}{ (*ReportRuleSummary)(nil), // 4: sift.reports.v1.ReportRuleSummary (*ReportTag)(nil), // 5: sift.reports.v1.ReportTag (*ReportCumulativeRuleSummary)(nil), // 6: sift.reports.v1.ReportCumulativeRuleSummary - (*ReportRuleStatusDetails)(nil), // 7: sift.reports.v1.ReportRuleStatusDetails - (*ReportRuleStatusDetailsCreated)(nil), // 8: sift.reports.v1.ReportRuleStatusDetailsCreated - (*ReportRuleStatusDetailsLive)(nil), // 9: sift.reports.v1.ReportRuleStatusDetailsLive - (*ReportRuleStatusDetailsFinished)(nil), // 10: sift.reports.v1.ReportRuleStatusDetailsFinished - (*ReportRuleStatusDetailsFailed)(nil), // 11: sift.reports.v1.ReportRuleStatusDetailsFailed - (*ReportRuleStatusDetailsCanceled)(nil), // 12: sift.reports.v1.ReportRuleStatusDetailsCanceled - (*ReportRuleStatusDetailsError)(nil), // 13: sift.reports.v1.ReportRuleStatusDetailsError - (*CreateReportRequest)(nil), // 14: sift.reports.v1.CreateReportRequest - (*CreateReportResponse)(nil), // 15: sift.reports.v1.CreateReportResponse - (*CreateReportFromReportTemplateRequest)(nil), // 16: sift.reports.v1.CreateReportFromReportTemplateRequest - (*CreateReportFromRulesRequest)(nil), // 17: sift.reports.v1.CreateReportFromRulesRequest - (*CreateReportRequestRuleIds)(nil), // 18: sift.reports.v1.CreateReportRequestRuleIds - (*CreateReportRequestClientKeys)(nil), // 19: sift.reports.v1.CreateReportRequestClientKeys - (*CreateReportRequestRuleVersionIds)(nil), // 20: sift.reports.v1.CreateReportRequestRuleVersionIds - (*GetReportRequest)(nil), // 21: sift.reports.v1.GetReportRequest - (*GetReportResponse)(nil), // 22: sift.reports.v1.GetReportResponse - (*ListReportsRequest)(nil), // 23: sift.reports.v1.ListReportsRequest - (*ListReportsResponse)(nil), // 24: sift.reports.v1.ListReportsResponse - (*ListReportsWithCumulativeSummaryRequest)(nil), // 25: sift.reports.v1.ListReportsWithCumulativeSummaryRequest - (*ListReportsWithCumulativeSummaryResponse)(nil), // 26: sift.reports.v1.ListReportsWithCumulativeSummaryResponse - (*RerunReportRequest)(nil), // 27: sift.reports.v1.RerunReportRequest - (*RerunReportResponse)(nil), // 28: sift.reports.v1.RerunReportResponse - (*CancelReportRequest)(nil), // 29: sift.reports.v1.CancelReportRequest - (*CancelReportResponse)(nil), // 30: sift.reports.v1.CancelReportResponse - (*UpdateReportRequest)(nil), // 31: sift.reports.v1.UpdateReportRequest - (*UpdateReportResponse)(nil), // 32: sift.reports.v1.UpdateReportResponse - (*ListReportRuleSummariesRequest)(nil), // 33: sift.reports.v1.ListReportRuleSummariesRequest - (*ListReportRuleSummariesResponse)(nil), // 34: sift.reports.v1.ListReportRuleSummariesResponse - (*ListReportMetadataValuesRequest)(nil), // 35: sift.reports.v1.ListReportMetadataValuesRequest - (*ListReportMetadataValuesResponse)(nil), // 36: sift.reports.v1.ListReportMetadataValuesResponse - (*timestamppb.Timestamp)(nil), // 37: google.protobuf.Timestamp - (*v1.MetadataValue)(nil), // 38: sift.metadata.v1.MetadataValue - (*fieldmaskpb.FieldMask)(nil), // 39: google.protobuf.FieldMask + (*ResolvedFamilyStat)(nil), // 7: sift.reports.v1.ResolvedFamilyStat + (*ResolvedAlignmentEntry)(nil), // 8: sift.reports.v1.ResolvedAlignmentEntry + (*ResolvedAlignmentPoint)(nil), // 9: sift.reports.v1.ResolvedAlignmentPoint + (*ReportRuleStatusDetails)(nil), // 10: sift.reports.v1.ReportRuleStatusDetails + (*ReportRuleStatusDetailsCreated)(nil), // 11: sift.reports.v1.ReportRuleStatusDetailsCreated + (*ReportRuleStatusDetailsLive)(nil), // 12: sift.reports.v1.ReportRuleStatusDetailsLive + (*ReportRuleStatusDetailsFinished)(nil), // 13: sift.reports.v1.ReportRuleStatusDetailsFinished + (*ReportRuleStatusDetailsFailed)(nil), // 14: sift.reports.v1.ReportRuleStatusDetailsFailed + (*ReportRuleStatusDetailsCanceled)(nil), // 15: sift.reports.v1.ReportRuleStatusDetailsCanceled + (*ReportRuleStatusDetailsError)(nil), // 16: sift.reports.v1.ReportRuleStatusDetailsError + (*CreateReportRequest)(nil), // 17: sift.reports.v1.CreateReportRequest + (*CreateReportResponse)(nil), // 18: sift.reports.v1.CreateReportResponse + (*CreateReportFromReportTemplateRequest)(nil), // 19: sift.reports.v1.CreateReportFromReportTemplateRequest + (*CreateReportFromRulesRequest)(nil), // 20: sift.reports.v1.CreateReportFromRulesRequest + (*CreateReportRequestRuleIds)(nil), // 21: sift.reports.v1.CreateReportRequestRuleIds + (*CreateReportRequestClientKeys)(nil), // 22: sift.reports.v1.CreateReportRequestClientKeys + (*CreateReportRequestRuleVersionIds)(nil), // 23: sift.reports.v1.CreateReportRequestRuleVersionIds + (*GetReportRequest)(nil), // 24: sift.reports.v1.GetReportRequest + (*GetReportResponse)(nil), // 25: sift.reports.v1.GetReportResponse + (*ListReportsRequest)(nil), // 26: sift.reports.v1.ListReportsRequest + (*ListReportsResponse)(nil), // 27: sift.reports.v1.ListReportsResponse + (*ListReportsWithCumulativeSummaryRequest)(nil), // 28: sift.reports.v1.ListReportsWithCumulativeSummaryRequest + (*ListReportsWithCumulativeSummaryResponse)(nil), // 29: sift.reports.v1.ListReportsWithCumulativeSummaryResponse + (*RerunReportRequest)(nil), // 30: sift.reports.v1.RerunReportRequest + (*RerunReportResponse)(nil), // 31: sift.reports.v1.RerunReportResponse + (*CancelReportRequest)(nil), // 32: sift.reports.v1.CancelReportRequest + (*CancelReportResponse)(nil), // 33: sift.reports.v1.CancelReportResponse + (*UpdateReportRequest)(nil), // 34: sift.reports.v1.UpdateReportRequest + (*UpdateReportResponse)(nil), // 35: sift.reports.v1.UpdateReportResponse + (*ListReportRuleSummariesRequest)(nil), // 36: sift.reports.v1.ListReportRuleSummariesRequest + (*ListReportRuleSummariesResponse)(nil), // 37: sift.reports.v1.ListReportRuleSummariesResponse + (*ListReportMetadataValuesRequest)(nil), // 38: sift.reports.v1.ListReportMetadataValuesRequest + (*ListReportMetadataValuesResponse)(nil), // 39: sift.reports.v1.ListReportMetadataValuesResponse + (*timestamppb.Timestamp)(nil), // 40: google.protobuf.Timestamp + (*v1.MetadataValue)(nil), // 41: sift.metadata.v1.MetadataValue + (v11.CanvasCellExecutionStatus)(0), // 42: sift.canvas.v1.CanvasCellExecutionStatus + (*v12.RunAlignment)(nil), // 43: sift.families.v1.RunAlignment + (*v12.AnnotationAlignment)(nil), // 44: sift.families.v1.AnnotationAlignment + (*v12.TimestampAlignment)(nil), // 45: sift.families.v1.TimestampAlignment + (*fieldmaskpb.FieldMask)(nil), // 46: google.protobuf.FieldMask } var file_sift_reports_v1_reports_proto_depIdxs = []int32{ - 37, // 0: sift.reports.v1.Report.created_date:type_name -> google.protobuf.Timestamp - 37, // 1: sift.reports.v1.Report.modified_date:type_name -> google.protobuf.Timestamp + 40, // 0: sift.reports.v1.Report.created_date:type_name -> google.protobuf.Timestamp + 40, // 1: sift.reports.v1.Report.modified_date:type_name -> google.protobuf.Timestamp 4, // 2: sift.reports.v1.Report.summaries:type_name -> sift.reports.v1.ReportRuleSummary 5, // 3: sift.reports.v1.Report.tags:type_name -> sift.reports.v1.ReportTag - 37, // 4: sift.reports.v1.Report.archived_date:type_name -> google.protobuf.Timestamp - 38, // 5: sift.reports.v1.Report.metadata:type_name -> sift.metadata.v1.MetadataValue + 40, // 4: sift.reports.v1.Report.archived_date:type_name -> google.protobuf.Timestamp + 41, // 5: sift.reports.v1.Report.metadata:type_name -> sift.metadata.v1.MetadataValue 0, // 6: sift.reports.v1.Report.report_type:type_name -> sift.reports.v1.ReportType - 37, // 7: sift.reports.v1.ReportWithCumulativeSummary.created_date:type_name -> google.protobuf.Timestamp - 37, // 8: sift.reports.v1.ReportWithCumulativeSummary.modified_date:type_name -> google.protobuf.Timestamp - 6, // 9: sift.reports.v1.ReportWithCumulativeSummary.cumulative_summary:type_name -> sift.reports.v1.ReportCumulativeRuleSummary - 5, // 10: sift.reports.v1.ReportWithCumulativeSummary.tags:type_name -> sift.reports.v1.ReportTag - 37, // 11: sift.reports.v1.ReportWithCumulativeSummary.archived_date:type_name -> google.protobuf.Timestamp - 0, // 12: sift.reports.v1.ReportWithCumulativeSummary.report_type:type_name -> sift.reports.v1.ReportType - 1, // 13: sift.reports.v1.ReportRuleSummary.status:type_name -> sift.reports.v1.ReportRuleStatus - 7, // 14: sift.reports.v1.ReportRuleSummary.status_details:type_name -> sift.reports.v1.ReportRuleStatusDetails - 37, // 15: sift.reports.v1.ReportRuleSummary.created_date:type_name -> google.protobuf.Timestamp - 37, // 16: sift.reports.v1.ReportRuleSummary.modified_date:type_name -> google.protobuf.Timestamp - 37, // 17: sift.reports.v1.ReportRuleSummary.deleted_date:type_name -> google.protobuf.Timestamp - 8, // 18: sift.reports.v1.ReportRuleStatusDetails.created:type_name -> sift.reports.v1.ReportRuleStatusDetailsCreated - 9, // 19: sift.reports.v1.ReportRuleStatusDetails.live:type_name -> sift.reports.v1.ReportRuleStatusDetailsLive - 10, // 20: sift.reports.v1.ReportRuleStatusDetails.finished:type_name -> sift.reports.v1.ReportRuleStatusDetailsFinished - 11, // 21: sift.reports.v1.ReportRuleStatusDetails.failed:type_name -> sift.reports.v1.ReportRuleStatusDetailsFailed - 12, // 22: sift.reports.v1.ReportRuleStatusDetails.canceled:type_name -> sift.reports.v1.ReportRuleStatusDetailsCanceled - 13, // 23: sift.reports.v1.ReportRuleStatusDetails.error:type_name -> sift.reports.v1.ReportRuleStatusDetailsError - 16, // 24: sift.reports.v1.CreateReportRequest.report_from_report_template_request:type_name -> sift.reports.v1.CreateReportFromReportTemplateRequest - 17, // 25: sift.reports.v1.CreateReportRequest.report_from_rules_request:type_name -> sift.reports.v1.CreateReportFromRulesRequest - 38, // 26: sift.reports.v1.CreateReportRequest.metadata:type_name -> sift.metadata.v1.MetadataValue - 2, // 27: sift.reports.v1.CreateReportResponse.report:type_name -> sift.reports.v1.Report - 18, // 28: sift.reports.v1.CreateReportFromRulesRequest.rule_ids:type_name -> sift.reports.v1.CreateReportRequestRuleIds - 19, // 29: sift.reports.v1.CreateReportFromRulesRequest.rule_client_keys:type_name -> sift.reports.v1.CreateReportRequestClientKeys - 20, // 30: sift.reports.v1.CreateReportFromRulesRequest.rule_version_ids:type_name -> sift.reports.v1.CreateReportRequestRuleVersionIds - 2, // 31: sift.reports.v1.GetReportResponse.report:type_name -> sift.reports.v1.Report - 2, // 32: sift.reports.v1.ListReportsResponse.reports:type_name -> sift.reports.v1.Report - 3, // 33: sift.reports.v1.ListReportsWithCumulativeSummaryResponse.reports:type_name -> sift.reports.v1.ReportWithCumulativeSummary - 2, // 34: sift.reports.v1.UpdateReportRequest.report:type_name -> sift.reports.v1.Report - 39, // 35: sift.reports.v1.UpdateReportRequest.update_mask:type_name -> google.protobuf.FieldMask - 4, // 36: sift.reports.v1.ListReportRuleSummariesResponse.report_rule_summaries:type_name -> sift.reports.v1.ReportRuleSummary - 38, // 37: sift.reports.v1.ListReportMetadataValuesResponse.metadata_values:type_name -> sift.metadata.v1.MetadataValue - 21, // 38: sift.reports.v1.ReportService.GetReport:input_type -> sift.reports.v1.GetReportRequest - 14, // 39: sift.reports.v1.ReportService.CreateReport:input_type -> sift.reports.v1.CreateReportRequest - 31, // 40: sift.reports.v1.ReportService.UpdateReport:input_type -> sift.reports.v1.UpdateReportRequest - 23, // 41: sift.reports.v1.ReportService.ListReports:input_type -> sift.reports.v1.ListReportsRequest - 27, // 42: sift.reports.v1.ReportService.RerunReport:input_type -> sift.reports.v1.RerunReportRequest - 29, // 43: sift.reports.v1.ReportService.CancelReport:input_type -> sift.reports.v1.CancelReportRequest - 33, // 44: sift.reports.v1.ReportService.ListReportRuleSummaries:input_type -> sift.reports.v1.ListReportRuleSummariesRequest - 35, // 45: sift.reports.v1.ReportService.ListReportMetadataValues:input_type -> sift.reports.v1.ListReportMetadataValuesRequest - 25, // 46: sift.reports.v1.ReportService.ListReportsWithCumulativeSummary:input_type -> sift.reports.v1.ListReportsWithCumulativeSummaryRequest - 22, // 47: sift.reports.v1.ReportService.GetReport:output_type -> sift.reports.v1.GetReportResponse - 15, // 48: sift.reports.v1.ReportService.CreateReport:output_type -> sift.reports.v1.CreateReportResponse - 32, // 49: sift.reports.v1.ReportService.UpdateReport:output_type -> sift.reports.v1.UpdateReportResponse - 24, // 50: sift.reports.v1.ReportService.ListReports:output_type -> sift.reports.v1.ListReportsResponse - 28, // 51: sift.reports.v1.ReportService.RerunReport:output_type -> sift.reports.v1.RerunReportResponse - 30, // 52: sift.reports.v1.ReportService.CancelReport:output_type -> sift.reports.v1.CancelReportResponse - 34, // 53: sift.reports.v1.ReportService.ListReportRuleSummaries:output_type -> sift.reports.v1.ListReportRuleSummariesResponse - 36, // 54: sift.reports.v1.ReportService.ListReportMetadataValues:output_type -> sift.reports.v1.ListReportMetadataValuesResponse - 26, // 55: sift.reports.v1.ReportService.ListReportsWithCumulativeSummary:output_type -> sift.reports.v1.ListReportsWithCumulativeSummaryResponse - 47, // [47:56] is the sub-list for method output_type - 38, // [38:47] is the sub-list for method input_type - 38, // [38:38] is the sub-list for extension type_name - 38, // [38:38] is the sub-list for extension extendee - 0, // [0:38] is the sub-list for field type_name + 42, // 7: sift.reports.v1.Report.canvas_status:type_name -> sift.canvas.v1.CanvasCellExecutionStatus + 40, // 8: sift.reports.v1.ReportWithCumulativeSummary.created_date:type_name -> google.protobuf.Timestamp + 40, // 9: sift.reports.v1.ReportWithCumulativeSummary.modified_date:type_name -> google.protobuf.Timestamp + 6, // 10: sift.reports.v1.ReportWithCumulativeSummary.cumulative_summary:type_name -> sift.reports.v1.ReportCumulativeRuleSummary + 5, // 11: sift.reports.v1.ReportWithCumulativeSummary.tags:type_name -> sift.reports.v1.ReportTag + 40, // 12: sift.reports.v1.ReportWithCumulativeSummary.archived_date:type_name -> google.protobuf.Timestamp + 0, // 13: sift.reports.v1.ReportWithCumulativeSummary.report_type:type_name -> sift.reports.v1.ReportType + 42, // 14: sift.reports.v1.ReportWithCumulativeSummary.canvas_status:type_name -> sift.canvas.v1.CanvasCellExecutionStatus + 1, // 15: sift.reports.v1.ReportRuleSummary.status:type_name -> sift.reports.v1.ReportRuleStatus + 10, // 16: sift.reports.v1.ReportRuleSummary.status_details:type_name -> sift.reports.v1.ReportRuleStatusDetails + 40, // 17: sift.reports.v1.ReportRuleSummary.created_date:type_name -> google.protobuf.Timestamp + 40, // 18: sift.reports.v1.ReportRuleSummary.modified_date:type_name -> google.protobuf.Timestamp + 40, // 19: sift.reports.v1.ReportRuleSummary.deleted_date:type_name -> google.protobuf.Timestamp + 7, // 20: sift.reports.v1.ReportRuleSummary.resolved_family_stats:type_name -> sift.reports.v1.ResolvedFamilyStat + 8, // 21: sift.reports.v1.ReportRuleSummary.resolved_alignment_configs:type_name -> sift.reports.v1.ResolvedAlignmentEntry + 9, // 22: sift.reports.v1.ResolvedAlignmentEntry.t0:type_name -> sift.reports.v1.ResolvedAlignmentPoint + 9, // 23: sift.reports.v1.ResolvedAlignmentEntry.start_time:type_name -> sift.reports.v1.ResolvedAlignmentPoint + 9, // 24: sift.reports.v1.ResolvedAlignmentEntry.end_time:type_name -> sift.reports.v1.ResolvedAlignmentPoint + 40, // 25: sift.reports.v1.ResolvedAlignmentPoint.timestamp:type_name -> google.protobuf.Timestamp + 43, // 26: sift.reports.v1.ResolvedAlignmentPoint.run:type_name -> sift.families.v1.RunAlignment + 44, // 27: sift.reports.v1.ResolvedAlignmentPoint.annotation:type_name -> sift.families.v1.AnnotationAlignment + 45, // 28: sift.reports.v1.ResolvedAlignmentPoint.timestamp_config:type_name -> sift.families.v1.TimestampAlignment + 11, // 29: sift.reports.v1.ReportRuleStatusDetails.created:type_name -> sift.reports.v1.ReportRuleStatusDetailsCreated + 12, // 30: sift.reports.v1.ReportRuleStatusDetails.live:type_name -> sift.reports.v1.ReportRuleStatusDetailsLive + 13, // 31: sift.reports.v1.ReportRuleStatusDetails.finished:type_name -> sift.reports.v1.ReportRuleStatusDetailsFinished + 14, // 32: sift.reports.v1.ReportRuleStatusDetails.failed:type_name -> sift.reports.v1.ReportRuleStatusDetailsFailed + 15, // 33: sift.reports.v1.ReportRuleStatusDetails.canceled:type_name -> sift.reports.v1.ReportRuleStatusDetailsCanceled + 16, // 34: sift.reports.v1.ReportRuleStatusDetails.error:type_name -> sift.reports.v1.ReportRuleStatusDetailsError + 19, // 35: sift.reports.v1.CreateReportRequest.report_from_report_template_request:type_name -> sift.reports.v1.CreateReportFromReportTemplateRequest + 20, // 36: sift.reports.v1.CreateReportRequest.report_from_rules_request:type_name -> sift.reports.v1.CreateReportFromRulesRequest + 41, // 37: sift.reports.v1.CreateReportRequest.metadata:type_name -> sift.metadata.v1.MetadataValue + 2, // 38: sift.reports.v1.CreateReportResponse.report:type_name -> sift.reports.v1.Report + 21, // 39: sift.reports.v1.CreateReportFromRulesRequest.rule_ids:type_name -> sift.reports.v1.CreateReportRequestRuleIds + 22, // 40: sift.reports.v1.CreateReportFromRulesRequest.rule_client_keys:type_name -> sift.reports.v1.CreateReportRequestClientKeys + 23, // 41: sift.reports.v1.CreateReportFromRulesRequest.rule_version_ids:type_name -> sift.reports.v1.CreateReportRequestRuleVersionIds + 2, // 42: sift.reports.v1.GetReportResponse.report:type_name -> sift.reports.v1.Report + 2, // 43: sift.reports.v1.ListReportsResponse.reports:type_name -> sift.reports.v1.Report + 3, // 44: sift.reports.v1.ListReportsWithCumulativeSummaryResponse.reports:type_name -> sift.reports.v1.ReportWithCumulativeSummary + 2, // 45: sift.reports.v1.UpdateReportRequest.report:type_name -> sift.reports.v1.Report + 46, // 46: sift.reports.v1.UpdateReportRequest.update_mask:type_name -> google.protobuf.FieldMask + 4, // 47: sift.reports.v1.ListReportRuleSummariesResponse.report_rule_summaries:type_name -> sift.reports.v1.ReportRuleSummary + 41, // 48: sift.reports.v1.ListReportMetadataValuesResponse.metadata_values:type_name -> sift.metadata.v1.MetadataValue + 24, // 49: sift.reports.v1.ReportService.GetReport:input_type -> sift.reports.v1.GetReportRequest + 17, // 50: sift.reports.v1.ReportService.CreateReport:input_type -> sift.reports.v1.CreateReportRequest + 34, // 51: sift.reports.v1.ReportService.UpdateReport:input_type -> sift.reports.v1.UpdateReportRequest + 26, // 52: sift.reports.v1.ReportService.ListReports:input_type -> sift.reports.v1.ListReportsRequest + 30, // 53: sift.reports.v1.ReportService.RerunReport:input_type -> sift.reports.v1.RerunReportRequest + 32, // 54: sift.reports.v1.ReportService.CancelReport:input_type -> sift.reports.v1.CancelReportRequest + 36, // 55: sift.reports.v1.ReportService.ListReportRuleSummaries:input_type -> sift.reports.v1.ListReportRuleSummariesRequest + 38, // 56: sift.reports.v1.ReportService.ListReportMetadataValues:input_type -> sift.reports.v1.ListReportMetadataValuesRequest + 28, // 57: sift.reports.v1.ReportService.ListReportsWithCumulativeSummary:input_type -> sift.reports.v1.ListReportsWithCumulativeSummaryRequest + 25, // 58: sift.reports.v1.ReportService.GetReport:output_type -> sift.reports.v1.GetReportResponse + 18, // 59: sift.reports.v1.ReportService.CreateReport:output_type -> sift.reports.v1.CreateReportResponse + 35, // 60: sift.reports.v1.ReportService.UpdateReport:output_type -> sift.reports.v1.UpdateReportResponse + 27, // 61: sift.reports.v1.ReportService.ListReports:output_type -> sift.reports.v1.ListReportsResponse + 31, // 62: sift.reports.v1.ReportService.RerunReport:output_type -> sift.reports.v1.RerunReportResponse + 33, // 63: sift.reports.v1.ReportService.CancelReport:output_type -> sift.reports.v1.CancelReportResponse + 37, // 64: sift.reports.v1.ReportService.ListReportRuleSummaries:output_type -> sift.reports.v1.ListReportRuleSummariesResponse + 39, // 65: sift.reports.v1.ReportService.ListReportMetadataValues:output_type -> sift.reports.v1.ListReportMetadataValuesResponse + 29, // 66: sift.reports.v1.ReportService.ListReportsWithCumulativeSummary:output_type -> sift.reports.v1.ListReportsWithCumulativeSummaryResponse + 58, // [58:67] is the sub-list for method output_type + 49, // [49:58] is the sub-list for method input_type + 49, // [49:49] is the sub-list for extension type_name + 49, // [49:49] is the sub-list for extension extendee + 0, // [0:49] is the sub-list for field type_name } func init() { file_sift_reports_v1_reports_proto_init() } @@ -3645,7 +4075,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportRuleStatusDetails); i { + switch v := v.(*ResolvedFamilyStat); i { case 0: return &v.state case 1: @@ -3657,7 +4087,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportRuleStatusDetailsCreated); i { + switch v := v.(*ResolvedAlignmentEntry); i { case 0: return &v.state case 1: @@ -3669,7 +4099,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportRuleStatusDetailsLive); i { + switch v := v.(*ResolvedAlignmentPoint); i { case 0: return &v.state case 1: @@ -3681,7 +4111,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportRuleStatusDetailsFinished); i { + switch v := v.(*ReportRuleStatusDetails); i { case 0: return &v.state case 1: @@ -3693,7 +4123,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportRuleStatusDetailsFailed); i { + switch v := v.(*ReportRuleStatusDetailsCreated); i { case 0: return &v.state case 1: @@ -3705,7 +4135,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportRuleStatusDetailsCanceled); i { + switch v := v.(*ReportRuleStatusDetailsLive); i { case 0: return &v.state case 1: @@ -3717,7 +4147,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportRuleStatusDetailsError); i { + switch v := v.(*ReportRuleStatusDetailsFinished); i { case 0: return &v.state case 1: @@ -3729,7 +4159,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateReportRequest); i { + switch v := v.(*ReportRuleStatusDetailsFailed); i { case 0: return &v.state case 1: @@ -3741,7 +4171,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateReportResponse); i { + switch v := v.(*ReportRuleStatusDetailsCanceled); i { case 0: return &v.state case 1: @@ -3753,7 +4183,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateReportFromReportTemplateRequest); i { + switch v := v.(*ReportRuleStatusDetailsError); i { case 0: return &v.state case 1: @@ -3765,7 +4195,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateReportFromRulesRequest); i { + switch v := v.(*CreateReportRequest); i { case 0: return &v.state case 1: @@ -3777,7 +4207,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateReportRequestRuleIds); i { + switch v := v.(*CreateReportResponse); i { case 0: return &v.state case 1: @@ -3789,7 +4219,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateReportRequestClientKeys); i { + switch v := v.(*CreateReportFromReportTemplateRequest); i { case 0: return &v.state case 1: @@ -3801,7 +4231,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateReportRequestRuleVersionIds); i { + switch v := v.(*CreateReportFromRulesRequest); i { case 0: return &v.state case 1: @@ -3813,7 +4243,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetReportRequest); i { + switch v := v.(*CreateReportRequestRuleIds); i { case 0: return &v.state case 1: @@ -3825,7 +4255,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetReportResponse); i { + switch v := v.(*CreateReportRequestClientKeys); i { case 0: return &v.state case 1: @@ -3837,7 +4267,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReportsRequest); i { + switch v := v.(*CreateReportRequestRuleVersionIds); i { case 0: return &v.state case 1: @@ -3849,7 +4279,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReportsResponse); i { + switch v := v.(*GetReportRequest); i { case 0: return &v.state case 1: @@ -3861,7 +4291,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReportsWithCumulativeSummaryRequest); i { + switch v := v.(*GetReportResponse); i { case 0: return &v.state case 1: @@ -3873,7 +4303,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReportsWithCumulativeSummaryResponse); i { + switch v := v.(*ListReportsRequest); i { case 0: return &v.state case 1: @@ -3885,7 +4315,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RerunReportRequest); i { + switch v := v.(*ListReportsResponse); i { case 0: return &v.state case 1: @@ -3897,7 +4327,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RerunReportResponse); i { + switch v := v.(*ListReportsWithCumulativeSummaryRequest); i { case 0: return &v.state case 1: @@ -3909,7 +4339,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CancelReportRequest); i { + switch v := v.(*ListReportsWithCumulativeSummaryResponse); i { case 0: return &v.state case 1: @@ -3921,7 +4351,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CancelReportResponse); i { + switch v := v.(*RerunReportRequest); i { case 0: return &v.state case 1: @@ -3933,7 +4363,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateReportRequest); i { + switch v := v.(*RerunReportResponse); i { case 0: return &v.state case 1: @@ -3945,7 +4375,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateReportResponse); i { + switch v := v.(*CancelReportRequest); i { case 0: return &v.state case 1: @@ -3957,7 +4387,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReportRuleSummariesRequest); i { + switch v := v.(*CancelReportResponse); i { case 0: return &v.state case 1: @@ -3969,7 +4399,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReportRuleSummariesResponse); i { + switch v := v.(*UpdateReportRequest); i { case 0: return &v.state case 1: @@ -3981,7 +4411,7 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReportMetadataValuesRequest); i { + switch v := v.(*UpdateReportResponse); i { case 0: return &v.state case 1: @@ -3993,6 +4423,42 @@ func file_sift_reports_v1_reports_proto_init() { } } file_sift_reports_v1_reports_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListReportRuleSummariesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_reports_v1_reports_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListReportRuleSummariesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_reports_v1_reports_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListReportMetadataValuesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_reports_v1_reports_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListReportMetadataValuesResponse); i { case 0: return &v.state @@ -4007,7 +4473,12 @@ func file_sift_reports_v1_reports_proto_init() { } file_sift_reports_v1_reports_proto_msgTypes[0].OneofWrappers = []interface{}{} file_sift_reports_v1_reports_proto_msgTypes[1].OneofWrappers = []interface{}{} - file_sift_reports_v1_reports_proto_msgTypes[5].OneofWrappers = []interface{}{ + file_sift_reports_v1_reports_proto_msgTypes[7].OneofWrappers = []interface{}{ + (*ResolvedAlignmentPoint_Run)(nil), + (*ResolvedAlignmentPoint_Annotation)(nil), + (*ResolvedAlignmentPoint_TimestampConfig)(nil), + } + file_sift_reports_v1_reports_proto_msgTypes[8].OneofWrappers = []interface{}{ (*ReportRuleStatusDetails_Created)(nil), (*ReportRuleStatusDetails_Live)(nil), (*ReportRuleStatusDetails_Finished)(nil), @@ -4015,14 +4486,14 @@ func file_sift_reports_v1_reports_proto_init() { (*ReportRuleStatusDetails_Canceled)(nil), (*ReportRuleStatusDetails_Error)(nil), } - file_sift_reports_v1_reports_proto_msgTypes[8].OneofWrappers = []interface{}{} - file_sift_reports_v1_reports_proto_msgTypes[9].OneofWrappers = []interface{}{} file_sift_reports_v1_reports_proto_msgTypes[11].OneofWrappers = []interface{}{} - file_sift_reports_v1_reports_proto_msgTypes[12].OneofWrappers = []interface{}{ + file_sift_reports_v1_reports_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_sift_reports_v1_reports_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_sift_reports_v1_reports_proto_msgTypes[15].OneofWrappers = []interface{}{ (*CreateReportRequest_ReportFromReportTemplateRequest)(nil), (*CreateReportRequest_ReportFromRulesRequest)(nil), } - file_sift_reports_v1_reports_proto_msgTypes[15].OneofWrappers = []interface{}{ + file_sift_reports_v1_reports_proto_msgTypes[18].OneofWrappers = []interface{}{ (*CreateReportFromRulesRequest_RuleIds)(nil), (*CreateReportFromRulesRequest_RuleClientKeys)(nil), (*CreateReportFromRulesRequest_RuleVersionIds)(nil), @@ -4033,7 +4504,7 @@ func file_sift_reports_v1_reports_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_reports_v1_reports_proto_rawDesc, NumEnums: 2, - NumMessages: 35, + NumMessages: 38, NumExtensions: 0, NumServices: 1, }, diff --git a/go/gen/sift/reports/v1/reports_vtproto.pb.go b/go/gen/sift/reports/v1/reports_vtproto.pb.go index 197b61119c..8af494ff1e 100644 --- a/go/gen/sift/reports/v1/reports_vtproto.pb.go +++ b/go/gen/sift/reports/v1/reports_vtproto.pb.go @@ -10,6 +10,8 @@ import ( protohelpers "github.com/planetscale/vtprotobuf/protohelpers" fieldmaskpb1 "github.com/planetscale/vtprotobuf/types/known/fieldmaskpb" timestamppb1 "github.com/planetscale/vtprotobuf/types/known/timestamppb" + v12 "github.com/sift-stack/sift/go/gen/sift/canvas/v1" + v11 "github.com/sift-stack/sift/go/gen/sift/families/v1" v1 "github.com/sift-stack/sift/go/gen/sift/metadata/v1" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -83,6 +85,14 @@ func (m *Report) CloneVT() *Report { } r.Metadata = tmpContainer } + if rhs := m.CanvasExecutionId; rhs != nil { + tmpVal := *rhs + r.CanvasExecutionId = &tmpVal + } + if rhs := m.CanvasStatus; rhs != nil { + tmpVal := *rhs + r.CanvasStatus = &tmpVal + } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -131,6 +141,14 @@ func (m *ReportWithCumulativeSummary) CloneVT() *ReportWithCumulativeSummary { tmpVal := *rhs r.JobId = &tmpVal } + if rhs := m.CanvasExecutionId; rhs != nil { + tmpVal := *rhs + r.CanvasExecutionId = &tmpVal + } + if rhs := m.CanvasStatus; rhs != nil { + tmpVal := *rhs + r.CanvasStatus = &tmpVal + } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -162,6 +180,20 @@ func (m *ReportRuleSummary) CloneVT() *ReportRuleSummary { r.AssetId = m.AssetId r.DeletedDate = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.DeletedDate).CloneVT()) r.DisplayOrder = m.DisplayOrder + if rhs := m.ResolvedFamilyStats; rhs != nil { + tmpContainer := make([]*ResolvedFamilyStat, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.ResolvedFamilyStats = tmpContainer + } + if rhs := m.ResolvedAlignmentConfigs; rhs != nil { + tmpContainer := make([]*ResolvedAlignmentEntry, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.ResolvedAlignmentConfigs = tmpContainer + } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -218,6 +250,122 @@ func (m *ReportCumulativeRuleSummary) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *ResolvedFamilyStat) CloneVT() *ResolvedFamilyStat { + if m == nil { + return (*ResolvedFamilyStat)(nil) + } + r := new(ResolvedFamilyStat) + r.Reference = m.Reference + r.FamilyId = m.FamilyId + r.FamilyVersionId = m.FamilyVersionId + r.FamilyStatExpressionId = m.FamilyStatExpressionId + r.FamilyStatRangeId = m.FamilyStatRangeId + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ResolvedFamilyStat) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ResolvedAlignmentEntry) CloneVT() *ResolvedAlignmentEntry { + if m == nil { + return (*ResolvedAlignmentEntry)(nil) + } + r := new(ResolvedAlignmentEntry) + r.T0 = m.T0.CloneVT() + r.StartTime = m.StartTime.CloneVT() + r.EndTime = m.EndTime.CloneVT() + if rhs := m.ChannelReferences; rhs != nil { + tmpContainer := make([]string, len(rhs)) + copy(tmpContainer, rhs) + r.ChannelReferences = tmpContainer + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ResolvedAlignmentEntry) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ResolvedAlignmentPoint) CloneVT() *ResolvedAlignmentPoint { + if m == nil { + return (*ResolvedAlignmentPoint)(nil) + } + r := new(ResolvedAlignmentPoint) + r.Timestamp = (*timestamppb.Timestamp)((*timestamppb1.Timestamp)(m.Timestamp).CloneVT()) + if m.AlignmentConfig != nil { + r.AlignmentConfig = m.AlignmentConfig.(interface { + CloneVT() isResolvedAlignmentPoint_AlignmentConfig + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ResolvedAlignmentPoint) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ResolvedAlignmentPoint_Run) CloneVT() isResolvedAlignmentPoint_AlignmentConfig { + if m == nil { + return (*ResolvedAlignmentPoint_Run)(nil) + } + r := new(ResolvedAlignmentPoint_Run) + if rhs := m.Run; rhs != nil { + if vtpb, ok := interface{}(rhs).(interface{ CloneVT() *v11.RunAlignment }); ok { + r.Run = vtpb.CloneVT() + } else { + r.Run = proto.Clone(rhs).(*v11.RunAlignment) + } + } + return r +} + +func (m *ResolvedAlignmentPoint_Annotation) CloneVT() isResolvedAlignmentPoint_AlignmentConfig { + if m == nil { + return (*ResolvedAlignmentPoint_Annotation)(nil) + } + r := new(ResolvedAlignmentPoint_Annotation) + if rhs := m.Annotation; rhs != nil { + if vtpb, ok := interface{}(rhs).(interface { + CloneVT() *v11.AnnotationAlignment + }); ok { + r.Annotation = vtpb.CloneVT() + } else { + r.Annotation = proto.Clone(rhs).(*v11.AnnotationAlignment) + } + } + return r +} + +func (m *ResolvedAlignmentPoint_TimestampConfig) CloneVT() isResolvedAlignmentPoint_AlignmentConfig { + if m == nil { + return (*ResolvedAlignmentPoint_TimestampConfig)(nil) + } + r := new(ResolvedAlignmentPoint_TimestampConfig) + if rhs := m.TimestampConfig; rhs != nil { + if vtpb, ok := interface{}(rhs).(interface { + CloneVT() *v11.TimestampAlignment + }); ok { + r.TimestampConfig = vtpb.CloneVT() + } else { + r.TimestampConfig = proto.Clone(rhs).(*v11.TimestampAlignment) + } + } + return r +} + func (m *ReportRuleStatusDetails) CloneVT() *ReportRuleStatusDetails { if m == nil { return (*ReportRuleStatusDetails)(nil) @@ -1059,6 +1207,12 @@ func (this *Report) EqualVT(that *Report) bool { if this.ReportType != that.ReportType { return false } + if p, q := this.CanvasExecutionId, that.CanvasExecutionId; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.CanvasStatus, that.CanvasStatus; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -1140,6 +1294,12 @@ func (this *ReportWithCumulativeSummary) EqualVT(that *ReportWithCumulativeSumma if this.ReportType != that.ReportType { return false } + if p, q := this.CanvasExecutionId, that.CanvasExecutionId; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } + if p, q := this.CanvasStatus, that.CanvasStatus; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -1198,6 +1358,40 @@ func (this *ReportRuleSummary) EqualVT(that *ReportRuleSummary) bool { if !(*timestamppb1.Timestamp)(this.DeletedDate).EqualVT((*timestamppb1.Timestamp)(that.DeletedDate)) { return false } + if len(this.ResolvedFamilyStats) != len(that.ResolvedFamilyStats) { + return false + } + for i, vx := range this.ResolvedFamilyStats { + vy := that.ResolvedFamilyStats[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &ResolvedFamilyStat{} + } + if q == nil { + q = &ResolvedFamilyStat{} + } + if !p.EqualVT(q) { + return false + } + } + } + if len(this.ResolvedAlignmentConfigs) != len(that.ResolvedAlignmentConfigs) { + return false + } + for i, vx := range this.ResolvedAlignmentConfigs { + vy := that.ResolvedAlignmentConfigs[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &ResolvedAlignmentEntry{} + } + if q == nil { + q = &ResolvedAlignmentEntry{} + } + if !p.EqualVT(q) { + return false + } + } + } if this.DisplayOrder != that.DisplayOrder { return false } @@ -1282,6 +1476,193 @@ func (this *ReportCumulativeRuleSummary) EqualMessageVT(thatMsg proto.Message) b } return this.EqualVT(that) } +func (this *ResolvedFamilyStat) EqualVT(that *ResolvedFamilyStat) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Reference != that.Reference { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + if this.FamilyVersionId != that.FamilyVersionId { + return false + } + if this.FamilyStatExpressionId != that.FamilyStatExpressionId { + return false + } + if this.FamilyStatRangeId != that.FamilyStatRangeId { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ResolvedFamilyStat) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ResolvedFamilyStat) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ResolvedAlignmentEntry) EqualVT(that *ResolvedAlignmentEntry) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.ChannelReferences) != len(that.ChannelReferences) { + return false + } + for i, vx := range this.ChannelReferences { + vy := that.ChannelReferences[i] + if vx != vy { + return false + } + } + if !this.T0.EqualVT(that.T0) { + return false + } + if !this.StartTime.EqualVT(that.StartTime) { + return false + } + if !this.EndTime.EqualVT(that.EndTime) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ResolvedAlignmentEntry) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ResolvedAlignmentEntry) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ResolvedAlignmentPoint) EqualVT(that *ResolvedAlignmentPoint) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.AlignmentConfig == nil && that.AlignmentConfig != nil { + return false + } else if this.AlignmentConfig != nil { + if that.AlignmentConfig == nil { + return false + } + if !this.AlignmentConfig.(interface { + EqualVT(isResolvedAlignmentPoint_AlignmentConfig) bool + }).EqualVT(that.AlignmentConfig) { + return false + } + } + if !(*timestamppb1.Timestamp)(this.Timestamp).EqualVT((*timestamppb1.Timestamp)(that.Timestamp)) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ResolvedAlignmentPoint) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ResolvedAlignmentPoint) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ResolvedAlignmentPoint_Run) EqualVT(thatIface isResolvedAlignmentPoint_AlignmentConfig) bool { + that, ok := thatIface.(*ResolvedAlignmentPoint_Run) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Run, that.Run; p != q { + if p == nil { + p = &v11.RunAlignment{} + } + if q == nil { + q = &v11.RunAlignment{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*v11.RunAlignment) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + return true +} + +func (this *ResolvedAlignmentPoint_Annotation) EqualVT(thatIface isResolvedAlignmentPoint_AlignmentConfig) bool { + that, ok := thatIface.(*ResolvedAlignmentPoint_Annotation) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Annotation, that.Annotation; p != q { + if p == nil { + p = &v11.AnnotationAlignment{} + } + if q == nil { + q = &v11.AnnotationAlignment{} + } + if equal, ok := interface{}(p).(interface { + EqualVT(*v11.AnnotationAlignment) bool + }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + return true +} + +func (this *ResolvedAlignmentPoint_TimestampConfig) EqualVT(thatIface isResolvedAlignmentPoint_AlignmentConfig) bool { + that, ok := thatIface.(*ResolvedAlignmentPoint_TimestampConfig) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.TimestampConfig, that.TimestampConfig; p != q { + if p == nil { + p = &v11.TimestampAlignment{} + } + if q == nil { + q = &v11.TimestampAlignment{} + } + if equal, ok := interface{}(p).(interface { + EqualVT(*v11.TimestampAlignment) bool + }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + return true +} + func (this *ReportRuleStatusDetails) EqualVT(that *ReportRuleStatusDetails) bool { if this == that { return true @@ -2778,6 +3159,22 @@ func (m *Report) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.CanvasStatus != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.CanvasStatus)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } + if m.CanvasExecutionId != nil { + i -= len(*m.CanvasExecutionId) + copy(dAtA[i:], *m.CanvasExecutionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.CanvasExecutionId))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } if m.ReportType != 0 { i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ReportType)) i-- @@ -2980,17 +3377,33 @@ func (m *ReportWithCumulativeSummary) MarshalToSizedBufferVT(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.ReportType != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ReportType)) + if m.CanvasStatus != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.CanvasStatus)) i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0x88 + dAtA[i] = 0x98 } - if m.IsArchived { + if m.CanvasExecutionId != nil { + i -= len(*m.CanvasExecutionId) + copy(dAtA[i:], *m.CanvasExecutionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.CanvasExecutionId))) i-- - if m.IsArchived { - dAtA[i] = 1 + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + if m.ReportType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ReportType)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x88 + } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 } else { dAtA[i] = 0 } @@ -3161,6 +3574,32 @@ func (m *ReportRuleSummary) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i-- dAtA[i] = 0x88 } + if len(m.ResolvedAlignmentConfigs) > 0 { + for iNdEx := len(m.ResolvedAlignmentConfigs) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.ResolvedAlignmentConfigs[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + } + if len(m.ResolvedFamilyStats) > 0 { + for iNdEx := len(m.ResolvedFamilyStats) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.ResolvedFamilyStats[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x7a + } + } if m.DeletedDate != nil { size, err := (*timestamppb1.Timestamp)(m.DeletedDate).MarshalToSizedBufferVT(dAtA[:i]) if err != nil { @@ -3397,6 +3836,291 @@ func (m *ReportCumulativeRuleSummary) MarshalToSizedBufferVT(dAtA []byte) (int, return len(dAtA) - i, nil } +func (m *ResolvedFamilyStat) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResolvedFamilyStat) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ResolvedFamilyStat) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatRangeId) > 0 { + i -= len(m.FamilyStatRangeId) + copy(dAtA[i:], m.FamilyStatRangeId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatRangeId))) + i-- + dAtA[i] = 0x2a + } + if len(m.FamilyStatExpressionId) > 0 { + i -= len(m.FamilyStatExpressionId) + copy(dAtA[i:], m.FamilyStatExpressionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatExpressionId))) + i-- + dAtA[i] = 0x22 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0x12 + } + if len(m.Reference) > 0 { + i -= len(m.Reference) + copy(dAtA[i:], m.Reference) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Reference))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ResolvedAlignmentEntry) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResolvedAlignmentEntry) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ResolvedAlignmentEntry) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.EndTime != nil { + size, err := m.EndTime.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.StartTime != nil { + size, err := m.StartTime.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if m.T0 != nil { + size, err := m.T0.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.ChannelReferences) > 0 { + for iNdEx := len(m.ChannelReferences) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ChannelReferences[iNdEx]) + copy(dAtA[i:], m.ChannelReferences[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelReferences[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ResolvedAlignmentPoint) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResolvedAlignmentPoint) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ResolvedAlignmentPoint) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.AlignmentConfig.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Timestamp != nil { + size, err := (*timestamppb1.Timestamp)(m.Timestamp).MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ResolvedAlignmentPoint_Run) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ResolvedAlignmentPoint_Run) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Run != nil { + if vtmsg, ok := interface{}(m.Run).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Run) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *ResolvedAlignmentPoint_Annotation) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ResolvedAlignmentPoint_Annotation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Annotation != nil { + if vtmsg, ok := interface{}(m.Annotation).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Annotation) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *ResolvedAlignmentPoint_TimestampConfig) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ResolvedAlignmentPoint_TimestampConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.TimestampConfig != nil { + if vtmsg, ok := interface{}(m.TimestampConfig).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.TimestampConfig) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} func (m *ReportRuleStatusDetails) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -5111,6 +5835,22 @@ func (m *Report) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.CanvasStatus != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.CanvasStatus)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } + if m.CanvasExecutionId != nil { + i -= len(*m.CanvasExecutionId) + copy(dAtA[i:], *m.CanvasExecutionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.CanvasExecutionId))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } if m.ReportType != 0 { i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ReportType)) i-- @@ -5313,17 +6053,33 @@ func (m *ReportWithCumulativeSummary) MarshalToSizedBufferVTStrict(dAtA []byte) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.ReportType != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ReportType)) + if m.CanvasStatus != nil { + i = protohelpers.EncodeVarint(dAtA, i, uint64(*m.CanvasStatus)) i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0x88 + dAtA[i] = 0x98 } - if m.IsArchived { + if m.CanvasExecutionId != nil { + i -= len(*m.CanvasExecutionId) + copy(dAtA[i:], *m.CanvasExecutionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(*m.CanvasExecutionId))) i-- - if m.IsArchived { - dAtA[i] = 1 + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + if m.ReportType != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ReportType)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x88 + } + if m.IsArchived { + i-- + if m.IsArchived { + dAtA[i] = 1 } else { dAtA[i] = 0 } @@ -5494,6 +6250,32 @@ func (m *ReportRuleSummary) MarshalToSizedBufferVTStrict(dAtA []byte) (int, erro i-- dAtA[i] = 0x88 } + if len(m.ResolvedAlignmentConfigs) > 0 { + for iNdEx := len(m.ResolvedAlignmentConfigs) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.ResolvedAlignmentConfigs[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + } + if len(m.ResolvedFamilyStats) > 0 { + for iNdEx := len(m.ResolvedFamilyStats) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.ResolvedFamilyStats[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x7a + } + } if m.DeletedDate != nil { size, err := (*timestamppb1.Timestamp)(m.DeletedDate).MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { @@ -5730,6 +6512,303 @@ func (m *ReportCumulativeRuleSummary) MarshalToSizedBufferVTStrict(dAtA []byte) return len(dAtA) - i, nil } +func (m *ResolvedFamilyStat) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResolvedFamilyStat) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ResolvedFamilyStat) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatRangeId) > 0 { + i -= len(m.FamilyStatRangeId) + copy(dAtA[i:], m.FamilyStatRangeId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatRangeId))) + i-- + dAtA[i] = 0x2a + } + if len(m.FamilyStatExpressionId) > 0 { + i -= len(m.FamilyStatExpressionId) + copy(dAtA[i:], m.FamilyStatExpressionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatExpressionId))) + i-- + dAtA[i] = 0x22 + } + if len(m.FamilyVersionId) > 0 { + i -= len(m.FamilyVersionId) + copy(dAtA[i:], m.FamilyVersionId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyVersionId))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0x12 + } + if len(m.Reference) > 0 { + i -= len(m.Reference) + copy(dAtA[i:], m.Reference) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Reference))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ResolvedAlignmentEntry) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResolvedAlignmentEntry) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ResolvedAlignmentEntry) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.EndTime != nil { + size, err := m.EndTime.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.StartTime != nil { + size, err := m.StartTime.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if m.T0 != nil { + size, err := m.T0.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.ChannelReferences) > 0 { + for iNdEx := len(m.ChannelReferences) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ChannelReferences[iNdEx]) + copy(dAtA[i:], m.ChannelReferences[iNdEx]) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ChannelReferences[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ResolvedAlignmentPoint) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResolvedAlignmentPoint) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ResolvedAlignmentPoint) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if msg, ok := m.AlignmentConfig.(*ResolvedAlignmentPoint_TimestampConfig); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.AlignmentConfig.(*ResolvedAlignmentPoint_Annotation); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if msg, ok := m.AlignmentConfig.(*ResolvedAlignmentPoint_Run); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + if m.Timestamp != nil { + size, err := (*timestamppb1.Timestamp)(m.Timestamp).MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ResolvedAlignmentPoint_Run) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ResolvedAlignmentPoint_Run) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Run != nil { + if vtmsg, ok := interface{}(m.Run).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Run) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *ResolvedAlignmentPoint_Annotation) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ResolvedAlignmentPoint_Annotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Annotation != nil { + if vtmsg, ok := interface{}(m.Annotation).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Annotation) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *ResolvedAlignmentPoint_TimestampConfig) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *ResolvedAlignmentPoint_TimestampConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.TimestampConfig != nil { + if vtmsg, ok := interface{}(m.TimestampConfig).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.TimestampConfig) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} func (m *ReportRuleStatusDetails) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -7552,6 +8631,13 @@ func (m *Report) SizeVT() (n int) { if m.ReportType != 0 { n += 2 + protohelpers.SizeOfVarint(uint64(m.ReportType)) } + if m.CanvasExecutionId != nil { + l = len(*m.CanvasExecutionId) + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CanvasStatus != nil { + n += 2 + protohelpers.SizeOfVarint(uint64(*m.CanvasStatus)) + } n += len(m.unknownFields) return n } @@ -7630,6 +8716,13 @@ func (m *ReportWithCumulativeSummary) SizeVT() (n int) { if m.ReportType != 0 { n += 2 + protohelpers.SizeOfVarint(uint64(m.ReportType)) } + if m.CanvasExecutionId != nil { + l = len(*m.CanvasExecutionId) + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.CanvasStatus != nil { + n += 2 + protohelpers.SizeOfVarint(uint64(*m.CanvasStatus)) + } n += len(m.unknownFields) return n } @@ -7691,6 +8784,18 @@ func (m *ReportRuleSummary) SizeVT() (n int) { l = (*timestamppb1.Timestamp)(m.DeletedDate).SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if len(m.ResolvedFamilyStats) > 0 { + for _, e := range m.ResolvedFamilyStats { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if len(m.ResolvedAlignmentConfigs) > 0 { + for _, e := range m.ResolvedAlignmentConfigs { + l = e.SizeVT() + n += 2 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } if m.DisplayOrder != 0 { n += 2 + protohelpers.SizeOfVarint(uint64(m.DisplayOrder)) } @@ -7758,6 +8863,135 @@ func (m *ReportCumulativeRuleSummary) SizeVT() (n int) { return n } +func (m *ResolvedFamilyStat) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Reference) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyVersionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyStatExpressionId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyStatRangeId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ResolvedAlignmentEntry) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ChannelReferences) > 0 { + for _, s := range m.ChannelReferences { + l = len(s) + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } + if m.T0 != nil { + l = m.T0.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.StartTime != nil { + l = m.StartTime.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.EndTime != nil { + l = m.EndTime.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ResolvedAlignmentPoint) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Timestamp != nil { + l = (*timestamppb1.Timestamp)(m.Timestamp).SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if vtmsg, ok := m.AlignmentConfig.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *ResolvedAlignmentPoint_Run) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Run != nil { + if size, ok := interface{}(m.Run).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Run) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *ResolvedAlignmentPoint_Annotation) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Annotation != nil { + if size, ok := interface{}(m.Annotation).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Annotation) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *ResolvedAlignmentPoint_TimestampConfig) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TimestampConfig != nil { + if size, ok := interface{}(m.TimestampConfig).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.TimestampConfig) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} func (m *ReportRuleStatusDetails) SizeVT() (n int) { if m == nil { return 0 @@ -9060,6 +10294,59 @@ func (m *Report) UnmarshalVT(dAtA []byte) error { break } } + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CanvasExecutionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CanvasExecutionId = &s + iNdEx = postIndex + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CanvasStatus", wireType) + } + var v v12.CanvasCellExecutionStatus + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= v12.CanvasCellExecutionStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CanvasStatus = &v default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -9651,6 +10938,59 @@ func (m *ReportWithCumulativeSummary) UnmarshalVT(dAtA []byte) error { break } } + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CanvasExecutionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CanvasExecutionId = &s + iNdEx = postIndex + case 19: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CanvasStatus", wireType) + } + var v v12.CanvasCellExecutionStatus + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= v12.CanvasCellExecutionStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CanvasStatus = &v default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -10101,6 +11441,74 @@ func (m *ReportRuleSummary) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResolvedFamilyStats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResolvedFamilyStats = append(m.ResolvedFamilyStats, &ResolvedFamilyStat{}) + if err := m.ResolvedFamilyStats[len(m.ResolvedFamilyStats)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResolvedAlignmentConfigs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResolvedAlignmentConfigs = append(m.ResolvedAlignmentConfigs, &ResolvedAlignmentEntry{}) + if err := m.ResolvedAlignmentConfigs[len(m.ResolvedAlignmentConfigs)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 17: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field DisplayOrder", wireType) @@ -10504,7 +11912,7 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ReportRuleStatusDetails) UnmarshalVT(dAtA []byte) error { +func (m *ResolvedFamilyStat) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10527,17 +11935,17 @@ func (m *ReportRuleStatusDetails) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ReportRuleStatusDetails: wiretype end group for non-group") + return fmt.Errorf("proto: ResolvedFamilyStat: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ReportRuleStatusDetails: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ResolvedFamilyStat: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Created", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Reference", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -10547,38 +11955,61 @@ func (m *ReportRuleStatusDetails) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Details.(*ReportRuleStatusDetails_Created); ok { - if err := oneof.Created.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Reference = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - } else { - v := &ReportRuleStatusDetailsCreated{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - m.Details = &ReportRuleStatusDetails_Created{Created: v} + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF } + m.FamilyId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Live", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -10588,38 +12019,61 @@ func (m *ReportRuleStatusDetails) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Details.(*ReportRuleStatusDetails_Live); ok { - if err := oneof.Live.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + m.FamilyVersionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatExpressionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - } else { - v := &ReportRuleStatusDetailsLive{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - m.Details = &ReportRuleStatusDetails_Live{Live: v} + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF } + m.FamilyStatExpressionId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Finished", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatRangeId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -10629,36 +12083,110 @@ func (m *ReportRuleStatusDetails) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Details.(*ReportRuleStatusDetails_Finished); ok { - if err := oneof.Finished.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + m.FamilyStatRangeId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResolvedAlignmentEntry) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResolvedAlignmentEntry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResolvedAlignmentEntry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelReferences", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - } else { - v := &ReportRuleStatusDetailsFinished{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - m.Details = &ReportRuleStatusDetails_Finished{Finished: v} + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF } + m.ChannelReferences = append(m.ChannelReferences, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 4: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Failed", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field T0", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10685,21 +12213,16 @@ func (m *ReportRuleStatusDetails) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Details.(*ReportRuleStatusDetails_Failed); ok { - if err := oneof.Failed.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &ReportRuleStatusDetailsFailed{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Details = &ReportRuleStatusDetails_Failed{Failed: v} + if m.T0 == nil { + m.T0 = &ResolvedAlignmentPoint{} + } + if err := m.T0.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex - case 5: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Canceled", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10726,21 +12249,16 @@ func (m *ReportRuleStatusDetails) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Details.(*ReportRuleStatusDetails_Canceled); ok { - if err := oneof.Canceled.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &ReportRuleStatusDetailsCanceled{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Details = &ReportRuleStatusDetails_Canceled{Canceled: v} + if m.StartTime == nil { + m.StartTime = &ResolvedAlignmentPoint{} + } + if err := m.StartTime.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex - case 6: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10767,16 +12285,11 @@ func (m *ReportRuleStatusDetails) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Details.(*ReportRuleStatusDetails_Error); ok { - if err := oneof.Error.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &ReportRuleStatusDetailsError{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Details = &ReportRuleStatusDetails_Error{Error: v} + if m.EndTime == nil { + m.EndTime = &ResolvedAlignmentPoint{} + } + if err := m.EndTime.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -10801,7 +12314,7 @@ func (m *ReportRuleStatusDetails) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ReportRuleStatusDetailsCreated) UnmarshalVT(dAtA []byte) error { +func (m *ResolvedAlignmentPoint) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10824,119 +12337,110 @@ func (m *ReportRuleStatusDetailsCreated) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ReportRuleStatusDetailsCreated: wiretype end group for non-group") + return fmt.Errorf("proto: ResolvedAlignmentPoint: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ReportRuleStatusDetailsCreated: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ResolvedAlignmentPoint: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { return protohelpers.ErrInvalidLength } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ReportRuleStatusDetailsLive) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if m.Timestamp == nil { + m.Timestamp = ×tamppb.Timestamp{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ReportRuleStatusDetailsLive: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReportRuleStatusDetailsLive: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { + if err := (*timestamppb1.Timestamp)(m.Timestamp).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ReportRuleStatusDetailsFinished) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + if msglen < 0 { + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if oneof, ok := m.AlignmentConfig.(*ResolvedAlignmentPoint_Run); ok { + if unmarshal, ok := interface{}(oneof.Run).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Run); err != nil { + return err + } + } + } else { + v := &v11.RunAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &ResolvedAlignmentPoint_Run{Run: v} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ReportRuleStatusDetailsFinished: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReportRuleStatusDetailsFinished: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stdout", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -10946,30 +12450,54 @@ func (m *ReportRuleStatusDetailsFinished) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.Stdout = &s + if oneof, ok := m.AlignmentConfig.(*ResolvedAlignmentPoint_Annotation); ok { + if unmarshal, ok := interface{}(oneof.Annotation).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Annotation); err != nil { + return err + } + } + } else { + v := &v11.AnnotationAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &ResolvedAlignmentPoint_Annotation{Annotation: v} + } iNdEx = postIndex - case 2: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stderr", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TimestampConfig", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -10979,24 +12507,48 @@ func (m *ReportRuleStatusDetailsFinished) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.Stderr = &s + if oneof, ok := m.AlignmentConfig.(*ResolvedAlignmentPoint_TimestampConfig); ok { + if unmarshal, ok := interface{}(oneof.TimestampConfig).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.TimestampConfig); err != nil { + return err + } + } + } else { + v := &v11.TimestampAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &ResolvedAlignmentPoint_TimestampConfig{TimestampConfig: v} + } iNdEx = postIndex default: iNdEx = preIndex @@ -11020,7 +12572,7 @@ func (m *ReportRuleStatusDetailsFinished) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ReportRuleStatusDetailsFailed) UnmarshalVT(dAtA []byte) error { +func (m *ReportRuleStatusDetails) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11043,17 +12595,17 @@ func (m *ReportRuleStatusDetailsFailed) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ReportRuleStatusDetailsFailed: wiretype end group for non-group") + return fmt.Errorf("proto: ReportRuleStatusDetails: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ReportRuleStatusDetailsFailed: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ReportRuleStatusDetails: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Created", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -11063,29 +12615,38 @@ func (m *ReportRuleStatusDetailsFailed) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.ErrorMessage = string(dAtA[iNdEx:postIndex]) + if oneof, ok := m.Details.(*ReportRuleStatusDetails_Created); ok { + if err := oneof.Created.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &ReportRuleStatusDetailsCreated{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &ReportRuleStatusDetails_Created{Created: v} + } iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExitCode", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Live", wireType) } - var v int32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -11095,17 +12656,38 @@ func (m *ReportRuleStatusDetailsFailed) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.ExitCode = &v + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Details.(*ReportRuleStatusDetails_Live); ok { + if err := oneof.Live.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &ReportRuleStatusDetailsLive{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &ReportRuleStatusDetails_Live{Live: v} + } + iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stdout", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Finished", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -11115,30 +12697,38 @@ func (m *ReportRuleStatusDetailsFailed) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.Stdout = &s + if oneof, ok := m.Details.(*ReportRuleStatusDetails_Finished); ok { + if err := oneof.Finished.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &ReportRuleStatusDetailsFinished{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &ReportRuleStatusDetails_Finished{Finished: v} + } iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stderr", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Failed", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -11148,27 +12738,117 @@ func (m *ReportRuleStatusDetailsFailed) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.Stderr = &s + if oneof, ok := m.Details.(*ReportRuleStatusDetails_Failed); ok { + if err := oneof.Failed.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &ReportRuleStatusDetailsFailed{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &ReportRuleStatusDetails_Failed{Failed: v} + } iNdEx = postIndex - default: - iNdEx = preIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Canceled", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Details.(*ReportRuleStatusDetails_Canceled); ok { + if err := oneof.Canceled.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &ReportRuleStatusDetailsCanceled{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &ReportRuleStatusDetails_Canceled{Canceled: v} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.Details.(*ReportRuleStatusDetails_Error); ok { + if err := oneof.Error.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &ReportRuleStatusDetailsError{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Details = &ReportRuleStatusDetails_Error{Error: v} + } + iNdEx = postIndex + default: + iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) if err != nil { return err @@ -11189,7 +12869,7 @@ func (m *ReportRuleStatusDetailsFailed) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ReportRuleStatusDetailsCanceled) UnmarshalVT(dAtA []byte) error { +func (m *ReportRuleStatusDetailsCreated) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11212,10 +12892,10 @@ func (m *ReportRuleStatusDetailsCanceled) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ReportRuleStatusDetailsCanceled: wiretype end group for non-group") + return fmt.Errorf("proto: ReportRuleStatusDetailsCreated: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ReportRuleStatusDetailsCanceled: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ReportRuleStatusDetailsCreated: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -11240,7 +12920,7 @@ func (m *ReportRuleStatusDetailsCanceled) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ReportRuleStatusDetailsError) UnmarshalVT(dAtA []byte) error { +func (m *ReportRuleStatusDetailsLive) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11263,65 +12943,64 @@ func (m *ReportRuleStatusDetailsError) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ReportRuleStatusDetailsError: wiretype end group for non-group") + return fmt.Errorf("proto: ReportRuleStatusDetailsLive: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ReportRuleStatusDetailsError: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ReportRuleStatusDetailsLive: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.ErrorMessage = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExitCode", wireType) + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ReportRuleStatusDetailsFinished) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } + if iNdEx >= l { + return io.ErrUnexpectedEOF } - m.ExitCode = &v - case 3: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ReportRuleStatusDetailsFinished: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReportRuleStatusDetailsFinished: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Stdout", wireType) } @@ -11354,7 +13033,7 @@ func (m *ReportRuleStatusDetailsError) UnmarshalVT(dAtA []byte) error { s := string(dAtA[iNdEx:postIndex]) m.Stdout = &s iNdEx = postIndex - case 4: + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Stderr", wireType) } @@ -11409,7 +13088,7 @@ func (m *ReportRuleStatusDetailsError) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CreateReportRequest) UnmarshalVT(dAtA []byte) error { +func (m *ReportRuleStatusDetailsFailed) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11432,17 +13111,17 @@ func (m *CreateReportRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateReportRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ReportRuleStatusDetailsFailed: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ReportRuleStatusDetailsFailed: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportFromReportTemplateRequest", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -11452,38 +13131,29 @@ func (m *CreateReportRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.Request.(*CreateReportRequest_ReportFromReportTemplateRequest); ok { - if err := oneof.ReportFromReportTemplateRequest.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &CreateReportFromReportTemplateRequest{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Request = &CreateReportRequest_ReportFromReportTemplateRequest{ReportFromReportTemplateRequest: v} - } + m.ErrorMessage = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportFromRulesRequest", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExitCode", wireType) } - var msglen int + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -11493,36 +13163,15 @@ func (m *CreateReportRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + v |= int32(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if oneof, ok := m.Request.(*CreateReportRequest_ReportFromRulesRequest); ok { - if err := oneof.ReportFromRulesRequest.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &CreateReportFromRulesRequest{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Request = &CreateReportRequest_ReportFromRulesRequest{ReportFromRulesRequest: v} - } - iNdEx = postIndex + m.ExitCode = &v case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Stdout", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11550,43 +13199,12 @@ func (m *CreateReportRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrganizationId = string(dAtA[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) + m.Stdout = &s iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RunId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Stderr", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11615,49 +13233,7 @@ func (m *CreateReportRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } s := string(dAtA[iNdEx:postIndex]) - m.Name = &s - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Metadata = append(m.Metadata, &v1.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVT([]byte) error - }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { - return err - } - } + m.Stderr = &s iNdEx = postIndex default: iNdEx = preIndex @@ -11681,7 +13257,7 @@ func (m *CreateReportRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CreateReportResponse) UnmarshalVT(dAtA []byte) error { +func (m *ReportRuleStatusDetailsCanceled) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11704,48 +13280,12 @@ func (m *CreateReportResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateReportResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ReportRuleStatusDetailsCanceled: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ReportRuleStatusDetailsCanceled: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Report", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Report == nil { - m.Report = &Report{} - } - if err := m.Report.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -11768,7 +13308,7 @@ func (m *CreateReportResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CreateReportFromReportTemplateRequest) UnmarshalVT(dAtA []byte) error { +func (m *ReportRuleStatusDetailsError) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11791,15 +13331,15 @@ func (m *CreateReportFromReportTemplateRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateReportFromReportTemplateRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ReportRuleStatusDetailsError: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateReportFromReportTemplateRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ReportRuleStatusDetailsError: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportTemplateId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ErrorMessage", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11827,7 +13367,93 @@ func (m *CreateReportFromReportTemplateRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ReportTemplateId = string(dAtA[iNdEx:postIndex]) + m.ErrorMessage = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExitCode", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ExitCode = &v + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Stdout", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Stdout = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Stderr", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Stderr = &s iNdEx = postIndex default: iNdEx = preIndex @@ -11851,7 +13477,7 @@ func (m *CreateReportFromReportTemplateRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CreateReportFromRulesRequest) UnmarshalVT(dAtA []byte) error { +func (m *CreateReportRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11874,17 +13500,17 @@ func (m *CreateReportFromRulesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateReportFromRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: CreateReportRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateReportFromRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CreateReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportFromReportTemplateRequest", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -11894,29 +13520,38 @@ func (m *CreateReportFromRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + if oneof, ok := m.Request.(*CreateReportRequest_ReportFromReportTemplateRequest); ok { + if err := oneof.ReportFromReportTemplateRequest.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &CreateReportFromReportTemplateRequest{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Request = &CreateReportRequest_ReportFromReportTemplateRequest{ReportFromReportTemplateRequest: v} + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportFromRulesRequest", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -11926,28 +13561,36 @@ func (m *CreateReportFromRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.Description = &s + if oneof, ok := m.Request.(*CreateReportRequest_ReportFromRulesRequest); ok { + if err := oneof.ReportFromRulesRequest.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &CreateReportFromRulesRequest{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Request = &CreateReportRequest_ReportFromRulesRequest{ReportFromRulesRequest: v} + } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TagNames", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11975,13 +13618,13 @@ func (m *CreateReportFromRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TagNames = append(m.TagNames, string(dAtA[iNdEx:postIndex])) + m.OrganizationId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -11991,38 +13634,29 @@ func (m *CreateReportFromRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.RuleIdentifiers.(*CreateReportFromRulesRequest_RuleIds); ok { - if err := oneof.RuleIds.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &CreateReportRequestRuleIds{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.RuleIdentifiers = &CreateReportFromRulesRequest_RuleIds{RuleIds: v} - } + m.RunId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleClientKeys", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -12032,36 +13666,28 @@ func (m *CreateReportFromRulesRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.RuleIdentifiers.(*CreateReportFromRulesRequest_RuleClientKeys); ok { - if err := oneof.RuleClientKeys.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - v := &CreateReportRequestClientKeys{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.RuleIdentifiers = &CreateReportFromRulesRequest_RuleClientKeys{RuleClientKeys: v} - } + s := string(dAtA[iNdEx:postIndex]) + m.Name = &s iNdEx = postIndex - case 6: + case 16: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12088,16 +13714,17 @@ func (m *CreateReportFromRulesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if oneof, ok := m.RuleIdentifiers.(*CreateReportFromRulesRequest_RuleVersionIds); ok { - if err := oneof.RuleVersionIds.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.Metadata = append(m.Metadata, &v1.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - v := &CreateReportRequestRuleVersionIds{} - if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { return err } - m.RuleIdentifiers = &CreateReportFromRulesRequest_RuleVersionIds{RuleVersionIds: v} } iNdEx = postIndex default: @@ -12122,7 +13749,7 @@ func (m *CreateReportFromRulesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CreateReportRequestRuleIds) UnmarshalVT(dAtA []byte) error { +func (m *CreateReportResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12145,17 +13772,17 @@ func (m *CreateReportRequestRuleIds) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateReportRequestRuleIds: wiretype end group for non-group") + return fmt.Errorf("proto: CreateReportResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateReportRequestRuleIds: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CreateReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Report", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -12165,23 +13792,27 @@ func (m *CreateReportRequestRuleIds) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) + if m.Report == nil { + m.Report = &Report{} + } + if err := m.Report.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -12205,7 +13836,7 @@ func (m *CreateReportRequestRuleIds) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CreateReportRequestClientKeys) UnmarshalVT(dAtA []byte) error { +func (m *CreateReportFromReportTemplateRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12228,15 +13859,15 @@ func (m *CreateReportRequestClientKeys) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateReportRequestClientKeys: wiretype end group for non-group") + return fmt.Errorf("proto: CreateReportFromReportTemplateRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateReportRequestClientKeys: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CreateReportFromReportTemplateRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleClientKeys", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportTemplateId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12264,7 +13895,7 @@ func (m *CreateReportRequestClientKeys) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleClientKeys = append(m.RuleClientKeys, string(dAtA[iNdEx:postIndex])) + m.ReportTemplateId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -12288,7 +13919,7 @@ func (m *CreateReportRequestClientKeys) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CreateReportRequestRuleVersionIds) UnmarshalVT(dAtA []byte) error { +func (m *CreateReportFromRulesRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12311,15 +13942,15 @@ func (m *CreateReportRequestRuleVersionIds) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CreateReportRequestRuleVersionIds: wiretype end group for non-group") + return fmt.Errorf("proto: CreateReportFromRulesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CreateReportRequestRuleVersionIds: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CreateReportFromRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12347,62 +13978,11 @@ func (m *CreateReportRequestRuleVersionIds) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RuleVersionIds = append(m.RuleVersionIds, string(dAtA[iNdEx:postIndex])) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GetReportRequest) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GetReportRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GetReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12430,62 +14010,44 @@ func (m *GetReportRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ReportId = string(dAtA[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) + m.Description = &s iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TagNames", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GetReportResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GetReportResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GetReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.TagNames = append(m.TagNames, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Report", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12512,88 +14074,23 @@ func (m *GetReportResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Report == nil { - m.Report = &Report{} - } - if err := m.Report.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ListReportsRequest) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ListReportsRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ListReportsRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) - } - m.PageSize = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if oneof, ok := m.RuleIdentifiers.(*CreateReportFromRulesRequest_RuleIds); ok { + if err := oneof.RuleIds.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } - b := dAtA[iNdEx] - iNdEx++ - m.PageSize |= uint32(b&0x7F) << shift - if b < 0x80 { - break + } else { + v := &CreateReportRequestRuleIds{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } + m.RuleIdentifiers = &CreateReportFromRulesRequest_RuleIds{RuleIds: v} } - case 2: + iNdEx = postIndex + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleClientKeys", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -12603,29 +14100,38 @@ func (m *ListReportsRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.PageToken = string(dAtA[iNdEx:postIndex]) + if oneof, ok := m.RuleIdentifiers.(*CreateReportFromRulesRequest_RuleClientKeys); ok { + if err := oneof.RuleClientKeys.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &CreateReportRequestClientKeys{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.RuleIdentifiers = &CreateReportFromRulesRequest_RuleClientKeys{RuleClientKeys: v} + } iNdEx = postIndex - case 3: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionIds", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -12635,59 +14141,87 @@ func (m *ListReportsRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Filter = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if oneof, ok := m.RuleIdentifiers.(*CreateReportFromRulesRequest_RuleVersionIds); ok { + if err := oneof.RuleVersionIds.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break + } else { + v := &CreateReportRequestRuleVersionIds{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } + m.RuleIdentifiers = &CreateReportFromRulesRequest_RuleVersionIds{RuleVersionIds: v} } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.OrganizationId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateReportRequestRuleIds) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateReportRequestRuleIds: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateReportRequestRuleIds: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12715,7 +14249,7 @@ func (m *ListReportsRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderBy = string(dAtA[iNdEx:postIndex]) + m.RuleIds = append(m.RuleIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -12739,7 +14273,7 @@ func (m *ListReportsRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ListReportsResponse) UnmarshalVT(dAtA []byte) error { +func (m *CreateReportRequestClientKeys) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12762,49 +14296,15 @@ func (m *ListReportsResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListReportsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: CreateReportRequestClientKeys: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListReportsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CreateReportRequestClientKeys: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reports", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reports = append(m.Reports, &Report{}) - if err := m.Reports[len(m.Reports)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleClientKeys", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12832,7 +14332,7 @@ func (m *ListReportsResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NextPageToken = string(dAtA[iNdEx:postIndex]) + m.RuleClientKeys = append(m.RuleClientKeys, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -12856,7 +14356,7 @@ func (m *ListReportsResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ListReportsWithCumulativeSummaryRequest) UnmarshalVT(dAtA []byte) error { +func (m *CreateReportRequestRuleVersionIds) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12879,130 +14379,15 @@ func (m *ListReportsWithCumulativeSummaryRequest) UnmarshalVT(dAtA []byte) error fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListReportsWithCumulativeSummaryRequest: wiretype end group for non-group") + return fmt.Errorf("proto: CreateReportRequestRuleVersionIds: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListReportsWithCumulativeSummaryRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CreateReportRequestRuleVersionIds: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) - } - m.PageSize = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.PageSize |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PageToken = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Filter = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.OrganizationId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13030,7 +14415,7 @@ func (m *ListReportsWithCumulativeSummaryRequest) UnmarshalVT(dAtA []byte) error if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderBy = string(dAtA[iNdEx:postIndex]) + m.RuleVersionIds = append(m.RuleVersionIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -13054,7 +14439,7 @@ func (m *ListReportsWithCumulativeSummaryRequest) UnmarshalVT(dAtA []byte) error } return nil } -func (m *ListReportsWithCumulativeSummaryResponse) UnmarshalVT(dAtA []byte) error { +func (m *GetReportRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13077,49 +14462,15 @@ func (m *ListReportsWithCumulativeSummaryResponse) UnmarshalVT(dAtA []byte) erro fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListReportsWithCumulativeSummaryResponse: wiretype end group for non-group") + return fmt.Errorf("proto: GetReportRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListReportsWithCumulativeSummaryResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: GetReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reports", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reports = append(m.Reports, &ReportWithCumulativeSummary{}) - if err := m.Reports[len(m.Reports)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13147,7 +14498,7 @@ func (m *ListReportsWithCumulativeSummaryResponse) UnmarshalVT(dAtA []byte) erro if postIndex > l { return io.ErrUnexpectedEOF } - m.NextPageToken = string(dAtA[iNdEx:postIndex]) + m.ReportId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -13171,7 +14522,7 @@ func (m *ListReportsWithCumulativeSummaryResponse) UnmarshalVT(dAtA []byte) erro } return nil } -func (m *RerunReportRequest) UnmarshalVT(dAtA []byte) error { +func (m *GetReportResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13194,17 +14545,17 @@ func (m *RerunReportRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RerunReportRequest: wiretype end group for non-group") + return fmt.Errorf("proto: GetReportResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RerunReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: GetReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Report", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -13214,23 +14565,27 @@ func (m *RerunReportRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.ReportId = string(dAtA[iNdEx:postIndex]) + if m.Report == nil { + m.Report = &Report{} + } + if err := m.Report.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -13254,7 +14609,7 @@ func (m *RerunReportRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *RerunReportResponse) UnmarshalVT(dAtA []byte) error { +func (m *ListReportsRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13277,15 +14632,34 @@ func (m *RerunReportResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RerunReportResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ListReportsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RerunReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListReportsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) + } + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13313,11 +14687,11 @@ func (m *RerunReportResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.JobId = string(dAtA[iNdEx:postIndex]) + m.PageToken = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13345,62 +14719,43 @@ func (m *RerunReportResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ReportId = string(dAtA[iNdEx:postIndex]) + m.Filter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - if (iNdEx + skippy) > l { + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { return io.ErrUnexpectedEOF } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CancelReportRequest) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CancelReportRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CancelReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.OrganizationId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13428,7 +14783,7 @@ func (m *CancelReportRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ReportId = string(dAtA[iNdEx:postIndex]) + m.OrderBy = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -13452,58 +14807,7 @@ func (m *CancelReportRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *CancelReportResponse) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CancelReportResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CancelReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UpdateReportRequest) UnmarshalVT(dAtA []byte) error { +func (m *ListReportsResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13526,15 +14830,15 @@ func (m *UpdateReportRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateReportRequest: wiretype end group for non-group") + return fmt.Errorf("proto: ListReportsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListReportsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Report", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Reports", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13561,18 +14865,16 @@ func (m *UpdateReportRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Report == nil { - m.Report = &Report{} - } - if err := m.Report.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.Reports = append(m.Reports, &Report{}) + if err := m.Reports[len(m.Reports)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -13582,27 +14884,23 @@ func (m *UpdateReportRequest) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.UpdateMask == nil { - m.UpdateMask = &fieldmaskpb.FieldMask{} - } - if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -13626,7 +14924,7 @@ func (m *UpdateReportRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *UpdateReportResponse) UnmarshalVT(dAtA []byte) error { +func (m *ListReportsWithCumulativeSummaryRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13649,66 +14947,34 @@ func (m *UpdateReportResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateReportResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ListReportsWithCumulativeSummaryRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListReportsWithCumulativeSummaryRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ListReportRuleSummariesRequest) UnmarshalVT(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.PageSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PageSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ListReportRuleSummariesRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ListReportRuleSummariesRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13736,30 +15002,11 @@ func (m *ListReportRuleSummariesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ReportId = string(dAtA[iNdEx:postIndex]) + m.PageToken = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) - } - m.PageSize = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.PageSize |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13787,11 +15034,11 @@ func (m *ListReportRuleSummariesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PageToken = string(dAtA[iNdEx:postIndex]) + m.Filter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13819,7 +15066,7 @@ func (m *ListReportRuleSummariesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Filter = string(dAtA[iNdEx:postIndex]) + m.OrganizationId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: if wireType != 2 { @@ -13875,7 +15122,7 @@ func (m *ListReportRuleSummariesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ListReportRuleSummariesResponse) UnmarshalVT(dAtA []byte) error { +func (m *ListReportsWithCumulativeSummaryResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13898,15 +15145,15 @@ func (m *ListReportRuleSummariesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListReportRuleSummariesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ListReportsWithCumulativeSummaryResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListReportRuleSummariesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ListReportsWithCumulativeSummaryResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportRuleSummaries", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Reports", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13933,8 +15180,8 @@ func (m *ListReportRuleSummariesResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ReportRuleSummaries = append(m.ReportRuleSummaries, &ReportRuleSummary{}) - if err := m.ReportRuleSummaries[len(m.ReportRuleSummaries)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + m.Reports = append(m.Reports, &ReportWithCumulativeSummary{}) + if err := m.Reports[len(m.Reports)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -13992,7 +15239,7 @@ func (m *ListReportRuleSummariesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ListReportMetadataValuesRequest) UnmarshalVT(dAtA []byte) error { +func (m *RerunReportRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14015,10 +15262,10 @@ func (m *ListReportMetadataValuesRequest) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListReportMetadataValuesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: RerunReportRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListReportMetadataValuesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RerunReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -14053,28 +15300,60 @@ func (m *ListReportMetadataValuesRequest) UnmarshalVT(dAtA []byte) error { } m.ReportId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) - } - m.PageSize = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.PageSize |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - case 3: + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RerunReportResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RerunReportResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RerunReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14102,11 +15381,11 @@ func (m *ListReportMetadataValuesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PageToken = string(dAtA[iNdEx:postIndex]) + m.JobId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 4: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14134,7 +15413,7 @@ func (m *ListReportMetadataValuesRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Filter = string(dAtA[iNdEx:postIndex]) + m.ReportId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -14158,7 +15437,7 @@ func (m *ListReportMetadataValuesRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *ListReportMetadataValuesResponse) UnmarshalVT(dAtA []byte) error { +func (m *CancelReportRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14181,17 +15460,17 @@ func (m *ListReportMetadataValuesResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ListReportMetadataValuesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: CancelReportRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ListReportMetadataValuesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CancelReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetadataValues", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14201,66 +15480,75 @@ func (m *ListReportMetadataValuesResponse) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.MetadataValues = append(m.MetadataValues, &v1.MetadataValue{}) - if unmarshal, ok := interface{}(m.MetadataValues[len(m.MetadataValues)-1]).(interface { - UnmarshalVT([]byte) error - }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.MetadataValues[len(m.MetadataValues)-1]); err != nil { - return err - } - } + m.ReportId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CancelReportResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - m.NextPageToken = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CancelReportResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CancelReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -14283,7 +15571,7 @@ func (m *ListReportMetadataValuesResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *UpdateReportRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14306,17 +15594,17 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Report: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateReportRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Report: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateReportRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Report", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14326,33 +15614,33 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.Report == nil { + m.Report = &Report{} + } + if err := m.Report.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.ReportId = stringValue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportTemplateId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field UpdateMask", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14362,67 +15650,133 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.ReportTemplateId = stringValue - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + if m.UpdateMask == nil { + m.UpdateMask = &fieldmaskpb.FieldMask{} } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + if err := (*fieldmaskpb1.FieldMask)(m.UpdateMask).UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateReportResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - m.RunId = stringValue - iNdEx = postIndex - case 4: + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateReportResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateReportResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListReportRuleSummariesRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListReportRuleSummariesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListReportRuleSummariesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14450,17 +15804,13 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.OrganizationId = stringValue + m.ReportId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) } - var stringLen uint64 + m.PageSize = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14470,31 +15820,14 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.PageSize |= uint32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.Name = stringValue - iNdEx = postIndex - case 6: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14522,16 +15855,11 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - s := stringValue - m.Description = &s + m.PageToken = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 7: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14559,15 +15887,11 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.CreatedByUserId = stringValue + m.Filter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 8: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14595,51 +15919,62 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - m.ModifiedByUserId = stringValue + m.OrderBy = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return protohelpers.ErrInvalidLength } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.CreatedDate == nil { - m.CreatedDate = ×tamppb.Timestamp{} + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListReportRuleSummariesResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow } - if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 10: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListReportRuleSummariesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListReportRuleSummariesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportRuleSummaries", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14666,18 +16001,16 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ModifiedDate == nil { - m.ModifiedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + m.ReportRuleSummaries = append(m.ReportRuleSummaries, &ReportRuleSummary{}) + if err := m.ReportRuleSummaries[len(m.ReportRuleSummaries)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 11: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Summaries", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14687,31 +16020,80 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Summaries = append(m.Summaries, &ReportRuleSummary{}) - if err := m.Summaries[len(m.Summaries)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { return err } - iNdEx = postIndex - case 12: + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListReportMetadataValuesRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListReportMetadataValuesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListReportMetadataValuesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14721,31 +16103,29 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - m.Tags = append(m.Tags, &ReportTag{}) - if err := m.Tags[len(m.Tags)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.ReportId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RerunFromReportId", wireType) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PageSize", wireType) } - var stringLen uint64 + m.PageSize = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14755,32 +16135,14 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.PageSize |= uint32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - s := stringValue - m.RerunFromReportId = &s - iNdEx = postIndex - case 14: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PageToken", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14808,18 +16170,13 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) - } - s := stringValue - m.JobId = &s + m.PageToken = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 15: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14829,31 +16186,78 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.ArchivedDate == nil { - m.ArchivedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + m.Filter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { return err } - iNdEx = postIndex - case 16: + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListReportMetadataValuesResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListReportMetadataValuesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListReportMetadataValuesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MetadataValues", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14880,24 +16284,24 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Metadata = append(m.Metadata, &v1.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVTUnsafe([]byte) error + m.MetadataValues = append(m.MetadataValues, &v1.MetadataValue{}) + if unmarshal, ok := interface{}(m.MetadataValues[len(m.MetadataValues)-1]).(interface { + UnmarshalVT([]byte) error }); ok { - if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.MetadataValues[len(m.MetadataValues)-1]); err != nil { return err } } iNdEx = postIndex - case 17: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextPageToken", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -14907,31 +16311,24 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.IsArchived = bool(v != 0) - case 18: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportType", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - m.ReportType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ReportType |= ReportType(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextPageToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -14954,7 +16351,7 @@ func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *ReportWithCumulativeSummary) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *Report) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14977,10 +16374,10 @@ func (m *ReportWithCumulativeSummary) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ReportWithCumulativeSummary: wiretype end group for non-group") + return fmt.Errorf("proto: Report: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ReportWithCumulativeSummary: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Report: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -15346,7 +16743,7 @@ func (m *ReportWithCumulativeSummary) UnmarshalVTUnsafe(dAtA []byte) error { iNdEx = postIndex case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CumulativeSummary", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Summaries", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -15373,10 +16770,8 @@ func (m *ReportWithCumulativeSummary) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.CumulativeSummary == nil { - m.CumulativeSummary = &ReportCumulativeRuleSummary{} - } - if err := m.CumulativeSummary.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + m.Summaries = append(m.Summaries, &ReportRuleSummary{}) + if err := m.Summaries[len(m.Summaries)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -15525,10 +16920,10 @@ func (m *ReportWithCumulativeSummary) UnmarshalVTUnsafe(dAtA []byte) error { } iNdEx = postIndex case 16: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } - var v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15538,13 +16933,55 @@ func (m *ReportWithCumulativeSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.IsArchived = bool(v != 0) + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metadata = append(m.Metadata, &v1.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } + } + iNdEx = postIndex case 17: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + case 18: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field ReportType", wireType) } @@ -15563,6 +17000,63 @@ func (m *ReportWithCumulativeSummary) UnmarshalVTUnsafe(dAtA []byte) error { break } } + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CanvasExecutionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.CanvasExecutionId = &s + iNdEx = postIndex + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CanvasStatus", wireType) + } + var v v12.CanvasCellExecutionStatus + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= v12.CanvasCellExecutionStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CanvasStatus = &v default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -15585,7 +17079,7 @@ func (m *ReportWithCumulativeSummary) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ReportWithCumulativeSummary) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15608,15 +17102,15 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ReportRuleSummary: wiretype end group for non-group") + return fmt.Errorf("proto: ReportWithCumulativeSummary: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ReportRuleSummary: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ReportWithCumulativeSummary: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15648,11 +17142,11 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleId = stringValue + m.ReportId = stringValue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleClientKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReportTemplateId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15684,11 +17178,11 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleClientKey = stringValue + m.ReportTemplateId = stringValue iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15720,13 +17214,13 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.RuleVersionId = stringValue + m.RunId = stringValue iNdEx = postIndex case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionNumber", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationId", wireType) } - m.RuleVersionNumber = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15736,14 +17230,31 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.RuleVersionNumber |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrganizationId = stringValue + iNdEx = postIndex case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReportRuleVersionId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15775,13 +17286,13 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.ReportRuleVersionId = stringValue + m.Name = stringValue iNdEx = postIndex case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumOpen", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } - m.NumOpen = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15791,16 +17302,34 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumOpen |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + s := stringValue + m.Description = &s + iNdEx = postIndex case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumFailed", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedByUserId", wireType) } - m.NumFailed = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15810,54 +17339,33 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumFailed |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumPassed", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - m.NumPassed = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.NumPassed |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength } - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + if postIndex > l { + return io.ErrUnexpectedEOF } - m.Status = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Status |= ReportRuleStatus(b&0x7F) << shift - if b < 0x80 { - break - } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - case 10: + m.CreatedByUserId = stringValue + iNdEx = postIndex + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StatusDetails", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedByUserId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15867,29 +17375,29 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - if m.StatusDetails == nil { - m.StatusDetails = &ReportRuleStatusDetails{} - } - if err := m.StatusDetails.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } + m.ModifiedByUserId = stringValue iNdEx = postIndex - case 11: + case 9: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) } @@ -15925,7 +17433,7 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { return err } iNdEx = postIndex - case 12: + case 10: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) } @@ -15961,11 +17469,11 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { return err } iNdEx = postIndex - case 13: + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CumulativeSummary", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -15975,31 +17483,31 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protohelpers.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protohelpers.ErrInvalidLength } if postIndex > l { return io.ErrUnexpectedEOF } - var stringValue string - if intStringLen > 0 { - stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + if m.CumulativeSummary == nil { + m.CumulativeSummary = &ReportCumulativeRuleSummary{} + } + if err := m.CumulativeSummary.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.AssetId = stringValue iNdEx = postIndex - case 14: + case 12: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -16026,18 +17534,16 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.DeletedDate == nil { - m.DeletedDate = ×tamppb.Timestamp{} - } - if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + m.Tags = append(m.Tags, &ReportTag{}) + if err := m.Tags[len(m.Tags)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 17: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DisplayOrder", wireType) + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RerunFromReportId", wireType) } - m.DisplayOrder = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16047,65 +17553,144 @@ func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.DisplayOrder |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - if (skippy < 0) || (iNdEx+skippy) < 0 { + postIndex := iNdEx + intStringLen + if postIndex < 0 { return protohelpers.ErrInvalidLength } - if (iNdEx + skippy) > l { + if postIndex > l { return io.ErrUnexpectedEOF } - m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ReportTag) UnmarshalVTUnsafe(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - if iNdEx >= l { + s := stringValue + m.RerunFromReportId = &s + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ReportTag: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReportTag: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + s := stringValue + m.JobId = &s + iNdEx = postIndex + case 15: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TagName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ArchivedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ArchivedDate == nil { + m.ArchivedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ArchivedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 16: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsArchived", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsArchived = bool(v != 0) + case 17: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportType", wireType) + } + m.ReportType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ReportType |= ReportType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CanvasExecutionId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16137,8 +17722,29 @@ func (m *ReportTag) UnmarshalVTUnsafe(dAtA []byte) error { if intStringLen > 0 { stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) } - m.TagName = stringValue + s := stringValue + m.CanvasExecutionId = &s iNdEx = postIndex + case 19: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CanvasStatus", wireType) + } + var v v12.CanvasCellExecutionStatus + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= v12.CanvasCellExecutionStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CanvasStatus = &v default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -16161,7 +17767,7 @@ func (m *ReportTag) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } -func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *ReportRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16184,17 +17790,17 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ReportCumulativeRuleSummary: wiretype end group for non-group") + return fmt.Errorf("proto: ReportRuleSummary: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ReportCumulativeRuleSummary: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ReportRuleSummary: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumAnnotationsOpen", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleId", wireType) } - m.NumAnnotationsOpen = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16204,16 +17810,33 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumAnnotationsOpen |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RuleId = stringValue + iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumAnnotationsFailed", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleClientKey", wireType) } - m.NumAnnotationsFailed = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16223,16 +17846,33 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumAnnotationsFailed |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumAnnotationsPassed", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength } - m.NumAnnotationsPassed = 0 + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RuleClientKey = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionId", wireType) + } + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16242,16 +17882,33 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumAnnotationsPassed |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.RuleVersionId = stringValue + iNdEx = postIndex case 4: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumAnnotationsTotal", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RuleVersionNumber", wireType) } - m.NumAnnotationsTotal = 0 + m.RuleVersionNumber = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16261,16 +17918,16 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumAnnotationsTotal |= uint32(b&0x7F) << shift + m.RuleVersionNumber |= uint32(b&0x7F) << shift if b < 0x80 { break } } case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumRulesCreated", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportRuleVersionId", wireType) } - m.NumRulesCreated = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16280,16 +17937,33 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumRulesCreated |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ReportRuleVersionId = stringValue + iNdEx = postIndex case 6: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumRulesLive", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NumOpen", wireType) } - m.NumRulesLive = 0 + m.NumOpen = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16299,16 +17973,16 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumRulesLive |= uint32(b&0x7F) << shift + m.NumOpen |= uint32(b&0x7F) << shift if b < 0x80 { break } } case 7: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumRulesFinished", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NumFailed", wireType) } - m.NumRulesFinished = 0 + m.NumFailed = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16318,16 +17992,16 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumRulesFinished |= uint32(b&0x7F) << shift + m.NumFailed |= uint32(b&0x7F) << shift if b < 0x80 { break } } case 8: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumRulesFailed", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NumPassed", wireType) } - m.NumRulesFailed = 0 + m.NumPassed = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16337,16 +18011,16 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumRulesFailed |= uint32(b&0x7F) << shift + m.NumPassed |= uint32(b&0x7F) << shift if b < 0x80 { break } } case 9: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumRulesCanceled", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } - m.NumRulesCanceled = 0 + m.Status = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16356,16 +18030,16 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumRulesCanceled |= uint32(b&0x7F) << shift + m.Status |= ReportRuleStatus(b&0x7F) << shift if b < 0x80 { break } } case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumRulesError", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StatusDetails", wireType) } - m.NumRulesError = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16375,16 +18049,33 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumRulesError |= uint32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StatusDetails == nil { + m.StatusDetails = &ReportRuleStatusDetails{} + } + if err := m.StatusDetails.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumRulesTotal", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDate", wireType) } - m.NumRulesTotal = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16394,16 +18085,33 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumRulesTotal |= uint32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedDate == nil { + m.CreatedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.CreatedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 12: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumOfRulesWithoutAnnotations", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ModifiedDate", wireType) } - m.NumOfRulesWithoutAnnotations = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -16413,11 +18121,1237 @@ func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumOfRulesWithoutAnnotations |= uint32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ModifiedDate == nil { + m.ModifiedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.ModifiedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.AssetId = stringValue + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeletedDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DeletedDate == nil { + m.DeletedDate = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.DeletedDate).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResolvedFamilyStats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResolvedFamilyStats = append(m.ResolvedFamilyStats, &ResolvedFamilyStat{}) + if err := m.ResolvedFamilyStats[len(m.ResolvedFamilyStats)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResolvedAlignmentConfigs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResolvedAlignmentConfigs = append(m.ResolvedAlignmentConfigs, &ResolvedAlignmentEntry{}) + if err := m.ResolvedAlignmentConfigs[len(m.ResolvedAlignmentConfigs)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DisplayOrder", wireType) + } + m.DisplayOrder = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DisplayOrder |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ReportTag) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ReportTag: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReportTag: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TagName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.TagName = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ReportCumulativeRuleSummary) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ReportCumulativeRuleSummary: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReportCumulativeRuleSummary: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumAnnotationsOpen", wireType) + } + m.NumAnnotationsOpen = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumAnnotationsOpen |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumAnnotationsFailed", wireType) + } + m.NumAnnotationsFailed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumAnnotationsFailed |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumAnnotationsPassed", wireType) + } + m.NumAnnotationsPassed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumAnnotationsPassed |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumAnnotationsTotal", wireType) + } + m.NumAnnotationsTotal = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumAnnotationsTotal |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumRulesCreated", wireType) + } + m.NumRulesCreated = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumRulesCreated |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumRulesLive", wireType) + } + m.NumRulesLive = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumRulesLive |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumRulesFinished", wireType) + } + m.NumRulesFinished = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumRulesFinished |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumRulesFailed", wireType) + } + m.NumRulesFailed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumRulesFailed |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumRulesCanceled", wireType) + } + m.NumRulesCanceled = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumRulesCanceled |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumRulesError", wireType) + } + m.NumRulesError = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumRulesError |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumRulesTotal", wireType) + } + m.NumRulesTotal = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumRulesTotal |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumOfRulesWithoutAnnotations", wireType) + } + m.NumOfRulesWithoutAnnotations = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumOfRulesWithoutAnnotations |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResolvedFamilyStat) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResolvedFamilyStat: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResolvedFamilyStat: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reference", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Reference = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyId = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyVersionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyVersionId = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatExpressionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatExpressionId = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatRangeId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatRangeId = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResolvedAlignmentEntry) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResolvedAlignmentEntry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResolvedAlignmentEntry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChannelReferences", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.ChannelReferences = append(m.ChannelReferences, stringValue) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field T0", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.T0 == nil { + m.T0 = &ResolvedAlignmentPoint{} + } + if err := m.T0.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StartTime == nil { + m.StartTime = &ResolvedAlignmentPoint{} + } + if err := m.StartTime.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EndTime == nil { + m.EndTime = &ResolvedAlignmentPoint{} + } + if err := m.EndTime.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResolvedAlignmentPoint) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResolvedAlignmentPoint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResolvedAlignmentPoint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Timestamp == nil { + m.Timestamp = ×tamppb.Timestamp{} + } + if err := (*timestamppb1.Timestamp)(m.Timestamp).UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.AlignmentConfig.(*ResolvedAlignmentPoint_Run); ok { + if unmarshal, ok := interface{}(oneof.Run).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Run); err != nil { + return err + } + } + } else { + v := &v11.RunAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &ResolvedAlignmentPoint_Run{Run: v} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.AlignmentConfig.(*ResolvedAlignmentPoint_Annotation); ok { + if unmarshal, ok := interface{}(oneof.Annotation).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Annotation); err != nil { + return err + } + } + } else { + v := &v11.AnnotationAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &ResolvedAlignmentPoint_Annotation{Annotation: v} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TimestampConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.AlignmentConfig.(*ResolvedAlignmentPoint_TimestampConfig); ok { + if unmarshal, ok := interface{}(oneof.TimestampConfig).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.TimestampConfig); err != nil { + return err + } + } + } else { + v := &v11.TimestampAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &ResolvedAlignmentPoint_TimestampConfig{TimestampConfig: v} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/gen/sift/rule_evaluation/v1/rule_evaluation.pb.go b/go/gen/sift/rule_evaluation/v1/rule_evaluation.pb.go index 10e60210ce..078150f562 100644 --- a/go/gen/sift/rule_evaluation/v1/rule_evaluation.pb.go +++ b/go/gen/sift/rule_evaluation/v1/rule_evaluation.pb.go @@ -10,7 +10,9 @@ import ( _ "github.com/sift-stack/sift/go/gen/google/api" _ "github.com/sift-stack/sift/go/gen/protoc-gen-openapiv2/options" v1 "github.com/sift-stack/sift/go/gen/sift/common/type/v1" - v11 "github.com/sift-stack/sift/go/gen/sift/rules/v1" + v11 "github.com/sift-stack/sift/go/gen/sift/families/v1" + _ "github.com/sift-stack/sift/go/gen/sift/reports/v1" + v12 "github.com/sift-stack/sift/go/gen/sift/rules/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" @@ -48,6 +50,8 @@ type EvaluateRulesRequest struct { OrganizationId string `protobuf:"bytes,7,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` // If this request creates a report, this field will be used as the report name. ReportName *string `protobuf:"bytes,8,opt,name=report_name,json=reportName,proto3,oneof" json:"report_name,omitempty"` + // If evaluating a run against a family stat, this field will be used to provide alignment configuration for the run under test + RunFamilyAlignmentConfigs []*RunFamilyAlignmentConfig `protobuf:"bytes,11,rep,name=run_family_alignment_configs,json=runFamilyAlignmentConfigs,proto3" json:"run_family_alignment_configs,omitempty"` } func (x *EvaluateRulesRequest) Reset() { @@ -166,6 +170,13 @@ func (x *EvaluateRulesRequest) GetReportName() string { return "" } +func (x *EvaluateRulesRequest) GetRunFamilyAlignmentConfigs() []*RunFamilyAlignmentConfig { + if x != nil { + return x.RunFamilyAlignmentConfigs + } + return nil +} + type isEvaluateRulesRequest_Time interface { isEvaluateRulesRequest_Time() } @@ -614,6 +625,8 @@ type EvaluateRulesPreviewRequest struct { Mode isEvaluateRulesPreviewRequest_Mode `protobuf_oneof:"mode"` // Only required if your user belongs to multiple organizations OrganizationId string `protobuf:"bytes,7,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + // If evaluating a run against a family stat, this field will be used to provide alignment configuration for the run under test + RunFamilyAlignmentConfigs []*RunFamilyAlignmentConfig `protobuf:"bytes,9,rep,name=run_family_alignment_configs,json=runFamilyAlignmentConfigs,proto3" json:"run_family_alignment_configs,omitempty"` } func (x *EvaluateRulesPreviewRequest) Reset() { @@ -711,6 +724,13 @@ func (x *EvaluateRulesPreviewRequest) GetOrganizationId() string { return "" } +func (x *EvaluateRulesPreviewRequest) GetRunFamilyAlignmentConfigs() []*RunFamilyAlignmentConfig { + if x != nil { + return x.RunFamilyAlignmentConfigs + } + return nil +} + type isEvaluateRulesPreviewRequest_Time interface { isEvaluateRulesPreviewRequest_Time() } @@ -755,18 +775,121 @@ func (*EvaluateRulesPreviewRequest_ReportTemplate) isEvaluateRulesPreviewRequest func (*EvaluateRulesPreviewRequest_RuleConfigs) isEvaluateRulesPreviewRequest_Mode() {} +type RunFamilyAlignmentConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FamilyAlignmentName string `protobuf:"bytes,1,opt,name=family_alignment_name,json=familyAlignmentName,proto3" json:"family_alignment_name,omitempty"` + // Types that are assignable to AlignmentConfig: + // + // *RunFamilyAlignmentConfig_Run + // *RunFamilyAlignmentConfig_Annotation + // *RunFamilyAlignmentConfig_Timestamp + AlignmentConfig isRunFamilyAlignmentConfig_AlignmentConfig `protobuf_oneof:"alignment_config"` +} + +func (x *RunFamilyAlignmentConfig) Reset() { + *x = RunFamilyAlignmentConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RunFamilyAlignmentConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunFamilyAlignmentConfig) ProtoMessage() {} + +func (x *RunFamilyAlignmentConfig) ProtoReflect() protoreflect.Message { + mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RunFamilyAlignmentConfig.ProtoReflect.Descriptor instead. +func (*RunFamilyAlignmentConfig) Descriptor() ([]byte, []int) { + return file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescGZIP(), []int{9} +} + +func (x *RunFamilyAlignmentConfig) GetFamilyAlignmentName() string { + if x != nil { + return x.FamilyAlignmentName + } + return "" +} + +func (m *RunFamilyAlignmentConfig) GetAlignmentConfig() isRunFamilyAlignmentConfig_AlignmentConfig { + if m != nil { + return m.AlignmentConfig + } + return nil +} + +func (x *RunFamilyAlignmentConfig) GetRun() *v11.RunAlignment { + if x, ok := x.GetAlignmentConfig().(*RunFamilyAlignmentConfig_Run); ok { + return x.Run + } + return nil +} + +func (x *RunFamilyAlignmentConfig) GetAnnotation() *v11.AnnotationAlignment { + if x, ok := x.GetAlignmentConfig().(*RunFamilyAlignmentConfig_Annotation); ok { + return x.Annotation + } + return nil +} + +func (x *RunFamilyAlignmentConfig) GetTimestamp() *v11.TimestampAlignment { + if x, ok := x.GetAlignmentConfig().(*RunFamilyAlignmentConfig_Timestamp); ok { + return x.Timestamp + } + return nil +} + +type isRunFamilyAlignmentConfig_AlignmentConfig interface { + isRunFamilyAlignmentConfig_AlignmentConfig() +} + +type RunFamilyAlignmentConfig_Run struct { + Run *v11.RunAlignment `protobuf:"bytes,2,opt,name=run,proto3,oneof"` +} + +type RunFamilyAlignmentConfig_Annotation struct { + Annotation *v11.AnnotationAlignment `protobuf:"bytes,3,opt,name=annotation,proto3,oneof"` +} + +type RunFamilyAlignmentConfig_Timestamp struct { + Timestamp *v11.TimestampAlignment `protobuf:"bytes,4,opt,name=timestamp,proto3,oneof"` +} + +func (*RunFamilyAlignmentConfig_Run) isRunFamilyAlignmentConfig_AlignmentConfig() {} + +func (*RunFamilyAlignmentConfig_Annotation) isRunFamilyAlignmentConfig_AlignmentConfig() {} + +func (*RunFamilyAlignmentConfig_Timestamp) isRunFamilyAlignmentConfig_AlignmentConfig() {} + type EvaluateRulesFromRuleConfigs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Configs []*v11.UpdateRuleRequest `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"` + Configs []*v12.UpdateRuleRequest `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"` } func (x *EvaluateRulesFromRuleConfigs) Reset() { *x = EvaluateRulesFromRuleConfigs{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[9] + mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -779,7 +902,7 @@ func (x *EvaluateRulesFromRuleConfigs) String() string { func (*EvaluateRulesFromRuleConfigs) ProtoMessage() {} func (x *EvaluateRulesFromRuleConfigs) ProtoReflect() protoreflect.Message { - mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[9] + mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -792,10 +915,10 @@ func (x *EvaluateRulesFromRuleConfigs) ProtoReflect() protoreflect.Message { // Deprecated: Use EvaluateRulesFromRuleConfigs.ProtoReflect.Descriptor instead. func (*EvaluateRulesFromRuleConfigs) Descriptor() ([]byte, []int) { - return file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescGZIP(), []int{9} + return file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescGZIP(), []int{10} } -func (x *EvaluateRulesFromRuleConfigs) GetConfigs() []*v11.UpdateRuleRequest { +func (x *EvaluateRulesFromRuleConfigs) GetConfigs() []*v12.UpdateRuleRequest { if x != nil { return x.Configs } @@ -808,13 +931,13 @@ type EvaluateRulesPreviewResponse struct { unknownFields protoimpl.UnknownFields CreatedAnnotationCount int32 `protobuf:"varint,1,opt,name=created_annotation_count,json=createdAnnotationCount,proto3" json:"created_annotation_count,omitempty"` - DryRunAnnotations []*v11.DryRunAnnotation `protobuf:"bytes,2,rep,name=dry_run_annotations,json=dryRunAnnotations,proto3" json:"dry_run_annotations,omitempty"` + DryRunAnnotations []*v12.DryRunAnnotation `protobuf:"bytes,2,rep,name=dry_run_annotations,json=dryRunAnnotations,proto3" json:"dry_run_annotations,omitempty"` } func (x *EvaluateRulesPreviewResponse) Reset() { *x = EvaluateRulesPreviewResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[10] + mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -827,7 +950,7 @@ func (x *EvaluateRulesPreviewResponse) String() string { func (*EvaluateRulesPreviewResponse) ProtoMessage() {} func (x *EvaluateRulesPreviewResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[10] + mi := &file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -840,7 +963,7 @@ func (x *EvaluateRulesPreviewResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EvaluateRulesPreviewResponse.ProtoReflect.Descriptor instead. func (*EvaluateRulesPreviewResponse) Descriptor() ([]byte, []int) { - return file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescGZIP(), []int{10} + return file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescGZIP(), []int{11} } func (x *EvaluateRulesPreviewResponse) GetCreatedAnnotationCount() int32 { @@ -850,7 +973,7 @@ func (x *EvaluateRulesPreviewResponse) GetCreatedAnnotationCount() int32 { return 0 } -func (x *EvaluateRulesPreviewResponse) GetDryRunAnnotations() []*v11.DryRunAnnotation { +func (x *EvaluateRulesPreviewResponse) GetDryRunAnnotations() []*v12.DryRunAnnotation { if x != nil { return x.DryRunAnnotations } @@ -876,9 +999,13 @@ var file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDesc = []byte{ 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x96, 0x06, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, + 0x74, 0x6f, 0x22, 0x8f, 0x07, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, @@ -925,201 +1052,235 @@ var file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDesc = []byte{ 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x0a, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x74, - 0x69, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xeb, 0x01, 0x0a, 0x0c, - 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x03, - 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, - 0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x40, 0x0a, - 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x77, 0x0a, 0x1c, 0x72, + 0x75, 0x6e, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x19, 0x72, 0x75, 0x6e, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xeb, 0x01, 0x0a, 0x0c, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x03, 0x72, 0x75, 0x6e, + 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, + 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x24, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x05, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x22, 0x78, 0x0a, 0x1f, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, - 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x24, 0x45, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x4e, 0x0a, 0x1d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, - 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x10, + 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x5e, 0x0a, 0x1e, 0x45, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x15, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x08, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x06, 0x6a, + 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x01, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, + 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, 0xd7, 0x05, 0x0a, 0x1b, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x78, 0x0a, 0x1f, 0x45, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0f, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x22, 0x4e, 0x0a, 0x1d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x73, 0x22, 0x5e, 0x0a, 0x1e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x15, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x18, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x09, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, - 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, 0xde, 0x04, 0x0a, - 0x1b, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, - 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x03, - 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x4d, 0x0a, 0x0e, 0x72, 0x75, 0x6e, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, - 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x55, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, - 0x72, 0x6f, 0x6d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, - 0x5d, 0x0a, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, - 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, - 0x52, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x63, - 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, - 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, - 0x48, 0x01, 0x52, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, - 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x42, 0x06, 0x0a, - 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x5f, 0x0a, - 0x1c, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, - 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x3f, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0xae, - 0x01, 0x0a, 0x1c, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3d, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4f, - 0x0a, 0x13, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x79, 0x52, - 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x64, 0x72, - 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, - 0xd8, 0x06, 0x0a, 0x15, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc3, 0x02, 0x0a, 0x0d, 0x45, 0x76, - 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, + 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x00, 0x52, 0x03, 0x72, + 0x75, 0x6e, 0x12, 0x4d, 0x0a, 0x0e, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x55, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x48, + 0x01, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x0d, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x63, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0c, + 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, + 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x48, 0x01, 0x52, 0x0b, 0x72, 0x75, 0x6c, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x77, 0x0a, 0x1c, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x19, 0x72, 0x75, 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x42, + 0x06, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, + 0xaa, 0x02, 0x0a, 0x18, 0x52, 0x75, 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x15, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x5f, 0x0a, 0x1c, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, + 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x3f, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0xae, 0x01, + 0x0a, 0x1c, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, + 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, + 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, + 0x13, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, + 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x64, 0x72, 0x79, + 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0xd8, + 0x06, 0x0a, 0x15, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc3, 0x02, 0x0a, 0x0d, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd2, 0x01, 0x92, 0x41, 0xa7, - 0x01, 0x12, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x1a, 0x95, 0x01, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, - 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x44, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, - 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, - 0xda, 0x02, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd4, 0x01, 0x92, 0x41, 0xa1, 0x01, 0x12, 0x14, 0x45, 0x76, - 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x1a, 0x88, 0x01, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, 0x20, 0x64, - 0x72, 0x79, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x67, 0x61, 0x69, - 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, - 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x2d, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x1a, 0x9b, 0x01, 0x92, - 0x41, 0x97, 0x01, 0x12, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x1a, - 0x79, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, - 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, - 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, - 0x2f, 0x32, 0x36, 0x35, 0x34, 0x32, 0x31, 0x31, 0x30, 0x32, 0x42, 0x97, 0x02, 0x0a, 0x1b, 0x63, - 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x52, 0x75, 0x6c, 0x65, - 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, - 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, - 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x75, 0x6c, 0x65, - 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, - 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, - 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x53, 0x69, - 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x1b, 0x12, 0x19, 0x0a, 0x17, 0x52, 0x75, 0x6c, - 0x65, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd2, 0x01, 0x92, 0x41, 0xa7, 0x01, + 0x12, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, + 0x95, 0x01, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, + 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x44, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, + 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, + 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xda, + 0x02, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, + 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd4, 0x01, 0x92, 0x41, 0xa1, 0x01, 0x12, 0x14, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, + 0x77, 0x1a, 0x88, 0x01, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, 0x20, 0x64, 0x72, + 0x79, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, + 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x3a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x1a, 0x9b, 0x01, 0x92, 0x41, + 0x97, 0x01, 0x12, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x1a, 0x79, + 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, + 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, + 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, + 0x32, 0x36, 0x35, 0x34, 0x32, 0x31, 0x31, 0x30, 0x32, 0x42, 0x97, 0x02, 0x0a, 0x1b, 0x63, 0x6f, + 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x52, 0x75, 0x6c, 0x65, 0x45, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, + 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, + 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x53, 0x52, 0x58, 0xaa, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x45, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x53, + 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6c, + 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x53, 0x69, 0x66, + 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x1b, 0x12, 0x19, 0x0a, 0x17, 0x52, 0x75, 0x6c, 0x65, + 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1134,7 +1295,7 @@ func file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescGZIP() []byte { return file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDescData } -var file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_sift_rule_evaluation_v1_rule_evaluation_proto_goTypes = []interface{}{ (*EvaluateRulesRequest)(nil), // 0: sift.rule_evaluation.v1.EvaluateRulesRequest (*RunTimeRange)(nil), // 1: sift.rule_evaluation.v1.RunTimeRange @@ -1145,49 +1306,58 @@ var file_sift_rule_evaluation_v1_rule_evaluation_proto_goTypes = []interface{}{ (*EvaluateRulesAnnotationOptions)(nil), // 6: sift.rule_evaluation.v1.EvaluateRulesAnnotationOptions (*EvaluateRulesResponse)(nil), // 7: sift.rule_evaluation.v1.EvaluateRulesResponse (*EvaluateRulesPreviewRequest)(nil), // 8: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest - (*EvaluateRulesFromRuleConfigs)(nil), // 9: sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigs - (*EvaluateRulesPreviewResponse)(nil), // 10: sift.rule_evaluation.v1.EvaluateRulesPreviewResponse - (*v1.ResourceIdentifier)(nil), // 11: sift.common.type.v1.ResourceIdentifier - (*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp - (*v1.NamedResources)(nil), // 13: sift.common.type.v1.NamedResources - (*v1.ResourceIdentifiers)(nil), // 14: sift.common.type.v1.ResourceIdentifiers - (*v11.UpdateRuleRequest)(nil), // 15: sift.rules.v1.UpdateRuleRequest - (*v11.DryRunAnnotation)(nil), // 16: sift.rules.v1.DryRunAnnotation + (*RunFamilyAlignmentConfig)(nil), // 9: sift.rule_evaluation.v1.RunFamilyAlignmentConfig + (*EvaluateRulesFromRuleConfigs)(nil), // 10: sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigs + (*EvaluateRulesPreviewResponse)(nil), // 11: sift.rule_evaluation.v1.EvaluateRulesPreviewResponse + (*v1.ResourceIdentifier)(nil), // 12: sift.common.type.v1.ResourceIdentifier + (*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp + (*v1.NamedResources)(nil), // 14: sift.common.type.v1.NamedResources + (*v1.ResourceIdentifiers)(nil), // 15: sift.common.type.v1.ResourceIdentifiers + (*v11.RunAlignment)(nil), // 16: sift.families.v1.RunAlignment + (*v11.AnnotationAlignment)(nil), // 17: sift.families.v1.AnnotationAlignment + (*v11.TimestampAlignment)(nil), // 18: sift.families.v1.TimestampAlignment + (*v12.UpdateRuleRequest)(nil), // 19: sift.rules.v1.UpdateRuleRequest + (*v12.DryRunAnnotation)(nil), // 20: sift.rules.v1.DryRunAnnotation } var file_sift_rule_evaluation_v1_rule_evaluation_proto_depIdxs = []int32{ - 11, // 0: sift.rule_evaluation.v1.EvaluateRulesRequest.run:type_name -> sift.common.type.v1.ResourceIdentifier + 12, // 0: sift.rule_evaluation.v1.EvaluateRulesRequest.run:type_name -> sift.common.type.v1.ResourceIdentifier 2, // 1: sift.rule_evaluation.v1.EvaluateRulesRequest.assets:type_name -> sift.rule_evaluation.v1.AssetsTimeRange 1, // 2: sift.rule_evaluation.v1.EvaluateRulesRequest.run_time_range:type_name -> sift.rule_evaluation.v1.RunTimeRange 3, // 3: sift.rule_evaluation.v1.EvaluateRulesRequest.rules:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersions 5, // 4: sift.rule_evaluation.v1.EvaluateRulesRequest.rule_versions:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromRuleVersions 4, // 5: sift.rule_evaluation.v1.EvaluateRulesRequest.report_template:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromReportTemplate 6, // 6: sift.rule_evaluation.v1.EvaluateRulesRequest.annotation_options:type_name -> sift.rule_evaluation.v1.EvaluateRulesAnnotationOptions - 11, // 7: sift.rule_evaluation.v1.RunTimeRange.run:type_name -> sift.common.type.v1.ResourceIdentifier - 12, // 8: sift.rule_evaluation.v1.RunTimeRange.start_time:type_name -> google.protobuf.Timestamp - 12, // 9: sift.rule_evaluation.v1.RunTimeRange.end_time:type_name -> google.protobuf.Timestamp - 13, // 10: sift.rule_evaluation.v1.AssetsTimeRange.assets:type_name -> sift.common.type.v1.NamedResources - 12, // 11: sift.rule_evaluation.v1.AssetsTimeRange.start_time:type_name -> google.protobuf.Timestamp - 12, // 12: sift.rule_evaluation.v1.AssetsTimeRange.end_time:type_name -> google.protobuf.Timestamp - 14, // 13: sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersions.rules:type_name -> sift.common.type.v1.ResourceIdentifiers - 11, // 14: sift.rule_evaluation.v1.EvaluateRulesFromReportTemplate.report_template:type_name -> sift.common.type.v1.ResourceIdentifier - 13, // 15: sift.rule_evaluation.v1.EvaluateRulesAnnotationOptions.tags:type_name -> sift.common.type.v1.NamedResources - 11, // 16: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.run:type_name -> sift.common.type.v1.ResourceIdentifier - 1, // 17: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.run_time_range:type_name -> sift.rule_evaluation.v1.RunTimeRange - 3, // 18: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.rules:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersions - 5, // 19: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.rule_versions:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromRuleVersions - 4, // 20: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.report_template:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromReportTemplate - 9, // 21: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.rule_configs:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigs - 15, // 22: sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigs.configs:type_name -> sift.rules.v1.UpdateRuleRequest - 16, // 23: sift.rule_evaluation.v1.EvaluateRulesPreviewResponse.dry_run_annotations:type_name -> sift.rules.v1.DryRunAnnotation - 0, // 24: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRules:input_type -> sift.rule_evaluation.v1.EvaluateRulesRequest - 8, // 25: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRulesPreview:input_type -> sift.rule_evaluation.v1.EvaluateRulesPreviewRequest - 7, // 26: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRules:output_type -> sift.rule_evaluation.v1.EvaluateRulesResponse - 10, // 27: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRulesPreview:output_type -> sift.rule_evaluation.v1.EvaluateRulesPreviewResponse - 26, // [26:28] is the sub-list for method output_type - 24, // [24:26] is the sub-list for method input_type - 24, // [24:24] is the sub-list for extension type_name - 24, // [24:24] is the sub-list for extension extendee - 0, // [0:24] is the sub-list for field type_name + 9, // 7: sift.rule_evaluation.v1.EvaluateRulesRequest.run_family_alignment_configs:type_name -> sift.rule_evaluation.v1.RunFamilyAlignmentConfig + 12, // 8: sift.rule_evaluation.v1.RunTimeRange.run:type_name -> sift.common.type.v1.ResourceIdentifier + 13, // 9: sift.rule_evaluation.v1.RunTimeRange.start_time:type_name -> google.protobuf.Timestamp + 13, // 10: sift.rule_evaluation.v1.RunTimeRange.end_time:type_name -> google.protobuf.Timestamp + 14, // 11: sift.rule_evaluation.v1.AssetsTimeRange.assets:type_name -> sift.common.type.v1.NamedResources + 13, // 12: sift.rule_evaluation.v1.AssetsTimeRange.start_time:type_name -> google.protobuf.Timestamp + 13, // 13: sift.rule_evaluation.v1.AssetsTimeRange.end_time:type_name -> google.protobuf.Timestamp + 15, // 14: sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersions.rules:type_name -> sift.common.type.v1.ResourceIdentifiers + 12, // 15: sift.rule_evaluation.v1.EvaluateRulesFromReportTemplate.report_template:type_name -> sift.common.type.v1.ResourceIdentifier + 14, // 16: sift.rule_evaluation.v1.EvaluateRulesAnnotationOptions.tags:type_name -> sift.common.type.v1.NamedResources + 12, // 17: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.run:type_name -> sift.common.type.v1.ResourceIdentifier + 1, // 18: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.run_time_range:type_name -> sift.rule_evaluation.v1.RunTimeRange + 3, // 19: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.rules:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersions + 5, // 20: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.rule_versions:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromRuleVersions + 4, // 21: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.report_template:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromReportTemplate + 10, // 22: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.rule_configs:type_name -> sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigs + 9, // 23: sift.rule_evaluation.v1.EvaluateRulesPreviewRequest.run_family_alignment_configs:type_name -> sift.rule_evaluation.v1.RunFamilyAlignmentConfig + 16, // 24: sift.rule_evaluation.v1.RunFamilyAlignmentConfig.run:type_name -> sift.families.v1.RunAlignment + 17, // 25: sift.rule_evaluation.v1.RunFamilyAlignmentConfig.annotation:type_name -> sift.families.v1.AnnotationAlignment + 18, // 26: sift.rule_evaluation.v1.RunFamilyAlignmentConfig.timestamp:type_name -> sift.families.v1.TimestampAlignment + 19, // 27: sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigs.configs:type_name -> sift.rules.v1.UpdateRuleRequest + 20, // 28: sift.rule_evaluation.v1.EvaluateRulesPreviewResponse.dry_run_annotations:type_name -> sift.rules.v1.DryRunAnnotation + 0, // 29: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRules:input_type -> sift.rule_evaluation.v1.EvaluateRulesRequest + 8, // 30: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRulesPreview:input_type -> sift.rule_evaluation.v1.EvaluateRulesPreviewRequest + 7, // 31: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRules:output_type -> sift.rule_evaluation.v1.EvaluateRulesResponse + 11, // 32: sift.rule_evaluation.v1.RuleEvaluationService.EvaluateRulesPreview:output_type -> sift.rule_evaluation.v1.EvaluateRulesPreviewResponse + 31, // [31:33] is the sub-list for method output_type + 29, // [29:31] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_sift_rule_evaluation_v1_rule_evaluation_proto_init() } @@ -1305,7 +1475,7 @@ func file_sift_rule_evaluation_v1_rule_evaluation_proto_init() { } } file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EvaluateRulesFromRuleConfigs); i { + switch v := v.(*RunFamilyAlignmentConfig); i { case 0: return &v.state case 1: @@ -1317,6 +1487,18 @@ func file_sift_rule_evaluation_v1_rule_evaluation_proto_init() { } } file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvaluateRulesFromRuleConfigs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EvaluateRulesPreviewResponse); i { case 0: return &v.state @@ -1348,13 +1530,18 @@ func file_sift_rule_evaluation_v1_rule_evaluation_proto_init() { (*EvaluateRulesPreviewRequest_ReportTemplate)(nil), (*EvaluateRulesPreviewRequest_RuleConfigs)(nil), } + file_sift_rule_evaluation_v1_rule_evaluation_proto_msgTypes[9].OneofWrappers = []interface{}{ + (*RunFamilyAlignmentConfig_Run)(nil), + (*RunFamilyAlignmentConfig_Annotation)(nil), + (*RunFamilyAlignmentConfig_Timestamp)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_rule_evaluation_v1_rule_evaluation_proto_rawDesc, NumEnums: 0, - NumMessages: 11, + NumMessages: 12, NumExtensions: 0, NumServices: 1, }, diff --git a/go/gen/sift/rule_evaluation/v1/rule_evaluation_vtproto.pb.go b/go/gen/sift/rule_evaluation/v1/rule_evaluation_vtproto.pb.go index 686676810e..ae9eb63606 100644 --- a/go/gen/sift/rule_evaluation/v1/rule_evaluation_vtproto.pb.go +++ b/go/gen/sift/rule_evaluation/v1/rule_evaluation_vtproto.pb.go @@ -10,7 +10,8 @@ import ( protohelpers "github.com/planetscale/vtprotobuf/protohelpers" timestamppb1 "github.com/planetscale/vtprotobuf/types/known/timestamppb" v1 "github.com/sift-stack/sift/go/gen/sift/common/type/v1" - v11 "github.com/sift-stack/sift/go/gen/sift/rules/v1" + v11 "github.com/sift-stack/sift/go/gen/sift/families/v1" + v12 "github.com/sift-stack/sift/go/gen/sift/rules/v1" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -49,6 +50,13 @@ func (m *EvaluateRulesRequest) CloneVT() *EvaluateRulesRequest { tmpVal := *rhs r.ReportName = &tmpVal } + if rhs := m.RunFamilyAlignmentConfigs; rhs != nil { + tmpContainer := make([]*RunFamilyAlignmentConfig, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.RunFamilyAlignmentConfigs = tmpContainer + } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -312,6 +320,13 @@ func (m *EvaluateRulesPreviewRequest) CloneVT() *EvaluateRulesPreviewRequest { CloneVT() isEvaluateRulesPreviewRequest_Mode }).CloneVT() } + if rhs := m.RunFamilyAlignmentConfigs; rhs != nil { + tmpContainer := make([]*RunFamilyAlignmentConfig, len(rhs)) + for k, v := range rhs { + tmpContainer[k] = v.CloneVT() + } + r.RunFamilyAlignmentConfigs = tmpContainer + } if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -383,18 +398,89 @@ func (m *EvaluateRulesPreviewRequest_RuleConfigs) CloneVT() isEvaluateRulesPrevi return r } +func (m *RunFamilyAlignmentConfig) CloneVT() *RunFamilyAlignmentConfig { + if m == nil { + return (*RunFamilyAlignmentConfig)(nil) + } + r := new(RunFamilyAlignmentConfig) + r.FamilyAlignmentName = m.FamilyAlignmentName + if m.AlignmentConfig != nil { + r.AlignmentConfig = m.AlignmentConfig.(interface { + CloneVT() isRunFamilyAlignmentConfig_AlignmentConfig + }).CloneVT() + } + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *RunFamilyAlignmentConfig) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *RunFamilyAlignmentConfig_Run) CloneVT() isRunFamilyAlignmentConfig_AlignmentConfig { + if m == nil { + return (*RunFamilyAlignmentConfig_Run)(nil) + } + r := new(RunFamilyAlignmentConfig_Run) + if rhs := m.Run; rhs != nil { + if vtpb, ok := interface{}(rhs).(interface{ CloneVT() *v11.RunAlignment }); ok { + r.Run = vtpb.CloneVT() + } else { + r.Run = proto.Clone(rhs).(*v11.RunAlignment) + } + } + return r +} + +func (m *RunFamilyAlignmentConfig_Annotation) CloneVT() isRunFamilyAlignmentConfig_AlignmentConfig { + if m == nil { + return (*RunFamilyAlignmentConfig_Annotation)(nil) + } + r := new(RunFamilyAlignmentConfig_Annotation) + if rhs := m.Annotation; rhs != nil { + if vtpb, ok := interface{}(rhs).(interface { + CloneVT() *v11.AnnotationAlignment + }); ok { + r.Annotation = vtpb.CloneVT() + } else { + r.Annotation = proto.Clone(rhs).(*v11.AnnotationAlignment) + } + } + return r +} + +func (m *RunFamilyAlignmentConfig_Timestamp) CloneVT() isRunFamilyAlignmentConfig_AlignmentConfig { + if m == nil { + return (*RunFamilyAlignmentConfig_Timestamp)(nil) + } + r := new(RunFamilyAlignmentConfig_Timestamp) + if rhs := m.Timestamp; rhs != nil { + if vtpb, ok := interface{}(rhs).(interface { + CloneVT() *v11.TimestampAlignment + }); ok { + r.Timestamp = vtpb.CloneVT() + } else { + r.Timestamp = proto.Clone(rhs).(*v11.TimestampAlignment) + } + } + return r +} + func (m *EvaluateRulesFromRuleConfigs) CloneVT() *EvaluateRulesFromRuleConfigs { if m == nil { return (*EvaluateRulesFromRuleConfigs)(nil) } r := new(EvaluateRulesFromRuleConfigs) if rhs := m.Configs; rhs != nil { - tmpContainer := make([]*v11.UpdateRuleRequest, len(rhs)) + tmpContainer := make([]*v12.UpdateRuleRequest, len(rhs)) for k, v := range rhs { - if vtpb, ok := interface{}(v).(interface{ CloneVT() *v11.UpdateRuleRequest }); ok { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v12.UpdateRuleRequest }); ok { tmpContainer[k] = vtpb.CloneVT() } else { - tmpContainer[k] = proto.Clone(v).(*v11.UpdateRuleRequest) + tmpContainer[k] = proto.Clone(v).(*v12.UpdateRuleRequest) } } r.Configs = tmpContainer @@ -417,12 +503,12 @@ func (m *EvaluateRulesPreviewResponse) CloneVT() *EvaluateRulesPreviewResponse { r := new(EvaluateRulesPreviewResponse) r.CreatedAnnotationCount = m.CreatedAnnotationCount if rhs := m.DryRunAnnotations; rhs != nil { - tmpContainer := make([]*v11.DryRunAnnotation, len(rhs)) + tmpContainer := make([]*v12.DryRunAnnotation, len(rhs)) for k, v := range rhs { - if vtpb, ok := interface{}(v).(interface{ CloneVT() *v11.DryRunAnnotation }); ok { + if vtpb, ok := interface{}(v).(interface{ CloneVT() *v12.DryRunAnnotation }); ok { tmpContainer[k] = vtpb.CloneVT() } else { - tmpContainer[k] = proto.Clone(v).(*v11.DryRunAnnotation) + tmpContainer[k] = proto.Clone(v).(*v12.DryRunAnnotation) } } r.DryRunAnnotations = tmpContainer @@ -477,6 +563,23 @@ func (this *EvaluateRulesRequest) EqualVT(that *EvaluateRulesRequest) bool { if p, q := this.ReportName, that.ReportName; (p == nil && q != nil) || (p != nil && (q == nil || *p != *q)) { return false } + if len(this.RunFamilyAlignmentConfigs) != len(that.RunFamilyAlignmentConfigs) { + return false + } + for i, vx := range this.RunFamilyAlignmentConfigs { + vy := that.RunFamilyAlignmentConfigs[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &RunFamilyAlignmentConfig{} + } + if q == nil { + q = &RunFamilyAlignmentConfig{} + } + if !p.EqualVT(q) { + return false + } + } + } return string(this.unknownFields) == string(that.unknownFields) } @@ -876,6 +979,23 @@ func (this *EvaluateRulesPreviewRequest) EqualVT(that *EvaluateRulesPreviewReque if this.OrganizationId != that.OrganizationId { return false } + if len(this.RunFamilyAlignmentConfigs) != len(that.RunFamilyAlignmentConfigs) { + return false + } + for i, vx := range this.RunFamilyAlignmentConfigs { + vy := that.RunFamilyAlignmentConfigs[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &RunFamilyAlignmentConfig{} + } + if q == nil { + q = &RunFamilyAlignmentConfig{} + } + if !p.EqualVT(q) { + return false + } + } + } return string(this.unknownFields) == string(that.unknownFields) } @@ -1042,6 +1162,128 @@ func (this *EvaluateRulesPreviewRequest_RunTimeRange) EqualVT(thatIface isEvalua return true } +func (this *RunFamilyAlignmentConfig) EqualVT(that *RunFamilyAlignmentConfig) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.AlignmentConfig == nil && that.AlignmentConfig != nil { + return false + } else if this.AlignmentConfig != nil { + if that.AlignmentConfig == nil { + return false + } + if !this.AlignmentConfig.(interface { + EqualVT(isRunFamilyAlignmentConfig_AlignmentConfig) bool + }).EqualVT(that.AlignmentConfig) { + return false + } + } + if this.FamilyAlignmentName != that.FamilyAlignmentName { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *RunFamilyAlignmentConfig) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*RunFamilyAlignmentConfig) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *RunFamilyAlignmentConfig_Run) EqualVT(thatIface isRunFamilyAlignmentConfig_AlignmentConfig) bool { + that, ok := thatIface.(*RunFamilyAlignmentConfig_Run) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Run, that.Run; p != q { + if p == nil { + p = &v11.RunAlignment{} + } + if q == nil { + q = &v11.RunAlignment{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*v11.RunAlignment) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + return true +} + +func (this *RunFamilyAlignmentConfig_Annotation) EqualVT(thatIface isRunFamilyAlignmentConfig_AlignmentConfig) bool { + that, ok := thatIface.(*RunFamilyAlignmentConfig_Annotation) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Annotation, that.Annotation; p != q { + if p == nil { + p = &v11.AnnotationAlignment{} + } + if q == nil { + q = &v11.AnnotationAlignment{} + } + if equal, ok := interface{}(p).(interface { + EqualVT(*v11.AnnotationAlignment) bool + }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + return true +} + +func (this *RunFamilyAlignmentConfig_Timestamp) EqualVT(thatIface isRunFamilyAlignmentConfig_AlignmentConfig) bool { + that, ok := thatIface.(*RunFamilyAlignmentConfig_Timestamp) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Timestamp, that.Timestamp; p != q { + if p == nil { + p = &v11.TimestampAlignment{} + } + if q == nil { + q = &v11.TimestampAlignment{} + } + if equal, ok := interface{}(p).(interface { + EqualVT(*v11.TimestampAlignment) bool + }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + return true +} + func (this *EvaluateRulesFromRuleConfigs) EqualVT(that *EvaluateRulesFromRuleConfigs) bool { if this == that { return true @@ -1055,13 +1297,13 @@ func (this *EvaluateRulesFromRuleConfigs) EqualVT(that *EvaluateRulesFromRuleCon vy := that.Configs[i] if p, q := vx, vy; p != q { if p == nil { - p = &v11.UpdateRuleRequest{} + p = &v12.UpdateRuleRequest{} } if q == nil { - q = &v11.UpdateRuleRequest{} + q = &v12.UpdateRuleRequest{} } if equal, ok := interface{}(p).(interface { - EqualVT(*v11.UpdateRuleRequest) bool + EqualVT(*v12.UpdateRuleRequest) bool }); ok { if !equal.EqualVT(q) { return false @@ -1097,13 +1339,13 @@ func (this *EvaluateRulesPreviewResponse) EqualVT(that *EvaluateRulesPreviewResp vy := that.DryRunAnnotations[i] if p, q := vx, vy; p != q { if p == nil { - p = &v11.DryRunAnnotation{} + p = &v12.DryRunAnnotation{} } if q == nil { - q = &v11.DryRunAnnotation{} + q = &v12.DryRunAnnotation{} } if equal, ok := interface{}(p).(interface { - EqualVT(*v11.DryRunAnnotation) bool + EqualVT(*v12.DryRunAnnotation) bool }); ok { if !equal.EqualVT(q) { return false @@ -1303,6 +1545,18 @@ func (m *EvaluateRulesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) } i -= size } + if len(m.RunFamilyAlignmentConfigs) > 0 { + for iNdEx := len(m.RunFamilyAlignmentConfigs) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.RunFamilyAlignmentConfigs[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x5a + } + } if m.ReportName != nil { i -= len(*m.ReportName) copy(dAtA[i:], *m.ReportName) @@ -1930,6 +2184,18 @@ func (m *EvaluateRulesPreviewRequest) MarshalToSizedBufferVT(dAtA []byte) (int, } i -= size } + if len(m.RunFamilyAlignmentConfigs) > 0 { + for iNdEx := len(m.RunFamilyAlignmentConfigs) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.RunFamilyAlignmentConfigs[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + } if len(m.OrganizationId) > 0 { i -= len(m.OrganizationId) copy(dAtA[i:], m.OrganizationId) @@ -2066,7 +2332,7 @@ func (m *EvaluateRulesPreviewRequest_RunTimeRange) MarshalToSizedBufferVT(dAtA [ } return len(dAtA) - i, nil } -func (m *EvaluateRulesFromRuleConfigs) MarshalVT() (dAtA []byte, err error) { +func (m *RunFamilyAlignmentConfig) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2079,12 +2345,12 @@ func (m *EvaluateRulesFromRuleConfigs) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EvaluateRulesFromRuleConfigs) MarshalToVT(dAtA []byte) (int, error) { +func (m *RunFamilyAlignmentConfig) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *EvaluateRulesFromRuleConfigs) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *RunFamilyAlignmentConfig) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2096,53 +2362,195 @@ func (m *EvaluateRulesFromRuleConfigs) MarshalToSizedBufferVT(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Configs) > 0 { - for iNdEx := len(m.Configs) - 1; iNdEx >= 0; iNdEx-- { - if vtmsg, ok := interface{}(m.Configs[iNdEx]).(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Configs[iNdEx]) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0xa + if vtmsg, ok := m.AlignmentConfig.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + } + if len(m.FamilyAlignmentName) > 0 { + i -= len(m.FamilyAlignmentName) + copy(dAtA[i:], m.FamilyAlignmentName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentName))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *EvaluateRulesPreviewResponse) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } +func (m *RunFamilyAlignmentConfig_Run) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil + return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *EvaluateRulesPreviewResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *RunFamilyAlignmentConfig_Run) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Run != nil { + if vtmsg, ok := interface{}(m.Run).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Run) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *RunFamilyAlignmentConfig_Annotation) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *EvaluateRulesPreviewResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { +func (m *RunFamilyAlignmentConfig_Annotation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Annotation != nil { + if vtmsg, ok := interface{}(m.Annotation).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Annotation) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *RunFamilyAlignmentConfig_Timestamp) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *RunFamilyAlignmentConfig_Timestamp) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Timestamp != nil { + if vtmsg, ok := interface{}(m.Timestamp).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Timestamp) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *EvaluateRulesFromRuleConfigs) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EvaluateRulesFromRuleConfigs) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EvaluateRulesFromRuleConfigs) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Configs) > 0 { + for iNdEx := len(m.Configs) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Configs[iNdEx]).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Configs[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EvaluateRulesPreviewResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EvaluateRulesPreviewResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *EvaluateRulesPreviewResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { return 0, nil } i := len(dAtA) @@ -2215,6 +2623,18 @@ func (m *EvaluateRulesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (int, e i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.RunFamilyAlignmentConfigs) > 0 { + for iNdEx := len(m.RunFamilyAlignmentConfigs) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.RunFamilyAlignmentConfigs[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x5a + } + } if msg, ok := m.Mode.(*EvaluateRulesRequest_AllApplicableRules); ok { size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { @@ -2873,6 +3293,18 @@ func (m *EvaluateRulesPreviewRequest) MarshalToSizedBufferVTStrict(dAtA []byte) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.RunFamilyAlignmentConfigs) > 0 { + for iNdEx := len(m.RunFamilyAlignmentConfigs) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.RunFamilyAlignmentConfigs[iNdEx].MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } + } if msg, ok := m.Time.(*EvaluateRulesPreviewRequest_RunTimeRange); ok { size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) if err != nil { @@ -3051,7 +3483,7 @@ func (m *EvaluateRulesPreviewRequest_RunTimeRange) MarshalToSizedBufferVTStrict( } return len(dAtA) - i, nil } -func (m *EvaluateRulesFromRuleConfigs) MarshalVTStrict() (dAtA []byte, err error) { +func (m *RunFamilyAlignmentConfig) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3064,12 +3496,12 @@ func (m *EvaluateRulesFromRuleConfigs) MarshalVTStrict() (dAtA []byte, err error return dAtA[:n], nil } -func (m *EvaluateRulesFromRuleConfigs) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *RunFamilyAlignmentConfig) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *EvaluateRulesFromRuleConfigs) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { +func (m *RunFamilyAlignmentConfig) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3081,97 +3513,251 @@ func (m *EvaluateRulesFromRuleConfigs) MarshalToSizedBufferVTStrict(dAtA []byte) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Configs) > 0 { - for iNdEx := len(m.Configs) - 1; iNdEx >= 0; iNdEx-- { - if vtmsg, ok := interface{}(m.Configs[iNdEx]).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Configs[iNdEx]) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0xa + if msg, ok := m.AlignmentConfig.(*RunFamilyAlignmentConfig_Timestamp); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } + i -= size } - return len(dAtA) - i, nil -} - -func (m *EvaluateRulesPreviewResponse) MarshalVTStrict() (dAtA []byte, err error) { - if m == nil { - return nil, nil + if msg, ok := m.AlignmentConfig.(*RunFamilyAlignmentConfig_Annotation); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) - if err != nil { - return nil, err + if msg, ok := m.AlignmentConfig.(*RunFamilyAlignmentConfig_Run); ok { + size, err := msg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size } - return dAtA[:n], nil + if len(m.FamilyAlignmentName) > 0 { + i -= len(m.FamilyAlignmentName) + copy(dAtA[i:], m.FamilyAlignmentName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyAlignmentName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *EvaluateRulesPreviewResponse) MarshalToVTStrict(dAtA []byte) (int, error) { +func (m *RunFamilyAlignmentConfig_Run) MarshalToVTStrict(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVTStrict(dAtA[:size]) } -func (m *EvaluateRulesPreviewResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } +func (m *RunFamilyAlignmentConfig_Run) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) - } - if len(m.DryRunAnnotations) > 0 { - for iNdEx := len(m.DryRunAnnotations) - 1; iNdEx >= 0; iNdEx-- { - if vtmsg, ok := interface{}(m.DryRunAnnotations[iNdEx]).(interface { - MarshalToSizedBufferVTStrict([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.DryRunAnnotations[iNdEx]) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + if m.Run != nil { + if vtmsg, ok := interface{}(m.Run).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err } - i-- - dAtA[i] = 0x12 + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Run) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) } - } - if m.CreatedAnnotationCount != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.CreatedAnnotationCount)) i-- - dAtA[i] = 0x8 + dAtA[i] = 0x12 } return len(dAtA) - i, nil } +func (m *RunFamilyAlignmentConfig_Annotation) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} -func (m *EvaluateRulesRequest) SizeVT() (n int) { - if m == nil { +func (m *RunFamilyAlignmentConfig_Annotation) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Annotation != nil { + if vtmsg, ok := interface{}(m.Annotation).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Annotation) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *RunFamilyAlignmentConfig_Timestamp) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *RunFamilyAlignmentConfig_Timestamp) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Timestamp != nil { + if vtmsg, ok := interface{}(m.Timestamp).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Timestamp) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *EvaluateRulesFromRuleConfigs) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EvaluateRulesFromRuleConfigs) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *EvaluateRulesFromRuleConfigs) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Configs) > 0 { + for iNdEx := len(m.Configs) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.Configs[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Configs[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EvaluateRulesPreviewResponse) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EvaluateRulesPreviewResponse) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *EvaluateRulesPreviewResponse) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.DryRunAnnotations) > 0 { + for iNdEx := len(m.DryRunAnnotations) - 1; iNdEx >= 0; iNdEx-- { + if vtmsg, ok := interface{}(m.DryRunAnnotations[iNdEx]).(interface { + MarshalToSizedBufferVTStrict([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVTStrict(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.DryRunAnnotations[iNdEx]) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x12 + } + } + if m.CreatedAnnotationCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.CreatedAnnotationCount)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *EvaluateRulesRequest) SizeVT() (n int) { + if m == nil { return 0 } var l int @@ -3194,6 +3780,12 @@ func (m *EvaluateRulesRequest) SizeVT() (n int) { l = len(*m.ReportName) n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if len(m.RunFamilyAlignmentConfigs) > 0 { + for _, e := range m.RunFamilyAlignmentConfigs { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } n += len(m.unknownFields) return n } @@ -3454,6 +4046,12 @@ func (m *EvaluateRulesPreviewRequest) SizeVT() (n int) { if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if len(m.RunFamilyAlignmentConfigs) > 0 { + for _, e := range m.RunFamilyAlignmentConfigs { + l = e.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + } n += len(m.unknownFields) return n } @@ -3536,6 +4134,77 @@ func (m *EvaluateRulesPreviewRequest_RunTimeRange) SizeVT() (n int) { } return n } +func (m *RunFamilyAlignmentConfig) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FamilyAlignmentName) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if vtmsg, ok := m.AlignmentConfig.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } + n += len(m.unknownFields) + return n +} + +func (m *RunFamilyAlignmentConfig_Run) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Run != nil { + if size, ok := interface{}(m.Run).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Run) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *RunFamilyAlignmentConfig_Annotation) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Annotation != nil { + if size, ok := interface{}(m.Annotation).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Annotation) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} +func (m *RunFamilyAlignmentConfig_Timestamp) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Timestamp != nil { + if size, ok := interface{}(m.Timestamp).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Timestamp) + } + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + return n +} func (m *EvaluateRulesFromRuleConfigs) SizeVT() (n int) { if m == nil { return 0 @@ -3996,14 +4665,48 @@ func (m *EvaluateRulesRequest) UnmarshalVT(dAtA []byte) error { } b := bool(v != 0) m.Mode = &EvaluateRulesRequest_AllApplicableRules{AllApplicableRules: b} - default: - iNdEx = preIndex - skippy, err := protohelpers.Skip(dAtA[iNdEx:]) - if err != nil { - return err + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunFamilyAlignmentConfigs", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return protohelpers.ErrInvalidLength + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RunFamilyAlignmentConfigs = append(m.RunFamilyAlignmentConfigs, &RunFamilyAlignmentConfig{}) + if err := m.RunFamilyAlignmentConfigs[len(m.RunFamilyAlignmentConfigs)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -5179,6 +5882,40 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVT(dAtA []byte) error { m.Time = &EvaluateRulesPreviewRequest_RunTimeRange{RunTimeRange: v} } iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunFamilyAlignmentConfigs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RunFamilyAlignmentConfigs = append(m.RunFamilyAlignmentConfigs, &RunFamilyAlignmentConfig{}) + if err := m.RunFamilyAlignmentConfigs[len(m.RunFamilyAlignmentConfigs)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -5201,7 +5938,7 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *EvaluateRulesFromRuleConfigs) UnmarshalVT(dAtA []byte) error { +func (m *RunFamilyAlignmentConfig) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5224,15 +5961,47 @@ func (m *EvaluateRulesFromRuleConfigs) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesFromRuleConfigs: wiretype end group for non-group") + return fmt.Errorf("proto: RunFamilyAlignmentConfig: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesFromRuleConfigs: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RunFamilyAlignmentConfig: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Configs", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyAlignmentName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5259,17 +6028,146 @@ func (m *EvaluateRulesFromRuleConfigs) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Configs = append(m.Configs, &v11.UpdateRuleRequest{}) - if unmarshal, ok := interface{}(m.Configs[len(m.Configs)-1]).(interface { - UnmarshalVT([]byte) error - }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err + if oneof, ok := m.AlignmentConfig.(*RunFamilyAlignmentConfig_Run); ok { + if unmarshal, ok := interface{}(oneof.Run).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Run); err != nil { + return err + } } } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Configs[len(m.Configs)-1]); err != nil { - return err + v := &v11.RunAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &RunFamilyAlignmentConfig_Run{Run: v} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.AlignmentConfig.(*RunFamilyAlignmentConfig_Annotation); ok { + if unmarshal, ok := interface{}(oneof.Annotation).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Annotation); err != nil { + return err + } + } + } else { + v := &v11.AnnotationAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &RunFamilyAlignmentConfig_Annotation{Annotation: v} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.AlignmentConfig.(*RunFamilyAlignmentConfig_Timestamp); ok { + if unmarshal, ok := interface{}(oneof.Timestamp).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Timestamp); err != nil { + return err + } + } + } else { + v := &v11.TimestampAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &RunFamilyAlignmentConfig_Timestamp{Timestamp: v} } iNdEx = postIndex default: @@ -5294,7 +6192,7 @@ func (m *EvaluateRulesFromRuleConfigs) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *EvaluateRulesPreviewResponse) UnmarshalVT(dAtA []byte) error { +func (m *EvaluateRulesFromRuleConfigs) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5317,34 +6215,15 @@ func (m *EvaluateRulesPreviewResponse) UnmarshalVT(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesPreviewResponse: wiretype end group for non-group") + return fmt.Errorf("proto: EvaluateRulesFromRuleConfigs: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesPreviewResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EvaluateRulesFromRuleConfigs: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedAnnotationCount", wireType) - } - m.CreatedAnnotationCount = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.CreatedAnnotationCount |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DryRunAnnotations", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Configs", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5371,15 +6250,15 @@ func (m *EvaluateRulesPreviewResponse) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DryRunAnnotations = append(m.DryRunAnnotations, &v11.DryRunAnnotation{}) - if unmarshal, ok := interface{}(m.DryRunAnnotations[len(m.DryRunAnnotations)-1]).(interface { + m.Configs = append(m.Configs, &v12.UpdateRuleRequest{}) + if unmarshal, ok := interface{}(m.Configs[len(m.Configs)-1]).(interface { UnmarshalVT([]byte) error }); ok { if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.DryRunAnnotations[len(m.DryRunAnnotations)-1]); err != nil { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Configs[len(m.Configs)-1]); err != nil { return err } } @@ -5406,7 +6285,7 @@ func (m *EvaluateRulesPreviewResponse) UnmarshalVT(dAtA []byte) error { } return nil } -func (m *EvaluateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { +func (m *EvaluateRulesPreviewResponse) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5429,15 +6308,127 @@ func (m *EvaluateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EvaluateRulesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: EvaluateRulesPreviewResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EvaluateRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EvaluateRulesPreviewResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedAnnotationCount", wireType) + } + m.CreatedAnnotationCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CreatedAnnotationCount |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DryRunAnnotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DryRunAnnotations = append(m.DryRunAnnotations, &v12.DryRunAnnotation{}) + if unmarshal, ok := interface{}(m.DryRunAnnotations[len(m.DryRunAnnotations)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.DryRunAnnotations[len(m.DryRunAnnotations)-1]); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EvaluateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EvaluateRulesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EvaluateRulesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5827,6 +6818,40 @@ func (m *EvaluateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } b := bool(v != 0) m.Mode = &EvaluateRulesRequest_AllApplicableRules{AllApplicableRules: b} + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunFamilyAlignmentConfigs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RunFamilyAlignmentConfigs = append(m.RunFamilyAlignmentConfigs, &RunFamilyAlignmentConfig{}) + if err := m.RunFamilyAlignmentConfigs[len(m.RunFamilyAlignmentConfigs)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -7026,6 +8051,298 @@ func (m *EvaluateRulesPreviewRequest) UnmarshalVTUnsafe(dAtA []byte) error { m.Time = &EvaluateRulesPreviewRequest_RunTimeRange{RunTimeRange: v} } iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunFamilyAlignmentConfigs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RunFamilyAlignmentConfigs = append(m.RunFamilyAlignmentConfigs, &RunFamilyAlignmentConfig{}) + if err := m.RunFamilyAlignmentConfigs[len(m.RunFamilyAlignmentConfigs)-1].UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RunFamilyAlignmentConfig) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RunFamilyAlignmentConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RunFamilyAlignmentConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyAlignmentName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyAlignmentName = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Run", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.AlignmentConfig.(*RunFamilyAlignmentConfig_Run); ok { + if unmarshal, ok := interface{}(oneof.Run).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Run); err != nil { + return err + } + } + } else { + v := &v11.RunAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &RunFamilyAlignmentConfig_Run{Run: v} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.AlignmentConfig.(*RunFamilyAlignmentConfig_Annotation); ok { + if unmarshal, ok := interface{}(oneof.Annotation).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Annotation); err != nil { + return err + } + } + } else { + v := &v11.AnnotationAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &RunFamilyAlignmentConfig_Annotation{Annotation: v} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.AlignmentConfig.(*RunFamilyAlignmentConfig_Timestamp); ok { + if unmarshal, ok := interface{}(oneof.Timestamp).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Timestamp); err != nil { + return err + } + } + } else { + v := &v11.TimestampAlignment{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVTUnsafe([]byte) error + }); ok { + if err := unmarshal.UnmarshalVTUnsafe(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.AlignmentConfig = &RunFamilyAlignmentConfig_Timestamp{Timestamp: v} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -7106,7 +8423,7 @@ func (m *EvaluateRulesFromRuleConfigs) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Configs = append(m.Configs, &v11.UpdateRuleRequest{}) + m.Configs = append(m.Configs, &v12.UpdateRuleRequest{}) if unmarshal, ok := interface{}(m.Configs[len(m.Configs)-1]).(interface { UnmarshalVTUnsafe([]byte) error }); ok { @@ -7218,7 +8535,7 @@ func (m *EvaluateRulesPreviewResponse) UnmarshalVTUnsafe(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DryRunAnnotations = append(m.DryRunAnnotations, &v11.DryRunAnnotation{}) + m.DryRunAnnotations = append(m.DryRunAnnotations, &v12.DryRunAnnotation{}) if unmarshal, ok := interface{}(m.DryRunAnnotations[len(m.DryRunAnnotations)-1]).(interface { UnmarshalVTUnsafe([]byte) error }); ok { diff --git a/go/gen/sift/rules/v1/rules.pb.go b/go/gen/sift/rules/v1/rules.pb.go index 35ca9ea61d..4bf19b2265 100644 --- a/go/gen/sift/rules/v1/rules.pb.go +++ b/go/gen/sift/rules/v1/rules.pb.go @@ -4593,6 +4593,89 @@ func (x *AnnotationActionConfiguration) GetMetadata() []*v1.MetadataValue { return nil } +type FamilyStatReference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // How to refer to the family stat in the expression, e.g. $A + Reference string `protobuf:"bytes,1,opt,name=reference,proto3" json:"reference,omitempty"` + // Choose the family, e.g. Sift Rocket Engine + FamilyId string `protobuf:"bytes,2,opt,name=family_id,json=familyId,proto3" json:"family_id,omitempty"` + // Choose the stat, e.g. TC-TURB.avg + FamilyStatName string `protobuf:"bytes,3,opt,name=family_stat_name,json=familyStatName,proto3" json:"family_stat_name,omitempty"` + FamilyStatExpression string `protobuf:"bytes,4,opt,name=family_stat_expression,json=familyStatExpression,proto3" json:"family_stat_expression,omitempty"` + // Choose the range by name, which will be used to resolve the alignment and range, e.g. Startup +/- 5s + FamilyStatRangeName string `protobuf:"bytes,5,opt,name=family_stat_range_name,json=familyStatRangeName,proto3" json:"family_stat_range_name,omitempty"` +} + +func (x *FamilyStatReference) Reset() { + *x = FamilyStatReference{} + if protoimpl.UnsafeEnabled { + mi := &file_sift_rules_v1_rules_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FamilyStatReference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FamilyStatReference) ProtoMessage() {} + +func (x *FamilyStatReference) ProtoReflect() protoreflect.Message { + mi := &file_sift_rules_v1_rules_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FamilyStatReference.ProtoReflect.Descriptor instead. +func (*FamilyStatReference) Descriptor() ([]byte, []int) { + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{67} +} + +func (x *FamilyStatReference) GetReference() string { + if x != nil { + return x.Reference + } + return "" +} + +func (x *FamilyStatReference) GetFamilyId() string { + if x != nil { + return x.FamilyId + } + return "" +} + +func (x *FamilyStatReference) GetFamilyStatName() string { + if x != nil { + return x.FamilyStatName + } + return "" +} + +func (x *FamilyStatReference) GetFamilyStatExpression() string { + if x != nil { + return x.FamilyStatExpression + } + return "" +} + +func (x *FamilyStatReference) GetFamilyStatRangeName() string { + if x != nil { + return x.FamilyStatRangeName + } + return "" +} + // Deprecated - use RuleEvaluationService instead. // // Deprecated: Do not use. @@ -4614,7 +4697,7 @@ type EvaluateRulesRequest struct { func (x *EvaluateRulesRequest) Reset() { *x = EvaluateRulesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[67] + mi := &file_sift_rules_v1_rules_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4627,7 +4710,7 @@ func (x *EvaluateRulesRequest) String() string { func (*EvaluateRulesRequest) ProtoMessage() {} func (x *EvaluateRulesRequest) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[67] + mi := &file_sift_rules_v1_rules_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4640,7 +4723,7 @@ func (x *EvaluateRulesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EvaluateRulesRequest.ProtoReflect.Descriptor instead. func (*EvaluateRulesRequest) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{67} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{68} } func (x *EvaluateRulesRequest) GetRuleIds() []string { @@ -4712,7 +4795,7 @@ type EvaluatedAnnotationOptions struct { func (x *EvaluatedAnnotationOptions) Reset() { *x = EvaluatedAnnotationOptions{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[68] + mi := &file_sift_rules_v1_rules_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4725,7 +4808,7 @@ func (x *EvaluatedAnnotationOptions) String() string { func (*EvaluatedAnnotationOptions) ProtoMessage() {} func (x *EvaluatedAnnotationOptions) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[68] + mi := &file_sift_rules_v1_rules_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4738,7 +4821,7 @@ func (x *EvaluatedAnnotationOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use EvaluatedAnnotationOptions.ProtoReflect.Descriptor instead. func (*EvaluatedAnnotationOptions) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{68} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{69} } func (x *EvaluatedAnnotationOptions) GetTagIds() []string { @@ -4760,7 +4843,7 @@ type TimeRangeQuery struct { func (x *TimeRangeQuery) Reset() { *x = TimeRangeQuery{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[69] + mi := &file_sift_rules_v1_rules_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4773,7 +4856,7 @@ func (x *TimeRangeQuery) String() string { func (*TimeRangeQuery) ProtoMessage() {} func (x *TimeRangeQuery) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[69] + mi := &file_sift_rules_v1_rules_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4786,7 +4869,7 @@ func (x *TimeRangeQuery) ProtoReflect() protoreflect.Message { // Deprecated: Use TimeRangeQuery.ProtoReflect.Descriptor instead. func (*TimeRangeQuery) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{69} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{70} } func (x *TimeRangeQuery) GetStartTime() *timestamppb.Timestamp { @@ -4822,7 +4905,7 @@ type EvaluateRulesResponse struct { func (x *EvaluateRulesResponse) Reset() { *x = EvaluateRulesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[70] + mi := &file_sift_rules_v1_rules_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4835,7 +4918,7 @@ func (x *EvaluateRulesResponse) String() string { func (*EvaluateRulesResponse) ProtoMessage() {} func (x *EvaluateRulesResponse) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[70] + mi := &file_sift_rules_v1_rules_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4848,7 +4931,7 @@ func (x *EvaluateRulesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EvaluateRulesResponse.ProtoReflect.Descriptor instead. func (*EvaluateRulesResponse) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{70} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{71} } func (x *EvaluateRulesResponse) GetCreatedAnnotationCount() int32 { @@ -4894,7 +4977,7 @@ type DryRunAnnotation struct { func (x *DryRunAnnotation) Reset() { *x = DryRunAnnotation{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[71] + mi := &file_sift_rules_v1_rules_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4907,7 +4990,7 @@ func (x *DryRunAnnotation) String() string { func (*DryRunAnnotation) ProtoMessage() {} func (x *DryRunAnnotation) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[71] + mi := &file_sift_rules_v1_rules_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4920,7 +5003,7 @@ func (x *DryRunAnnotation) ProtoReflect() protoreflect.Message { // Deprecated: Use DryRunAnnotation.ProtoReflect.Descriptor instead. func (*DryRunAnnotation) Descriptor() ([]byte, []int) { - return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{71} + return file_sift_rules_v1_rules_proto_rawDescGZIP(), []int{72} } func (x *DryRunAnnotation) GetConditionId() string { @@ -4971,7 +5054,7 @@ type BatchUpdateRulesResponse_RuleIdentifiers struct { func (x *BatchUpdateRulesResponse_RuleIdentifiers) Reset() { *x = BatchUpdateRulesResponse_RuleIdentifiers{} if protoimpl.UnsafeEnabled { - mi := &file_sift_rules_v1_rules_proto_msgTypes[72] + mi := &file_sift_rules_v1_rules_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4984,7 +5067,7 @@ func (x *BatchUpdateRulesResponse_RuleIdentifiers) String() string { func (*BatchUpdateRulesResponse_RuleIdentifiers) ProtoMessage() {} func (x *BatchUpdateRulesResponse_RuleIdentifiers) ProtoReflect() protoreflect.Message { - mi := &file_sift_rules_v1_rules_proto_msgTypes[72] + mi := &file_sift_rules_v1_rules_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5789,417 +5872,433 @@ var file_sift_rules_v1_rules_proto_rawDesc = []byte{ 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x22, 0x8e, 0x02, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x58, 0x0a, 0x12, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x22, 0xfe, 0x01, 0x0a, 0x13, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x2d, 0x0a, + 0x10, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x16, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x14, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x16, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x8e, 0x02, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x58, 0x0a, 0x12, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x11, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x17, 0x0a, + 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, + 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x1a, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x11, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x0a, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, - 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, - 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, - 0x72, 0x79, 0x52, 0x75, 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x35, 0x0a, 0x1a, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x61, 0x67, 0x49, 0x64, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x54, 0x69, 0x6d, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x39, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfd, 0x01, - 0x0a, 0x15, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x4f, 0x0a, 0x13, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x11, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x3a, 0x02, 0x18, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x22, 0xf7, 0x01, - 0x0a, 0x10, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x2a, 0x5c, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, - 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x41, 0x52, - 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x12, 0x15, - 0x0a, 0x11, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x44, - 0x45, 0x53, 0x43, 0x10, 0x02, 0x2a, 0x5c, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, - 0x69, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x1a, 0x02, 0x08, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, - 0x4b, 0x10, 0x03, 0x2a, 0xad, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x20, 0x43, - 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x41, - 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, - 0x41, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, - 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, - 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x19, - 0x0a, 0x15, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, - 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x51, 0x55, - 0x41, 0x4c, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, - 0x4c, 0x10, 0x06, 0x32, 0x9f, 0x27, 0x0a, 0x0b, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x92, 0x41, 0x41, 0x12, - 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x32, 0x51, 0x75, - 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, - 0x94, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x73, 0x69, + 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x49, 0x64, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x54, 0x69, + 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x39, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfd, + 0x01, 0x0a, 0x15, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x13, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x11, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x22, 0xf7, + 0x01, 0x0a, 0x10, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x2a, 0x5c, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x18, 0x53, 0x45, 0x41, 0x52, 0x43, + 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x41, + 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x12, + 0x15, 0x0a, 0x11, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, + 0x44, 0x45, 0x53, 0x43, 0x10, 0x02, 0x2a, 0x5c, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x4e, 0x4e, 0x4f, 0x54, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x45, 0x42, 0x48, 0x4f, + 0x4f, 0x4b, 0x10, 0x03, 0x2a, 0xad, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x20, + 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, + 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, + 0x48, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, + 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x10, 0x0a, + 0x0c, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x03, 0x12, + 0x19, 0x0a, 0x15, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, + 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x51, + 0x55, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, + 0x41, 0x4c, 0x10, 0x06, 0x32, 0x9f, 0x27, 0x0a, 0x0b, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x92, 0x41, 0x41, + 0x12, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x32, 0x51, + 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x12, 0x94, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x92, 0x41, 0x32, 0x12, - 0x07, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x27, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, - 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xaa, 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x92, 0x41, 0x2a, 0x12, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, - 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, - 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x47, 0x65, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x92, 0x41, 0x1d, 0x12, 0x0a, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, - 0x01, 0x2a, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0x95, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x92, 0x41, 0x27, 0x12, 0x0a, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, - 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x1a, 0x0d, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x10, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x26, + 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x92, 0x41, 0x32, + 0x12, 0x07, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x27, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xaa, 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, + 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x75, 0x92, 0x41, 0x4e, 0x12, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x3a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, - 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x6f, - 0x72, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x65, 0x78, 0x69, 0x73, - 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x1a, 0x19, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xbb, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0x88, 0x02, 0x01, 0x92, - 0x41, 0x43, 0x12, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x35, + 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x92, 0x41, 0x2a, 0x12, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x47, 0x65, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x92, 0x41, 0x1d, 0x12, 0x0a, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, + 0x3a, 0x01, 0x2a, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x92, 0x41, 0x27, 0x12, 0x0a, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x1a, 0x0d, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x10, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x75, 0x92, 0x41, 0x4e, 0x12, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x3a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, + 0x6f, 0x72, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x65, 0x78, 0x69, + 0x73, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x1a, 0x19, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xbb, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0x88, 0x02, 0x01, + 0x92, 0x41, 0x43, 0x12, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, + 0x35, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x2e, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, + 0x65, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, + 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x0b, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x92, 0x41, + 0x1f, 0x12, 0x0b, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x10, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, - 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, - 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, - 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x0b, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x92, 0x41, 0x1f, - 0x12, 0x0b, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x10, 0x41, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, - 0xe7, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x57, 0x12, 0x10, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x1a, 0x43, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, - 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x73, - 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xba, 0x01, 0x0a, 0x11, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, - 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x2a, 0x12, 0x11, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x15, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x41, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0d, 0x55, 0x6e, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, - 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x48, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x12, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, - 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2f, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xc6, 0x01, - 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x92, 0x41, - 0x2e, 0x12, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x6e, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xb6, 0x01, 0x0a, 0x0c, 0x55, 0x6e, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x5d, 0x88, 0x02, 0x01, 0x92, 0x41, 0x36, 0x12, 0x0c, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x26, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, - 0xd9, 0x01, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x88, 0x02, 0x01, - 0x92, 0x41, 0x42, 0x12, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x2c, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x73, - 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xdf, 0x01, 0x0a, 0x0d, - 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, - 0x5b, 0x12, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x1a, 0x4a, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x12, 0x84, 0x02, - 0x0a, 0x16, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, - 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x5f, 0x12, 0x16, - 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, - 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, - 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, - 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x3a, 0x76, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x6c, 0x79, 0x12, 0xd6, 0x01, 0x0a, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, - 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, - 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x7a, 0x88, 0x02, 0x01, 0x92, 0x41, 0x56, 0x12, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x4a, - 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, - 0x76, 0x65, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x94, 0x02, - 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0x88, 0x02, - 0x01, 0x92, 0x41, 0x64, 0x12, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, - 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x48, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, 0x01, - 0x2a, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x6c, 0x79, 0x12, 0x80, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, 0x01, - 0x88, 0x02, 0x01, 0x92, 0x41, 0x6c, 0x12, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x57, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, - 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, - 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, - 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x12, 0xe7, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x57, 0x12, + 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x1a, 0x43, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x44, 0x65, 0x70, 0x72, + 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, + 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xba, 0x01, 0x0a, 0x11, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x2a, 0x12, 0x11, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x15, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0xe7, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x73, 0x69, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0d, 0x55, 0x6e, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x55, 0x6e, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x12, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xc6, + 0x01, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x92, + 0x41, 0x2e, 0x12, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, + 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xb6, 0x01, 0x0a, 0x0c, 0x55, 0x6e, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x5d, 0x88, 0x02, 0x01, 0x92, 0x41, 0x36, 0x12, 0x0c, 0x55, 0x6e, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x26, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x12, 0xd9, 0x01, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x88, 0x02, + 0x01, 0x92, 0x41, 0x42, 0x12, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x2c, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, + 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, + 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xdf, 0x01, 0x0a, + 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x88, 0x02, 0x01, 0x92, + 0x41, 0x5b, 0x12, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x1a, 0x4a, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x12, 0x84, + 0x02, 0x0a, 0x16, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, + 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, + 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x5f, 0x12, + 0x16, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x65, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x12, 0xd6, 0x01, 0x0a, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, + 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, + 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x7a, 0x88, 0x02, 0x01, 0x92, 0x41, 0x56, 0x12, 0x0d, 0x56, 0x69, 0x65, 0x77, + 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x94, + 0x02, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x84, 0x01, 0x88, 0x02, 0x01, - 0x92, 0x41, 0x5b, 0x12, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x48, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, - 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, - 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, - 0x6e, 0x12, 0x94, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, - 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x44, 0x92, 0x41, 0x27, 0x12, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x1a, 0x1a, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, - 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x12, 0xd9, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x74, - 0x92, 0x41, 0x49, 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x35, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, - 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2f, 0x7b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb8, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x92, 0x41, 0x39, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x27, 0x52, 0x65, 0x74, 0x72, 0x69, - 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0xdf, 0x01, 0x0a, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x6e, 0x92, 0x41, 0x42, 0x12, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x2a, 0x52, 0x65, - 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, - 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x1a, 0xb1, 0x01, 0x92, 0x41, 0xad, 0x01, 0x12, 0x30, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x1a, 0x79, 0x0a, 0x1f, 0x52, 0x65, - 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, 0x68, - 0x61, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, 0x68, - 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, - 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, - 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, - 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, - 0x32, 0x31, 0x31, 0x30, 0x32, 0x42, 0xc1, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, - 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, 0x66, - 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x2e, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x5c, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x53, 0x69, 0x66, 0x74, 0x5c, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x10, 0x12, 0x0e, 0x0a, 0x0c, 0x52, 0x75, 0x6c, - 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0x88, + 0x02, 0x01, 0x92, 0x41, 0x64, 0x12, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, + 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, + 0x48, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, + 0x01, 0x2a, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x12, 0x80, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, + 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, + 0x01, 0x88, 0x02, 0x01, 0x92, 0x41, 0x6c, 0x12, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x57, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, + 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, + 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, + 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0xe7, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x84, 0x01, 0x88, 0x02, + 0x01, 0x92, 0x41, 0x5b, 0x12, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x48, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, + 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, + 0x6f, 0x6e, 0x12, 0x94, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x44, 0x92, 0x41, 0x27, 0x12, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x1a, 0x1a, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, + 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x12, 0xd9, 0x01, 0x0a, 0x10, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x74, 0x92, 0x41, 0x49, 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x35, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb8, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x92, 0x41, 0x39, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x27, 0x52, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0xdf, 0x01, 0x0a, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, + 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x6e, 0x92, 0x41, 0x42, 0x12, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x2a, 0x52, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, + 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x1a, 0xb1, 0x01, 0x92, 0x41, 0xad, 0x01, 0x12, 0x30, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x1a, 0x79, 0x0a, 0x1f, 0x52, + 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, + 0x68, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, + 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, + 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, + 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, + 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, + 0x34, 0x32, 0x31, 0x31, 0x30, 0x32, 0x42, 0xc1, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x74, 0x61, 0x63, + 0x6b, 0x2f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x69, + 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, + 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, + 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x53, 0x69, 0x66, 0x74, + 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x10, 0x12, 0x0e, 0x0a, 0x0c, 0x52, 0x75, + 0x6c, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -6215,7 +6314,7 @@ func file_sift_rules_v1_rules_proto_rawDescGZIP() []byte { } var file_sift_rules_v1_rules_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_sift_rules_v1_rules_proto_msgTypes = make([]protoimpl.MessageInfo, 74) +var file_sift_rules_v1_rules_proto_msgTypes = make([]protoimpl.MessageInfo, 75) var file_sift_rules_v1_rules_proto_goTypes = []interface{}{ (SearchOrder)(0), // 0: sift.rules.v1.SearchOrder (ActionKind)(0), // 1: sift.rules.v1.ActionKind @@ -6287,41 +6386,42 @@ var file_sift_rules_v1_rules_proto_goTypes = []interface{}{ (*NotificationActionConfiguration)(nil), // 67: sift.rules.v1.NotificationActionConfiguration (*WebhookActionConfiguration)(nil), // 68: sift.rules.v1.WebhookActionConfiguration (*AnnotationActionConfiguration)(nil), // 69: sift.rules.v1.AnnotationActionConfiguration - (*EvaluateRulesRequest)(nil), // 70: sift.rules.v1.EvaluateRulesRequest - (*EvaluatedAnnotationOptions)(nil), // 71: sift.rules.v1.EvaluatedAnnotationOptions - (*TimeRangeQuery)(nil), // 72: sift.rules.v1.TimeRangeQuery - (*EvaluateRulesResponse)(nil), // 73: sift.rules.v1.EvaluateRulesResponse - (*DryRunAnnotation)(nil), // 74: sift.rules.v1.DryRunAnnotation - (*BatchUpdateRulesResponse_RuleIdentifiers)(nil), // 75: sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiers - nil, // 76: sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntry - (*timestamppb.Timestamp)(nil), // 77: google.protobuf.Timestamp - (*v1.MetadataValue)(nil), // 78: sift.metadata.v1.MetadataValue - (*v11.NamedResources)(nil), // 79: sift.common.type.v1.NamedResources - (*v11.FunctionDependency)(nil), // 80: sift.common.type.v1.FunctionDependency - (*v11.CalculatedChannelDependency)(nil), // 81: sift.common.type.v1.CalculatedChannelDependency - (v12.AnnotationType)(0), // 82: sift.annotations.v1.AnnotationType + (*FamilyStatReference)(nil), // 70: sift.rules.v1.FamilyStatReference + (*EvaluateRulesRequest)(nil), // 71: sift.rules.v1.EvaluateRulesRequest + (*EvaluatedAnnotationOptions)(nil), // 72: sift.rules.v1.EvaluatedAnnotationOptions + (*TimeRangeQuery)(nil), // 73: sift.rules.v1.TimeRangeQuery + (*EvaluateRulesResponse)(nil), // 74: sift.rules.v1.EvaluateRulesResponse + (*DryRunAnnotation)(nil), // 75: sift.rules.v1.DryRunAnnotation + (*BatchUpdateRulesResponse_RuleIdentifiers)(nil), // 76: sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiers + nil, // 77: sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntry + (*timestamppb.Timestamp)(nil), // 78: google.protobuf.Timestamp + (*v1.MetadataValue)(nil), // 79: sift.metadata.v1.MetadataValue + (*v11.NamedResources)(nil), // 80: sift.common.type.v1.NamedResources + (*v11.FunctionDependency)(nil), // 81: sift.common.type.v1.FunctionDependency + (*v11.CalculatedChannelDependency)(nil), // 82: sift.common.type.v1.CalculatedChannelDependency + (v12.AnnotationType)(0), // 83: sift.annotations.v1.AnnotationType } var file_sift_rules_v1_rules_proto_depIdxs = []int32{ - 77, // 0: sift.rules.v1.Rule.created_date:type_name -> google.protobuf.Timestamp - 77, // 1: sift.rules.v1.Rule.modified_date:type_name -> google.protobuf.Timestamp + 78, // 0: sift.rules.v1.Rule.created_date:type_name -> google.protobuf.Timestamp + 78, // 1: sift.rules.v1.Rule.modified_date:type_name -> google.protobuf.Timestamp 4, // 2: sift.rules.v1.Rule.conditions:type_name -> sift.rules.v1.RuleCondition 55, // 3: sift.rules.v1.Rule.rule_version:type_name -> sift.rules.v1.RuleVersion 6, // 4: sift.rules.v1.Rule.asset_configuration:type_name -> sift.rules.v1.RuleAssetConfiguration 7, // 5: sift.rules.v1.Rule.contextual_channels:type_name -> sift.rules.v1.ContextualChannels - 77, // 6: sift.rules.v1.Rule.deleted_date:type_name -> google.protobuf.Timestamp - 78, // 7: sift.rules.v1.Rule.metadata:type_name -> sift.metadata.v1.MetadataValue - 77, // 8: sift.rules.v1.Rule.archived_date:type_name -> google.protobuf.Timestamp + 78, // 6: sift.rules.v1.Rule.deleted_date:type_name -> google.protobuf.Timestamp + 79, // 7: sift.rules.v1.Rule.metadata:type_name -> sift.metadata.v1.MetadataValue + 78, // 8: sift.rules.v1.Rule.archived_date:type_name -> google.protobuf.Timestamp 61, // 9: sift.rules.v1.RuleCondition.expression:type_name -> sift.rules.v1.RuleConditionExpression - 77, // 10: sift.rules.v1.RuleCondition.created_date:type_name -> google.protobuf.Timestamp - 77, // 11: sift.rules.v1.RuleCondition.modified_date:type_name -> google.protobuf.Timestamp + 78, // 10: sift.rules.v1.RuleCondition.created_date:type_name -> google.protobuf.Timestamp + 78, // 11: sift.rules.v1.RuleCondition.modified_date:type_name -> google.protobuf.Timestamp 5, // 12: sift.rules.v1.RuleCondition.actions:type_name -> sift.rules.v1.RuleAction 1, // 13: sift.rules.v1.RuleAction.action_type:type_name -> sift.rules.v1.ActionKind 66, // 14: sift.rules.v1.RuleAction.configuration:type_name -> sift.rules.v1.RuleActionConfiguration - 77, // 15: sift.rules.v1.RuleAction.created_date:type_name -> google.protobuf.Timestamp - 77, // 16: sift.rules.v1.RuleAction.modified_date:type_name -> google.protobuf.Timestamp + 78, // 15: sift.rules.v1.RuleAction.created_date:type_name -> google.protobuf.Timestamp + 78, // 16: sift.rules.v1.RuleAction.modified_date:type_name -> google.protobuf.Timestamp 65, // 17: sift.rules.v1.ContextualChannels.channels:type_name -> sift.rules.v1.ChannelReference 0, // 18: sift.rules.v1.SearchRulesRequest.order:type_name -> sift.rules.v1.SearchOrder - 79, // 19: sift.rules.v1.SearchRulesRequest.asset_tags:type_name -> sift.common.type.v1.NamedResources + 80, // 19: sift.rules.v1.SearchRulesRequest.asset_tags:type_name -> sift.common.type.v1.NamedResources 3, // 20: sift.rules.v1.SearchRulesResponse.rules:type_name -> sift.rules.v1.Rule 3, // 21: sift.rules.v1.GetRuleResponse.rule:type_name -> sift.rules.v1.Rule 3, // 22: sift.rules.v1.BatchGetRulesResponse.rules:type_name -> sift.rules.v1.Rule @@ -6329,7 +6429,7 @@ var file_sift_rules_v1_rules_proto_depIdxs = []int32{ 18, // 24: sift.rules.v1.UpdateRuleRequest.conditions:type_name -> sift.rules.v1.UpdateConditionRequest 6, // 25: sift.rules.v1.UpdateRuleRequest.asset_configuration:type_name -> sift.rules.v1.RuleAssetConfiguration 7, // 26: sift.rules.v1.UpdateRuleRequest.contextual_channels:type_name -> sift.rules.v1.ContextualChannels - 78, // 27: sift.rules.v1.UpdateRuleRequest.metadata:type_name -> sift.metadata.v1.MetadataValue + 79, // 27: sift.rules.v1.UpdateRuleRequest.metadata:type_name -> sift.metadata.v1.MetadataValue 61, // 28: sift.rules.v1.UpdateConditionRequest.expression:type_name -> sift.rules.v1.RuleConditionExpression 19, // 29: sift.rules.v1.UpdateConditionRequest.actions:type_name -> sift.rules.v1.UpdateActionRequest 1, // 30: sift.rules.v1.UpdateActionRequest.action_type:type_name -> sift.rules.v1.ActionKind @@ -6337,15 +6437,15 @@ var file_sift_rules_v1_rules_proto_depIdxs = []int32{ 8, // 32: sift.rules.v1.ValidationResult.asset_expression_validation_results:type_name -> sift.rules.v1.AssetExpressionValidationResult 17, // 33: sift.rules.v1.BatchUpdateRulesRequest.rules:type_name -> sift.rules.v1.UpdateRuleRequest 21, // 34: sift.rules.v1.BatchUpdateRulesResponse.validation_results:type_name -> sift.rules.v1.ValidationResult - 75, // 35: sift.rules.v1.BatchUpdateRulesResponse.created_rule_identifiers:type_name -> sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiers + 76, // 35: sift.rules.v1.BatchUpdateRulesResponse.created_rule_identifiers:type_name -> sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiers 46, // 36: sift.rules.v1.ValidateJsonRulesRequest.request:type_name -> sift.rules.v1.JsonRulesRequest 47, // 37: sift.rules.v1.ValidateJsonRulesResponse.response:type_name -> sift.rules.v1.JsonRulesResponse 46, // 38: sift.rules.v1.UpdateJsonRulesRequest.request:type_name -> sift.rules.v1.JsonRulesRequest 47, // 39: sift.rules.v1.UpdateJsonRulesResponse.response:type_name -> sift.rules.v1.JsonRulesResponse 3, // 40: sift.rules.v1.ListRulesResponse.rules:type_name -> sift.rules.v1.Rule - 77, // 41: sift.rules.v1.RuleVersion.created_date:type_name -> google.protobuf.Timestamp - 77, // 42: sift.rules.v1.RuleVersion.deleted_date:type_name -> google.protobuf.Timestamp - 77, // 43: sift.rules.v1.RuleVersion.archived_date:type_name -> google.protobuf.Timestamp + 78, // 41: sift.rules.v1.RuleVersion.created_date:type_name -> google.protobuf.Timestamp + 78, // 42: sift.rules.v1.RuleVersion.deleted_date:type_name -> google.protobuf.Timestamp + 78, // 43: sift.rules.v1.RuleVersion.archived_date:type_name -> google.protobuf.Timestamp 55, // 44: sift.rules.v1.ListRuleVersionsResponse.rule_versions:type_name -> sift.rules.v1.RuleVersion 3, // 45: sift.rules.v1.GetRuleVersionResponse.rule:type_name -> sift.rules.v1.Rule 3, // 46: sift.rules.v1.BatchGetRuleVersionsResponse.rules:type_name -> sift.rules.v1.Rule @@ -6353,21 +6453,21 @@ var file_sift_rules_v1_rules_proto_depIdxs = []int32{ 64, // 48: sift.rules.v1.RuleConditionExpression.calculated_channel:type_name -> sift.rules.v1.CalculatedChannelConfig 2, // 49: sift.rules.v1.SingleChannelComparisonExpression.comparator:type_name -> sift.rules.v1.ConditionComparator 63, // 50: sift.rules.v1.SingleChannelComparisonExpression.last_value:type_name -> sift.rules.v1.LastValueThreshold - 76, // 51: sift.rules.v1.CalculatedChannelConfig.channel_references:type_name -> sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntry - 80, // 52: sift.rules.v1.CalculatedChannelConfig.function_dependencies:type_name -> sift.common.type.v1.FunctionDependency - 81, // 53: sift.rules.v1.CalculatedChannelConfig.calculated_channel_dependencies:type_name -> sift.common.type.v1.CalculatedChannelDependency + 77, // 51: sift.rules.v1.CalculatedChannelConfig.channel_references:type_name -> sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntry + 81, // 52: sift.rules.v1.CalculatedChannelConfig.function_dependencies:type_name -> sift.common.type.v1.FunctionDependency + 82, // 53: sift.rules.v1.CalculatedChannelConfig.calculated_channel_dependencies:type_name -> sift.common.type.v1.CalculatedChannelDependency 67, // 54: sift.rules.v1.RuleActionConfiguration.notification:type_name -> sift.rules.v1.NotificationActionConfiguration 69, // 55: sift.rules.v1.RuleActionConfiguration.annotation:type_name -> sift.rules.v1.AnnotationActionConfiguration 68, // 56: sift.rules.v1.RuleActionConfiguration.webhook:type_name -> sift.rules.v1.WebhookActionConfiguration - 82, // 57: sift.rules.v1.AnnotationActionConfiguration.annotation_type:type_name -> sift.annotations.v1.AnnotationType - 78, // 58: sift.rules.v1.AnnotationActionConfiguration.metadata:type_name -> sift.metadata.v1.MetadataValue - 71, // 59: sift.rules.v1.EvaluateRulesRequest.annotation_options:type_name -> sift.rules.v1.EvaluatedAnnotationOptions - 72, // 60: sift.rules.v1.EvaluateRulesRequest.time_range:type_name -> sift.rules.v1.TimeRangeQuery - 77, // 61: sift.rules.v1.TimeRangeQuery.start_time:type_name -> google.protobuf.Timestamp - 77, // 62: sift.rules.v1.TimeRangeQuery.end_time:type_name -> google.protobuf.Timestamp - 74, // 63: sift.rules.v1.EvaluateRulesResponse.dry_run_annotations:type_name -> sift.rules.v1.DryRunAnnotation - 77, // 64: sift.rules.v1.DryRunAnnotation.start_time:type_name -> google.protobuf.Timestamp - 77, // 65: sift.rules.v1.DryRunAnnotation.end_time:type_name -> google.protobuf.Timestamp + 83, // 57: sift.rules.v1.AnnotationActionConfiguration.annotation_type:type_name -> sift.annotations.v1.AnnotationType + 79, // 58: sift.rules.v1.AnnotationActionConfiguration.metadata:type_name -> sift.metadata.v1.MetadataValue + 72, // 59: sift.rules.v1.EvaluateRulesRequest.annotation_options:type_name -> sift.rules.v1.EvaluatedAnnotationOptions + 73, // 60: sift.rules.v1.EvaluateRulesRequest.time_range:type_name -> sift.rules.v1.TimeRangeQuery + 78, // 61: sift.rules.v1.TimeRangeQuery.start_time:type_name -> google.protobuf.Timestamp + 78, // 62: sift.rules.v1.TimeRangeQuery.end_time:type_name -> google.protobuf.Timestamp + 75, // 63: sift.rules.v1.EvaluateRulesResponse.dry_run_annotations:type_name -> sift.rules.v1.DryRunAnnotation + 78, // 64: sift.rules.v1.DryRunAnnotation.start_time:type_name -> google.protobuf.Timestamp + 78, // 65: sift.rules.v1.DryRunAnnotation.end_time:type_name -> google.protobuf.Timestamp 65, // 66: sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntry.value:type_name -> sift.rules.v1.ChannelReference 9, // 67: sift.rules.v1.RuleService.SearchRules:input_type -> sift.rules.v1.SearchRulesRequest 11, // 68: sift.rules.v1.RuleService.GetRule:input_type -> sift.rules.v1.GetRuleRequest @@ -6383,7 +6483,7 @@ var file_sift_rules_v1_rules_proto_depIdxs = []int32{ 38, // 78: sift.rules.v1.RuleService.BatchUnarchiveRules:input_type -> sift.rules.v1.BatchUnarchiveRulesRequest 32, // 79: sift.rules.v1.RuleService.UndeleteRule:input_type -> sift.rules.v1.UndeleteRuleRequest 34, // 80: sift.rules.v1.RuleService.BatchUndeleteRules:input_type -> sift.rules.v1.BatchUndeleteRulesRequest - 70, // 81: sift.rules.v1.RuleService.EvaluateRules:input_type -> sift.rules.v1.EvaluateRulesRequest + 71, // 81: sift.rules.v1.RuleService.EvaluateRules:input_type -> sift.rules.v1.EvaluateRulesRequest 40, // 82: sift.rules.v1.RuleService.ViewHumanFriendlyRules:input_type -> sift.rules.v1.ViewHumanFriendlyRulesRequest 44, // 83: sift.rules.v1.RuleService.ViewJsonRules:input_type -> sift.rules.v1.ViewJsonRulesRequest 42, // 84: sift.rules.v1.RuleService.UpdateHumanFriendlyRules:input_type -> sift.rules.v1.UpdateHumanFriendlyRulesRequest @@ -6407,7 +6507,7 @@ var file_sift_rules_v1_rules_proto_depIdxs = []int32{ 39, // 102: sift.rules.v1.RuleService.BatchUnarchiveRules:output_type -> sift.rules.v1.BatchUnarchiveRulesResponse 33, // 103: sift.rules.v1.RuleService.UndeleteRule:output_type -> sift.rules.v1.UndeleteRuleResponse 35, // 104: sift.rules.v1.RuleService.BatchUndeleteRules:output_type -> sift.rules.v1.BatchUndeleteRulesResponse - 73, // 105: sift.rules.v1.RuleService.EvaluateRules:output_type -> sift.rules.v1.EvaluateRulesResponse + 74, // 105: sift.rules.v1.RuleService.EvaluateRules:output_type -> sift.rules.v1.EvaluateRulesResponse 41, // 106: sift.rules.v1.RuleService.ViewHumanFriendlyRules:output_type -> sift.rules.v1.ViewHumanFriendlyRulesResponse 45, // 107: sift.rules.v1.RuleService.ViewJsonRules:output_type -> sift.rules.v1.ViewJsonRulesResponse 43, // 108: sift.rules.v1.RuleService.UpdateHumanFriendlyRules:output_type -> sift.rules.v1.UpdateHumanFriendlyRulesResponse @@ -7235,7 +7335,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EvaluateRulesRequest); i { + switch v := v.(*FamilyStatReference); i { case 0: return &v.state case 1: @@ -7247,7 +7347,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EvaluatedAnnotationOptions); i { + switch v := v.(*EvaluateRulesRequest); i { case 0: return &v.state case 1: @@ -7259,7 +7359,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TimeRangeQuery); i { + switch v := v.(*EvaluatedAnnotationOptions); i { case 0: return &v.state case 1: @@ -7271,7 +7371,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EvaluateRulesResponse); i { + switch v := v.(*TimeRangeQuery); i { case 0: return &v.state case 1: @@ -7283,7 +7383,7 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DryRunAnnotation); i { + switch v := v.(*EvaluateRulesResponse); i { case 0: return &v.state case 1: @@ -7295,6 +7395,18 @@ func file_sift_rules_v1_rules_proto_init() { } } file_sift_rules_v1_rules_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunAnnotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sift_rules_v1_rules_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BatchUpdateRulesResponse_RuleIdentifiers); i { case 0: return &v.state @@ -7330,19 +7442,19 @@ func file_sift_rules_v1_rules_proto_init() { (*RuleActionConfiguration_Webhook)(nil), } file_sift_rules_v1_rules_proto_msgTypes[66].OneofWrappers = []interface{}{} - file_sift_rules_v1_rules_proto_msgTypes[67].OneofWrappers = []interface{}{ + file_sift_rules_v1_rules_proto_msgTypes[68].OneofWrappers = []interface{}{ (*EvaluateRulesRequest_RunId)(nil), (*EvaluateRulesRequest_TimeRange)(nil), } - file_sift_rules_v1_rules_proto_msgTypes[70].OneofWrappers = []interface{}{} - file_sift_rules_v1_rules_proto_msgTypes[72].OneofWrappers = []interface{}{} + file_sift_rules_v1_rules_proto_msgTypes[71].OneofWrappers = []interface{}{} + file_sift_rules_v1_rules_proto_msgTypes[73].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sift_rules_v1_rules_proto_rawDesc, NumEnums: 3, - NumMessages: 74, + NumMessages: 75, NumExtensions: 0, NumServices: 1, }, diff --git a/go/gen/sift/rules/v1/rules_vtproto.pb.go b/go/gen/sift/rules/v1/rules_vtproto.pb.go index 5706af63b9..e03a0f4a7f 100644 --- a/go/gen/sift/rules/v1/rules_vtproto.pb.go +++ b/go/gen/sift/rules/v1/rules_vtproto.pb.go @@ -1659,6 +1659,27 @@ func (m *AnnotationActionConfiguration) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *FamilyStatReference) CloneVT() *FamilyStatReference { + if m == nil { + return (*FamilyStatReference)(nil) + } + r := new(FamilyStatReference) + r.Reference = m.Reference + r.FamilyId = m.FamilyId + r.FamilyStatName = m.FamilyStatName + r.FamilyStatExpression = m.FamilyStatExpression + r.FamilyStatRangeName = m.FamilyStatRangeName + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *FamilyStatReference) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (m *EvaluateRulesRequest) CloneVT() *EvaluateRulesRequest { if m == nil { return (*EvaluateRulesRequest)(nil) @@ -4093,6 +4114,37 @@ func (this *AnnotationActionConfiguration) EqualMessageVT(thatMsg proto.Message) } return this.EqualVT(that) } +func (this *FamilyStatReference) EqualVT(that *FamilyStatReference) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Reference != that.Reference { + return false + } + if this.FamilyId != that.FamilyId { + return false + } + if this.FamilyStatName != that.FamilyStatName { + return false + } + if this.FamilyStatExpression != that.FamilyStatExpression { + return false + } + if this.FamilyStatRangeName != that.FamilyStatRangeName { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *FamilyStatReference) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*FamilyStatReference) + if !ok { + return false + } + return this.EqualVT(that) +} func (this *EvaluateRulesRequest) EqualVT(that *EvaluateRulesRequest) bool { if this == that { return true @@ -9377,6 +9429,74 @@ func (m *AnnotationActionConfiguration) MarshalToSizedBufferVT(dAtA []byte) (int return len(dAtA) - i, nil } +func (m *FamilyStatReference) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStatReference) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *FamilyStatReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatRangeName) > 0 { + i -= len(m.FamilyStatRangeName) + copy(dAtA[i:], m.FamilyStatRangeName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatRangeName))) + i-- + dAtA[i] = 0x2a + } + if len(m.FamilyStatExpression) > 0 { + i -= len(m.FamilyStatExpression) + copy(dAtA[i:], m.FamilyStatExpression) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatExpression))) + i-- + dAtA[i] = 0x22 + } + if len(m.FamilyStatName) > 0 { + i -= len(m.FamilyStatName) + copy(dAtA[i:], m.FamilyStatName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatName))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0x12 + } + if len(m.Reference) > 0 { + i -= len(m.Reference) + copy(dAtA[i:], m.Reference) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Reference))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *EvaluateRulesRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -13818,6 +13938,74 @@ func (m *AnnotationActionConfiguration) MarshalToSizedBufferVTStrict(dAtA []byte return len(dAtA) - i, nil } +func (m *FamilyStatReference) MarshalVTStrict() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVTStrict(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FamilyStatReference) MarshalToVTStrict(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVTStrict(dAtA[:size]) +} + +func (m *FamilyStatReference) MarshalToSizedBufferVTStrict(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.FamilyStatRangeName) > 0 { + i -= len(m.FamilyStatRangeName) + copy(dAtA[i:], m.FamilyStatRangeName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatRangeName))) + i-- + dAtA[i] = 0x2a + } + if len(m.FamilyStatExpression) > 0 { + i -= len(m.FamilyStatExpression) + copy(dAtA[i:], m.FamilyStatExpression) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatExpression))) + i-- + dAtA[i] = 0x22 + } + if len(m.FamilyStatName) > 0 { + i -= len(m.FamilyStatName) + copy(dAtA[i:], m.FamilyStatName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyStatName))) + i-- + dAtA[i] = 0x1a + } + if len(m.FamilyId) > 0 { + i -= len(m.FamilyId) + copy(dAtA[i:], m.FamilyId) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.FamilyId))) + i-- + dAtA[i] = 0x12 + } + if len(m.Reference) > 0 { + i -= len(m.Reference) + copy(dAtA[i:], m.Reference) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Reference))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *EvaluateRulesRequest) MarshalVTStrict() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -15780,6 +15968,36 @@ func (m *AnnotationActionConfiguration) SizeVT() (n int) { return n } +func (m *FamilyStatReference) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Reference) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyId) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyStatName) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyStatExpression) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.FamilyStatRangeName) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + func (m *EvaluateRulesRequest) SizeVT() (n int) { if m == nil { return 0 @@ -25529,50 +25747,261 @@ func (m *AnnotationActionConfiguration) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.AssignedToUserId = &s - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protohelpers.ErrIntOverflow - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protohelpers.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protohelpers.ErrInvalidLength - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Metadata = append(m.Metadata, &v1.MetadataValue{}) - if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { - UnmarshalVT([]byte) error - }); ok { - if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { - return err - } - } else { - if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { - return err - } - } + s := string(dAtA[iNdEx:postIndex]) + m.AssignedToUserId = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metadata = append(m.Metadata, &v1.MetadataValue{}) + if unmarshal, ok := interface{}(m.Metadata[len(m.Metadata)-1]).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Metadata[len(m.Metadata)-1]); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FamilyStatReference) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStatReference: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStatReference: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reference", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reference = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatExpression", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatExpression = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatRangeName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FamilyStatRangeName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -36512,6 +36941,237 @@ func (m *AnnotationActionConfiguration) UnmarshalVTUnsafe(dAtA []byte) error { } return nil } +func (m *FamilyStatReference) UnmarshalVTUnsafe(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FamilyStatReference: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FamilyStatReference: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reference", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.Reference = stringValue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyId = stringValue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatName = stringValue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatExpression", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatExpression = stringValue + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FamilyStatRangeName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.FamilyStatRangeName = stringValue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *EvaluateRulesRequest) UnmarshalVTUnsafe(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/go/gen/sift/saved_searches/v1/saved_searches.pb.go b/go/gen/sift/saved_searches/v1/saved_searches.pb.go index ae3708bda3..2c1d5d449e 100644 --- a/go/gen/sift/saved_searches/v1/saved_searches.pb.go +++ b/go/gen/sift/saved_searches/v1/saved_searches.pb.go @@ -562,6 +562,12 @@ type ListSavedSearchesRequest struct { Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` // This field is only required if your user belongs to multiple organizations. OrganizationId string `protobuf:"bytes,4,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + // How to order the retrieved saved searches. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are `name`, `created_date`, and `modified_date`. + // If left empty, items are ordered by `created_date` in ascending order (oldest-first). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc,modified_date" + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` } func (x *ListSavedSearchesRequest) Reset() { @@ -624,6 +630,13 @@ func (x *ListSavedSearchesRequest) GetOrganizationId() string { return "" } +func (x *ListSavedSearchesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + // The response of a call to `SavedSearchService_ListSavedSearchesResponse`. type ListSavedSearchesResponse struct { state protoimpl.MessageState @@ -1221,7 +1234,7 @@ var file_sift_saved_searches_v1_saved_searches_proto_rawDesc = []byte{ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0xab, 0x01, 0x0a, + 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0xcb, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, @@ -1232,7 +1245,9 @@ var file_sift_saved_searches_v1_saved_searches_proto_rawDesc = []byte{ 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x19, 0x4c, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x8f, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, diff --git a/go/gen/sift/saved_searches/v1/saved_searches_vtproto.pb.go b/go/gen/sift/saved_searches/v1/saved_searches_vtproto.pb.go index e919514206..b5bf912fe0 100644 --- a/go/gen/sift/saved_searches/v1/saved_searches_vtproto.pb.go +++ b/go/gen/sift/saved_searches/v1/saved_searches_vtproto.pb.go @@ -252,6 +252,7 @@ func (m *ListSavedSearchesRequest) CloneVT() *ListSavedSearchesRequest { r.PageToken = m.PageToken r.Filter = m.Filter r.OrganizationId = m.OrganizationId + r.OrderBy = m.OrderBy if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -787,6 +788,9 @@ func (this *ListSavedSearchesRequest) EqualVT(that *ListSavedSearchesRequest) bo if this.OrganizationId != that.OrganizationId { return false } + if this.OrderBy != that.OrderBy { + return false + } return string(this.unknownFields) == string(that.unknownFields) } @@ -1814,6 +1818,13 @@ func (m *ListSavedSearchesRequest) MarshalToSizedBufferVT(dAtA []byte) (int, err i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x2a + } if len(m.OrganizationId) > 0 { i -= len(m.OrganizationId) copy(dAtA[i:], m.OrganizationId) @@ -2787,6 +2798,13 @@ func (m *ListSavedSearchesRequest) MarshalToSizedBufferVTStrict(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.OrderBy) > 0 { + i -= len(m.OrderBy) + copy(dAtA[i:], m.OrderBy) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OrderBy))) + i-- + dAtA[i] = 0x2a + } if len(m.OrganizationId) > 0 { i -= len(m.OrganizationId) copy(dAtA[i:], m.OrganizationId) @@ -3448,6 +3466,10 @@ func (m *ListSavedSearchesRequest) SizeVT() (n int) { if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + l = len(m.OrderBy) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } n += len(m.unknownFields) return n } @@ -5019,6 +5041,38 @@ func (m *ListSavedSearchesRequest) UnmarshalVT(dAtA []byte) error { } m.OrganizationId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderBy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -7371,6 +7425,42 @@ func (m *ListSavedSearchesRequest) UnmarshalVTUnsafe(dAtA []byte) error { } m.OrganizationId = stringValue iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderBy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var stringValue string + if intStringLen > 0 { + stringValue = unsafe.String(&dAtA[iNdEx], intStringLen) + } + m.OrderBy = stringValue + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/protos/sift/annotation_logs/v1/annotation_logs.proto b/protos/sift/annotation_logs/v1/annotation_logs.proto index e893eedcce..f31c781b55 100644 --- a/protos/sift/annotation_logs/v1/annotation_logs.proto +++ b/protos/sift/annotation_logs/v1/annotation_logs.proto @@ -7,7 +7,6 @@ import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - service AnnotationLogService { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = { description: "Service to programmatically interact with [annotation logs](/glossary#annotation)." diff --git a/protos/sift/annotations/v1/annotations.proto b/protos/sift/annotations/v1/annotations.proto index 9031919408..2e7212f335 100644 --- a/protos/sift/annotations/v1/annotations.proto +++ b/protos/sift/annotations/v1/annotations.proto @@ -289,7 +289,6 @@ message GetAnnotationResponse { // The request for a call to `AnnotationService_ListAnnotations` to retrieve annotations. message ListAnnotationsRequest { - // The maximum number of annotations to return. The service may return fewer than this value. // If unspecified, at most 50 annotations will be returned. The maximum value is 1000; values above // 1000 will be coerced to 1000. Optional. diff --git a/protos/sift/api_keys/v2/api_keys.proto b/protos/sift/api_keys/v2/api_keys.proto index 915dc2fb24..4b5fa7b178 100644 --- a/protos/sift/api_keys/v2/api_keys.proto +++ b/protos/sift/api_keys/v2/api_keys.proto @@ -118,16 +118,12 @@ message CreateApiKeyRequest { // longer supported and the service will return INVALID_ARGUMENT if the // values differ. The field is retained for backwards compatibility with // existing clients and may be marked deprecated in a future revision. - string user_id = 2 [ - (google.api.field_behavior) = REQUIRED - ]; + string user_id = 2 [(google.api.field_behavior) = REQUIRED]; } // The request for a call to ApiKeyService.DeleteApiKey. message DeleteApiKeyRequest { - string api_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string api_key_id = 1 [(google.api.field_behavior) = REQUIRED]; } message DeleteApiKeyResponse {} diff --git a/protos/sift/calculated_channels/v2/calculated_channels.proto b/protos/sift/calculated_channels/v2/calculated_channels.proto index a97c10038e..ebbdbf905f 100644 --- a/protos/sift/calculated_channels/v2/calculated_channels.proto +++ b/protos/sift/calculated_channels/v2/calculated_channels.proto @@ -14,7 +14,6 @@ import "sift/common/type/v1/user_defined_functions.proto"; import "sift/metadata/v1/metadata.proto"; import "sift/rules/v1/rules.proto"; - service CalculatedChannelService { // Retrieve the latest version of a calculated channel rpc GetCalculatedChannel(GetCalculatedChannelRequest) returns (GetCalculatedChannelResponse) { diff --git a/protos/sift/common/type/v1/calculated_channels.proto b/protos/sift/common/type/v1/calculated_channels.proto index 890d8b80c5..e0922fc814 100644 --- a/protos/sift/common/type/v1/calculated_channels.proto +++ b/protos/sift/common/type/v1/calculated_channels.proto @@ -4,10 +4,7 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; - // A dependency on another calculated channel. message CalculatedChannelDependency { - string calculated_channel_version_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string calculated_channel_version_id = 1 [(google.api.field_behavior) = REQUIRED]; } diff --git a/protos/sift/common/type/v1/channel_bit_field_element.proto b/protos/sift/common/type/v1/channel_bit_field_element.proto index 67ad1fdb4f..3025d08ea5 100644 --- a/protos/sift/common/type/v1/channel_bit_field_element.proto +++ b/protos/sift/common/type/v1/channel_bit_field_element.proto @@ -4,7 +4,6 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; - message ChannelBitFieldElement { string name = 1 [(google.api.field_behavior) = REQUIRED]; // The index of this element's first bit in the logical bit field array. diff --git a/protos/sift/common/type/v1/channel_config.proto b/protos/sift/common/type/v1/channel_config.proto index 5ccdf32248..88115457be 100644 --- a/protos/sift/common/type/v1/channel_config.proto +++ b/protos/sift/common/type/v1/channel_config.proto @@ -7,7 +7,6 @@ import "sift/common/type/v1/channel_data_type.proto"; import "sift/common/type/v1/channel_enum_type.proto"; import "sift/metadata/v1/metadata.proto"; - message ChannelConfig { string name = 1; string units = 2; diff --git a/protos/sift/common/type/v1/channel_data_type.proto b/protos/sift/common/type/v1/channel_data_type.proto index 999813e3dc..7f72880ae8 100644 --- a/protos/sift/common/type/v1/channel_data_type.proto +++ b/protos/sift/common/type/v1/channel_data_type.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package sift.common.type.v1; - enum ChannelDataType { CHANNEL_DATA_TYPE_UNSPECIFIED = 0 [deprecated = true]; CHANNEL_DATA_TYPE_DOUBLE = 1; diff --git a/protos/sift/common/type/v1/channel_enum_type.proto b/protos/sift/common/type/v1/channel_enum_type.proto index 51be839d85..c4a148801a 100644 --- a/protos/sift/common/type/v1/channel_enum_type.proto +++ b/protos/sift/common/type/v1/channel_enum_type.proto @@ -4,7 +4,6 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; - message ChannelEnumType { string name = 1 [(google.api.field_behavior) = REQUIRED]; uint32 key = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/common/type/v1/organization.proto b/protos/sift/common/type/v1/organization.proto index d2d64614c8..a9dcdf0679 100644 --- a/protos/sift/common/type/v1/organization.proto +++ b/protos/sift/common/type/v1/organization.proto @@ -4,7 +4,6 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; - message Organization { string organization_id = 1 [(google.api.field_behavior) = REQUIRED]; string organization_name = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/common/type/v1/resource_identifier.proto b/protos/sift/common/type/v1/resource_identifier.proto index d0b1fb2d33..b582e6d017 100644 --- a/protos/sift/common/type/v1/resource_identifier.proto +++ b/protos/sift/common/type/v1/resource_identifier.proto @@ -4,7 +4,6 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; - message ResourceIdentifier { oneof identifier { string id = 1; diff --git a/protos/sift/common/type/v1/resource_ref.proto b/protos/sift/common/type/v1/resource_ref.proto index 42c1b725c5..f39312b5e8 100644 --- a/protos/sift/common/type/v1/resource_ref.proto +++ b/protos/sift/common/type/v1/resource_ref.proto @@ -4,7 +4,6 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; - // ResourceRef is meant to be embedded as a field in other resources. It's used by one resource to point to another resource. // In a request, use the `find_by` field to select a resource to point to. // In a response, the fields marked `google.api.field_behavior = OUTPUT_ONLY` will be populated by the backend. diff --git a/protos/sift/common/type/v1/user.proto b/protos/sift/common/type/v1/user.proto index 1d50f60418..3bbee20cd5 100644 --- a/protos/sift/common/type/v1/user.proto +++ b/protos/sift/common/type/v1/user.proto @@ -5,7 +5,6 @@ package sift.common.type.v1; import "google/api/field_behavior.proto"; import "sift/common/type/v1/organization.proto"; - message User { string user_id = 1 [(google.api.field_behavior) = REQUIRED]; string user_name = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/common/type/v1/user_defined_functions.proto b/protos/sift/common/type/v1/user_defined_functions.proto index d4d795c6c1..1cd5d3322b 100644 --- a/protos/sift/common/type/v1/user_defined_functions.proto +++ b/protos/sift/common/type/v1/user_defined_functions.proto @@ -6,7 +6,6 @@ import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "sift/metadata/v1/metadata.proto"; - enum FunctionDataType { FUNCTION_DATA_TYPE_UNSPECIFIED = 0; FUNCTION_DATA_TYPE_NUMERIC = 1; @@ -38,9 +37,7 @@ message UserDefinedFunction { } message FunctionDependency { - string user_defined_function_version_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string user_defined_function_version_id = 1 [(google.api.field_behavior) = REQUIRED]; } message FunctionInput { diff --git a/protos/sift/common/v1/action_type.proto b/protos/sift/common/v1/action_type.proto index 033d4451eb..ba2720c81f 100644 --- a/protos/sift/common/v1/action_type.proto +++ b/protos/sift/common/v1/action_type.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package sift.common.v1; - // ActionType represents the type of action being performed on a resource // Granular ABAC actions, broken up by CRUD. enum ActionType { diff --git a/protos/sift/common/v1/filter_field.proto b/protos/sift/common/v1/filter_field.proto index fa39d7e412..15cb9195bf 100644 --- a/protos/sift/common/v1/filter_field.proto +++ b/protos/sift/common/v1/filter_field.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package sift.common.v1; - // Describes the type of a filter field. enum FilterFieldType { FILTER_FIELD_TYPE_UNSPECIFIED = 0; @@ -16,6 +15,28 @@ enum FilterFieldType { FILTER_FIELD_TYPE_UUID = 8; } +// Describes the structural shape of a filter field: how a client builds a +// predicate for it. This is orthogonal to FilterFieldType (the value's data +// type) and to the entity/name/key identity (which field it is). +enum FilterFieldKind { + // Unset. Treated as FILTER_FIELD_KIND_SCALAR for backward compatibility. + FILTER_FIELD_KIND_UNSPECIFIED = 0; + // A typed column: one operator plus one value editor. `type` is the value + // type and the grammar resolves operators/functions from it. + FILTER_FIELD_KIND_SCALAR = 1; + // A dynamic key/value family (e.g. metadata). `name` is the map namespace and + // `key` the chosen index. `type` is UNSPECIFIED because the value type is the + // chosen key's type, resolved per key via the grammar. + FILTER_FIELD_KIND_MAP = 2; + // A has-many collection filtered by a CEL comprehension + // (e.g. measurements.exists(m, m.name == "humidity" && m.numeric_value > 50)). + // See the recursive `fields` and `quantifiers` below. + FILTER_FIELD_KIND_RELATION = 3; + // A pseudo-field (e.g. include_archived) that resolves to query shape rather + // than a column. + FILTER_FIELD_KIND_DIRECTIVE = 4; +} + // Describes a single field available for CEL filtering on a resource. message FilterField { // The field name to use in CEL filter expressions (e.g., "run_id", "created_date"). @@ -43,4 +64,31 @@ message FilterField { // always holds a concrete value.) Optional so that an unset value means // "unknown" rather than implicitly "not nullable". optional bool nullable = 8; + // The owning scope of the field (e.g. "report", "test_step"). Together with + // `name` and `key` this is the structured identity of the field; `field_name` + // is its deterministic CEL serialization, so the client never assembles or + // parses it. Optional; empty when the field carries no structured identity. + string entity = 9; + // The fixed field on the entity: a column, a map namespace (e.g. "metadata"), + // or a relation (e.g. "measurements"). Optional. + // + // When the field corresponds to a field on the resource's own message, `name` + // matches that field's name (e.g. `run_id` or `is_archived` on a run), so it + // maps directly to the resource schema you already know. Fields that are + // derived or computed and have no direct counterpart on the message + // (e.g. `duration_string`) carry a descriptive name instead. + string name = 10; + // The dynamic map index when `name` is a map (e.g. the metadata key). Empty + // when `name` is not a map. Optional. + string key = 11; + // The structural shape of the field. Unset is treated as SCALAR. + FilterFieldKind field_kind = 12; + // For a RELATION field, the relation's filterable columns, each a full + // FilterField (e.g. "name", "numeric_value", "passed" for measurements). + // Empty for non-relation kinds. + repeated FilterField fields = 13; + // For a RELATION field, the comprehension macros that apply + // (e.g. "exists", "all", "exists_one"). The client picks one, then composes + // inner predicates over `fields`. Empty for non-relation kinds. + repeated string quantifiers = 14; } diff --git a/protos/sift/common/v1/resource_type.proto b/protos/sift/common/v1/resource_type.proto index 5d8e85eaf2..b268dd0517 100644 --- a/protos/sift/common/v1/resource_type.proto +++ b/protos/sift/common/v1/resource_type.proto @@ -2,7 +2,6 @@ syntax = "proto3"; package sift.common.v1; - // ResourceType represents the type of resource being accessed. enum ResourceType { RESOURCE_TYPE_UNSPECIFIED = 0; diff --git a/protos/sift/data/v2/data.proto b/protos/sift/data/v2/data.proto index b6e8b8290c..89aa5d1d1b 100644 --- a/protos/sift/data/v2/data.proto +++ b/protos/sift/data/v2/data.proto @@ -268,9 +268,6 @@ message Uint64Values { repeated Uint64Value values = 2 [(google.api.field_behavior) = REQUIRED]; } - - - message BytesValue { google.protobuf.Timestamp timestamp = 1 [(google.api.field_behavior) = REQUIRED]; bytes value = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/data_imports/v2/data_imports.proto b/protos/sift/data_imports/v2/data_imports.proto index 82dce6004b..22a9d45449 100644 --- a/protos/sift/data_imports/v2/data_imports.proto +++ b/protos/sift/data_imports/v2/data_imports.proto @@ -145,6 +145,11 @@ message CsvConfig { map data_columns = 6; // This will be read on upload from the file if not set. optional uint64 num_rows = 7 [(google.api.field_behavior) = OPTIONAL]; + // If true, the time and data column configuration is read from a config + // embedded in the file (written when the file was exported with + // embed_channel_configs). Any time_column/data_columns supplied here are + // ignored and replaced by the embedded config. + bool use_embedded_config = 10; } message CsvTimeColumn { @@ -154,8 +159,6 @@ message CsvTimeColumn { optional google.protobuf.Timestamp relative_start_time = 3; } - - enum DataTypeKey { DATA_TYPE_KEY_UNSPECIFIED = 0 [deprecated = true]; DATA_TYPE_KEY_CSV = 1; @@ -276,6 +279,11 @@ message ParquetColumn { message ParquetFlatDatasetConfig { ParquetTimeColumn time_column = 1; repeated ParquetDataColumn data_columns = 2; + // If true, the time and data column configuration is read from the config + // embedded in the file's Arrow field metadata (written when the file was + // exported with embed_channel_configs). Any time_column/data_columns supplied + // here are ignored and replaced by the embedded config. + bool use_embedded_config = 3; } message ParquetSingleChannelPerRowMultiChannelConfig { @@ -481,7 +489,7 @@ message ListDataImportsRequest { string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - // Available fields to filter by are `data_import_id`, `source_url`, `status`. + // Available fields to filter by are `data_import_id`, `source_url`, `status`, `run_id`. // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). string filter = 3 [(google.api.field_behavior) = OPTIONAL]; diff --git a/protos/sift/exports/v1/exports.proto b/protos/sift/exports/v1/exports.proto index 6d6cad6664..87e9790cf4 100644 --- a/protos/sift/exports/v1/exports.proto +++ b/protos/sift/exports/v1/exports.proto @@ -93,6 +93,10 @@ message ExportOptions { bool split_export_by_asset = 4; // Split each run into their own export file bool split_export_by_run = 5; + // Embeds a re-importable channel configuration into the export: for CSV, as a config row + // inserted immediately after the header row; for Parquet, as per-column field metadata + // under the "sift_channel_config" key. Ignored for the SUN output format. + bool embed_channel_configs = 6; } message ExportDataResponse { diff --git a/protos/sift/external_sync/v1/external_sync.proto b/protos/sift/external_sync/v1/external_sync.proto index a0008d7a37..26360ddc7d 100644 --- a/protos/sift/external_sync/v1/external_sync.proto +++ b/protos/sift/external_sync/v1/external_sync.proto @@ -9,7 +9,6 @@ import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/common/type/v1/user.proto"; import "sift/user_groups/v2/user_groups.proto"; - service ExternalSyncService { rpc SyncOrganization(SyncOrganizationRequest) returns (SyncOrganizationResponse) { option (google.api.http) = { @@ -115,8 +114,7 @@ message GenerateTokenResponse { string token = 2 [(google.api.field_behavior) = REQUIRED]; } -message GetExternalSyncRequest { -} +message GetExternalSyncRequest {} message GetExternalSyncResponse { bool success = 1 [(google.api.field_behavior) = REQUIRED]; @@ -233,8 +231,7 @@ message GetExternalSyncRunResponse { ExternalSyncRun external_sync_run = 1 [(google.api.field_behavior) = REQUIRED]; } -message GetIsOrgExternallyProvisionedRequest { -} +message GetIsOrgExternallyProvisionedRequest {} message GetIsOrgExternallyProvisionedResponse { bool is_externally_provisioned = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/families/v1/families.proto b/protos/sift/families/v1/families.proto new file mode 100644 index 0000000000..abee094af4 --- /dev/null +++ b/protos/sift/families/v1/families.proto @@ -0,0 +1,1043 @@ +syntax = "proto3"; + +package sift.families.v1; + +import "google/api/annotations.proto"; +import "google/api/field_behavior.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; +import "protoc-gen-openapiv2/options/annotations.proto"; +import "sift/common/v1/filter_field.proto"; +import "sift/metadata/v1/metadata.proto"; +import "sift/rules/v1/rules.proto"; +import "sift/runs/v2/runs.proto"; + +option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { + info: {title: "Family Service"} +}; + +service FamilyService { + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = {description: "Service to programmatically interact with family configurations."}; + + rpc GetFamily(GetFamilyRequest) returns (GetFamilyResponse) { + option (google.api.http) = { + get: "/api/v1/families/{family_id}" + additional_bindings: {get: "/api/v1/families/client_key/{client_key}"} + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetFamily" + description: "Retrieves the latest version of a family." + }; + } + + rpc GetFamilies(GetFamiliesRequest) returns (GetFamiliesResponse) { + option (google.api.http) = { + post: "/api/v1/families:batchGet" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetFamilies" + description: "Retrieves the latest versions of multiple families." + }; + } + + rpc GetFamilyVersion(GetFamilyVersionRequest) returns (GetFamilyVersionResponse) { + option (google.api.http) = {get: "/api/v1/families/versions/{family_version_id}"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetFamilyVersion" + description: "Retrieves a specific version of a family." + }; + } + + rpc CreateFamily(CreateFamilyRequest) returns (CreateFamilyResponse) { + option (google.api.http) = { + post: "/api/v1/families" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "CreateFamily" + description: "Creates a new family." + }; + } + + rpc UpdateFamily(UpdateFamilyRequest) returns (UpdateFamilyResponse) { + option (google.api.http) = { + patch: "/api/v1/families/{family_id}" + body: "*" + additional_bindings: { + patch: "/api/v1/families/client_key/{client_key}" + body: "*" + } + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "UpdateFamily" + description: "Updates an existing family using the list of fields specified in `update_mask`." + }; + } + + rpc GetFamilyCandidateRuns(GetFamilyCandidateRunsRequest) returns (GetFamilyCandidateRunsResponse) { + option (google.api.http) = {get: "/api/v1/families/versions/{family_version_id}/candidate-runs"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetFamilyCandidateRuns" + description: "Retrieves the candidate runs for a family version based on the run query stored in the family version." + }; + } + + rpc GetFamilyCandidateRunCount(GetFamilyCandidateRunCountRequest) returns (GetFamilyCandidateRunCountResponse) { + option (google.api.http) = {get: "/api/v1/families/versions/{family_version_id}/candidate-run-count"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetFamilyCandidateRunCount" + description: "Returns the count of candidate runs for a family version that are not already included or excluded." + }; + } + + rpc ListFamilyCandidateRuns(ListFamilyCandidateRunsRequest) returns (ListFamilyCandidateRunsResponse) { + option (google.api.http) = {get: "/api/v1/families/candidate-runs"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ListFamilyCandidateRuns" + description: "Lists runs that match a candidate-run CEL filter. Supports `include_archived` as a CEL directive (archived runs are excluded by default; pass `include_archived == true` in the filter to include them). When `family_id` is provided, runs already on that family's persisted membership (both included and excluded) are filtered out so the response only contains runs not yet on the family." + }; + } + + rpc GetFamilyCandidateRunFilterFields(GetFamilyCandidateRunFilterFieldsRequest) returns (GetFamilyCandidateRunFilterFieldsResponse) { + option (google.api.http) = {get: "/api/v1/families/candidate-runs:filterFields"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetFamilyCandidateRunFilterFields" + description: "Returns the filter fields available to candidate-run CEL queries (the standard run filter fields plus the `include_archived` directive)." + }; + } + + rpc ListFamilies(ListFamiliesRequest) returns (ListFamiliesResponse) { + option (google.api.http) = {get: "/api/v1/families"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ListFamilies" + description: "Retrieves families using an optional filter." + }; + } + + rpc ListFamilyVersions(ListFamilyVersionsRequest) returns (ListFamilyVersionsResponse) { + option (google.api.http) = {get: "/api/v1/families/versions"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ListFamilyVersions" + description: "Lists all versions of a family." + }; + } + + rpc ListFamilyMembers(ListFamilyMembersRequest) returns (ListFamilyMembersResponse) { + option (google.api.http) = {get: "/api/v1/families/versions/{family_version_id}/members"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ListFamilyMembers" + description: "Lists all members of a family version." + }; + } + + rpc ListFamilyAlignments(ListFamilyAlignmentsRequest) returns (ListFamilyAlignmentsResponse) { + option (google.api.http) = {get: "/api/v1/families/versions/{family_version_id}/alignments"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ListFamilyAlignments" + description: "Lists all alignments for a specific family version." + }; + } + + rpc ListFamilyAlignmentPoints(ListFamilyAlignmentPointsRequest) returns (ListFamilyAlignmentPointsResponse) { + option (google.api.http) = {get: "/api/v1/families/alignments/{family_alignment_id}/points"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ListFamilyAlignmentPoints" + description: "Lists all alignment points for a specific family version alignment." + }; + } + + rpc ImportFamily(ImportFamilyRequest) returns (ImportFamilyResponse) { + option (google.api.http) = { + post: "/api/v1/families:import" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ImportFamily" + description: "Imports a new family from YAML." + }; + } + + rpc ImportUpdateFamily(ImportUpdateFamilyRequest) returns (ImportUpdateFamilyResponse) { + option (google.api.http) = { + patch: "/api/v1/families/{family_id}/import-update" + body: "*" + additional_bindings: { + patch: "/api/v1/families/client_key/{client_key}/import-update" + body: "*" + } + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ImportUpdateFamily" + description: "Updates an existing family from YAML." + }; + } + + rpc ExportFamily(ExportFamilyRequest) returns (ExportFamilyResponse) { + option (google.api.http) = { + get: "/api/v1/families/{family_id}/export" + additional_bindings: {get: "/api/v1/families/client_key/{client_key}/export"} + additional_bindings: {get: "/api/v1/families/versions/{family_version_id}/export"} + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ExportFamily" + description: "Exports a family to YAML." + }; + } + + rpc ValidateFamilyName(ValidateFamilyNameRequest) returns (ValidateFamilyNameResponse) { + option (google.api.http) = { + post: "/api/v1/families:validateFamilyName" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ValidateFamilyName" + description: "Used to validate whether or not a family name is valid." + }; + } + + rpc ValidateFamilyClientKey(ValidateFamilyClientKeyRequest) returns (ValidateFamilyClientKeyResponse) { + option (google.api.http) = { + post: "/api/v1/families:validateClientKey" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "ValidateFamilyClientKey" + description: "Used to validate whether or not a client key is valid." + }; + } + + rpc GetFamilyStat(GetFamilyStatRequest) returns (GetFamilyStatResponse) { + option (google.api.http) = {get: "/api/v1/family_stats/{family_stat_id}"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetFamilyStat" + description: "Retrieves a family stat configuration." + }; + } + + rpc GetFamilyStats(GetFamilyStatsRequest) returns (GetFamilyStatsResponse) { + option (google.api.http) = {get: "/api/v1/family_stats/{family_version_id}"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetFamilyStats" + description: "Retrieves family stats configurations for a family version." + }; + } + + rpc CreateFamilyStatRanges(CreateFamilyStatRangesRequest) returns (CreateFamilyStatRangesResponse) { + option (google.api.http) = { + post: "/api/v1/family_stats/create-ranges" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "CreateFamilyStatRanges" + description: "Creates family stat ranges for existing family stats (within a given family)." + }; + } + + rpc GetFamilyRuleDependencies(GetFamilyRuleDependenciesRequest) returns (GetFamilyRuleDependenciesResponse) { + option (google.api.http) = {get: "/api/v1/families/{family_id}/rule-dependencies"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GetFamilyRuleDependencies" + description: "Retrieves all rules that reference the specified family across any of its stats." + }; + } + + rpc GenerateFamilyStatRangeName(GenerateFamilyStatRangeNameRequest) returns (GenerateFamilyStatRangeNameResponse) { + option (google.api.http) = {post: "/api/v1/families/stat-range/name"}; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "GenerateFamilyStatRangeName" + description: "Derives a name for a family range based on the range configuration. Nothing is persisted to the database." + }; + } +} + +enum TimeRangeBound { + TIME_RANGE_BOUND_UNSPECIFIED = 0 [deprecated = true]; + TIME_RANGE_BOUND_START = 1; + TIME_RANGE_BOUND_END = 2; +} + +enum AnnotationOccurrence { + ANNOTATION_OCCURRENCE_UNSPECIFIED = 0 [deprecated = true]; + ANNOTATION_OCCURRENCE_FIRST = 1; + ANNOTATION_OCCURRENCE_LAST = 2; + ANNOTATION_OCCURRENCE_EVERY = 3; + ANNOTATION_OCCURRENCE_NTH = 4; +} + +message Family { + string family_id = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // Client key is a user-provided unique identifier for the family + string client_key = 2 [(google.api.field_behavior) = OPTIONAL]; + // The latest family_version_id for the family. + string current_version_id = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // Whether the family is archived. + bool is_archived = 4 [(google.api.field_behavior) = REQUIRED]; + + google.protobuf.Timestamp created_date = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + google.protobuf.Timestamp modified_date = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + google.protobuf.Timestamp archived_date = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = OPTIONAL + ]; + string created_by_user_id = 8 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string modified_by_user_id = 9 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string organization_id = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; +} + +message FamilyVersion { + string family_version_id = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string family_id = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + uint32 version = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // The name of the family. Must be unique within the organization for the latest family versions. + string name = 4 [(google.api.field_behavior) = REQUIRED]; + string description = 5 [(google.api.field_behavior) = OPTIONAL]; + // An optional query to track a CEL expression against the ListRuns endpoint. This query is only for reference, + // and does not affect the runs that are included in the family. To specify which runs are included in the family, + // use the `runs` field. + string run_query = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Notes provided by the user to describe the family version changes + string user_notes = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Family Service provided message describing the changes made to the family version. + string change_message = 8 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // Metadata associated with the family version. + repeated sift.metadata.v1.MetadataValue metadata = 9 [(google.api.field_behavior) = OPTIONAL]; + + // User-configurable default sigma multiplier values, e.g. [1, 2, 3]. + // If not provided, the default values [-1, 1, -2, 2, -3, 3] will be used. + repeated double sigma_default_values = 10 [(google.api.field_behavior) = OPTIONAL]; + + google.protobuf.Timestamp created_date = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + google.protobuf.Timestamp modified_date = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string created_by_user_id = 13 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string modified_by_user_id = 14 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string organization_id = 15 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; +} + +// FamilyRun represents a run which is either included in the family or explicitly excluded. +message FamilyRun { + string family_run_id = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string family_version_id = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string run_id = 3 [(google.api.field_behavior) = REQUIRED]; + // Whether the run is excluded from the family. If `true` the run is explicitly excluded, otherwise it is included. + bool is_exclusion = 4 [(google.api.field_behavior) = OPTIONAL]; + // User rationale for the inclusion or exclusion. + string rationale = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Date when the run was included or excluded from the family. + google.protobuf.Timestamp added_date = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // User id of the user who included or excluded the run from the family. + string added_by_user_id = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // Version id of the version in which the run was included or excluded from the family. + string added_in_version_id = 8 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; +} + +// FamilyAlignment represents a family-level time-alignment for naming and resolving run relative times. +message FamilyAlignment { + // When creating a family, this field can contain a temporary identifier + // provided by the client for referencing this alignment in family_stats. The temporary ID + // must be unique within the CreateFamilyRequest and is required when this alignment is + // referenced in family_stats. The service will resolve it to the actual alignment ID. + // When updating a family, this field must contain the actual family_alignment_id. + // In responses, this field contains the actual family_alignment_id. + string family_alignment_id = 1 [(google.api.field_behavior) = REQUIRED]; + string family_version_id = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // The name of the alignment. Must be unique within the family. + string name = 3 [(google.api.field_behavior) = REQUIRED]; + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + // The default alignment defines the behavior to look up alignment points when adding a new run to the family. + oneof default_alignment { + RunAlignment run = 5; + DefaultAnnotationAlignment annotation = 6; + TimestampAlignment timestamp = 7; + } + // Specific alignment points for each family member for the alignment. If not provided for a family member, the member does not implement this alignment. + repeated FamilyAlignmentPoint family_alignment_points = 8 [(google.api.field_behavior) = REQUIRED]; +} + +// FamilyAlignmentPoint represents a member specific time-alignment for the FamilyAlignment. +message FamilyAlignmentPoint { + // When creating a family, this field can contain a temporary identifier + // provided by the client for referencing this alignment point in family_stats. The temporary ID + // must be unique within the CreateFamilyRequest and is required when this alignment point is + // referenced in family_stats. The service will resolve it to the actual alignment_point_id. + // When updating a family, this field must contain the actual family_alignment_point_id. + // In responses, this field contains the actual family_alignment_point_id. + // Can be empty string if not referenced in family_stats. + string family_alignment_point_id = 1 [(google.api.field_behavior) = REQUIRED]; + string family_run_id = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string run_id = 3 [(google.api.field_behavior) = REQUIRED]; + string family_alignment_id = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // The alignment configuration for the family member. + oneof alignment { + RunAlignment run = 5; + AnnotationAlignment annotation = 6; + TimestampAlignment timestamp = 7; + } +} + +message RunAlignment { + TimeRangeBound bound = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message DefaultAnnotationAlignment { + string annotation_name = 1 [(google.api.field_behavior) = REQUIRED]; + TimeRangeBound bound = 2 [(google.api.field_behavior) = REQUIRED]; + AnnotationOccurrence occurrence = 3 [(google.api.field_behavior) = REQUIRED]; + // Index of the annotation to use when occurrence is "nth". Positive indices start from the beginning, negative from the end. + int32 occurrence_index = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +message TimestampAlignment { + google.protobuf.Timestamp timestamp = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message AnnotationAlignment { + string annotation_id = 1 [(google.api.field_behavior) = REQUIRED]; + TimeRangeBound bound = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// FamilyDetails provides the entire family configuration including version, members, and alignments + +message FamilyDetails { + Family family = 1 [(google.api.field_behavior) = REQUIRED]; + // The requested FamilyVersion for the family. Matches the current version unless a specific version is requested. + FamilyVersion family_version = 2 [(google.api.field_behavior) = REQUIRED]; + // The family members associated with the FamilyVersion. + repeated FamilyRun family_runs = 3 [(google.api.field_behavior) = REQUIRED]; + // The alignments associated with the FamilyVersion. + repeated FamilyAlignment family_alignments = 4 [(google.api.field_behavior) = REQUIRED]; + // The family stats associated with the FamilyVersion. + repeated FamilyStatDetails family_stats = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +message GetFamilyRequest { + oneof family_identifier { + string family_id = 1; + string client_key = 2; + } +} + +message GetFamilyResponse { + FamilyDetails family = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamiliesRequest { + repeated string family_ids = 1 [(google.api.field_behavior) = OPTIONAL]; + repeated string client_keys = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +message GetFamiliesResponse { + repeated FamilyDetails families = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyVersionRequest { + string family_version_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyVersionResponse { + FamilyDetails family = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message ListFamiliesRequest { + // The maximum number of families to return. The service may return fewer than this value, even if + // there are additional pages. If unspecified, the limit defaults to 50. The maximum value is 100. + uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // A page token, received from a previous `ListFamilies` call. Provide this to retrieve the + // subsequent page. When paginating, all other parameters provided to `ListFamilies` must match + // the call that provided the page token. + string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; + + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are: `family_id`, `client_key`, `organization_id`, `archived_date`, `is_archived`, `created_by_user_id`, `created_date`, `modified_by_user_id`, `modified_date`, `name`, `description`, `run_query`, `run_id_includes`, `run_id_excludes`, `alignment_name`, `alignment_description`, `metadata`. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // How to order the retrieved families. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are: `created_date`, `modified_date`, `archived_date`. + // If left empty, items are ordered by `created_date` in descending order. + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc" + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListFamiliesResponse { + repeated ListFamily families = 1 [(google.api.field_behavior) = REQUIRED]; + + // A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + string next_page_token = 2 [(google.api.field_behavior) = REQUIRED]; +} + +message ListFamily { + Family family = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // The latest family version associated with the Family. + FamilyVersion family_version = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; +} + +message CreateFamilyRequest { + // Family level information about the family such as archival status and client_key are set in the Family. + Family family = 1 [(google.api.field_behavior) = REQUIRED]; + // Version specific information about the family such as name, description, metadata, etc. are set in the FamilyVersion. + FamilyVersion family_version = 2 [(google.api.field_behavior) = REQUIRED]; + // The runs to include in the family. At least one run must be specified. + repeated FamilyRun family_runs = 3 [(google.api.field_behavior) = REQUIRED]; + // The alignments to apply to the family. If not provided, a default alignment will be created for the Family. + repeated FamilyAlignment family_alignments = 4 [(google.api.field_behavior) = OPTIONAL]; + // The family stats to create for the family. If not provided, no family stats will be created. + repeated FamilyStatDetails family_stats = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +message CreateFamilyResponse { + string family_id = 1 [(google.api.field_behavior) = REQUIRED]; + FamilyDetails family = 2 [(google.api.field_behavior) = REQUIRED]; +} + +message UpdateFamilyRequest { + // Provide either the family_id or client_key to identify the family to update. + oneof family_identifier { + string family_id = 1; + string client_key = 2; + } + + // The family data to update. Only fields referenced in the update_mask will be updated. + FamilyDetails family = 3 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to update. The fields available to be updated are + // `family_version.name`, `family_version.description`, `family_version.run_query`, `family_version.metadata`, `family_version.user_notes`, `family.is_archived`, `family.client_key`, `family_runs`, `family_alignments`, and `family_stats`. + + // Note: Whenever the family is updated, the family stats are also updated to point to the new family version to ensure the family stats are always up to date. + // client_key can only be updated if it is not already set. It must be passed in via the family request and cannot be used as identifier. + google.protobuf.FieldMask update_mask = 4 [(google.api.field_behavior) = REQUIRED]; +} + +message UpdateFamilyResponse { + string family_version_id = 1 [(google.api.field_behavior) = REQUIRED]; + FamilyDetails family = 2 [(google.api.field_behavior) = REQUIRED]; + repeated FamilyStatDetails family_stats = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListFamilyVersionsRequest { + // The maximum number of family versions to return. The service may return fewer than this value, even if + // there are additional pages. If unspecified, the max limit defaults to 50. The maximum value is 200. + uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are: `family_id`, `family_version_id`, `organization_id`, `name`, `description`, `run_query`, `user_notes`, `change_message`, `created_by_user_id`, `created_date`, `modified_by_user_id`, `modified_date`, `archived_date`, `is_archived`, `run_id_includes`, `run_id_excludes`, `alignment_name`, `alignment_description`. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // A page token, received from a previous `ListFamilyVersions` call. Provide this to retrieve the + // subsequent page. When paginating, all other parameters provided to `ListFamilyVersions` must match + // the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // How to order the retrieved family versions. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are: `created_date`, `modified_date`, `name`. + // If left empty, items are ordered by `created_date` in descending order. + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc" + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListFamilyVersionsResponse { + repeated FamilyVersion family_versions = 1 [(google.api.field_behavior) = REQUIRED]; + + // A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListFamilyMembersRequest { + // Provide family_version_id to identify the family to list members for. + string family_version_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of family members to return. The service may return fewer than this value, even if + // there are additional pages. If unspecified, the max limit defaults to 200. The maximum value is 500. + uint32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are: `is_exclusion`, `rationale`, `added_date`, `added_by_user_id`, `added_in_version_id`, and for the associated Run:`name`, `description`, `start_time`, `end_time`, `duration`. + // Note: `name`, `description`, `start_time`, `end_time`, and `duration` are filters on the associated run. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // A page token, received from a previous `ListFamilyMembers` call. Provide this to retrieve the + // subsequent page. When paginating, all other parameters provided to `ListFamilyMembers` must match + // the call that provided the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListFamilyMembersResponse { + repeated FamilyRun family_runs = 1 [(google.api.field_behavior) = REQUIRED]; + + // A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListFamilyAlignmentsRequest { + // Provide family_id to identify the family to list alignments. + string family_version_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of family version alignments to return. The service may return fewer than this value, even if + // there are additional pages. If unspecified, the limit defaults to 200. The maximum value is 1000. + uint32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are: `name`, `description`. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // A page token, received from a previous `ListFamilyAlignments` call. Provide this to retrieve the + // subsequent page. When paginating, all other parameters provided to `ListFamilyAlignments` must match + // the call that provided the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListFamilyAlignmentsResponse { + repeated FamilyAlignment family_alignments = 1 [(google.api.field_behavior) = REQUIRED]; + + // A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListFamilyAlignmentPointsRequest { + // Provide family_alignment_id to identify the family to list alignments points. + string family_alignment_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // The maximum number of family version alignment points to return. The service may return fewer than this value, even if + // there are additional pages. If unspecified, the limit defaults to 200. The maximum value is 1000. + uint32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Available fields to filter by are: `family_run_id`, and for the associated Run: `name`, `description`, `start_time`, `end_time`, `duration`. + // Note: `name`, `description`, `start_time`, `end_time`, and `duration` are filters on the associated run. + // For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // A page token, received from a previous `ListFamilyAlignmentPoints` call. Provide this to retrieve the + // subsequent page. When paginating, all other parameters provided to `ListFamilyAlignmentPoints` must match + // the call that provided the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +message ListFamilyAlignmentPointsResponse { + repeated FamilyAlignmentPoint family_alignment_points = 1 [(google.api.field_behavior) = REQUIRED]; + + // A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +message ImportFamilyRequest { + // The source to import the family from. Must provide family_yaml. The contents of the source + // should match the shape of CreateFamilyRequest + string family_yaml = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message ImportFamilyResponse { + string family_id = 1 [(google.api.field_behavior) = REQUIRED]; + FamilyDetails family = 2 [(google.api.field_behavior) = REQUIRED]; +} + +message ImportUpdateFamilyRequest { + // Provide either the family_id or client_key to identify the family to update. + oneof family_identifier { + string family_id = 1; + string client_key = 2; + } + + // The source to update the family from. Must provide family_yaml. The contents of the source + // should match the shape of UpdateFamilyRequest FamilyDetails. The update_mask is optional and defaults to updating provided fields. + string family_yaml = 3 [(google.api.field_behavior) = REQUIRED]; + // See UpdateFamilyRequest + google.protobuf.FieldMask update_mask = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +message ImportUpdateFamilyResponse { + string family_version_id = 1 [(google.api.field_behavior) = REQUIRED]; + FamilyDetails family = 2 [(google.api.field_behavior) = REQUIRED]; +} + +message ExportFamilyRequest { + // Provide either the family_id, client_key, or family_version_id to export. Export format is a YAML string. + oneof family_identifier { + string family_id = 1; + string client_key = 2; + string family_version_id = 3; + } +} + +message ExportFamilyResponse { + string exported_family = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message ValidateFamilyNameRequest { + string family_name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message ValidateFamilyNameResponse { + oneof result { + bool success = 1; + string error_message = 2; + } +} + +message ValidateFamilyClientKeyRequest { + string client_key = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message ValidateFamilyClientKeyResponse { + oneof result { + bool success = 1; + string error_message = 2; + } +} + +// ---------------------- +// Family Stats +// ---------------------- + +message FamilyStat { + string family_stat_id = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // The family version id of the family stat. + string family_version_id = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // The name of the family stat. + string name = 3 [(google.api.field_behavior) = REQUIRED]; + // The description of the family stat. + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + // The sample rate of the family stat (Hz). + double sample_rate = 5 [(google.api.field_behavior) = REQUIRED]; + // Ordered list of channel names to include in the family stat. + // The first channel name is the primary channel name across all the family members. + // The remaining channel names are fallback channels or individual overrides when the primary channel + // is not available across all the family members. + repeated string default_channel_names = 6 [(google.api.field_behavior) = REQUIRED]; + google.protobuf.Timestamp created_date = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + google.protobuf.Timestamp modified_date = 8 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string created_by_user_id = 9 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string modified_by_user_id = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string organization_id = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; +} + +message FamilyStatExpression { + string family_stat_expression_id = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string family_stat_id = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // The statistical expression to apply to the channels in the family stat. + // The expression can be any of the following: AVG, MEDIAN, MIN, MAX, STDEV, SUM, INPUT_COUNT, SIGMA. + // SIGMA is auto-managed by the backend: it is created only when both AVG and STDEV are present, + // and fails when either is absent. + oneof expression { + google.protobuf.Empty avg = 3; + google.protobuf.Empty median = 4; + google.protobuf.Empty min = 5; + google.protobuf.Empty max = 6; + google.protobuf.Empty stdev = 7; + google.protobuf.Empty sum = 8; + google.protobuf.Empty input_count = 9; + google.protobuf.Empty sigma = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} + +message FamilyStatChannel { + string family_stat_channel_id = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string family_stat_id = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // The channel id of the channel to include in the family stat given the list of channel names provided in the family stat. + string channel_id = 3 [(google.api.field_behavior) = REQUIRED]; + // Specific alignment point id of the family member / channel to include in the family stat. + // When creating a family stat with a new Family, this field should contain the temporary_id + // from FamilyAlignmentPoint.family_alignment_point_id. The service will resolve it to the actual alignment_point_id. + // When updating a family stat, this field must contain the actual alignment_point_id. + // This will be prevalent when multiple alignment points are supported for a given family member. + string alignment_point_id = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// WindowType represents a window boundary that can be either an alignment ID or a duration. +message WindowType { + // Alignment ID to use as the window boundary. + // When creating a family stat with a new Family, this field should contain the temporary_id + // from FamilyAlignment.family_alignment_id. Default to the window's T-0 alignment. + // The service will resolve it to the actual alignment ID. + // When updating a family stat, this field must contain the actual family_alignment_id. + string family_alignment_id = 1 [(google.api.field_behavior) = OPTIONAL]; + // Duration relative to the alignment used to compare the data. Defaults to 0 seconds. + google.protobuf.Duration duration = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +message FamilyStatRange { + string family_stat_range_id = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + string family_stat_id = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // T-0 Alignment ID to align the data for stat calculation. + // When creating a family stat with a new Family, this field should contain the temporary_id + // from FamilyAlignment.family_alignment_id. The service will resolve it to the actual alignment ID. + // When updating a family stat, this field must contain the actual family_alignment_id. + string family_alignment_id = 3 [(google.api.field_behavior) = REQUIRED]; + // Unique name for the family stat range. + string name = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = REQUIRED + ]; + // The start of the window for the stat calculation. + // The start is an alignment ID and a duration relative to the alignment. + // Defaults to T-0 alignment and 0 seconds. + optional WindowType window_start = 5 [(google.api.field_behavior) = OPTIONAL]; + // The end of the window for the stat calculation. + // The end is an alignment ID and a duration relative to the alignment. + // Defaults to T-0 alignment and 0 seconds. However, window end must be after window start. + // Service provides basic validation: if window_start.family_alignment_id = window_end.family_alignment_id, then window_start.duration < window_end.duration. + optional WindowType window_end = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +message FamilyStatDetails { + FamilyStat family_stat = 1 [(google.api.field_behavior) = REQUIRED]; + repeated FamilyStatExpression family_stat_expressions = 2 [(google.api.field_behavior) = REQUIRED]; + repeated FamilyStatChannel family_stat_channels = 3 [(google.api.field_behavior) = OPTIONAL]; + repeated FamilyStatRange family_stat_ranges = 4 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyStatRequest { + string family_stat_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyStatResponse { + FamilyStatDetails family_stat_details = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyStatsRequest { + string family_version_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyStatsResponse { + repeated FamilyStatDetails family_stats_details = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message CreateFamilyStatRangesRequest { + repeated string family_stat_ids = 1 [(google.api.field_behavior) = REQUIRED]; + repeated FamilyStatRange family_stat_ranges = 2 [(google.api.field_behavior) = REQUIRED]; +} + +message CreateFamilyStatRangesResponse { + string family_version_id = 1 [(google.api.field_behavior) = REQUIRED]; + FamilyDetails family = 2 [(google.api.field_behavior) = REQUIRED]; + repeated FamilyStatDetails family_stats = 3 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyRuleDependenciesRequest { + string family_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyRuleDependenciesResponse { + repeated FamilyRuleDependency rule_dependencies = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message FamilyRuleDependency { + string rule_id = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 2 [(google.api.field_behavior) = REQUIRED]; + sift.rules.v1.FamilyStatReference stat_reference = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// AbstractWindowType represents a window boundary that is agnostic of the alignment ID. +message AbstractWindowType { + string family_alignment_name = 1 [(google.api.field_behavior) = OPTIONAL]; + // Duration relative to the alignment used to compare the data. Defaults to 0 seconds. + google.protobuf.Duration duration = 2 [(google.api.field_behavior) = OPTIONAL]; +} +message GenerateFamilyStatRangeNameRequest { + string family_alignment_name = 1 [(google.api.field_behavior) = REQUIRED]; + AbstractWindowType window_start = 2 [(google.api.field_behavior) = REQUIRED]; + AbstractWindowType window_end = 3 [(google.api.field_behavior) = REQUIRED]; +} + +message GenerateFamilyStatRangeNameResponse { + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyCandidateRunsRequest { + string family_version_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyCandidateRunsResponse { + string run_query = 1 [(google.api.field_behavior) = REQUIRED]; + repeated string candidate_run_ids = 2 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyCandidateRunCountRequest { + string family_version_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +message GetFamilyCandidateRunCountResponse { + uint32 count = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request for `FamilyService.ListFamilyCandidateRuns`. +// +// The CEL filter supports the standard run filter fields plus an +// `include_archived` directive. Archived runs are excluded by default; pass +// `include_archived == true` in the filter to include them. +// +// When `family_id` is set, the server filters out runs already on that +// family's persisted membership (both included and excluded entries) so the +// response only contains runs not yet on the family. Clients editing an +// unsaved draft of family membership should omit `family_id` and apply their +// own draft-aware filtering, since the persisted membership does not reflect +// the draft state. +message ListFamilyCandidateRunsRequest { + // The maximum number of runs to return. + // The service may return fewer than this value. + // If unspecified, at most 50 runs will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; + + // A page token, received from a previous call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided must match + // the call that provided the page token. + string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; + + // A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + // Supports all ListRuns filter fields plus `include_archived`. + // When `include_archived` is not present in the filter, archived runs are excluded by default. + // Set `include_archived == true` in the filter to include archived runs. + // Note: `include_archived` is a directive and must appear at the top level of the filter + // (or within a top-level AND chain). It cannot be used inside an OR expression. + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // How to order the retrieved runs. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are `name`, `description`, `created_date`, `modified_date`, `start_time`, and `stop_time`. + // If left empty, items are ordered by `created_date` in descending order (newest-first). + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional family ID to filter out runs already on the family's persisted membership. + // When set, the response excludes runs that are already included or excluded in the family. + // Omit this field when working with draft membership changes. + string family_id = 5 [(google.api.field_behavior) = OPTIONAL]; +} +message ListFamilyCandidateRunsResponse { + repeated sift.runs.v2.Run runs = 1 [(google.api.field_behavior) = REQUIRED]; + string next_page_token = 2; +} + +message GetFamilyCandidateRunFilterFieldsRequest {} + +message GetFamilyCandidateRunFilterFieldsResponse { + repeated sift.common.v1.FilterField filter_fields = 1; +} diff --git a/protos/sift/filters/v1/filter_grammar.proto b/protos/sift/filters/v1/filter_grammar.proto index 633c60a101..d734cc3c33 100644 --- a/protos/sift/filters/v1/filter_grammar.proto +++ b/protos/sift/filters/v1/filter_grammar.proto @@ -5,7 +5,6 @@ package sift.filters.v1; import "google/api/annotations.proto"; import "sift/common/v1/filter_field.proto"; - // FilterGrammarService describes the CEL filter capabilities shared by every // resource: the operators and member functions available for each built-in // field type, plus the functions usable anywhere in an expression. It does not diff --git a/protos/sift/ingest/v1/ingest.proto b/protos/sift/ingest/v1/ingest.proto index 25a08bc18e..0036f6f7da 100644 --- a/protos/sift/ingest/v1/ingest.proto +++ b/protos/sift/ingest/v1/ingest.proto @@ -5,7 +5,6 @@ package sift.ingest.v1; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; - service IngestService { rpc IngestWithConfigDataStream(stream IngestWithConfigDataStreamRequest) returns (IngestWithConfigDataStreamResponse); rpc IngestArbitraryProtobufDataStream(stream IngestArbitraryProtobufDataStreamRequest) returns (IngestArbitraryProtobufDataStreamResponse); @@ -35,8 +34,6 @@ message IngestWithConfigDataStreamRequest { string organization_id = 7; } - - message IngestWithConfigDataStreamResponse {} message IngestWithConfigDataChannelValue { diff --git a/protos/sift/me/v2/me.proto b/protos/sift/me/v2/me.proto index 231aaa22b1..6f1681c7de 100644 --- a/protos/sift/me/v2/me.proto +++ b/protos/sift/me/v2/me.proto @@ -36,8 +36,7 @@ message Permissions { map organization_permission_resources = 1 [(google.api.field_behavior) = REQUIRED]; } -message GetMeRequest { -} +message GetMeRequest {} message GetMeResponse { string user_id = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/policies/v1/policies.proto b/protos/sift/policies/v1/policies.proto index b2a3a4f374..6368da934e 100644 --- a/protos/sift/policies/v1/policies.proto +++ b/protos/sift/policies/v1/policies.proto @@ -96,9 +96,7 @@ service PolicyService { } message Policy { - string policy_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string policy_id = 1 [(google.api.field_behavior) = REQUIRED]; string name = 2 [(google.api.field_behavior) = REQUIRED]; optional string description = 3 [(google.api.field_behavior) = OPTIONAL]; string organization_id = 4 [ @@ -158,9 +156,7 @@ message PolicyConfiguration { // The request for a call to `PolicyService_GetPolicy`. message GetPolicyRequest { - string policy_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string policy_id = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `PolicyService_GetPolicy`. @@ -248,9 +244,7 @@ message ValidatePolicyResponse { // The request for a call to `PolicyService_ArchivePolicy` to archive a policy. message ArchivePolicyRequest { - string policy_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string policy_id = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `PolicyService_ArchivePolicy`. @@ -260,9 +254,7 @@ message ArchivePolicyResponse { // The request for a call to `PolicyService_UnarchivePolicy` to unarchive a previously-archived policy. message UnarchivePolicyRequest { - string policy_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string policy_id = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `PolicyService_UnarchivePolicy`. diff --git a/protos/sift/principal_attributes/v1/principal_attributes.proto b/protos/sift/principal_attributes/v1/principal_attributes.proto index 11f39d6f40..a92047c3c9 100644 --- a/protos/sift/principal_attributes/v1/principal_attributes.proto +++ b/protos/sift/principal_attributes/v1/principal_attributes.proto @@ -308,9 +308,7 @@ message CreatePrincipalAttributeKeyRequest { string description = 2 [(google.api.field_behavior) = OPTIONAL]; PrincipalAttributeValueType type = 3 [(google.api.field_behavior) = REQUIRED]; // Optional initial enum values to create alongside the key. Only applicable for ENUM type keys. - repeated InitialEnumValue initial_enum_values = 4 [ - (google.api.field_behavior) = OPTIONAL - ]; + repeated InitialEnumValue initial_enum_values = 4 [(google.api.field_behavior) = OPTIONAL]; // Nested message for initial enum values in create requests. message InitialEnumValue { @@ -328,9 +326,7 @@ message CreatePrincipalAttributeKeyResponse { // UpdatePrincipalAttributeKeyRequest is used to update an existing principal attribute key. message UpdatePrincipalAttributeKeyRequest { - string principal_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string principal_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; string description = 3 [(google.api.field_behavior) = OPTIONAL]; // The list of fields to be updated. The fields available to be updated are 'description'. @@ -343,9 +339,7 @@ message UpdatePrincipalAttributeKeyResponse { } message CheckPrincipalAttributeKeyArchiveImpactRequest { - string principal_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string principal_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; } message CheckPrincipalAttributeKeyArchiveImpactResponse { @@ -359,9 +353,7 @@ message CheckPrincipalAttributeKeyArchiveImpactResponse { // GetPrincipalAttributeKeyRequest is used to retrieve a principal attribute key. message GetPrincipalAttributeKeyRequest { - string principal_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string principal_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; } // GetPrincipalAttributeKeyResponse returns a principal attribute key from a GetPrincipalAttributeKey call. @@ -405,18 +397,14 @@ message ListPrincipalAttributeKeysResponse { // ArchivePrincipalAttributeKeysRequest is used to batch archive principal attribute keys by id. message ArchivePrincipalAttributeKeysRequest { - repeated string principal_attribute_key_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string principal_attribute_key_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message ArchivePrincipalAttributeKeysResponse {} // UnarchivePrincipalAttributeKeysRequest is used to batch unarchive principal attribute keys by id. message UnarchivePrincipalAttributeKeysRequest { - repeated string principal_attribute_key_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string principal_attribute_key_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message UnarchivePrincipalAttributeKeysResponse {} @@ -531,12 +519,8 @@ message PrincipalAttributeValue { // BatchCreatePrincipalAttributeValueRequest is used to batch create new principal attribute values. message BatchCreatePrincipalAttributeValueRequest { - string principal_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; - repeated string principal_ids = 2 [ - (google.api.field_behavior) = REQUIRED - ]; + string principal_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; + repeated string principal_ids = 2 [(google.api.field_behavior) = REQUIRED]; PrincipalAttributePrincipalType principal_type = 3 [(google.api.field_behavior) = REQUIRED]; oneof value { // For ENUM type: exactly one enum value ID. @@ -556,9 +540,7 @@ message BatchCreatePrincipalAttributeValueResponse { // GetPrincipalAttributeValueRequest is used to retrieve a principal attribute value. message GetPrincipalAttributeValueRequest { - string principal_attribute_value_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string principal_attribute_value_id = 1 [(google.api.field_behavior) = REQUIRED]; PrincipalAttributePrincipalType principal_type = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -640,9 +622,7 @@ message ListPrincipalAttributeValuesResponse { // ArchivePrincipalAttributeValuesRequest is used to batch archive principal attribute values by id. message ArchivePrincipalAttributeValuesRequest { - repeated string principal_attribute_value_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string principal_attribute_value_ids = 1 [(google.api.field_behavior) = REQUIRED]; PrincipalAttributePrincipalType principal_type = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -650,9 +630,7 @@ message ArchivePrincipalAttributeValuesResponse {} // UnarchivePrincipalAttributeValuesRequest is used to batch unarchive principal attribute values by id. message UnarchivePrincipalAttributeValuesRequest { - repeated string principal_attribute_value_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string principal_attribute_value_ids = 1 [(google.api.field_behavior) = REQUIRED]; PrincipalAttributePrincipalType principal_type = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -660,9 +638,7 @@ message UnarchivePrincipalAttributeValuesResponse {} // Principal Attribute Enum Value RPC messages message CreatePrincipalAttributeEnumValueRequest { - string principal_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string principal_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; string display_name = 2 [(google.api.field_behavior) = REQUIRED]; string description = 3 [(google.api.field_behavior) = OPTIONAL]; } @@ -672,9 +648,7 @@ message CreatePrincipalAttributeEnumValueResponse { } message GetPrincipalAttributeEnumValueRequest { - string principal_attribute_enum_value_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string principal_attribute_enum_value_id = 1 [(google.api.field_behavior) = REQUIRED]; } message GetPrincipalAttributeEnumValueResponse { @@ -682,9 +656,7 @@ message GetPrincipalAttributeEnumValueResponse { } message ListPrincipalAttributeEnumValuesRequest { - string principal_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string principal_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; // The maximum number of enum values to return. The service may return fewer than this value. // If unspecified, at most 50 enum values will be returned. The maximum value is 100; values above @@ -721,9 +693,7 @@ message ListPrincipalAttributeEnumValuesResponse { } message UpdatePrincipalAttributeEnumValueRequest { - string principal_attribute_enum_value_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string principal_attribute_enum_value_id = 1 [(google.api.field_behavior) = REQUIRED]; string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; string description = 3 [(google.api.field_behavior) = OPTIONAL]; // The list of fields to be updated. The fields available to be updated are `description` and `archived_date`. @@ -735,9 +705,7 @@ message UpdatePrincipalAttributeEnumValueResponse { } message ArchivePrincipalAttributeEnumValueRequest { - string archived_enum_value_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string archived_enum_value_id = 1 [(google.api.field_behavior) = REQUIRED]; // When the archived_enum_value_id is archived all principal attribute values that reference it will be migrated to the replacement_enum_value_id // if provided. Otherwise, user-attributes that reference it will be archived as well. string replacement_enum_value_id = 2 [(google.api.field_behavior) = OPTIONAL]; @@ -751,9 +719,7 @@ message ArchivePrincipalAttributeEnumValueResponse { } message UnarchivePrincipalAttributeEnumValueRequest { - string principal_attribute_enum_value_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string principal_attribute_enum_value_id = 1 [(google.api.field_behavior) = REQUIRED]; } message UnarchivePrincipalAttributeEnumValueResponse {} @@ -761,17 +727,13 @@ message UnarchivePrincipalAttributeEnumValueResponse {} message BatchArchivePrincipalAttributeEnumValuesRequest { message EnumValueArchival { // The enum value ID to archive. - string archived_enum_value_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string archived_enum_value_id = 1 [(google.api.field_behavior) = REQUIRED]; // When the archived_enum_value_id is archived all principal attribute values that reference it will be migrated to the replacement_enum_value_id // if provided. Otherwise, user-attributes that reference it will be archived as well. string replacement_enum_value_id = 2 [(google.api.field_behavior) = OPTIONAL]; } - repeated EnumValueArchival archival_requests = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated EnumValueArchival archival_requests = 1 [(google.api.field_behavior) = REQUIRED]; } message BatchArchivePrincipalAttributeEnumValuesResponse { @@ -781,9 +743,7 @@ message BatchArchivePrincipalAttributeEnumValuesResponse { } message BatchUnarchivePrincipalAttributeEnumValuesRequest { - repeated string principal_attribute_enum_value_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string principal_attribute_enum_value_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message BatchUnarchivePrincipalAttributeEnumValuesResponse {} diff --git a/protos/sift/protobuf_descriptors/v2/channel_parsing_options.proto b/protos/sift/protobuf_descriptors/v2/channel_parsing_options.proto index d24791d2e3..475fb06db2 100644 --- a/protos/sift/protobuf_descriptors/v2/channel_parsing_options.proto +++ b/protos/sift/protobuf_descriptors/v2/channel_parsing_options.proto @@ -8,7 +8,6 @@ package sift.protobuf_descriptors.v2; import "google/protobuf/descriptor.proto"; - // Enum for different types of tag sources enum TagSourceType { DESCENDANT_SOURCES = 0; // Tags can be sourced from descendant fields diff --git a/protos/sift/reports/v1/reports.proto b/protos/sift/reports/v1/reports.proto index 6bb4d28336..444287fc14 100644 --- a/protos/sift/reports/v1/reports.proto +++ b/protos/sift/reports/v1/reports.proto @@ -7,6 +7,8 @@ import "google/api/field_behavior.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; +import "sift/canvas/v1/canvas.proto"; +import "sift/families/v1/families.proto"; import "sift/metadata/v1/metadata.proto"; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { @@ -115,6 +117,7 @@ service ReportService { enum ReportType { REPORT_TYPE_UNSPECIFIED = 0; REPORT_TYPE_RULE_EVALUATION = 1; + REPORT_TYPE_CANVAS = 2; } message Report { @@ -146,9 +149,11 @@ message Report { // For CANVAS reports, the id of the published canvas_execution this report row // is linked to (read-through from canvas_executions.canvas_execution_id). Empty // for RULE_EVALUATION reports. Used by clients to route to the canvas detail page. + optional string canvas_execution_id = 19 [(google.api.field_behavior) = OPTIONAL]; // For CANVAS reports, the execution status read through from the linked // canvas_executions.status. Unset for RULE_EVALUATION reports (whose status is // conveyed via the per-rule `summaries` instead). + optional sift.canvas.v1.CanvasCellExecutionStatus canvas_status = 20 [(google.api.field_behavior) = OPTIONAL]; } // ReportWithCumulativeSummary is a projection of `Report` that replaces the per-rule `summaries` @@ -192,9 +197,11 @@ message ReportWithCumulativeSummary { // For CANVAS reports, the id of the published canvas_execution this report row // is linked to (read-through from canvas_executions.canvas_execution_id). Empty // for RULE_EVALUATION reports. Used by clients to route to the canvas detail page. + optional string canvas_execution_id = 18 [(google.api.field_behavior) = OPTIONAL]; // For CANVAS reports, the execution status read through from the linked // canvas_executions.status. Unset for RULE_EVALUATION reports (whose status is // conveyed via the `cumulative_summary` instead). + optional sift.canvas.v1.CanvasCellExecutionStatus canvas_status = 19 [(google.api.field_behavior) = OPTIONAL]; } message ReportRuleSummary { @@ -212,6 +219,8 @@ message ReportRuleSummary { google.protobuf.Timestamp modified_date = 12 [(google.api.field_behavior) = REQUIRED]; string asset_id = 13 [(google.api.field_behavior) = REQUIRED]; google.protobuf.Timestamp deleted_date = 14 [(google.api.field_behavior) = OPTIONAL]; + repeated ResolvedFamilyStat resolved_family_stats = 15 [(google.api.field_behavior) = OPTIONAL]; + repeated ResolvedAlignmentEntry resolved_alignment_configs = 16 [(google.api.field_behavior) = OPTIONAL]; // Zero-based position of this rule line on the report. Copied from the report template rule's `display_order`, or from the // position of `rule_id` in `CreateReportRequestRuleIds.rule_ids` when creating from explicit rule IDs. Lower values run first. uint32 display_order = 17 [(google.api.field_behavior) = REQUIRED]; @@ -253,8 +262,29 @@ message ReportCumulativeRuleSummary { uint32 num_of_rules_without_annotations = 12 [(google.api.field_behavior) = REQUIRED]; } +message ResolvedFamilyStat { + string reference = 1 [(google.api.field_behavior) = REQUIRED]; + string family_id = 2 [(google.api.field_behavior) = REQUIRED]; + string family_version_id = 3 [(google.api.field_behavior) = REQUIRED]; + string family_stat_expression_id = 4 [(google.api.field_behavior) = REQUIRED]; + string family_stat_range_id = 5 [(google.api.field_behavior) = REQUIRED]; +} +message ResolvedAlignmentEntry { + repeated string channel_references = 1; + ResolvedAlignmentPoint t0 = 2; + ResolvedAlignmentPoint start_time = 3; + ResolvedAlignmentPoint end_time = 4; +} +message ResolvedAlignmentPoint { + google.protobuf.Timestamp timestamp = 1; + oneof alignment_config { + sift.families.v1.RunAlignment run = 3; + sift.families.v1.AnnotationAlignment annotation = 4; + sift.families.v1.TimestampAlignment timestamp_config = 5; + } +} enum ReportRuleStatus { REPORT_RULE_STATUS_UNSPECIFIED = 0; diff --git a/protos/sift/resource_attribute/v1/resource_attribute.proto b/protos/sift/resource_attribute/v1/resource_attribute.proto index 7550653d58..8db8fab851 100644 --- a/protos/sift/resource_attribute/v1/resource_attribute.proto +++ b/protos/sift/resource_attribute/v1/resource_attribute.proto @@ -337,9 +337,7 @@ message ResourceAttribute { // Represents an entity to which a resource_attribute will be assigned. message ResourceAttributeEntityIdentifier { - string entity_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string entity_id = 1 [(google.api.field_behavior) = REQUIRED]; ResourceAttributeEntityType entity_type = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -349,9 +347,7 @@ message CreateResourceAttributeKeyRequest { string description = 2 [(google.api.field_behavior) = OPTIONAL]; ResourceAttributeKeyType type = 3 [(google.api.field_behavior) = REQUIRED]; // Optional initial enum values to create alongside the key. Only applicable for ENUM type keys. - repeated InitialEnumValue initial_enum_values = 4 [ - (google.api.field_behavior) = OPTIONAL - ]; + repeated InitialEnumValue initial_enum_values = 4 [(google.api.field_behavior) = OPTIONAL]; // Nested message for initial enum values in create requests. message InitialEnumValue { @@ -367,9 +363,7 @@ message CreateResourceAttributeKeyResponse { } message GetResourceAttributeKeyRequest { - string resource_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; } message GetResourceAttributeKeyResponse { @@ -411,9 +405,7 @@ message ListResourceAttributeKeysResponse { } message UpdateResourceAttributeKeyRequest { - string resource_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; string description = 3 [(google.api.field_behavior) = OPTIONAL]; // The list of fields to be updated. The fields available to be updated are `description` and `archived_date`. @@ -425,9 +417,7 @@ message UpdateResourceAttributeKeyResponse { } message CheckResourceAttributeKeyArchiveImpactRequest { - string resource_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; } message CheckResourceAttributeKeyArchiveImpactResponse { @@ -436,42 +426,32 @@ message CheckResourceAttributeKeyArchiveImpactResponse { } message ArchiveResourceAttributeKeyRequest { - string resource_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; } message ArchiveResourceAttributeKeyResponse {} message UnarchiveResourceAttributeKeyRequest { - string resource_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; } message UnarchiveResourceAttributeKeyResponse {} message BatchArchiveResourceAttributeKeysRequest { - repeated string resource_attribute_key_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string resource_attribute_key_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message BatchArchiveResourceAttributeKeysResponse {} message BatchUnarchiveResourceAttributeKeysRequest { - repeated string resource_attribute_key_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string resource_attribute_key_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message BatchUnarchiveResourceAttributeKeysResponse {} // ResourceAttribute Enum Value RPC messages message CreateResourceAttributeEnumValueRequest { - string resource_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; string display_name = 2 [(google.api.field_behavior) = REQUIRED]; string description = 3 [(google.api.field_behavior) = OPTIONAL]; } @@ -481,9 +461,7 @@ message CreateResourceAttributeEnumValueResponse { } message GetResourceAttributeEnumValueRequest { - string resource_attribute_enum_value_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_enum_value_id = 1 [(google.api.field_behavior) = REQUIRED]; } message GetResourceAttributeEnumValueResponse { @@ -491,9 +469,7 @@ message GetResourceAttributeEnumValueResponse { } message ListResourceAttributeEnumValuesRequest { - string resource_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; // The maximum number of enum values to return. The service may return fewer than this value. // If unspecified, at most 50 enum values will be returned. The maximum value is 100; values above @@ -530,9 +506,7 @@ message ListResourceAttributeEnumValuesResponse { } message UpdateResourceAttributeEnumValueRequest { - string resource_attribute_enum_value_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_enum_value_id = 1 [(google.api.field_behavior) = REQUIRED]; string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; string description = 3 [(google.api.field_behavior) = OPTIONAL]; // The list of fields to be updated. The fields available to be updated are `description` and `archived_date`. @@ -544,9 +518,7 @@ message UpdateResourceAttributeEnumValueResponse { } message ArchiveResourceAttributeEnumValueRequest { - string archived_enum_value_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string archived_enum_value_id = 1 [(google.api.field_behavior) = REQUIRED]; // When the archived_enum_value_id is archived all resource-attributes that reference it will be migrated to the replacement_enum_value_id // if provided. Otherwise, resource-attributes that reference it will be archived as well. string replacement_enum_value_id = 2 [(google.api.field_behavior) = OPTIONAL]; @@ -560,9 +532,7 @@ message ArchiveResourceAttributeEnumValueResponse { } message UnarchiveResourceAttributeEnumValueRequest { - string resource_attribute_enum_value_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_enum_value_id = 1 [(google.api.field_behavior) = REQUIRED]; } message UnarchiveResourceAttributeEnumValueResponse {} @@ -570,17 +540,13 @@ message UnarchiveResourceAttributeEnumValueResponse {} message BatchArchiveResourceAttributeEnumValuesRequest { message EnumValueArchival { // The enum value ID to archive. - string archived_enum_value_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string archived_enum_value_id = 1 [(google.api.field_behavior) = REQUIRED]; // When the archived_enum_value_id is archived all resource-attributes that reference it will be migrated to the replacement_enum_value_id // if provided. Otherwise, resource-attributes that reference it will be archived as well. string replacement_enum_value_id = 2 [(google.api.field_behavior) = OPTIONAL]; } - repeated EnumValueArchival archival_requests = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated EnumValueArchival archival_requests = 1 [(google.api.field_behavior) = REQUIRED]; } message BatchArchiveResourceAttributeEnumValuesResponse { @@ -590,9 +556,7 @@ message BatchArchiveResourceAttributeEnumValuesResponse { } message BatchUnarchiveResourceAttributeEnumValuesRequest { - repeated string resource_attribute_enum_value_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string resource_attribute_enum_value_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message BatchUnarchiveResourceAttributeEnumValuesResponse {} @@ -603,9 +567,7 @@ message ResourceAttributeEnumValueIdList { // ResourceAttribute RPC messages message BatchCreateResourceAttributesRequest { - string resource_attribute_key_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_key_id = 1 [(google.api.field_behavior) = REQUIRED]; oneof value { // For ENUM type: exactly one enum value ID. string resource_attribute_enum_value_id = 2; @@ -615,9 +577,7 @@ message BatchCreateResourceAttributesRequest { bool boolean_value = 3; int64 number_value = 4; } - repeated ResourceAttributeEntityIdentifier entities = 5 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated ResourceAttributeEntityIdentifier entities = 5 [(google.api.field_behavior) = REQUIRED]; } message BatchCreateResourceAttributesResponse { @@ -625,9 +585,7 @@ message BatchCreateResourceAttributesResponse { } message GetResourceAttributeRequest { - string resource_attribute_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_id = 1 [(google.api.field_behavior) = REQUIRED]; } message GetResourceAttributeResponse { @@ -693,9 +651,7 @@ message ListResourceAttributesByEntityResponse { } message BatchListResourceAttributesByEntityRequest { - repeated ResourceAttributeEntityIdentifier entities = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated ResourceAttributeEntityIdentifier entities = 1 [(google.api.field_behavior) = REQUIRED]; // Whether to include archived resource-attributes. Defaults to false. bool include_archived = 2 [(google.api.field_behavior) = OPTIONAL]; @@ -714,33 +670,25 @@ message BatchListResourceAttributesByEntityResponse { } message ArchiveResourceAttributeRequest { - string resource_attribute_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_id = 1 [(google.api.field_behavior) = REQUIRED]; } message ArchiveResourceAttributeResponse {} message UnarchiveResourceAttributeRequest { - string resource_attribute_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string resource_attribute_id = 1 [(google.api.field_behavior) = REQUIRED]; } message UnarchiveResourceAttributeResponse {} message BatchArchiveResourceAttributesRequest { - repeated string resource_attribute_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string resource_attribute_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message BatchArchiveResourceAttributesResponse {} message BatchUnarchiveResourceAttributesRequest { - repeated string resource_attribute_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string resource_attribute_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message BatchUnarchiveResourceAttributesResponse {} diff --git a/protos/sift/rule_evaluation/v1/rule_evaluation.proto b/protos/sift/rule_evaluation/v1/rule_evaluation.proto index 91281ce41c..cf0d537b35 100644 --- a/protos/sift/rule_evaluation/v1/rule_evaluation.proto +++ b/protos/sift/rule_evaluation/v1/rule_evaluation.proto @@ -7,6 +7,7 @@ import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "sift/common/type/v1/resource_identifier.proto"; +import "sift/families/v1/families.proto"; import "sift/rules/v1/rules.proto"; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { @@ -68,6 +69,7 @@ message EvaluateRulesRequest { optional string report_name = 8 [(google.api.field_behavior) = OPTIONAL]; // If evaluating a run against a family stat, this field will be used to provide alignment configuration for the run under test + repeated RunFamilyAlignmentConfig run_family_alignment_configs = 11 [(google.api.field_behavior) = OPTIONAL]; } message RunTimeRange { @@ -127,14 +129,22 @@ message EvaluateRulesPreviewRequest { string organization_id = 7 [(google.api.field_behavior) = OPTIONAL]; // If evaluating a run against a family stat, this field will be used to provide alignment configuration for the run under test + repeated RunFamilyAlignmentConfig run_family_alignment_configs = 9 [(google.api.field_behavior) = OPTIONAL]; } +message RunFamilyAlignmentConfig { + string family_alignment_name = 1 [(google.api.field_behavior) = REQUIRED]; + oneof alignment_config { + sift.families.v1.RunAlignment run = 2; + sift.families.v1.AnnotationAlignment annotation = 3; + sift.families.v1.TimestampAlignment timestamp = 4; + } +} message EvaluateRulesFromRuleConfigs { repeated sift.rules.v1.UpdateRuleRequest configs = 1 [(google.api.field_behavior) = REQUIRED]; } - message EvaluateRulesPreviewResponse { int32 created_annotation_count = 1 [(google.api.field_behavior) = REQUIRED]; repeated sift.rules.v1.DryRunAnnotation dry_run_annotations = 2; diff --git a/protos/sift/rules/v1/rules.proto b/protos/sift/rules/v1/rules.proto index 8355525865..33151ea1ce 100644 --- a/protos/sift/rules/v1/rules.proto +++ b/protos/sift/rules/v1/rules.proto @@ -887,6 +887,17 @@ message AnnotationActionConfiguration { repeated sift.metadata.v1.MetadataValue metadata = 4; } +message FamilyStatReference { + // How to refer to the family stat in the expression, e.g. $A + string reference = 1 [(google.api.field_behavior) = REQUIRED]; + // Choose the family, e.g. Sift Rocket Engine + string family_id = 2 [(google.api.field_behavior) = REQUIRED]; + // Choose the stat, e.g. TC-TURB.avg + string family_stat_name = 3 [(google.api.field_behavior) = REQUIRED]; + string family_stat_expression = 4 [(google.api.field_behavior) = REQUIRED]; + // Choose the range by name, which will be used to resolve the alignment and range, e.g. Startup +/- 5s + string family_stat_range_name = 5 [(google.api.field_behavior) = REQUIRED]; +} // Deprecated - use RuleEvaluationService instead. message EvaluateRulesRequest { diff --git a/protos/sift/runs/v2/runs.proto b/protos/sift/runs/v2/runs.proto index f3542cdc97..1c0cc65d9a 100644 --- a/protos/sift/runs/v2/runs.proto +++ b/protos/sift/runs/v2/runs.proto @@ -166,9 +166,7 @@ message Run { // The request for a call to `RunService_GetRun` to retrieve run. message GetRunRequest { // The ID of the run to retrieve. - string run_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string run_id = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `RunService_GetRun` containing the requested run. @@ -245,9 +243,7 @@ message CreateRunRequest { string organization_id = 7 [(google.api.field_behavior) = OPTIONAL]; // An arbitrary user-chosen key that uniquely identifies this run. Optional, though it is recommended to provide. - optional string client_key = 8 [ - (google.api.field_behavior) = OPTIONAL - ]; + optional string client_key = 8 [(google.api.field_behavior) = OPTIONAL]; // The metadata values associated with this run. repeated sift.metadata.v1.MetadataValue metadata = 9 [(google.api.field_behavior) = OPTIONAL]; @@ -264,9 +260,7 @@ message CreateRunResponse { // The request for a call to `RunService_CreateAdhocRun` to create an adhoc run. message CreateAdhocRunRequest { // The name that will be assigned to the new run. - string name = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string name = 1 [(google.api.field_behavior) = REQUIRED]; // A description about the new run. string description = 2 [(google.api.field_behavior) = REQUIRED]; // The time at which data ingestion began for this new run. It must be before the `stop_time` @@ -274,17 +268,13 @@ message CreateAdhocRunRequest { // The time at which data ingestion concluded for this new run. google.protobuf.Timestamp stop_time = 4 [(google.api.field_behavior) = REQUIRED]; // A list of asset IDs to associate with the new run. - repeated string asset_ids = 5 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string asset_ids = 5 [(google.api.field_behavior) = REQUIRED]; // Tags to associate with the new run. repeated string tags = 6 [(google.api.field_behavior) = OPTIONAL]; // The metadata values associated with this run. repeated sift.metadata.v1.MetadataValue metadata = 7 [(google.api.field_behavior) = OPTIONAL]; // An arbitrary user-chosen key that uniquely identifies this run. Optional, though it is recommended to provide. - optional string client_key = 8 [ - (google.api.field_behavior) = OPTIONAL - ]; + optional string client_key = 8 [(google.api.field_behavior) = OPTIONAL]; } // The response of a call to `RunService_CreateAdhocRun` containing the newly created adhoc run. @@ -304,9 +294,7 @@ message UpdateRunRequest { // commences for this run, the `start_time` will be automatically overwritten and set to the timestamp // corresponding to the beginning of the latest run. Additionally, `client_key` can only be set once either in run creation or in update. // Any subsequent attempt to update `client_key` will result in an error. - google.protobuf.FieldMask update_mask = 2 [ - (google.api.field_behavior) = REQUIRED - ]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `RunService_UpdateRun` containing the updated run. @@ -316,9 +304,7 @@ message UpdateRunResponse { message CreateAutomaticRunAssociationForAssetsRequest { // The ID of the run to associate the asset with. - string run_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string run_id = 1 [(google.api.field_behavior) = REQUIRED]; // A list of asset names to automatically associate with the run. // Any data that is received for these assets will automatically added to the run. @@ -334,9 +320,7 @@ message CreateAutomaticRunAssociationForAssetsResponse {} // The request for a call to `RunService_DeleteRun`. message DeleteRunRequest { - string run_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string run_id = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `RunService_DeleteRun`. @@ -344,17 +328,14 @@ message DeleteRunResponse {} // The request for a call to `RunService_StopRun` to stop a run. message StopRunRequest { - string run_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string run_id = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `RunService_StopRun` to stop a run. message StopRunResponse {} // The request for a call to `RunService_GetFilterFields`. -message GetFilterFieldsRequest { -} +message GetFilterFieldsRequest {} // The response of a call to `RunService_GetFilterFields`. message GetFilterFieldsResponse { diff --git a/protos/sift/saved_searches/v1/saved_searches.proto b/protos/sift/saved_searches/v1/saved_searches.proto index 0efe17e61a..cb868397b1 100644 --- a/protos/sift/saved_searches/v1/saved_searches.proto +++ b/protos/sift/saved_searches/v1/saved_searches.proto @@ -151,6 +151,13 @@ message ListSavedSearchesRequest { // This field is only required if your user belongs to multiple organizations. string organization_id = 4 [(google.api.field_behavior) = OPTIONAL]; + + // How to order the retrieved saved searches. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + // Available fields to order_by are `name`, `created_date`, and `modified_date`. + // If left empty, items are ordered by `created_date` in ascending order (oldest-first). + // For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + // Example: "created_date desc,modified_date" + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } // The response of a call to `SavedSearchService_ListSavedSearchesResponse`. diff --git a/protos/sift/tags/v1/tags.proto b/protos/sift/tags/v1/tags.proto index 7745558f51..68e8f4e80d 100644 --- a/protos/sift/tags/v1/tags.proto +++ b/protos/sift/tags/v1/tags.proto @@ -5,7 +5,6 @@ package sift.tags.v1; import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; - message Tag { string tag_id = 1 [(google.api.field_behavior) = REQUIRED]; string name = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/user_defined_functions/v1/user_defined_functions.proto b/protos/sift/user_defined_functions/v1/user_defined_functions.proto index 5a7e4cd2ec..26301c94e2 100644 --- a/protos/sift/user_defined_functions/v1/user_defined_functions.proto +++ b/protos/sift/user_defined_functions/v1/user_defined_functions.proto @@ -11,7 +11,6 @@ import "sift/common/type/v1/user_defined_functions.proto"; import "sift/metadata/v1/metadata.proto"; import "sift/rules/v1/rules.proto"; - service UserDefinedFunctionService { // Retrieve the latest version of a user defined function rpc GetUserDefinedFunction(GetUserDefinedFunctionRequest) returns (GetUserDefinedFunctionResponse) { @@ -117,9 +116,7 @@ service UserDefinedFunctionService { // If `user_defined_function_id` is provided then all other arguments will be ignored. The argument `user_defined_function_id` // should not be used together with `name`. message GetUserDefinedFunctionRequest { - string user_defined_function_id = 1 [ - (google.api.field_behavior) = OPTIONAL - ]; + string user_defined_function_id = 1 [(google.api.field_behavior) = OPTIONAL]; string name = 2 [(google.api.field_behavior) = OPTIONAL]; } @@ -129,9 +126,7 @@ message GetUserDefinedFunctionResponse { // The request for a call to `UserDefinedFunctionService_GetUserDefinedFunctionVersion` to retrieve a specific version of a user defined function. message GetUserDefinedFunctionVersionRequest { - string user_defined_function_version_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string user_defined_function_version_id = 1 [(google.api.field_behavior) = REQUIRED]; } message GetUserDefinedFunctionVersionResponse { @@ -142,13 +137,9 @@ message GetUserDefinedFunctionVersionResponse { message GetUserDefinedFunctionDependentsRequest { uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; oneof user_defined_function { - string user_defined_function_id = 2 [ - (google.api.field_behavior) = OPTIONAL - ]; + string user_defined_function_id = 2 [(google.api.field_behavior) = OPTIONAL]; string user_defined_function_name = 3 [(google.api.field_behavior) = OPTIONAL]; - string user_defined_function_version_id = 4 [ - (google.api.field_behavior) = OPTIONAL - ]; + string user_defined_function_version_id = 4 [(google.api.field_behavior) = OPTIONAL]; } } @@ -163,9 +154,7 @@ message GetUserDefinedFunctionDependentsResponse { // The request for a call to `UserDefinedFunctionService_GetUserDefinedFunctionVersions` to retrieve versions of user defined functions. message GetUserDefinedFunctionVersionsRequest { - repeated string user_defined_function_version_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string user_defined_function_version_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message GetUserDefinedFunctionVersionsResponse { @@ -173,9 +162,7 @@ message GetUserDefinedFunctionVersionsResponse { } message CreateUserDefinedFunctionRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string name = 1 [(google.api.field_behavior) = REQUIRED]; optional string description = 2 [(google.api.field_behavior) = OPTIONAL]; string expression = 3 [(google.api.field_behavior) = REQUIRED]; repeated sift.common.type.v1.FunctionInput function_inputs = 4 [(google.api.field_behavior) = REQUIRED]; diff --git a/protos/sift/user_groups/v2/user_groups.proto b/protos/sift/user_groups/v2/user_groups.proto index fd482fa722..97356fedc0 100644 --- a/protos/sift/user_groups/v2/user_groups.proto +++ b/protos/sift/user_groups/v2/user_groups.proto @@ -99,15 +99,11 @@ message UserGroup { string role_id = 3 [(google.api.field_behavior) = OPTIONAL]; bool is_default = 4 [(google.api.field_behavior) = REQUIRED]; message Resource { - repeated string asset_ids = 1 [ - (google.api.field_behavior) = OPTIONAL - ]; + repeated string asset_ids = 1 [(google.api.field_behavior) = OPTIONAL]; bool all_assets = 2 [(google.api.field_behavior) = REQUIRED]; } Resource resources = 6 [(google.api.field_behavior) = OPTIONAL]; - repeated string user_ids = 7 [ - (google.api.field_behavior) = OPTIONAL - ]; + repeated string user_ids = 7 [(google.api.field_behavior) = OPTIONAL]; bool is_external = 8 [(google.api.field_behavior) = REQUIRED]; } @@ -173,9 +169,7 @@ message UpdateUserGroupRequest { UserGroup user_group = 1 [(google.api.field_behavior) = REQUIRED]; // The list of fields to update. - google.protobuf.FieldMask update_mask = 2 [ - (google.api.field_behavior) = REQUIRED - ]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } message UpdateUserGroupResponse { @@ -183,39 +177,27 @@ message UpdateUserGroupResponse { } message DeleteUserGroupRequest { - string user_group_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string user_group_id = 1 [(google.api.field_behavior) = REQUIRED]; } message DeleteUserGroupResponse {} message AddUserToUserGroupRequest { - string user_group_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; - string user_id = 2 [ - (google.api.field_behavior) = REQUIRED - ]; + string user_group_id = 1 [(google.api.field_behavior) = REQUIRED]; + string user_id = 2 [(google.api.field_behavior) = REQUIRED]; } message AddUserToUserGroupResponse {} message RemoveUserFromUserGroupRequest { - string user_group_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; - string user_id = 2 [ - (google.api.field_behavior) = REQUIRED - ]; + string user_group_id = 1 [(google.api.field_behavior) = REQUIRED]; + string user_id = 2 [(google.api.field_behavior) = REQUIRED]; } message RemoveUserFromUserGroupResponse {} message GetUserGroupsForAssetsRequest { - repeated string asset_ids = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated string asset_ids = 1 [(google.api.field_behavior) = REQUIRED]; } message GetUserGroupsForAssetsResponse { diff --git a/protos/sift/webhooks/v1/webhooks.proto b/protos/sift/webhooks/v1/webhooks.proto index fa5486e3c9..c37c7b468f 100644 --- a/protos/sift/webhooks/v1/webhooks.proto +++ b/protos/sift/webhooks/v1/webhooks.proto @@ -8,7 +8,6 @@ import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; - service WebhookService { // Retrieve a webhook by ID. rpc GetWebhook(GetWebhookRequest) returns (GetWebhookResponse) { @@ -140,29 +139,17 @@ service WebhookService { } message Webhook { - string webhook_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; - string organization_id = 2 [ - (google.api.field_behavior) = REQUIRED - ]; - string target_url = 3 [ - (google.api.field_behavior) = REQUIRED - ]; - string name = 4 [ - (google.api.field_behavior) = REQUIRED - ]; + string webhook_id = 1 [(google.api.field_behavior) = REQUIRED]; + string organization_id = 2 [(google.api.field_behavior) = REQUIRED]; + string target_url = 3 [(google.api.field_behavior) = REQUIRED]; + string name = 4 [(google.api.field_behavior) = REQUIRED]; WebhookEventType event_type = 5 [(google.api.field_behavior) = REQUIRED]; optional string payload = 6 [(google.api.field_behavior) = OPTIONAL]; google.protobuf.Timestamp created_date = 7 [(google.api.field_behavior) = REQUIRED]; google.protobuf.Timestamp modified_date = 8 [(google.api.field_behavior) = REQUIRED]; optional google.protobuf.Timestamp archived_date = 9 [(google.api.field_behavior) = OPTIONAL]; - string created_by_user_id = 10 [ - (google.api.field_behavior) = REQUIRED - ]; - string modified_by_user_id = 11 [ - (google.api.field_behavior) = REQUIRED - ]; + string created_by_user_id = 10 [(google.api.field_behavior) = REQUIRED]; + string modified_by_user_id = 11 [(google.api.field_behavior) = REQUIRED]; repeated WebhookHttpHeader http_headers = 12 [(google.api.field_behavior) = REQUIRED]; bool is_archived = 13 [(google.api.field_behavior) = REQUIRED]; } @@ -173,16 +160,10 @@ enum WebhookEventType { } message WebhookLog { - string webhook_log_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; - string webhook_id = 2 [ - (google.api.field_behavior) = REQUIRED - ]; + string webhook_log_id = 1 [(google.api.field_behavior) = REQUIRED]; + string webhook_id = 2 [(google.api.field_behavior) = REQUIRED]; string event_id = 3 [(google.api.field_behavior) = REQUIRED]; - string organization_id = 4 [ - (google.api.field_behavior) = REQUIRED - ]; + string organization_id = 4 [(google.api.field_behavior) = REQUIRED]; WebhookLogStatus status = 5 [(google.api.field_behavior) = REQUIRED]; optional string payload = 6 [(google.api.field_behavior) = OPTIONAL]; uint32 retry_attempt_number = 7 [(google.api.field_behavior) = REQUIRED]; @@ -204,9 +185,7 @@ message WebhookSignatureKey { } message WebhookHttpHeader { - string name = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string name = 1 [(google.api.field_behavior) = REQUIRED]; string value = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -219,9 +198,7 @@ enum WebhookLogStatus { // The request for a call to `WebhookService_GetWebhook` to retrieve a webhook. message GetWebhookRequest { - string webhook_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + string webhook_id = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `WebhookService_GetWebhook`. @@ -237,9 +214,7 @@ message UpdateWebhookRequest { // The list of fields to be updated. The fields available to be updated are // 'target_url', 'name', 'event_type', 'payload', 'http_headers', 'archived_date', 'is_archived'. - google.protobuf.FieldMask update_mask = 2 [ - (google.api.field_behavior) = REQUIRED - ]; + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `WebhookService_UpdateWebhook`. To archive a webhook, specify `archived_date` @@ -252,12 +227,8 @@ message UpdateWebhookResponse { // The request for a call to `WebhookService_CreateWebhook` to create a webhook. message CreateWebhookRequest { - string name = 1 [ - (google.api.field_behavior) = REQUIRED - ]; - string target_url = 2 [ - (google.api.field_behavior) = REQUIRED - ]; + string name = 1 [(google.api.field_behavior) = REQUIRED]; + string target_url = 2 [(google.api.field_behavior) = REQUIRED]; WebhookEventType event_type = 3 [(google.api.field_behavior) = REQUIRED]; optional string payload = 4 [(google.api.field_behavior) = OPTIONAL]; repeated WebhookHttpHeader http_headers = 5 [(google.api.field_behavior) = REQUIRED]; @@ -274,9 +245,7 @@ message ListWebhooksRequest { // The service may return fewer than this value. // If unspecified, at most 50 runs will be returned. // The maximum value is 1000. - uint32 page_size = 1 [ - (google.api.field_behavior) = OPTIONAL - ]; + uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; // A page token, received from a previous `ListWebhooks` call. // Provide this to retrieve the subsequent page. @@ -368,9 +337,7 @@ message ListWebhookLogsRequest { // The service may return fewer than this value. // If unspecified, at most 50 runs will be returned. // The maximum value is 1000. - uint32 page_size = 1 [ - (google.api.field_behavior) = OPTIONAL - ]; + uint32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; // A page token, received from a previous `ListWebhookLogs` call. // Provide this to retrieve the subsequent page. @@ -398,12 +365,8 @@ message ListWebhookLogsResponse { // Request to create a single webhook log entry. message CreateWebhookLogRequest { - string webhook_id = 1 [ - (google.api.field_behavior) = REQUIRED - ]; - string event_id = 2 [ - (google.api.field_behavior) = REQUIRED - ]; + string webhook_id = 1 [(google.api.field_behavior) = REQUIRED]; + string event_id = 2 [(google.api.field_behavior) = REQUIRED]; uint32 retry_attempt_number = 3 [(google.api.field_behavior) = REQUIRED]; WebhookLogStatus status = 4 [(google.api.field_behavior) = REQUIRED]; optional string payload = 5 [(google.api.field_behavior) = REQUIRED]; @@ -413,9 +376,7 @@ message CreateWebhookLogRequest { // The request for a call to `WebhookService_BatchCreateWebhookLogs` to create a batch of webhook logs. message BatchCreateWebhookLogsRequest { - repeated CreateWebhookLogRequest requests = 1 [ - (google.api.field_behavior) = REQUIRED - ]; + repeated CreateWebhookLogRequest requests = 1 [(google.api.field_behavior) = REQUIRED]; } // The response of a call to `WebhookService_BatchCreateWebhookResponse`. diff --git a/python/lib/sift/common/v1/filter_field_pb2.py b/python/lib/sift/common/v1/filter_field_pb2.py index 842ecf23e9..0b87eca4f3 100644 --- a/python/lib/sift/common/v1/filter_field_pb2.py +++ b/python/lib/sift/common/v1/filter_field_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!sift/common/v1/filter_field.proto\x12\x0esift.common.v1\"\xb1\x02\n\x0b\x46ilterField\x12\x1d\n\nfield_name\x18\x01 \x01(\tR\tfieldName\x12\x33\n\x04type\x18\x02 \x01(\x0e\x32\x1f.sift.common.v1.FilterFieldTypeR\x04type\x12\x1f\n\x0b\x65num_values\x18\x03 \x03(\tR\nenumValues\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12!\n\x0c\x64isplay_name\x18\x05 \x01(\tR\x0b\x64isplayName\x12\x1c\n\toperators\x18\x06 \x03(\tR\toperators\x12\x1c\n\tfunctions\x18\x07 \x03(\tR\tfunctions\x12\x1f\n\x08nullable\x18\x08 \x01(\x08H\x00R\x08nullable\x88\x01\x01\x42\x0b\n\t_nullable*\xa0\x02\n\x0f\x46ilterFieldType\x12!\n\x1d\x46ILTER_FIELD_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x46ILTER_FIELD_TYPE_STRING\x10\x01\x12\x1f\n\x1b\x46ILTER_FIELD_TYPE_TIMESTAMP\x10\x02\x12\x19\n\x15\x46ILTER_FIELD_TYPE_INT\x10\x03\x12\x1a\n\x16\x46ILTER_FIELD_TYPE_BOOL\x10\x04\x12\x1e\n\x1a\x46ILTER_FIELD_TYPE_DURATION\x10\x05\x12\x1c\n\x18\x46ILTER_FIELD_TYPE_DOUBLE\x10\x06\x12\x1a\n\x16\x46ILTER_FIELD_TYPE_ENUM\x10\x07\x12\x1a\n\x16\x46ILTER_FIELD_TYPE_UUID\x10\x08\x42\x80\x01\n\x12\x63om.sift.common.v1B\x10\x46ilterFieldProtoP\x01\xa2\x02\x03SCX\xaa\x02\x0eSift.Common.V1\xca\x02\x0eSift\\Common\\V1\xe2\x02\x1aSift\\Common\\V1\\GPBMetadata\xea\x02\x10Sift::Common::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!sift/common/v1/filter_field.proto\x12\x0esift.common.v1\"\x86\x04\n\x0b\x46ilterField\x12\x1d\n\nfield_name\x18\x01 \x01(\tR\tfieldName\x12\x33\n\x04type\x18\x02 \x01(\x0e\x32\x1f.sift.common.v1.FilterFieldTypeR\x04type\x12\x1f\n\x0b\x65num_values\x18\x03 \x03(\tR\nenumValues\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12!\n\x0c\x64isplay_name\x18\x05 \x01(\tR\x0b\x64isplayName\x12\x1c\n\toperators\x18\x06 \x03(\tR\toperators\x12\x1c\n\tfunctions\x18\x07 \x03(\tR\tfunctions\x12\x1f\n\x08nullable\x18\x08 \x01(\x08H\x00R\x08nullable\x88\x01\x01\x12\x16\n\x06\x65ntity\x18\t \x01(\tR\x06\x65ntity\x12\x12\n\x04name\x18\n \x01(\tR\x04name\x12\x10\n\x03key\x18\x0b \x01(\tR\x03key\x12>\n\nfield_kind\x18\x0c \x01(\x0e\x32\x1f.sift.common.v1.FilterFieldKindR\tfieldKind\x12\x33\n\x06\x66ields\x18\r \x03(\x0b\x32\x1b.sift.common.v1.FilterFieldR\x06\x66ields\x12 \n\x0bquantifiers\x18\x0e \x03(\tR\x0bquantifiersB\x0b\n\t_nullable*\xa0\x02\n\x0f\x46ilterFieldType\x12!\n\x1d\x46ILTER_FIELD_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x46ILTER_FIELD_TYPE_STRING\x10\x01\x12\x1f\n\x1b\x46ILTER_FIELD_TYPE_TIMESTAMP\x10\x02\x12\x19\n\x15\x46ILTER_FIELD_TYPE_INT\x10\x03\x12\x1a\n\x16\x46ILTER_FIELD_TYPE_BOOL\x10\x04\x12\x1e\n\x1a\x46ILTER_FIELD_TYPE_DURATION\x10\x05\x12\x1c\n\x18\x46ILTER_FIELD_TYPE_DOUBLE\x10\x06\x12\x1a\n\x16\x46ILTER_FIELD_TYPE_ENUM\x10\x07\x12\x1a\n\x16\x46ILTER_FIELD_TYPE_UUID\x10\x08*\xae\x01\n\x0f\x46ilterFieldKind\x12!\n\x1d\x46ILTER_FIELD_KIND_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x46ILTER_FIELD_KIND_SCALAR\x10\x01\x12\x19\n\x15\x46ILTER_FIELD_KIND_MAP\x10\x02\x12\x1e\n\x1a\x46ILTER_FIELD_KIND_RELATION\x10\x03\x12\x1f\n\x1b\x46ILTER_FIELD_KIND_DIRECTIVE\x10\x04\x42\x80\x01\n\x12\x63om.sift.common.v1B\x10\x46ilterFieldProtoP\x01\xa2\x02\x03SCX\xaa\x02\x0eSift.Common.V1\xca\x02\x0eSift\\Common\\V1\xe2\x02\x1aSift\\Common\\V1\\GPBMetadata\xea\x02\x10Sift::Common::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -22,8 +22,10 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\022com.sift.common.v1B\020FilterFieldProtoP\001\242\002\003SCX\252\002\016Sift.Common.V1\312\002\016Sift\\Common\\V1\342\002\032Sift\\Common\\V1\\GPBMetadata\352\002\020Sift::Common::V1' - _globals['_FILTERFIELDTYPE']._serialized_start=362 - _globals['_FILTERFIELDTYPE']._serialized_end=650 + _globals['_FILTERFIELDTYPE']._serialized_start=575 + _globals['_FILTERFIELDTYPE']._serialized_end=863 + _globals['_FILTERFIELDKIND']._serialized_start=866 + _globals['_FILTERFIELDKIND']._serialized_end=1040 _globals['_FILTERFIELD']._serialized_start=54 - _globals['_FILTERFIELD']._serialized_end=359 + _globals['_FILTERFIELD']._serialized_end=572 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/common/v1/filter_field_pb2.pyi b/python/lib/sift/common/v1/filter_field_pb2.pyi index 30ea0e5e98..f660482b7e 100644 --- a/python/lib/sift/common/v1/filter_field_pb2.pyi +++ b/python/lib/sift/common/v1/filter_field_pb2.pyi @@ -49,6 +49,61 @@ FILTER_FIELD_TYPE_ENUM: FilterFieldType.ValueType # 7 FILTER_FIELD_TYPE_UUID: FilterFieldType.ValueType # 8 global___FilterFieldType = FilterFieldType +class _FilterFieldKind: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _FilterFieldKindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FilterFieldKind.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + FILTER_FIELD_KIND_UNSPECIFIED: _FilterFieldKind.ValueType # 0 + """Unset. Treated as FILTER_FIELD_KIND_SCALAR for backward compatibility.""" + FILTER_FIELD_KIND_SCALAR: _FilterFieldKind.ValueType # 1 + """A typed column: one operator plus one value editor. `type` is the value + type and the grammar resolves operators/functions from it. + """ + FILTER_FIELD_KIND_MAP: _FilterFieldKind.ValueType # 2 + """A dynamic key/value family (e.g. metadata). `name` is the map namespace and + `key` the chosen index. `type` is UNSPECIFIED because the value type is the + chosen key's type, resolved per key via the grammar. + """ + FILTER_FIELD_KIND_RELATION: _FilterFieldKind.ValueType # 3 + """A has-many collection filtered by a CEL comprehension + (e.g. measurements.exists(m, m.name == "humidity" && m.numeric_value > 50)). + See the recursive `fields` and `quantifiers` below. + """ + FILTER_FIELD_KIND_DIRECTIVE: _FilterFieldKind.ValueType # 4 + """A pseudo-field (e.g. include_archived) that resolves to query shape rather + than a column. + """ + +class FilterFieldKind(_FilterFieldKind, metaclass=_FilterFieldKindEnumTypeWrapper): + """Describes the structural shape of a filter field: how a client builds a + predicate for it. This is orthogonal to FilterFieldType (the value's data + type) and to the entity/name/key identity (which field it is). + """ + +FILTER_FIELD_KIND_UNSPECIFIED: FilterFieldKind.ValueType # 0 +"""Unset. Treated as FILTER_FIELD_KIND_SCALAR for backward compatibility.""" +FILTER_FIELD_KIND_SCALAR: FilterFieldKind.ValueType # 1 +"""A typed column: one operator plus one value editor. `type` is the value +type and the grammar resolves operators/functions from it. +""" +FILTER_FIELD_KIND_MAP: FilterFieldKind.ValueType # 2 +"""A dynamic key/value family (e.g. metadata). `name` is the map namespace and +`key` the chosen index. `type` is UNSPECIFIED because the value type is the +chosen key's type, resolved per key via the grammar. +""" +FILTER_FIELD_KIND_RELATION: FilterFieldKind.ValueType # 3 +"""A has-many collection filtered by a CEL comprehension +(e.g. measurements.exists(m, m.name == "humidity" && m.numeric_value > 50)). +See the recursive `fields` and `quantifiers` below. +""" +FILTER_FIELD_KIND_DIRECTIVE: FilterFieldKind.ValueType # 4 +"""A pseudo-field (e.g. include_archived) that resolves to query shape rather +than a column. +""" +global___FilterFieldKind = FilterFieldKind + @typing.final class FilterField(google.protobuf.message.Message): """Describes a single field available for CEL filtering on a resource.""" @@ -63,6 +118,12 @@ class FilterField(google.protobuf.message.Message): OPERATORS_FIELD_NUMBER: builtins.int FUNCTIONS_FIELD_NUMBER: builtins.int NULLABLE_FIELD_NUMBER: builtins.int + ENTITY_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + KEY_FIELD_NUMBER: builtins.int + FIELD_KIND_FIELD_NUMBER: builtins.int + FIELDS_FIELD_NUMBER: builtins.int + QUANTIFIERS_FIELD_NUMBER: builtins.int field_name: builtins.str """The field name to use in CEL filter expressions (e.g., "run_id", "created_date").""" type: global___FilterFieldType.ValueType @@ -81,6 +142,28 @@ class FilterField(google.protobuf.message.Message): always holds a concrete value.) Optional so that an unset value means "unknown" rather than implicitly "not nullable". """ + entity: builtins.str + """The owning scope of the field (e.g. "report", "test_step"). Together with + `name` and `key` this is the structured identity of the field; `field_name` + is its deterministic CEL serialization, so the client never assembles or + parses it. Optional; empty when the field carries no structured identity. + """ + name: builtins.str + """The fixed field on the entity: a column, a map namespace (e.g. "metadata"), + or a relation (e.g. "measurements"). Optional. + + When the field corresponds to a field on the resource's own message, `name` + matches that field's name (e.g. `run_id` or `is_archived` on a run), so it + maps directly to the resource schema you already know. Fields that are + derived or computed and have no direct counterpart on the message + (e.g. `duration_string`) carry a descriptive name instead. + """ + key: builtins.str + """The dynamic map index when `name` is a map (e.g. the metadata key). Empty + when `name` is not a map. Optional. + """ + field_kind: global___FilterFieldKind.ValueType + """The structural shape of the field. Unset is treated as SCALAR.""" @property def enum_values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """If type is FILTER_FIELD_TYPE_ENUM, these are the valid string values.""" @@ -98,6 +181,20 @@ class FilterField(google.protobuf.message.Message): Display copy for each name comes from FilterGrammarService. """ + @property + def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FilterField]: + """For a RELATION field, the relation's filterable columns, each a full + FilterField (e.g. "name", "numeric_value", "passed" for measurements). + Empty for non-relation kinds. + """ + + @property + def quantifiers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """For a RELATION field, the comprehension macros that apply + (e.g. "exists", "all", "exists_one"). The client picks one, then composes + inner predicates over `fields`. Empty for non-relation kinds. + """ + def __init__( self, *, @@ -109,9 +206,15 @@ class FilterField(google.protobuf.message.Message): operators: collections.abc.Iterable[builtins.str] | None = ..., functions: collections.abc.Iterable[builtins.str] | None = ..., nullable: builtins.bool | None = ..., + entity: builtins.str = ..., + name: builtins.str = ..., + key: builtins.str = ..., + field_kind: global___FilterFieldKind.ValueType = ..., + fields: collections.abc.Iterable[global___FilterField] | None = ..., + quantifiers: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["_nullable", b"_nullable", "nullable", b"nullable"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_nullable", b"_nullable", "description", b"description", "display_name", b"display_name", "enum_values", b"enum_values", "field_name", b"field_name", "functions", b"functions", "nullable", b"nullable", "operators", b"operators", "type", b"type"]) -> None: ... + def ClearField(self, field_name: typing.Literal["_nullable", b"_nullable", "description", b"description", "display_name", b"display_name", "entity", b"entity", "enum_values", b"enum_values", "field_kind", b"field_kind", "field_name", b"field_name", "fields", b"fields", "functions", b"functions", "key", b"key", "name", b"name", "nullable", b"nullable", "operators", b"operators", "quantifiers", b"quantifiers", "type", b"type"]) -> None: ... def WhichOneof(self, oneof_group: typing.Literal["_nullable", b"_nullable"]) -> typing.Literal["nullable"] | None: ... global___FilterField = FilterField diff --git a/python/lib/sift/data_imports/v2/data_imports_pb2.py b/python/lib/sift/data_imports/v2/data_imports_pb2.py index 427d7e097c..dd3494fab5 100644 --- a/python/lib/sift/data_imports/v2/data_imports_pb2.py +++ b/python/lib/sift/data_imports/v2/data_imports_pb2.py @@ -19,7 +19,7 @@ from sift.common.type.v1 import channel_config_pb2 as sift_dot_common_dot_type_dot_v1_dot_channel__config__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'sift/data_imports/v2/data_imports.proto\x12\x14sift.data_imports.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a(sift/common/type/v1/channel_config.proto\"\xb8\x04\n\x1e\x43reateDataImportFromUrlRequest\x12\x15\n\x03url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x03url\x12\x43\n\ncsv_config\x18\x02 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\x04 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\x12\x46\n\x0bhdf5_config\x18\x06 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigB\x03\xe0\x41\x01R\nhdf5Config\x12I\n\x0c\x62\x61tch_config\x18\x07 \x01(\x0b\x32!.sift.data_imports.v2.BatchConfigB\x03\xe0\x41\x01R\x0b\x62\x61tchConfig\x12\x46\n\x0bulog_config\x18\x08 \x01(\x0b\x32 .sift.data_imports.v2.UlogConfigB\x03\xe0\x41\x01R\nulogConfig\"G\n\x1f\x43reateDataImportFromUrlResponse\x12$\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tR\x0c\x64\x61taImportId\"A\n\x14GetDataImportRequest\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\"Z\n\x15GetDataImportResponse\x12\x41\n\x0b\x64\x61ta_import\x18\x01 \x01(\x0b\x32 .sift.data_imports.v2.DataImportR\ndataImport\"\xa4\x04\n!CreateDataImportFromUploadRequest\x12\x43\n\ncsv_config\x18\x01 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\x04 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\x12\x46\n\x0bhdf5_config\x18\x06 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigB\x03\xe0\x41\x01R\nhdf5Config\x12I\n\x0c\x62\x61tch_config\x18\x07 \x01(\x0b\x32!.sift.data_imports.v2.BatchConfigB\x03\xe0\x41\x01R\x0b\x62\x61tchConfig\x12\x46\n\x0bulog_config\x18\x08 \x01(\x0b\x32 .sift.data_imports.v2.UlogConfigB\x03\xe0\x41\x01R\nulogConfig\"i\n\"CreateDataImportFromUploadResponse\x12\x1d\n\nupload_url\x18\x01 \x01(\tR\tuploadUrl\x12$\n\x0e\x64\x61ta_import_id\x18\x02 \x01(\tR\x0c\x64\x61taImportId\"\xc8\x03\n\tCsvConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12$\n\x0e\x66irst_data_row\x18\x04 \x01(\rR\x0c\x66irstDataRow\x12I\n\x0btime_column\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.CsvTimeColumnH\x00R\ntimeColumn\x88\x01\x01\x12S\n\x0c\x64\x61ta_columns\x18\x06 \x03(\x0b\x32\x30.sift.data_imports.v2.CsvConfig.DataColumnsEntryR\x0b\x64\x61taColumns\x12#\n\x08num_rows\x18\x07 \x01(\x04\x42\x03\xe0\x41\x01H\x01R\x07numRows\x88\x01\x01\x1a\x62\n\x10\x44\x61taColumnsEntry\x12\x10\n\x03key\x18\x01 \x01(\rR\x03key\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\x05value:\x02\x38\x01\x42\x0e\n\x0c_time_columnB\x0b\n\t_num_rows\"\xd7\x01\n\rCsvTimeColumn\x12#\n\rcolumn_number\x18\x01 \x01(\rR\x0c\x63olumnNumber\x12\x38\n\x06\x66ormat\x18\x02 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatR\x06\x66ormat\x12O\n\x13relative_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x42\x16\n\x14_relative_start_time\"`\n\x13\x44\x65tectConfigRequest\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\x12\x35\n\x04type\x18\x02 \x01(\x0e\x32!.sift.data_imports.v2.DataTypeKeyR\x04type\"\xa8\x02\n\x14\x44\x65tectConfigResponse\x12>\n\ncsv_config\x18\x01 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigR\tcsvConfig\x12J\n\x0eparquet_config\x18\x02 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigR\rparquetConfig\x12\x41\n\x0bhdf5_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigR\nhdf5Config\x12\x41\n\x0btdms_config\x18\x04 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigR\ntdmsConfig\"i\n\nCh10Config\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12!\n\x0cscale_values\x18\x03 \x01(\x08R\x0bscaleValues\"\x80\x03\n\x0eTdmsDataConfig\x12\x1d\n\ngroup_name\x18\x01 \x01(\tR\tgroupName\x12!\n\x0c\x63hannel_name\x18\x02 \x01(\tR\x0b\x63hannelName\x12I\n\x0e\x63hannel_config\x18\x03 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\rchannelConfig\x12/\n\x11time_channel_name\x18\x04 \x01(\tH\x00R\x0ftimeChannelName\x88\x01\x01\x12\x1b\n\x06scaled\x18\x05 \x01(\x08H\x01R\x06scaled\x88\x01\x01\x12\\\n\x11\x63omplex_component\x18\x06 \x01(\x0e\x32*.sift.data_imports.v2.TdmsComplexComponentH\x02R\x10\x63omplexComponent\x88\x01\x01\x42\x14\n\x12_time_channel_nameB\t\n\x07_scaledB\x14\n\x12_complex_component\"\xe1\x04\n\nTDMSConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12J\n\x13start_time_override\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x11startTimeOverride\x12$\n\tfile_size\x18\x04 \x01(\x04\x42\x02\x18\x01H\x00R\x08\x66ileSize\x88\x01\x01\x12\x15\n\x06run_id\x18\x05 \x01(\tR\x05runId\x12\x38\n\x04\x64\x61ta\x18\x06 \x03(\x0b\x32$.sift.data_imports.v2.TdmsDataConfigR\x04\x64\x61ta\x12Q\n\x0f\x66\x61llback_method\x18\x07 \x01(\x0e\x32(.sift.data_imports.v2.TdmsFallbackMethodR\x0e\x66\x61llbackMethod\x12\x46\n\x0btime_format\x18\x08 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatH\x01R\ntimeFormat\x88\x01\x01\x12O\n\x13relative_start_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02R\x11relativeStartTime\x88\x01\x01\x12\x34\n\x16import_file_properties\x18\n \x01(\x08R\x14importFilePropertiesB\x0c\n\n_file_sizeB\x0e\n\x0c_time_formatB\x16\n\x14_relative_start_time\"\xca\x01\n\x11ParquetTimeColumn\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12\x38\n\x06\x66ormat\x18\x02 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatR\x06\x66ormat\x12O\n\x13relative_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x42\x16\n\x14_relative_start_time\"r\n\x11ParquetDataColumn\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12I\n\x0e\x63hannel_config\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\rchannelConfig\"l\n\rParquetColumn\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12G\n\rcolumn_config\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\x0c\x63olumnConfig\"\xb0\x01\n\x18ParquetFlatDatasetConfig\x12H\n\x0btime_column\x18\x01 \x01(\x0b\x32\'.sift.data_imports.v2.ParquetTimeColumnR\ntimeColumn\x12J\n\x0c\x64\x61ta_columns\x18\x02 \x03(\x0b\x32\'.sift.data_imports.v2.ParquetDataColumnR\x0b\x64\x61taColumns\"h\n,ParquetSingleChannelPerRowMultiChannelConfig\x12\x1b\n\tname_path\x18\x01 \x01(\tR\x08namePath\x12\x1b\n\tdata_path\x18\x02 \x01(\tR\x08\x64\x61taPath\"\x8a\x01\n-ParquetSingleChannelPerRowSingleChannelConfig\x12\x1b\n\tdata_path\x18\x01 \x01(\tR\x08\x64\x61taPath\x12<\n\x07\x63hannel\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\x07\x63hannel\"\x8e\x03\n ParquetSingleChannelPerRowConfig\x12H\n\x0btime_column\x18\x01 \x01(\x0b\x32\'.sift.data_imports.v2.ParquetTimeColumnR\ntimeColumn\x12=\n\x07\x63olumns\x18\x02 \x03(\x0b\x32#.sift.data_imports.v2.ParquetColumnR\x07\x63olumns\x12l\n\x0esingle_channel\x18\x03 \x01(\x0b\x32\x43.sift.data_imports.v2.ParquetSingleChannelPerRowSingleChannelConfigH\x00R\rsingleChannel\x12i\n\rmulti_channel\x18\x04 \x01(\x0b\x32\x42.sift.data_imports.v2.ParquetSingleChannelPerRowMultiChannelConfigH\x00R\x0cmultiChannelB\x08\n\x06\x63onfig\"\xe8\x03\n\rParquetConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12S\n\x0c\x66lat_dataset\x18\x04 \x01(\x0b\x32..sift.data_imports.v2.ParquetFlatDatasetConfigH\x00R\x0b\x66latDataset\x12m\n\x16single_channel_per_row\x18\x08 \x01(\x0b\x32\x36.sift.data_imports.v2.ParquetSingleChannelPerRowConfigH\x00R\x13singleChannelPerRow\x12#\n\rfooter_offset\x18\x05 \x01(\x04R\x0c\x66ooterOffset\x12#\n\rfooter_length\x18\x06 \x01(\rR\x0c\x66ooterLength\x12n\n\x19\x63omplex_types_import_mode\x18\x07 \x01(\x0e\x32\x33.sift.data_imports.v2.ParquetComplexTypesImportModeR\x16\x63omplexTypesImportModeB\x08\n\x06\x63onfig\"\xcc\x02\n\x0eHdf5DataConfig\x12!\n\x0ctime_dataset\x18\x01 \x01(\tR\x0btimeDataset\x12\x1d\n\ntime_index\x18\x02 \x01(\x04R\ttimeIndex\x12#\n\rvalue_dataset\x18\x03 \x01(\tR\x0cvalueDataset\x12\x1f\n\x0bvalue_index\x18\x04 \x01(\x04R\nvalueIndex\x12I\n\x0e\x63hannel_config\x18\x05 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\rchannelConfig\x12\"\n\ntime_field\x18\x06 \x01(\tH\x00R\ttimeField\x88\x01\x01\x12$\n\x0bvalue_field\x18\x07 \x01(\tH\x01R\nvalueField\x88\x01\x01\x42\r\n\x0b_time_fieldB\x0e\n\x0c_value_field\"\xc3\x02\n\nHdf5Config\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12\x38\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32$.sift.data_imports.v2.Hdf5DataConfigR\x04\x64\x61ta\x12\x41\n\x0btime_format\x18\x05 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatR\ntimeFormat\x12O\n\x13relative_start_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x42\x16\n\x14_relative_start_time\"\xb9\x01\n\x0eUlogDataConfig\x12!\n\x0cmessage_name\x18\x01 \x01(\tR\x0bmessageName\x12\x1a\n\x08instance\x18\x02 \x01(\x03R\x08instance\x12\x1d\n\nfield_name\x18\x03 \x01(\tR\tfieldName\x12I\n\x0e\x63hannel_config\x18\x04 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\rchannelConfig\"\x96\x03\n\nUlogConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12\x38\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32$.sift.data_imports.v2.UlogDataConfigR\x04\x64\x61ta\x12O\n\x13relative_start_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x12\x1b\n\tinfo_keys\x18\x06 \x03(\tR\x08infoKeys\x12\x1d\n\nparam_keys\x18\x07 \x03(\tR\tparamKeys\x12X\n\x12parse_error_policy\x18\x08 \x01(\x0e\x32*.sift.data_imports.v2.UlogParseErrorPolicyR\x10parseErrorPolicyB\x16\n\x14_relative_start_time\"\xbc\x05\n\x0b\x42\x61tchConfig\x12\x19\n\x08run_name\x18\x01 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x02 \x01(\tR\x05runId\x12\x1d\n\nasset_name\x18\x03 \x01(\tR\tassetName\x12M\n\x12\x64\x65\x66\x61ult_csv_config\x18\x04 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigR\x10\x64\x65\x66\x61ultCsvConfig\x12P\n\x13\x64\x65\x66\x61ult_tdms_config\x18\x05 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigR\x11\x64\x65\x66\x61ultTdmsConfig\x12Y\n\x16\x64\x65\x66\x61ult_parquet_config\x18\x06 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigR\x14\x64\x65\x66\x61ultParquetConfig\x12P\n\x13\x64\x65\x66\x61ult_hdf5_config\x18\x07 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigR\x11\x64\x65\x66\x61ultHdf5Config\x12P\n\x13\x64\x65\x66\x61ult_ulog_config\x18\t \x01(\x0b\x32 .sift.data_imports.v2.UlogConfigR\x11\x64\x65\x66\x61ultUlogConfig\x12U\n\x0c\x66ile_configs\x18\x08 \x03(\x0b\x32\x32.sift.data_imports.v2.BatchConfig.FileConfigsEntryR\x0b\x66ileConfigs\x1a\x65\n\x10\x46ileConfigsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12;\n\x05value\x18\x02 \x01(\x0b\x32%.sift.data_imports.v2.BatchFileConfigR\x05value:\x02\x38\x01\"\xb1\x03\n\x0f\x42\x61tchFileConfig\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32!.sift.data_imports.v2.DataTypeKeyR\x04type\x12@\n\ncsv_config\x18\x02 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigH\x00R\tcsvConfig\x12\x43\n\x0btdms_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigH\x00R\ntdmsConfig\x12L\n\x0eparquet_config\x18\x04 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigH\x00R\rparquetConfig\x12\x43\n\x0bhdf5_config\x18\x05 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigH\x00R\nhdf5Config\x12\x43\n\x0bulog_config\x18\x06 \x01(\x0b\x32 .sift.data_imports.v2.UlogConfigH\x00R\nulogConfigB\x08\n\x06\x63onfig\"\x9f\t\n\nDataImport\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\x12\x1d\n\nsource_url\x18\x03 \x01(\tR\tsourceUrl\x12\x43\n\x06status\x18\x04 \x01(\x0e\x32&.sift.data_imports.v2.DataImportStatusB\x03\xe0\x41\x02R\x06status\x12#\n\rerror_message\x18\x05 \x01(\tR\x0c\x65rrorMessage\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x43\n\ncsv_config\x18\x06 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\t \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\n \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x10 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\x12\x46\n\x0bhdf5_config\x18\x11 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigB\x03\xe0\x41\x01R\nhdf5Config\x12I\n\x0c\x62\x61tch_config\x18\x12 \x01(\x0b\x32!.sift.data_imports.v2.BatchConfigB\x03\xe0\x41\x01R\x0b\x62\x61tchConfig\x12\x46\n\x0bulog_config\x18\x13 \x01(\x0b\x32 .sift.data_imports.v2.UlogConfigB\x03\xe0\x41\x01R\nulogConfig\x12\x1f\n\x06run_id\x18\x0b \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12%\n\treport_id\x18\x0c \x01(\tB\x03\xe0\x41\x01H\x01R\x08reportId\x88\x01\x01\x12#\n\x08\x61sset_id\x18\r \x01(\tB\x03\xe0\x41\x01H\x02R\x07\x61ssetId\x88\x01\x01\x12L\n\x0f\x64\x61ta_start_time\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\rdataStartTime\x88\x01\x01\x12J\n\x0e\x64\x61ta_stop_time\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x04R\x0c\x64\x61taStopTime\x88\x01\x01\x42\t\n\x07_run_idB\x0c\n\n_report_idB\x0b\n\t_asset_idB\x12\n\x10_data_start_timeB\x11\n\x0f_data_stop_time\"\x9b\x01\n\x16ListDataImportsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x86\x01\n\x17ListDataImportsResponse\x12\x43\n\x0c\x64\x61ta_imports\x18\x01 \x03(\x0b\x32 .sift.data_imports.v2.DataImportR\x0b\x64\x61taImports\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"C\n\x16RetryDataImportRequest\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\"\x19\n\x17RetryDataImportResponse*\xf0\x03\n\nTimeFormat\x12\x1b\n\x17TIME_FORMAT_UNSPECIFIED\x10\x00\x12$\n TIME_FORMAT_RELATIVE_NANOSECONDS\x10\x01\x12%\n!TIME_FORMAT_RELATIVE_MICROSECONDS\x10\x02\x12%\n!TIME_FORMAT_RELATIVE_MILLISECONDS\x10\x03\x12 \n\x1cTIME_FORMAT_RELATIVE_SECONDS\x10\x04\x12 \n\x1cTIME_FORMAT_RELATIVE_MINUTES\x10\x05\x12\x1e\n\x1aTIME_FORMAT_RELATIVE_HOURS\x10\x06\x12 \n\x1cTIME_FORMAT_ABSOLUTE_RFC3339\x10\n\x12!\n\x1dTIME_FORMAT_ABSOLUTE_DATETIME\x10\x0b\x12%\n!TIME_FORMAT_ABSOLUTE_UNIX_SECONDS\x10\x0c\x12*\n&TIME_FORMAT_ABSOLUTE_UNIX_MILLISECONDS\x10\r\x12*\n&TIME_FORMAT_ABSOLUTE_UNIX_MICROSECONDS\x10\x0e\x12)\n%TIME_FORMAT_ABSOLUTE_UNIX_NANOSECONDS\x10\x0f*\x80\x02\n\x0b\x44\x61taTypeKey\x12!\n\x19\x44\x41TA_TYPE_KEY_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x15\n\x11\x44\x41TA_TYPE_KEY_CSV\x10\x01\x12\x16\n\x12\x44\x41TA_TYPE_KEY_TDMS\x10\x02\x12\x16\n\x12\x44\x41TA_TYPE_KEY_CH10\x10\x03\x12%\n!DATA_TYPE_KEY_PARQUET_FLATDATASET\x10\x04\x12\x30\n,DATA_TYPE_KEY_PARQUET_SINGLE_CHANNEL_PER_ROW\x10\x05\x12\x16\n\x12\x44\x41TA_TYPE_KEY_HDF5\x10\x06\x12\x16\n\x12\x44\x41TA_TYPE_KEY_ULOG\x10\x07*\x8d\x01\n\x12TdmsFallbackMethod\x12(\n TDMS_FALLBACK_METHOD_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12&\n\"TDMS_FALLBACK_METHOD_FAIL_ON_ERROR\x10\x01\x12%\n!TDMS_FALLBACK_METHOD_IGNORE_ERROR\x10\x02*\x85\x01\n\x14TdmsComplexComponent\x12&\n\"TDMS_COMPLEX_COMPONENT_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTDMS_COMPLEX_COMPONENT_REAL\x10\x01\x12$\n TDMS_COMPLEX_COMPONENT_IMAGINARY\x10\x02*\x8b\x02\n\x1dParquetComplexTypesImportMode\x12\x35\n-PARQUET_COMPLEX_TYPES_IMPORT_MODE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12,\n(PARQUET_COMPLEX_TYPES_IMPORT_MODE_IGNORE\x10\x01\x12*\n&PARQUET_COMPLEX_TYPES_IMPORT_MODE_BOTH\x10\x02\x12,\n(PARQUET_COMPLEX_TYPES_IMPORT_MODE_STRING\x10\x03\x12+\n\'PARQUET_COMPLEX_TYPES_IMPORT_MODE_BYTES\x10\x04*\x94\x01\n\x14UlogParseErrorPolicy\x12\'\n#ULOG_PARSE_ERROR_POLICY_UNSPECIFIED\x10\x00\x12)\n%ULOG_PARSE_ERROR_POLICY_FAIL_ON_ERROR\x10\x01\x12(\n$ULOG_PARSE_ERROR_POLICY_IGNORE_ERROR\x10\x02*\xbf\x01\n\x10\x44\x61taImportStatus\x12&\n\x1e\x44\x41TA_IMPORT_STATUS_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x1e\n\x1a\x44\x41TA_IMPORT_STATUS_PENDING\x10\x01\x12\"\n\x1e\x44\x41TA_IMPORT_STATUS_IN_PROGRESS\x10\x02\x12 \n\x1c\x44\x41TA_IMPORT_STATUS_SUCCEEDED\x10\x03\x12\x1d\n\x19\x44\x41TA_IMPORT_STATUS_FAILED\x10\x04\x32\xa3\x0c\n\x11\x44\x61taImportService\x12\xa9\x02\n\x17\x43reateDataImportFromUrl\x12\x34.sift.data_imports.v2.CreateDataImportFromUrlRequest\x1a\x35.sift.data_imports.v2.CreateDataImportFromUrlResponse\"\xa0\x01\x92\x41z\x12\x17\x43reateDataImportFromUrl\x1a\x32\x43reates a data import from a file hosted at a url.*+DataImportService_CreateDataImportFromUrlV2\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v2/data-imports:url:\x01*\x12\xb2\x02\n\x1a\x43reateDataImportFromUpload\x12\x37.sift.data_imports.v2.CreateDataImportFromUploadRequest\x1a\x38.sift.data_imports.v2.CreateDataImportFromUploadResponse\"\xa0\x01\x92\x41w\x12\x1a\x43reateDataImportFromUpload\x1a)Creates a data import from a file upload.*.DataImportService_CreateDataImportFromUploadV2\x82\xd3\xe4\x93\x02 \"\x1b/api/v2/data-imports:upload:\x01*\x12\xef\x01\n\x0c\x44\x65tectConfig\x12).sift.data_imports.v2.DetectConfigRequest\x1a*.sift.data_imports.v2.DetectConfigResponse\"\x87\x01\x92\x41W\x12\x0c\x44\x65tectConfig\x1a%Detects the config for a data import.* DataImportService_DetectConfigV2\x82\xd3\xe4\x93\x02\'\"\"/api/v2/data-imports:detect-config:\x01*\x12\xde\x01\n\x0fListDataImports\x12,.sift.data_imports.v2.ListDataImportsRequest\x1a-.sift.data_imports.v2.ListDataImportsResponse\"n\x92\x41O\x12\x0fListDataImports\x1a\x17Lists all data imports.*#DataImportService_ListDataImportsV2\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v2/data-imports\x12\xf5\x01\n\x0fRetryDataImport\x12,.sift.data_imports.v2.RetryDataImportRequest\x1a-.sift.data_imports.v2.RetryDataImportResponse\"\x84\x01\x92\x41N\x12\x0fRetryDataImport\x1a\x16Retries a data import.*#DataImportService_RetryDataImportV2\x82\xd3\xe4\x93\x02-\"+/api/v2/data-imports/{data_import_id}:retry\x12\xe1\x01\n\rGetDataImport\x12*.sift.data_imports.v2.GetDataImportRequest\x1a+.sift.data_imports.v2.GetDataImportResponse\"w\x92\x41G\x12\rGetDataImport\x1a\x13Gets a data import.*!DataImportService_GetDataImportV2\x82\xd3\xe4\x93\x02\'\x12%/api/v2/data-imports/{data_import_id}B\xb4\x01\n\x18\x63om.sift.data_imports.v2B\x10\x44\x61taImportsProtoP\x01\xa2\x02\x03SDX\xaa\x02\x13Sift.DataImports.V2\xca\x02\x13Sift\\DataImports\\V2\xe2\x02\x1fSift\\DataImports\\V2\\GPBMetadata\xea\x02\x15Sift::DataImports::V2\x92\x41\x17\x12\x15\n\x13\x44\x61ta import serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'sift/data_imports/v2/data_imports.proto\x12\x14sift.data_imports.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a(sift/common/type/v1/channel_config.proto\"\xb8\x04\n\x1e\x43reateDataImportFromUrlRequest\x12\x15\n\x03url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x03url\x12\x43\n\ncsv_config\x18\x02 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\x04 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\x12\x46\n\x0bhdf5_config\x18\x06 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigB\x03\xe0\x41\x01R\nhdf5Config\x12I\n\x0c\x62\x61tch_config\x18\x07 \x01(\x0b\x32!.sift.data_imports.v2.BatchConfigB\x03\xe0\x41\x01R\x0b\x62\x61tchConfig\x12\x46\n\x0bulog_config\x18\x08 \x01(\x0b\x32 .sift.data_imports.v2.UlogConfigB\x03\xe0\x41\x01R\nulogConfig\"G\n\x1f\x43reateDataImportFromUrlResponse\x12$\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tR\x0c\x64\x61taImportId\"A\n\x14GetDataImportRequest\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\"Z\n\x15GetDataImportResponse\x12\x41\n\x0b\x64\x61ta_import\x18\x01 \x01(\x0b\x32 .sift.data_imports.v2.DataImportR\ndataImport\"\xa4\x04\n!CreateDataImportFromUploadRequest\x12\x43\n\ncsv_config\x18\x01 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\x04 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\x12\x46\n\x0bhdf5_config\x18\x06 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigB\x03\xe0\x41\x01R\nhdf5Config\x12I\n\x0c\x62\x61tch_config\x18\x07 \x01(\x0b\x32!.sift.data_imports.v2.BatchConfigB\x03\xe0\x41\x01R\x0b\x62\x61tchConfig\x12\x46\n\x0bulog_config\x18\x08 \x01(\x0b\x32 .sift.data_imports.v2.UlogConfigB\x03\xe0\x41\x01R\nulogConfig\"i\n\"CreateDataImportFromUploadResponse\x12\x1d\n\nupload_url\x18\x01 \x01(\tR\tuploadUrl\x12$\n\x0e\x64\x61ta_import_id\x18\x02 \x01(\tR\x0c\x64\x61taImportId\"\xf8\x03\n\tCsvConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12$\n\x0e\x66irst_data_row\x18\x04 \x01(\rR\x0c\x66irstDataRow\x12I\n\x0btime_column\x18\x05 \x01(\x0b\x32#.sift.data_imports.v2.CsvTimeColumnH\x00R\ntimeColumn\x88\x01\x01\x12S\n\x0c\x64\x61ta_columns\x18\x06 \x03(\x0b\x32\x30.sift.data_imports.v2.CsvConfig.DataColumnsEntryR\x0b\x64\x61taColumns\x12#\n\x08num_rows\x18\x07 \x01(\x04\x42\x03\xe0\x41\x01H\x01R\x07numRows\x88\x01\x01\x12.\n\x13use_embedded_config\x18\n \x01(\x08R\x11useEmbeddedConfig\x1a\x62\n\x10\x44\x61taColumnsEntry\x12\x10\n\x03key\x18\x01 \x01(\rR\x03key\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\x05value:\x02\x38\x01\x42\x0e\n\x0c_time_columnB\x0b\n\t_num_rows\"\xd7\x01\n\rCsvTimeColumn\x12#\n\rcolumn_number\x18\x01 \x01(\rR\x0c\x63olumnNumber\x12\x38\n\x06\x66ormat\x18\x02 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatR\x06\x66ormat\x12O\n\x13relative_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x42\x16\n\x14_relative_start_time\"`\n\x13\x44\x65tectConfigRequest\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\x12\x35\n\x04type\x18\x02 \x01(\x0e\x32!.sift.data_imports.v2.DataTypeKeyR\x04type\"\xa8\x02\n\x14\x44\x65tectConfigResponse\x12>\n\ncsv_config\x18\x01 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigR\tcsvConfig\x12J\n\x0eparquet_config\x18\x02 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigR\rparquetConfig\x12\x41\n\x0bhdf5_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigR\nhdf5Config\x12\x41\n\x0btdms_config\x18\x04 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigR\ntdmsConfig\"i\n\nCh10Config\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12!\n\x0cscale_values\x18\x03 \x01(\x08R\x0bscaleValues\"\x80\x03\n\x0eTdmsDataConfig\x12\x1d\n\ngroup_name\x18\x01 \x01(\tR\tgroupName\x12!\n\x0c\x63hannel_name\x18\x02 \x01(\tR\x0b\x63hannelName\x12I\n\x0e\x63hannel_config\x18\x03 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\rchannelConfig\x12/\n\x11time_channel_name\x18\x04 \x01(\tH\x00R\x0ftimeChannelName\x88\x01\x01\x12\x1b\n\x06scaled\x18\x05 \x01(\x08H\x01R\x06scaled\x88\x01\x01\x12\\\n\x11\x63omplex_component\x18\x06 \x01(\x0e\x32*.sift.data_imports.v2.TdmsComplexComponentH\x02R\x10\x63omplexComponent\x88\x01\x01\x42\x14\n\x12_time_channel_nameB\t\n\x07_scaledB\x14\n\x12_complex_component\"\xe1\x04\n\nTDMSConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12J\n\x13start_time_override\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x11startTimeOverride\x12$\n\tfile_size\x18\x04 \x01(\x04\x42\x02\x18\x01H\x00R\x08\x66ileSize\x88\x01\x01\x12\x15\n\x06run_id\x18\x05 \x01(\tR\x05runId\x12\x38\n\x04\x64\x61ta\x18\x06 \x03(\x0b\x32$.sift.data_imports.v2.TdmsDataConfigR\x04\x64\x61ta\x12Q\n\x0f\x66\x61llback_method\x18\x07 \x01(\x0e\x32(.sift.data_imports.v2.TdmsFallbackMethodR\x0e\x66\x61llbackMethod\x12\x46\n\x0btime_format\x18\x08 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatH\x01R\ntimeFormat\x88\x01\x01\x12O\n\x13relative_start_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02R\x11relativeStartTime\x88\x01\x01\x12\x34\n\x16import_file_properties\x18\n \x01(\x08R\x14importFilePropertiesB\x0c\n\n_file_sizeB\x0e\n\x0c_time_formatB\x16\n\x14_relative_start_time\"\xca\x01\n\x11ParquetTimeColumn\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12\x38\n\x06\x66ormat\x18\x02 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatR\x06\x66ormat\x12O\n\x13relative_start_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x42\x16\n\x14_relative_start_time\"r\n\x11ParquetDataColumn\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12I\n\x0e\x63hannel_config\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\rchannelConfig\"l\n\rParquetColumn\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12G\n\rcolumn_config\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\x0c\x63olumnConfig\"\xe0\x01\n\x18ParquetFlatDatasetConfig\x12H\n\x0btime_column\x18\x01 \x01(\x0b\x32\'.sift.data_imports.v2.ParquetTimeColumnR\ntimeColumn\x12J\n\x0c\x64\x61ta_columns\x18\x02 \x03(\x0b\x32\'.sift.data_imports.v2.ParquetDataColumnR\x0b\x64\x61taColumns\x12.\n\x13use_embedded_config\x18\x03 \x01(\x08R\x11useEmbeddedConfig\"h\n,ParquetSingleChannelPerRowMultiChannelConfig\x12\x1b\n\tname_path\x18\x01 \x01(\tR\x08namePath\x12\x1b\n\tdata_path\x18\x02 \x01(\tR\x08\x64\x61taPath\"\x8a\x01\n-ParquetSingleChannelPerRowSingleChannelConfig\x12\x1b\n\tdata_path\x18\x01 \x01(\tR\x08\x64\x61taPath\x12<\n\x07\x63hannel\x18\x02 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\x07\x63hannel\"\x8e\x03\n ParquetSingleChannelPerRowConfig\x12H\n\x0btime_column\x18\x01 \x01(\x0b\x32\'.sift.data_imports.v2.ParquetTimeColumnR\ntimeColumn\x12=\n\x07\x63olumns\x18\x02 \x03(\x0b\x32#.sift.data_imports.v2.ParquetColumnR\x07\x63olumns\x12l\n\x0esingle_channel\x18\x03 \x01(\x0b\x32\x43.sift.data_imports.v2.ParquetSingleChannelPerRowSingleChannelConfigH\x00R\rsingleChannel\x12i\n\rmulti_channel\x18\x04 \x01(\x0b\x32\x42.sift.data_imports.v2.ParquetSingleChannelPerRowMultiChannelConfigH\x00R\x0cmultiChannelB\x08\n\x06\x63onfig\"\xe8\x03\n\rParquetConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12S\n\x0c\x66lat_dataset\x18\x04 \x01(\x0b\x32..sift.data_imports.v2.ParquetFlatDatasetConfigH\x00R\x0b\x66latDataset\x12m\n\x16single_channel_per_row\x18\x08 \x01(\x0b\x32\x36.sift.data_imports.v2.ParquetSingleChannelPerRowConfigH\x00R\x13singleChannelPerRow\x12#\n\rfooter_offset\x18\x05 \x01(\x04R\x0c\x66ooterOffset\x12#\n\rfooter_length\x18\x06 \x01(\rR\x0c\x66ooterLength\x12n\n\x19\x63omplex_types_import_mode\x18\x07 \x01(\x0e\x32\x33.sift.data_imports.v2.ParquetComplexTypesImportModeR\x16\x63omplexTypesImportModeB\x08\n\x06\x63onfig\"\xcc\x02\n\x0eHdf5DataConfig\x12!\n\x0ctime_dataset\x18\x01 \x01(\tR\x0btimeDataset\x12\x1d\n\ntime_index\x18\x02 \x01(\x04R\ttimeIndex\x12#\n\rvalue_dataset\x18\x03 \x01(\tR\x0cvalueDataset\x12\x1f\n\x0bvalue_index\x18\x04 \x01(\x04R\nvalueIndex\x12I\n\x0e\x63hannel_config\x18\x05 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\rchannelConfig\x12\"\n\ntime_field\x18\x06 \x01(\tH\x00R\ttimeField\x88\x01\x01\x12$\n\x0bvalue_field\x18\x07 \x01(\tH\x01R\nvalueField\x88\x01\x01\x42\r\n\x0b_time_fieldB\x0e\n\x0c_value_field\"\xc3\x02\n\nHdf5Config\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12\x38\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32$.sift.data_imports.v2.Hdf5DataConfigR\x04\x64\x61ta\x12\x41\n\x0btime_format\x18\x05 \x01(\x0e\x32 .sift.data_imports.v2.TimeFormatR\ntimeFormat\x12O\n\x13relative_start_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x42\x16\n\x14_relative_start_time\"\xb9\x01\n\x0eUlogDataConfig\x12!\n\x0cmessage_name\x18\x01 \x01(\tR\x0bmessageName\x12\x1a\n\x08instance\x18\x02 \x01(\x03R\x08instance\x12\x1d\n\nfield_name\x18\x03 \x01(\tR\tfieldName\x12I\n\x0e\x63hannel_config\x18\x04 \x01(\x0b\x32\".sift.common.type.v1.ChannelConfigR\rchannelConfig\"\x96\x03\n\nUlogConfig\x12\x1d\n\nasset_name\x18\x01 \x01(\tR\tassetName\x12\x19\n\x08run_name\x18\x02 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x03 \x01(\tR\x05runId\x12\x38\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32$.sift.data_imports.v2.UlogDataConfigR\x04\x64\x61ta\x12O\n\x13relative_start_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x11relativeStartTime\x88\x01\x01\x12\x1b\n\tinfo_keys\x18\x06 \x03(\tR\x08infoKeys\x12\x1d\n\nparam_keys\x18\x07 \x03(\tR\tparamKeys\x12X\n\x12parse_error_policy\x18\x08 \x01(\x0e\x32*.sift.data_imports.v2.UlogParseErrorPolicyR\x10parseErrorPolicyB\x16\n\x14_relative_start_time\"\xbc\x05\n\x0b\x42\x61tchConfig\x12\x19\n\x08run_name\x18\x01 \x01(\tR\x07runName\x12\x15\n\x06run_id\x18\x02 \x01(\tR\x05runId\x12\x1d\n\nasset_name\x18\x03 \x01(\tR\tassetName\x12M\n\x12\x64\x65\x66\x61ult_csv_config\x18\x04 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigR\x10\x64\x65\x66\x61ultCsvConfig\x12P\n\x13\x64\x65\x66\x61ult_tdms_config\x18\x05 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigR\x11\x64\x65\x66\x61ultTdmsConfig\x12Y\n\x16\x64\x65\x66\x61ult_parquet_config\x18\x06 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigR\x14\x64\x65\x66\x61ultParquetConfig\x12P\n\x13\x64\x65\x66\x61ult_hdf5_config\x18\x07 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigR\x11\x64\x65\x66\x61ultHdf5Config\x12P\n\x13\x64\x65\x66\x61ult_ulog_config\x18\t \x01(\x0b\x32 .sift.data_imports.v2.UlogConfigR\x11\x64\x65\x66\x61ultUlogConfig\x12U\n\x0c\x66ile_configs\x18\x08 \x03(\x0b\x32\x32.sift.data_imports.v2.BatchConfig.FileConfigsEntryR\x0b\x66ileConfigs\x1a\x65\n\x10\x46ileConfigsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12;\n\x05value\x18\x02 \x01(\x0b\x32%.sift.data_imports.v2.BatchFileConfigR\x05value:\x02\x38\x01\"\xb1\x03\n\x0f\x42\x61tchFileConfig\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32!.sift.data_imports.v2.DataTypeKeyR\x04type\x12@\n\ncsv_config\x18\x02 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigH\x00R\tcsvConfig\x12\x43\n\x0btdms_config\x18\x03 \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigH\x00R\ntdmsConfig\x12L\n\x0eparquet_config\x18\x04 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigH\x00R\rparquetConfig\x12\x43\n\x0bhdf5_config\x18\x05 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigH\x00R\nhdf5Config\x12\x43\n\x0bulog_config\x18\x06 \x01(\x0b\x32 .sift.data_imports.v2.UlogConfigH\x00R\nulogConfigB\x08\n\x06\x63onfig\"\x9f\t\n\nDataImport\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\x12\x1d\n\nsource_url\x18\x03 \x01(\tR\tsourceUrl\x12\x43\n\x06status\x18\x04 \x01(\x0e\x32&.sift.data_imports.v2.DataImportStatusB\x03\xe0\x41\x02R\x06status\x12#\n\rerror_message\x18\x05 \x01(\tR\x0c\x65rrorMessage\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x43\n\ncsv_config\x18\x06 \x01(\x0b\x32\x1f.sift.data_imports.v2.CsvConfigB\x03\xe0\x41\x01R\tcsvConfig\x12\x46\n\x0b\x63h10_config\x18\t \x01(\x0b\x32 .sift.data_imports.v2.Ch10ConfigB\x03\xe0\x41\x01R\nch10Config\x12\x46\n\x0btdms_config\x18\n \x01(\x0b\x32 .sift.data_imports.v2.TDMSConfigB\x03\xe0\x41\x01R\ntdmsConfig\x12O\n\x0eparquet_config\x18\x10 \x01(\x0b\x32#.sift.data_imports.v2.ParquetConfigB\x03\xe0\x41\x01R\rparquetConfig\x12\x46\n\x0bhdf5_config\x18\x11 \x01(\x0b\x32 .sift.data_imports.v2.Hdf5ConfigB\x03\xe0\x41\x01R\nhdf5Config\x12I\n\x0c\x62\x61tch_config\x18\x12 \x01(\x0b\x32!.sift.data_imports.v2.BatchConfigB\x03\xe0\x41\x01R\x0b\x62\x61tchConfig\x12\x46\n\x0bulog_config\x18\x13 \x01(\x0b\x32 .sift.data_imports.v2.UlogConfigB\x03\xe0\x41\x01R\nulogConfig\x12\x1f\n\x06run_id\x18\x0b \x01(\tB\x03\xe0\x41\x01H\x00R\x05runId\x88\x01\x01\x12%\n\treport_id\x18\x0c \x01(\tB\x03\xe0\x41\x01H\x01R\x08reportId\x88\x01\x01\x12#\n\x08\x61sset_id\x18\r \x01(\tB\x03\xe0\x41\x01H\x02R\x07\x61ssetId\x88\x01\x01\x12L\n\x0f\x64\x61ta_start_time\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\rdataStartTime\x88\x01\x01\x12J\n\x0e\x64\x61ta_stop_time\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x04R\x0c\x64\x61taStopTime\x88\x01\x01\x42\t\n\x07_run_idB\x0c\n\n_report_idB\x0b\n\t_asset_idB\x12\n\x10_data_start_timeB\x11\n\x0f_data_stop_time\"\x9b\x01\n\x16ListDataImportsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x86\x01\n\x17ListDataImportsResponse\x12\x43\n\x0c\x64\x61ta_imports\x18\x01 \x03(\x0b\x32 .sift.data_imports.v2.DataImportR\x0b\x64\x61taImports\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"C\n\x16RetryDataImportRequest\x12)\n\x0e\x64\x61ta_import_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x64\x61taImportId\"\x19\n\x17RetryDataImportResponse*\xf0\x03\n\nTimeFormat\x12\x1b\n\x17TIME_FORMAT_UNSPECIFIED\x10\x00\x12$\n TIME_FORMAT_RELATIVE_NANOSECONDS\x10\x01\x12%\n!TIME_FORMAT_RELATIVE_MICROSECONDS\x10\x02\x12%\n!TIME_FORMAT_RELATIVE_MILLISECONDS\x10\x03\x12 \n\x1cTIME_FORMAT_RELATIVE_SECONDS\x10\x04\x12 \n\x1cTIME_FORMAT_RELATIVE_MINUTES\x10\x05\x12\x1e\n\x1aTIME_FORMAT_RELATIVE_HOURS\x10\x06\x12 \n\x1cTIME_FORMAT_ABSOLUTE_RFC3339\x10\n\x12!\n\x1dTIME_FORMAT_ABSOLUTE_DATETIME\x10\x0b\x12%\n!TIME_FORMAT_ABSOLUTE_UNIX_SECONDS\x10\x0c\x12*\n&TIME_FORMAT_ABSOLUTE_UNIX_MILLISECONDS\x10\r\x12*\n&TIME_FORMAT_ABSOLUTE_UNIX_MICROSECONDS\x10\x0e\x12)\n%TIME_FORMAT_ABSOLUTE_UNIX_NANOSECONDS\x10\x0f*\x80\x02\n\x0b\x44\x61taTypeKey\x12!\n\x19\x44\x41TA_TYPE_KEY_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x15\n\x11\x44\x41TA_TYPE_KEY_CSV\x10\x01\x12\x16\n\x12\x44\x41TA_TYPE_KEY_TDMS\x10\x02\x12\x16\n\x12\x44\x41TA_TYPE_KEY_CH10\x10\x03\x12%\n!DATA_TYPE_KEY_PARQUET_FLATDATASET\x10\x04\x12\x30\n,DATA_TYPE_KEY_PARQUET_SINGLE_CHANNEL_PER_ROW\x10\x05\x12\x16\n\x12\x44\x41TA_TYPE_KEY_HDF5\x10\x06\x12\x16\n\x12\x44\x41TA_TYPE_KEY_ULOG\x10\x07*\x8d\x01\n\x12TdmsFallbackMethod\x12(\n TDMS_FALLBACK_METHOD_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12&\n\"TDMS_FALLBACK_METHOD_FAIL_ON_ERROR\x10\x01\x12%\n!TDMS_FALLBACK_METHOD_IGNORE_ERROR\x10\x02*\x85\x01\n\x14TdmsComplexComponent\x12&\n\"TDMS_COMPLEX_COMPONENT_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTDMS_COMPLEX_COMPONENT_REAL\x10\x01\x12$\n TDMS_COMPLEX_COMPONENT_IMAGINARY\x10\x02*\x8b\x02\n\x1dParquetComplexTypesImportMode\x12\x35\n-PARQUET_COMPLEX_TYPES_IMPORT_MODE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12,\n(PARQUET_COMPLEX_TYPES_IMPORT_MODE_IGNORE\x10\x01\x12*\n&PARQUET_COMPLEX_TYPES_IMPORT_MODE_BOTH\x10\x02\x12,\n(PARQUET_COMPLEX_TYPES_IMPORT_MODE_STRING\x10\x03\x12+\n\'PARQUET_COMPLEX_TYPES_IMPORT_MODE_BYTES\x10\x04*\x94\x01\n\x14UlogParseErrorPolicy\x12\'\n#ULOG_PARSE_ERROR_POLICY_UNSPECIFIED\x10\x00\x12)\n%ULOG_PARSE_ERROR_POLICY_FAIL_ON_ERROR\x10\x01\x12(\n$ULOG_PARSE_ERROR_POLICY_IGNORE_ERROR\x10\x02*\xbf\x01\n\x10\x44\x61taImportStatus\x12&\n\x1e\x44\x41TA_IMPORT_STATUS_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x1e\n\x1a\x44\x41TA_IMPORT_STATUS_PENDING\x10\x01\x12\"\n\x1e\x44\x41TA_IMPORT_STATUS_IN_PROGRESS\x10\x02\x12 \n\x1c\x44\x41TA_IMPORT_STATUS_SUCCEEDED\x10\x03\x12\x1d\n\x19\x44\x41TA_IMPORT_STATUS_FAILED\x10\x04\x32\xa3\x0c\n\x11\x44\x61taImportService\x12\xa9\x02\n\x17\x43reateDataImportFromUrl\x12\x34.sift.data_imports.v2.CreateDataImportFromUrlRequest\x1a\x35.sift.data_imports.v2.CreateDataImportFromUrlResponse\"\xa0\x01\x92\x41z\x12\x17\x43reateDataImportFromUrl\x1a\x32\x43reates a data import from a file hosted at a url.*+DataImportService_CreateDataImportFromUrlV2\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v2/data-imports:url:\x01*\x12\xb2\x02\n\x1a\x43reateDataImportFromUpload\x12\x37.sift.data_imports.v2.CreateDataImportFromUploadRequest\x1a\x38.sift.data_imports.v2.CreateDataImportFromUploadResponse\"\xa0\x01\x92\x41w\x12\x1a\x43reateDataImportFromUpload\x1a)Creates a data import from a file upload.*.DataImportService_CreateDataImportFromUploadV2\x82\xd3\xe4\x93\x02 \"\x1b/api/v2/data-imports:upload:\x01*\x12\xef\x01\n\x0c\x44\x65tectConfig\x12).sift.data_imports.v2.DetectConfigRequest\x1a*.sift.data_imports.v2.DetectConfigResponse\"\x87\x01\x92\x41W\x12\x0c\x44\x65tectConfig\x1a%Detects the config for a data import.* DataImportService_DetectConfigV2\x82\xd3\xe4\x93\x02\'\"\"/api/v2/data-imports:detect-config:\x01*\x12\xde\x01\n\x0fListDataImports\x12,.sift.data_imports.v2.ListDataImportsRequest\x1a-.sift.data_imports.v2.ListDataImportsResponse\"n\x92\x41O\x12\x0fListDataImports\x1a\x17Lists all data imports.*#DataImportService_ListDataImportsV2\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v2/data-imports\x12\xf5\x01\n\x0fRetryDataImport\x12,.sift.data_imports.v2.RetryDataImportRequest\x1a-.sift.data_imports.v2.RetryDataImportResponse\"\x84\x01\x92\x41N\x12\x0fRetryDataImport\x1a\x16Retries a data import.*#DataImportService_RetryDataImportV2\x82\xd3\xe4\x93\x02-\"+/api/v2/data-imports/{data_import_id}:retry\x12\xe1\x01\n\rGetDataImport\x12*.sift.data_imports.v2.GetDataImportRequest\x1a+.sift.data_imports.v2.GetDataImportResponse\"w\x92\x41G\x12\rGetDataImport\x1a\x13Gets a data import.*!DataImportService_GetDataImportV2\x82\xd3\xe4\x93\x02\'\x12%/api/v2/data-imports/{data_import_id}B\xb4\x01\n\x18\x63om.sift.data_imports.v2B\x10\x44\x61taImportsProtoP\x01\xa2\x02\x03SDX\xaa\x02\x13Sift.DataImports.V2\xca\x02\x13Sift\\DataImports\\V2\xe2\x02\x1fSift\\DataImports\\V2\\GPBMetadata\xea\x02\x15Sift::DataImports::V2\x92\x41\x17\x12\x15\n\x13\x44\x61ta import serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -129,20 +129,20 @@ _globals['_DATAIMPORTSERVICE'].methods_by_name['RetryDataImport']._serialized_options = b'\222AN\022\017RetryDataImport\032\026Retries a data import.*#DataImportService_RetryDataImportV2\202\323\344\223\002-\"+/api/v2/data-imports/{data_import_id}:retry' _globals['_DATAIMPORTSERVICE'].methods_by_name['GetDataImport']._loaded_options = None _globals['_DATAIMPORTSERVICE'].methods_by_name['GetDataImport']._serialized_options = b'\222AG\022\rGetDataImport\032\023Gets a data import.*!DataImportService_GetDataImportV2\202\323\344\223\002\'\022%/api/v2/data-imports/{data_import_id}' - _globals['_TIMEFORMAT']._serialized_start=9616 - _globals['_TIMEFORMAT']._serialized_end=10112 - _globals['_DATATYPEKEY']._serialized_start=10115 - _globals['_DATATYPEKEY']._serialized_end=10371 - _globals['_TDMSFALLBACKMETHOD']._serialized_start=10374 - _globals['_TDMSFALLBACKMETHOD']._serialized_end=10515 - _globals['_TDMSCOMPLEXCOMPONENT']._serialized_start=10518 - _globals['_TDMSCOMPLEXCOMPONENT']._serialized_end=10651 - _globals['_PARQUETCOMPLEXTYPESIMPORTMODE']._serialized_start=10654 - _globals['_PARQUETCOMPLEXTYPESIMPORTMODE']._serialized_end=10921 - _globals['_ULOGPARSEERRORPOLICY']._serialized_start=10924 - _globals['_ULOGPARSEERRORPOLICY']._serialized_end=11072 - _globals['_DATAIMPORTSTATUS']._serialized_start=11075 - _globals['_DATAIMPORTSTATUS']._serialized_end=11266 + _globals['_TIMEFORMAT']._serialized_start=9712 + _globals['_TIMEFORMAT']._serialized_end=10208 + _globals['_DATATYPEKEY']._serialized_start=10211 + _globals['_DATATYPEKEY']._serialized_end=10467 + _globals['_TDMSFALLBACKMETHOD']._serialized_start=10470 + _globals['_TDMSFALLBACKMETHOD']._serialized_end=10611 + _globals['_TDMSCOMPLEXCOMPONENT']._serialized_start=10614 + _globals['_TDMSCOMPLEXCOMPONENT']._serialized_end=10747 + _globals['_PARQUETCOMPLEXTYPESIMPORTMODE']._serialized_start=10750 + _globals['_PARQUETCOMPLEXTYPESIMPORTMODE']._serialized_end=11017 + _globals['_ULOGPARSEERRORPOLICY']._serialized_start=11020 + _globals['_ULOGPARSEERRORPOLICY']._serialized_end=11168 + _globals['_DATAIMPORTSTATUS']._serialized_start=11171 + _globals['_DATAIMPORTSTATUS']._serialized_end=11362 _globals['_CREATEDATAIMPORTFROMURLREQUEST']._serialized_start=252 _globals['_CREATEDATAIMPORTFROMURLREQUEST']._serialized_end=820 _globals['_CREATEDATAIMPORTFROMURLRESPONSE']._serialized_start=822 @@ -156,61 +156,61 @@ _globals['_CREATEDATAIMPORTFROMUPLOADRESPONSE']._serialized_start=1605 _globals['_CREATEDATAIMPORTFROMUPLOADRESPONSE']._serialized_end=1710 _globals['_CSVCONFIG']._serialized_start=1713 - _globals['_CSVCONFIG']._serialized_end=2169 - _globals['_CSVCONFIG_DATACOLUMNSENTRY']._serialized_start=2042 - _globals['_CSVCONFIG_DATACOLUMNSENTRY']._serialized_end=2140 - _globals['_CSVTIMECOLUMN']._serialized_start=2172 - _globals['_CSVTIMECOLUMN']._serialized_end=2387 - _globals['_DETECTCONFIGREQUEST']._serialized_start=2389 - _globals['_DETECTCONFIGREQUEST']._serialized_end=2485 - _globals['_DETECTCONFIGRESPONSE']._serialized_start=2488 - _globals['_DETECTCONFIGRESPONSE']._serialized_end=2784 - _globals['_CH10CONFIG']._serialized_start=2786 - _globals['_CH10CONFIG']._serialized_end=2891 - _globals['_TDMSDATACONFIG']._serialized_start=2894 - _globals['_TDMSDATACONFIG']._serialized_end=3278 - _globals['_TDMSCONFIG']._serialized_start=3281 - _globals['_TDMSCONFIG']._serialized_end=3890 - _globals['_PARQUETTIMECOLUMN']._serialized_start=3893 - _globals['_PARQUETTIMECOLUMN']._serialized_end=4095 - _globals['_PARQUETDATACOLUMN']._serialized_start=4097 - _globals['_PARQUETDATACOLUMN']._serialized_end=4211 - _globals['_PARQUETCOLUMN']._serialized_start=4213 - _globals['_PARQUETCOLUMN']._serialized_end=4321 - _globals['_PARQUETFLATDATASETCONFIG']._serialized_start=4324 - _globals['_PARQUETFLATDATASETCONFIG']._serialized_end=4500 - _globals['_PARQUETSINGLECHANNELPERROWMULTICHANNELCONFIG']._serialized_start=4502 - _globals['_PARQUETSINGLECHANNELPERROWMULTICHANNELCONFIG']._serialized_end=4606 - _globals['_PARQUETSINGLECHANNELPERROWSINGLECHANNELCONFIG']._serialized_start=4609 - _globals['_PARQUETSINGLECHANNELPERROWSINGLECHANNELCONFIG']._serialized_end=4747 - _globals['_PARQUETSINGLECHANNELPERROWCONFIG']._serialized_start=4750 - _globals['_PARQUETSINGLECHANNELPERROWCONFIG']._serialized_end=5148 - _globals['_PARQUETCONFIG']._serialized_start=5151 - _globals['_PARQUETCONFIG']._serialized_end=5639 - _globals['_HDF5DATACONFIG']._serialized_start=5642 - _globals['_HDF5DATACONFIG']._serialized_end=5974 - _globals['_HDF5CONFIG']._serialized_start=5977 - _globals['_HDF5CONFIG']._serialized_end=6300 - _globals['_ULOGDATACONFIG']._serialized_start=6303 - _globals['_ULOGDATACONFIG']._serialized_end=6488 - _globals['_ULOGCONFIG']._serialized_start=6491 - _globals['_ULOGCONFIG']._serialized_end=6897 - _globals['_BATCHCONFIG']._serialized_start=6900 - _globals['_BATCHCONFIG']._serialized_end=7600 - _globals['_BATCHCONFIG_FILECONFIGSENTRY']._serialized_start=7499 - _globals['_BATCHCONFIG_FILECONFIGSENTRY']._serialized_end=7600 - _globals['_BATCHFILECONFIG']._serialized_start=7603 - _globals['_BATCHFILECONFIG']._serialized_end=8036 - _globals['_DATAIMPORT']._serialized_start=8039 - _globals['_DATAIMPORT']._serialized_end=9222 - _globals['_LISTDATAIMPORTSREQUEST']._serialized_start=9225 - _globals['_LISTDATAIMPORTSREQUEST']._serialized_end=9380 - _globals['_LISTDATAIMPORTSRESPONSE']._serialized_start=9383 - _globals['_LISTDATAIMPORTSRESPONSE']._serialized_end=9517 - _globals['_RETRYDATAIMPORTREQUEST']._serialized_start=9519 - _globals['_RETRYDATAIMPORTREQUEST']._serialized_end=9586 - _globals['_RETRYDATAIMPORTRESPONSE']._serialized_start=9588 - _globals['_RETRYDATAIMPORTRESPONSE']._serialized_end=9613 - _globals['_DATAIMPORTSERVICE']._serialized_start=11269 - _globals['_DATAIMPORTSERVICE']._serialized_end=12840 + _globals['_CSVCONFIG']._serialized_end=2217 + _globals['_CSVCONFIG_DATACOLUMNSENTRY']._serialized_start=2090 + _globals['_CSVCONFIG_DATACOLUMNSENTRY']._serialized_end=2188 + _globals['_CSVTIMECOLUMN']._serialized_start=2220 + _globals['_CSVTIMECOLUMN']._serialized_end=2435 + _globals['_DETECTCONFIGREQUEST']._serialized_start=2437 + _globals['_DETECTCONFIGREQUEST']._serialized_end=2533 + _globals['_DETECTCONFIGRESPONSE']._serialized_start=2536 + _globals['_DETECTCONFIGRESPONSE']._serialized_end=2832 + _globals['_CH10CONFIG']._serialized_start=2834 + _globals['_CH10CONFIG']._serialized_end=2939 + _globals['_TDMSDATACONFIG']._serialized_start=2942 + _globals['_TDMSDATACONFIG']._serialized_end=3326 + _globals['_TDMSCONFIG']._serialized_start=3329 + _globals['_TDMSCONFIG']._serialized_end=3938 + _globals['_PARQUETTIMECOLUMN']._serialized_start=3941 + _globals['_PARQUETTIMECOLUMN']._serialized_end=4143 + _globals['_PARQUETDATACOLUMN']._serialized_start=4145 + _globals['_PARQUETDATACOLUMN']._serialized_end=4259 + _globals['_PARQUETCOLUMN']._serialized_start=4261 + _globals['_PARQUETCOLUMN']._serialized_end=4369 + _globals['_PARQUETFLATDATASETCONFIG']._serialized_start=4372 + _globals['_PARQUETFLATDATASETCONFIG']._serialized_end=4596 + _globals['_PARQUETSINGLECHANNELPERROWMULTICHANNELCONFIG']._serialized_start=4598 + _globals['_PARQUETSINGLECHANNELPERROWMULTICHANNELCONFIG']._serialized_end=4702 + _globals['_PARQUETSINGLECHANNELPERROWSINGLECHANNELCONFIG']._serialized_start=4705 + _globals['_PARQUETSINGLECHANNELPERROWSINGLECHANNELCONFIG']._serialized_end=4843 + _globals['_PARQUETSINGLECHANNELPERROWCONFIG']._serialized_start=4846 + _globals['_PARQUETSINGLECHANNELPERROWCONFIG']._serialized_end=5244 + _globals['_PARQUETCONFIG']._serialized_start=5247 + _globals['_PARQUETCONFIG']._serialized_end=5735 + _globals['_HDF5DATACONFIG']._serialized_start=5738 + _globals['_HDF5DATACONFIG']._serialized_end=6070 + _globals['_HDF5CONFIG']._serialized_start=6073 + _globals['_HDF5CONFIG']._serialized_end=6396 + _globals['_ULOGDATACONFIG']._serialized_start=6399 + _globals['_ULOGDATACONFIG']._serialized_end=6584 + _globals['_ULOGCONFIG']._serialized_start=6587 + _globals['_ULOGCONFIG']._serialized_end=6993 + _globals['_BATCHCONFIG']._serialized_start=6996 + _globals['_BATCHCONFIG']._serialized_end=7696 + _globals['_BATCHCONFIG_FILECONFIGSENTRY']._serialized_start=7595 + _globals['_BATCHCONFIG_FILECONFIGSENTRY']._serialized_end=7696 + _globals['_BATCHFILECONFIG']._serialized_start=7699 + _globals['_BATCHFILECONFIG']._serialized_end=8132 + _globals['_DATAIMPORT']._serialized_start=8135 + _globals['_DATAIMPORT']._serialized_end=9318 + _globals['_LISTDATAIMPORTSREQUEST']._serialized_start=9321 + _globals['_LISTDATAIMPORTSREQUEST']._serialized_end=9476 + _globals['_LISTDATAIMPORTSRESPONSE']._serialized_start=9479 + _globals['_LISTDATAIMPORTSRESPONSE']._serialized_end=9613 + _globals['_RETRYDATAIMPORTREQUEST']._serialized_start=9615 + _globals['_RETRYDATAIMPORTREQUEST']._serialized_end=9682 + _globals['_RETRYDATAIMPORTRESPONSE']._serialized_start=9684 + _globals['_RETRYDATAIMPORTRESPONSE']._serialized_end=9709 + _globals['_DATAIMPORTSERVICE']._serialized_start=11365 + _globals['_DATAIMPORTSERVICE']._serialized_end=12936 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/data_imports/v2/data_imports_pb2.pyi b/python/lib/sift/data_imports/v2/data_imports_pb2.pyi index 5dbadbd9a3..2a5f3709f0 100644 --- a/python/lib/sift/data_imports/v2/data_imports_pb2.pyi +++ b/python/lib/sift/data_imports/v2/data_imports_pb2.pyi @@ -383,6 +383,7 @@ class CsvConfig(google.protobuf.message.Message): TIME_COLUMN_FIELD_NUMBER: builtins.int DATA_COLUMNS_FIELD_NUMBER: builtins.int NUM_ROWS_FIELD_NUMBER: builtins.int + USE_EMBEDDED_CONFIG_FIELD_NUMBER: builtins.int asset_name: builtins.str run_name: builtins.str run_id: builtins.str @@ -393,6 +394,12 @@ class CsvConfig(google.protobuf.message.Message): """ num_rows: builtins.int """This will be read on upload from the file if not set.""" + use_embedded_config: builtins.bool + """If true, the time and data column configuration is read from a config + embedded in the file (written when the file was exported with + embed_channel_configs). Any time_column/data_columns supplied here are + ignored and replaced by the embedded config. + """ @property def time_column(self) -> global___CsvTimeColumn: ... @property @@ -409,9 +416,10 @@ class CsvConfig(google.protobuf.message.Message): time_column: global___CsvTimeColumn | None = ..., data_columns: collections.abc.Mapping[builtins.int, sift.common.type.v1.channel_config_pb2.ChannelConfig] | None = ..., num_rows: builtins.int | None = ..., + use_embedded_config: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["_num_rows", b"_num_rows", "_time_column", b"_time_column", "num_rows", b"num_rows", "time_column", b"time_column"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_num_rows", b"_num_rows", "_time_column", b"_time_column", "asset_name", b"asset_name", "data_columns", b"data_columns", "first_data_row", b"first_data_row", "num_rows", b"num_rows", "run_id", b"run_id", "run_name", b"run_name", "time_column", b"time_column"]) -> None: ... + def ClearField(self, field_name: typing.Literal["_num_rows", b"_num_rows", "_time_column", b"_time_column", "asset_name", b"asset_name", "data_columns", b"data_columns", "first_data_row", b"first_data_row", "num_rows", b"num_rows", "run_id", b"run_id", "run_name", b"run_name", "time_column", b"time_column", "use_embedded_config", b"use_embedded_config"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_num_rows", b"_num_rows"]) -> typing.Literal["num_rows"] | None: ... @typing.overload @@ -702,6 +710,13 @@ class ParquetFlatDatasetConfig(google.protobuf.message.Message): TIME_COLUMN_FIELD_NUMBER: builtins.int DATA_COLUMNS_FIELD_NUMBER: builtins.int + USE_EMBEDDED_CONFIG_FIELD_NUMBER: builtins.int + use_embedded_config: builtins.bool + """If true, the time and data column configuration is read from the config + embedded in the file's Arrow field metadata (written when the file was + exported with embed_channel_configs). Any time_column/data_columns supplied + here are ignored and replaced by the embedded config. + """ @property def time_column(self) -> global___ParquetTimeColumn: ... @property @@ -711,9 +726,10 @@ class ParquetFlatDatasetConfig(google.protobuf.message.Message): *, time_column: global___ParquetTimeColumn | None = ..., data_columns: collections.abc.Iterable[global___ParquetDataColumn] | None = ..., + use_embedded_config: builtins.bool = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["time_column", b"time_column"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["data_columns", b"data_columns", "time_column", b"time_column"]) -> None: ... + def ClearField(self, field_name: typing.Literal["data_columns", b"data_columns", "time_column", b"time_column", "use_embedded_config", b"use_embedded_config"]) -> None: ... global___ParquetFlatDatasetConfig = ParquetFlatDatasetConfig @@ -1236,7 +1252,7 @@ class ListDataImportsRequest(google.protobuf.message.Message): """ filter: builtins.str """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. - Available fields to filter by are `data_import_id`, `source_url`, `status`. + Available fields to filter by are `data_import_id`, `source_url`, `status`, `run_id`. For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). """ order_by: builtins.str diff --git a/python/lib/sift/exports/v1/exports_pb2.py b/python/lib/sift/exports/v1/exports_pb2.py index 982bf2068d..076863c75e 100644 --- a/python/lib/sift/exports/v1/exports_pb2.py +++ b/python/lib/sift/exports/v1/exports_pb2.py @@ -19,7 +19,7 @@ from sift.calculated_channels.v2 import calculated_channels_pb2 as sift_dot_calculated__channels_dot_v2_dot_calculated__channels__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dsift/exports/v1/exports.proto\x12\x0fsift.exports.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x35sift/calculated_channels/v2/calculated_channels.proto\"\xbe\x04\n\x11\x45xportDataRequest\x12;\n\ntime_range\x18\x01 \x01(\x0b\x32\x1a.sift.exports.v1.TimeRangeH\x00R\ttimeRange\x12R\n\x13runs_and_time_range\x18\x02 \x01(\x0b\x32!.sift.exports.v1.RunsAndTimeRangeH\x00R\x10runsAndTimeRange\x12X\n\x15\x61ssets_and_time_range\x18\x03 \x01(\x0b\x32#.sift.exports.v1.AssetsAndTimeRangeH\x00R\x12\x61ssetsAndTimeRange\x12$\n\x0b\x63hannel_ids\x18\x04 \x03(\tB\x03\xe0\x41\x01R\nchannelIds\x12k\n\x1a\x63\x61lculated_channel_configs\x18\x05 \x03(\x0b\x32(.sift.exports.v1.CalculatedChannelConfigB\x03\xe0\x41\x01R\x18\x63\x61lculatedChannelConfigs\x12M\n\routput_format\x18\x06 \x01(\x0e\x32#.sift.exports.v1.ExportOutputFormatB\x03\xe0\x41\x02R\x0coutputFormat\x12J\n\x0e\x65xport_options\x18\x07 \x01(\x0b\x32\x1e.sift.exports.v1.ExportOptionsB\x03\xe0\x41\x02R\rexportOptionsB\x10\n\x0etime_selection\"\x89\x01\n\tTimeRange\x12>\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12<\n\tstop_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08stopTime\"\xae\x01\n\x10RunsAndTimeRange\x12\x1c\n\x07run_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x06runIds\x12>\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\tstartTime\x12<\n\tstop_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x08stopTime\"\xb4\x01\n\x12\x41ssetsAndTimeRange\x12 \n\tasset_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x08\x61ssetIds\x12>\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12<\n\tstop_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08stopTime\"\xfd\x01\n\x17\x43\x61lculatedChannelConfig\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12#\n\nexpression\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12z\n\x12\x63hannel_references\x18\x03 \x03(\x0b\x32\x46.sift.calculated_channels.v2.CalculatedChannelAbstractChannelReferenceB\x03\xe0\x41\x02R\x11\x63hannelReferences\x12\x1e\n\x05units\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x05units\x88\x01\x01\x42\x08\n\x06_units\"\xf6\x01\n\rExportOptions\x12*\n\x11use_legacy_format\x18\x01 \x01(\x08R\x0fuseLegacyFormat\x12\x34\n\x16simplify_channel_names\x18\x02 \x01(\x08R\x14simplifyChannelNames\x12!\n\x0c\x63ombine_runs\x18\x03 \x01(\x08R\x0b\x63ombineRuns\x12\x31\n\x15split_export_by_asset\x18\x04 \x01(\x08R\x12splitExportByAsset\x12-\n\x13split_export_by_run\x18\x05 \x01(\x08R\x10splitExportByRun\"\x88\x01\n\x12\x45xportDataResponse\x12(\n\rpresigned_url\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x0cpresignedUrl\x12\x1a\n\x06job_id\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x05jobId\x12,\n\x0fservice_message\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eserviceMessage\"3\n\x15GetDownloadUrlRequest\x12\x1a\n\x06job_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05jobId\"p\n\x16GetDownloadUrlResponse\x12(\n\rpresigned_url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cpresignedUrl\x12,\n\x0fservice_message\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x0eserviceMessage*\x98\x01\n\x12\x45xportOutputFormat\x12$\n EXPORT_OUTPUT_FORMAT_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x45XPORT_OUTPUT_FORMAT_CSV\x10\x01\x12\x1c\n\x18\x45XPORT_OUTPUT_FORMAT_SUN\x10\x02\x12 \n\x1c\x45XPORT_OUTPUT_FORMAT_PARQUET\x10\x03\x32\xf4\x02\n\rExportService\x12\x8d\x01\n\nExportData\x12\".sift.exports.v1.ExportDataRequest\x1a#.sift.exports.v1.ExportDataResponse\"6\x92\x41\x1a\x12\nExportData\x1a\x0c\x45xport data.\x82\xd3\xe4\x93\x02\x13\"\x0e/api/v1/export:\x01*\x12\xd2\x01\n\x0eGetDownloadUrl\x12&.sift.exports.v1.GetDownloadUrlRequest\x1a\'.sift.exports.v1.GetDownloadUrlResponse\"o\x92\x41@\x12\x0eGetDownloadUrl\x1a.Retrieve the download URL for a completed job.\x82\xd3\xe4\x93\x02&\x12$/api/v1/export/{job_id}/download-urlB\x97\x01\n\x13\x63om.sift.exports.v1B\x0c\x45xportsProtoP\x01\xa2\x02\x03SEX\xaa\x02\x0fSift.Exports.V1\xca\x02\x0fSift\\Exports\\V1\xe2\x02\x1bSift\\Exports\\V1\\GPBMetadata\xea\x02\x11Sift::Exports::V1\x92\x41\x13\x12\x11\n\x0f\x45xports serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dsift/exports/v1/exports.proto\x12\x0fsift.exports.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x35sift/calculated_channels/v2/calculated_channels.proto\"\xbe\x04\n\x11\x45xportDataRequest\x12;\n\ntime_range\x18\x01 \x01(\x0b\x32\x1a.sift.exports.v1.TimeRangeH\x00R\ttimeRange\x12R\n\x13runs_and_time_range\x18\x02 \x01(\x0b\x32!.sift.exports.v1.RunsAndTimeRangeH\x00R\x10runsAndTimeRange\x12X\n\x15\x61ssets_and_time_range\x18\x03 \x01(\x0b\x32#.sift.exports.v1.AssetsAndTimeRangeH\x00R\x12\x61ssetsAndTimeRange\x12$\n\x0b\x63hannel_ids\x18\x04 \x03(\tB\x03\xe0\x41\x01R\nchannelIds\x12k\n\x1a\x63\x61lculated_channel_configs\x18\x05 \x03(\x0b\x32(.sift.exports.v1.CalculatedChannelConfigB\x03\xe0\x41\x01R\x18\x63\x61lculatedChannelConfigs\x12M\n\routput_format\x18\x06 \x01(\x0e\x32#.sift.exports.v1.ExportOutputFormatB\x03\xe0\x41\x02R\x0coutputFormat\x12J\n\x0e\x65xport_options\x18\x07 \x01(\x0b\x32\x1e.sift.exports.v1.ExportOptionsB\x03\xe0\x41\x02R\rexportOptionsB\x10\n\x0etime_selection\"\x89\x01\n\tTimeRange\x12>\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12<\n\tstop_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08stopTime\"\xae\x01\n\x10RunsAndTimeRange\x12\x1c\n\x07run_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x06runIds\x12>\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\tstartTime\x12<\n\tstop_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x08stopTime\"\xb4\x01\n\x12\x41ssetsAndTimeRange\x12 \n\tasset_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x08\x61ssetIds\x12>\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12<\n\tstop_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x08stopTime\"\xfd\x01\n\x17\x43\x61lculatedChannelConfig\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12#\n\nexpression\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12z\n\x12\x63hannel_references\x18\x03 \x03(\x0b\x32\x46.sift.calculated_channels.v2.CalculatedChannelAbstractChannelReferenceB\x03\xe0\x41\x02R\x11\x63hannelReferences\x12\x1e\n\x05units\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x05units\x88\x01\x01\x42\x08\n\x06_units\"\xaa\x02\n\rExportOptions\x12*\n\x11use_legacy_format\x18\x01 \x01(\x08R\x0fuseLegacyFormat\x12\x34\n\x16simplify_channel_names\x18\x02 \x01(\x08R\x14simplifyChannelNames\x12!\n\x0c\x63ombine_runs\x18\x03 \x01(\x08R\x0b\x63ombineRuns\x12\x31\n\x15split_export_by_asset\x18\x04 \x01(\x08R\x12splitExportByAsset\x12-\n\x13split_export_by_run\x18\x05 \x01(\x08R\x10splitExportByRun\x12\x32\n\x15\x65mbed_channel_configs\x18\x06 \x01(\x08R\x13\x65mbedChannelConfigs\"\x88\x01\n\x12\x45xportDataResponse\x12(\n\rpresigned_url\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x0cpresignedUrl\x12\x1a\n\x06job_id\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x05jobId\x12,\n\x0fservice_message\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eserviceMessage\"3\n\x15GetDownloadUrlRequest\x12\x1a\n\x06job_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05jobId\"p\n\x16GetDownloadUrlResponse\x12(\n\rpresigned_url\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cpresignedUrl\x12,\n\x0fservice_message\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x0eserviceMessage*\x98\x01\n\x12\x45xportOutputFormat\x12$\n EXPORT_OUTPUT_FORMAT_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x45XPORT_OUTPUT_FORMAT_CSV\x10\x01\x12\x1c\n\x18\x45XPORT_OUTPUT_FORMAT_SUN\x10\x02\x12 \n\x1c\x45XPORT_OUTPUT_FORMAT_PARQUET\x10\x03\x32\xf4\x02\n\rExportService\x12\x8d\x01\n\nExportData\x12\".sift.exports.v1.ExportDataRequest\x1a#.sift.exports.v1.ExportDataResponse\"6\x92\x41\x1a\x12\nExportData\x1a\x0c\x45xport data.\x82\xd3\xe4\x93\x02\x13\"\x0e/api/v1/export:\x01*\x12\xd2\x01\n\x0eGetDownloadUrl\x12&.sift.exports.v1.GetDownloadUrlRequest\x1a\'.sift.exports.v1.GetDownloadUrlResponse\"o\x92\x41@\x12\x0eGetDownloadUrl\x1a.Retrieve the download URL for a completed job.\x82\xd3\xe4\x93\x02&\x12$/api/v1/export/{job_id}/download-urlB\x97\x01\n\x13\x63om.sift.exports.v1B\x0c\x45xportsProtoP\x01\xa2\x02\x03SEX\xaa\x02\x0fSift.Exports.V1\xca\x02\x0fSift\\Exports\\V1\xe2\x02\x1bSift\\Exports\\V1\\GPBMetadata\xea\x02\x11Sift::Exports::V1\x92\x41\x13\x12\x11\n\x0f\x45xports serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -75,8 +75,8 @@ _globals['_EXPORTSERVICE'].methods_by_name['ExportData']._serialized_options = b'\222A\032\022\nExportData\032\014Export data.\202\323\344\223\002\023\"\016/api/v1/export:\001*' _globals['_EXPORTSERVICE'].methods_by_name['GetDownloadUrl']._loaded_options = None _globals['_EXPORTSERVICE'].methods_by_name['GetDownloadUrl']._serialized_options = b'\222A@\022\016GetDownloadUrl\032.Retrieve the download URL for a completed job.\202\323\344\223\002&\022$/api/v1/export/{job_id}/download-url' - _globals['_EXPORTOUTPUTFORMAT']._serialized_start=2138 - _globals['_EXPORTOUTPUTFORMAT']._serialized_end=2290 + _globals['_EXPORTOUTPUTFORMAT']._serialized_start=2190 + _globals['_EXPORTOUTPUTFORMAT']._serialized_end=2342 _globals['_EXPORTDATAREQUEST']._serialized_start=250 _globals['_EXPORTDATAREQUEST']._serialized_end=824 _globals['_TIMERANGE']._serialized_start=827 @@ -88,13 +88,13 @@ _globals['_CALCULATEDCHANNELCONFIG']._serialized_start=1327 _globals['_CALCULATEDCHANNELCONFIG']._serialized_end=1580 _globals['_EXPORTOPTIONS']._serialized_start=1583 - _globals['_EXPORTOPTIONS']._serialized_end=1829 - _globals['_EXPORTDATARESPONSE']._serialized_start=1832 - _globals['_EXPORTDATARESPONSE']._serialized_end=1968 - _globals['_GETDOWNLOADURLREQUEST']._serialized_start=1970 - _globals['_GETDOWNLOADURLREQUEST']._serialized_end=2021 - _globals['_GETDOWNLOADURLRESPONSE']._serialized_start=2023 - _globals['_GETDOWNLOADURLRESPONSE']._serialized_end=2135 - _globals['_EXPORTSERVICE']._serialized_start=2293 - _globals['_EXPORTSERVICE']._serialized_end=2665 + _globals['_EXPORTOPTIONS']._serialized_end=1881 + _globals['_EXPORTDATARESPONSE']._serialized_start=1884 + _globals['_EXPORTDATARESPONSE']._serialized_end=2020 + _globals['_GETDOWNLOADURLREQUEST']._serialized_start=2022 + _globals['_GETDOWNLOADURLREQUEST']._serialized_end=2073 + _globals['_GETDOWNLOADURLRESPONSE']._serialized_start=2075 + _globals['_GETDOWNLOADURLRESPONSE']._serialized_end=2187 + _globals['_EXPORTSERVICE']._serialized_start=2345 + _globals['_EXPORTSERVICE']._serialized_end=2717 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/exports/v1/exports_pb2.pyi b/python/lib/sift/exports/v1/exports_pb2.pyi index a91b2f4264..350f22bf57 100644 --- a/python/lib/sift/exports/v1/exports_pb2.pyi +++ b/python/lib/sift/exports/v1/exports_pb2.pyi @@ -198,6 +198,7 @@ class ExportOptions(google.protobuf.message.Message): COMBINE_RUNS_FIELD_NUMBER: builtins.int SPLIT_EXPORT_BY_ASSET_FIELD_NUMBER: builtins.int SPLIT_EXPORT_BY_RUN_FIELD_NUMBER: builtins.int + EMBED_CHANNEL_CONFIGS_FIELD_NUMBER: builtins.int use_legacy_format: builtins.bool """Whether to use legacy format string for channel headers which contains key-value metadata.""" simplify_channel_names: builtins.bool @@ -208,6 +209,11 @@ class ExportOptions(google.protobuf.message.Message): """Split each asset into their own export file""" split_export_by_run: builtins.bool """Split each run into their own export file""" + embed_channel_configs: builtins.bool + """Embeds a re-importable channel configuration into the export: for CSV, as a config row + inserted immediately after the header row; for Parquet, as per-column field metadata + under the "sift_channel_config" key. Ignored for the SUN output format. + """ def __init__( self, *, @@ -216,8 +222,9 @@ class ExportOptions(google.protobuf.message.Message): combine_runs: builtins.bool = ..., split_export_by_asset: builtins.bool = ..., split_export_by_run: builtins.bool = ..., + embed_channel_configs: builtins.bool = ..., ) -> None: ... - def ClearField(self, field_name: typing.Literal["combine_runs", b"combine_runs", "simplify_channel_names", b"simplify_channel_names", "split_export_by_asset", b"split_export_by_asset", "split_export_by_run", b"split_export_by_run", "use_legacy_format", b"use_legacy_format"]) -> None: ... + def ClearField(self, field_name: typing.Literal["combine_runs", b"combine_runs", "embed_channel_configs", b"embed_channel_configs", "simplify_channel_names", b"simplify_channel_names", "split_export_by_asset", b"split_export_by_asset", "split_export_by_run", b"split_export_by_run", "use_legacy_format", b"use_legacy_format"]) -> None: ... global___ExportOptions = ExportOptions diff --git a/python/lib/sift/families/__init__.py b/python/lib/sift/families/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python/lib/sift/families/v1/__init__.py b/python/lib/sift/families/v1/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python/lib/sift/families/v1/families_pb2.py b/python/lib/sift/families/v1/families_pb2.py new file mode 100644 index 0000000000..dd78bbc561 --- /dev/null +++ b/python/lib/sift/families/v1/families_pb2.py @@ -0,0 +1,582 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: sift/families/v1/families.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 +from sift.common.v1 import filter_field_pb2 as sift_dot_common_dot_v1_dot_filter__field__pb2 +from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 +from sift.rules.v1 import rules_pb2 as sift_dot_rules_dot_v1_dot_rules__pb2 +from sift.runs.v2 import runs_pb2 as sift_dot_runs_dot_v2_dot_runs__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fsift/families/v1/families.proto\x12\x10sift.families.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a!sift/common/v1/filter_field.proto\x1a\x1fsift/metadata/v1/metadata.proto\x1a\x19sift/rules/v1/rules.proto\x1a\x17sift/runs/v2/runs.proto\"\xa3\x04\n\x06\x46\x61mily\x12#\n\tfamily_id\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x08\x66\x61milyId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12\x34\n\x12\x63urrent_version_id\x18\x03 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x10\x63urrentVersionId\x12$\n\x0bis_archived\x18\x04 \x01(\x08\x42\x03\xe0\x41\x02R\nisArchived\x12\x45\n\x0c\x63reated_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe0\x41\x03\xe0\x41\x02R\x0b\x63reatedDate\x12G\n\rmodified_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe0\x41\x03\xe0\x41\x02R\x0cmodifiedDate\x12G\n\rarchived_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe0\x41\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12\x33\n\x12\x63reated_by_user_id\x18\x08 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x35\n\x13modified_by_user_id\x18\t \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x10modifiedByUserId\x12/\n\x0forganization_id\x18\n \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0eorganizationId\"\xe5\x05\n\rFamilyVersion\x12\x32\n\x11\x66\x61mily_version_id\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\x12#\n\tfamily_id\x18\x02 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x08\x66\x61milyId\x12 \n\x07version\x18\x03 \x01(\rB\x06\xe0\x41\x03\xe0\x41\x02R\x07version\x12\x17\n\x04name\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x0b\x64\x65scription\x12 \n\trun_query\x18\x06 \x01(\tB\x03\xe0\x41\x01R\x08runQuery\x12\"\n\nuser_notes\x18\x07 \x01(\tB\x03\xe0\x41\x01R\tuserNotes\x12-\n\x0e\x63hange_message\x18\x08 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\rchangeMessage\x12@\n\x08metadata\x18\t \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadata\x12\x35\n\x14sigma_default_values\x18\n \x03(\x01\x42\x03\xe0\x41\x01R\x12sigmaDefaultValues\x12\x45\n\x0c\x63reated_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe0\x41\x03\xe0\x41\x02R\x0b\x63reatedDate\x12G\n\rmodified_date\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe0\x41\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x33\n\x12\x63reated_by_user_id\x18\r \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x35\n\x13modified_by_user_id\x18\x0e \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x10modifiedByUserId\x12/\n\x0forganization_id\x18\x0f \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0eorganizationId\"\xfd\x02\n\tFamilyRun\x12*\n\rfamily_run_id\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0b\x66\x61milyRunId\x12\x32\n\x11\x66\x61mily_version_id\x18\x02 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\x12\x1a\n\x06run_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12&\n\x0cis_exclusion\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01R\x0bisExclusion\x12!\n\trationale\x18\x05 \x01(\tB\x03\xe0\x41\x01R\trationale\x12\x41\n\nadded_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe0\x41\x03\xe0\x41\x02R\taddedDate\x12/\n\x10\x61\x64\x64\x65\x64_by_user_id\x18\x07 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\raddedByUserId\x12\x35\n\x13\x61\x64\x64\x65\x64_in_version_id\x18\x08 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x10\x61\x64\x64\x65\x64InVersionId\"\xfe\x03\n\x0f\x46\x61milyAlignment\x12\x33\n\x13\x66\x61mily_alignment_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x11\x66\x61milyAlignmentId\x12\x32\n\x11\x66\x61mily_version_id\x18\x02 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0b\x64\x65scription\x12\x32\n\x03run\x18\x05 \x01(\x0b\x32\x1e.sift.families.v1.RunAlignmentH\x00R\x03run\x12N\n\nannotation\x18\x06 \x01(\x0b\x32,.sift.families.v1.DefaultAnnotationAlignmentH\x00R\nannotation\x12\x44\n\ttimestamp\x18\x07 \x01(\x0b\x32$.sift.families.v1.TimestampAlignmentH\x00R\ttimestamp\x12\x63\n\x17\x66\x61mily_alignment_points\x18\x08 \x03(\x0b\x32&.sift.families.v1.FamilyAlignmentPointB\x03\xe0\x41\x02R\x15\x66\x61milyAlignmentPointsB\x13\n\x11\x64\x65\x66\x61ult_alignment\"\xa6\x03\n\x14\x46\x61milyAlignmentPoint\x12>\n\x19\x66\x61mily_alignment_point_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x16\x66\x61milyAlignmentPointId\x12*\n\rfamily_run_id\x18\x02 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0b\x66\x61milyRunId\x12\x1a\n\x06run_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12\x36\n\x13\x66\x61mily_alignment_id\x18\x04 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x11\x66\x61milyAlignmentId\x12\x32\n\x03run\x18\x05 \x01(\x0b\x32\x1e.sift.families.v1.RunAlignmentH\x00R\x03run\x12G\n\nannotation\x18\x06 \x01(\x0b\x32%.sift.families.v1.AnnotationAlignmentH\x00R\nannotation\x12\x44\n\ttimestamp\x18\x07 \x01(\x0b\x32$.sift.families.v1.TimestampAlignmentH\x00R\ttimestampB\x0b\n\talignment\"K\n\x0cRunAlignment\x12;\n\x05\x62ound\x18\x01 \x01(\x0e\x32 .sift.families.v1.TimeRangeBoundB\x03\xe0\x41\x02R\x05\x62ound\"\x84\x02\n\x1a\x44\x65\x66\x61ultAnnotationAlignment\x12,\n\x0f\x61nnotation_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0e\x61nnotationName\x12;\n\x05\x62ound\x18\x02 \x01(\x0e\x32 .sift.families.v1.TimeRangeBoundB\x03\xe0\x41\x02R\x05\x62ound\x12K\n\noccurrence\x18\x03 \x01(\x0e\x32&.sift.families.v1.AnnotationOccurrenceB\x03\xe0\x41\x02R\noccurrence\x12.\n\x10occurrence_index\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01R\x0foccurrenceIndex\"S\n\x12TimestampAlignment\x12=\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\ttimestamp\"|\n\x13\x41nnotationAlignment\x12(\n\rannotation_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x61nnotationId\x12;\n\x05\x62ound\x18\x02 \x01(\x0e\x32 .sift.families.v1.TimeRangeBoundB\x03\xe0\x41\x02R\x05\x62ound\"\xf8\x02\n\rFamilyDetails\x12\x35\n\x06\x66\x61mily\x18\x01 \x01(\x0b\x32\x18.sift.families.v1.FamilyB\x03\xe0\x41\x02R\x06\x66\x61mily\x12K\n\x0e\x66\x61mily_version\x18\x02 \x01(\x0b\x32\x1f.sift.families.v1.FamilyVersionB\x03\xe0\x41\x02R\rfamilyVersion\x12\x41\n\x0b\x66\x61mily_runs\x18\x03 \x03(\x0b\x32\x1b.sift.families.v1.FamilyRunB\x03\xe0\x41\x02R\nfamilyRuns\x12S\n\x11\x66\x61mily_alignments\x18\x04 \x03(\x0b\x32!.sift.families.v1.FamilyAlignmentB\x03\xe0\x41\x02R\x10\x66\x61milyAlignments\x12K\n\x0c\x66\x61mily_stats\x18\x05 \x03(\x0b\x32#.sift.families.v1.FamilyStatDetailsB\x03\xe0\x41\x01R\x0b\x66\x61milyStats\"g\n\x10GetFamilyRequest\x12\x1d\n\tfamily_id\x18\x01 \x01(\tH\x00R\x08\x66\x61milyId\x12\x1f\n\nclient_key\x18\x02 \x01(\tH\x00R\tclientKeyB\x13\n\x11\x66\x61mily_identifier\"Q\n\x11GetFamilyResponse\x12<\n\x06\x66\x61mily\x18\x01 \x01(\x0b\x32\x1f.sift.families.v1.FamilyDetailsB\x03\xe0\x41\x02R\x06\x66\x61mily\"^\n\x12GetFamiliesRequest\x12\"\n\nfamily_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\tfamilyIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"W\n\x13GetFamiliesResponse\x12@\n\x08\x66\x61milies\x18\x01 \x03(\x0b\x32\x1f.sift.families.v1.FamilyDetailsB\x03\xe0\x41\x02R\x08\x66\x61milies\"J\n\x17GetFamilyVersionRequest\x12/\n\x11\x66\x61mily_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\"X\n\x18GetFamilyVersionResponse\x12<\n\x06\x66\x61mily\x18\x01 \x01(\x0b\x32\x1f.sift.families.v1.FamilyDetailsB\x03\xe0\x41\x02R\x06\x66\x61mily\"\x98\x01\n\x13ListFamiliesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x82\x01\n\x14ListFamiliesResponse\x12=\n\x08\x66\x61milies\x18\x01 \x03(\x0b\x32\x1c.sift.families.v1.ListFamilyB\x03\xe0\x41\x02R\x08\x66\x61milies\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rnextPageToken\"\x96\x01\n\nListFamily\x12\x38\n\x06\x66\x61mily\x18\x01 \x01(\x0b\x32\x18.sift.families.v1.FamilyB\x06\xe0\x41\x03\xe0\x41\x02R\x06\x66\x61mily\x12N\n\x0e\x66\x61mily_version\x18\x02 \x01(\x0b\x32\x1f.sift.families.v1.FamilyVersionB\x06\xe0\x41\x03\xe0\x41\x02R\rfamilyVersion\"\xfe\x02\n\x13\x43reateFamilyRequest\x12\x35\n\x06\x66\x61mily\x18\x01 \x01(\x0b\x32\x18.sift.families.v1.FamilyB\x03\xe0\x41\x02R\x06\x66\x61mily\x12K\n\x0e\x66\x61mily_version\x18\x02 \x01(\x0b\x32\x1f.sift.families.v1.FamilyVersionB\x03\xe0\x41\x02R\rfamilyVersion\x12\x41\n\x0b\x66\x61mily_runs\x18\x03 \x03(\x0b\x32\x1b.sift.families.v1.FamilyRunB\x03\xe0\x41\x02R\nfamilyRuns\x12S\n\x11\x66\x61mily_alignments\x18\x04 \x03(\x0b\x32!.sift.families.v1.FamilyAlignmentB\x03\xe0\x41\x01R\x10\x66\x61milyAlignments\x12K\n\x0c\x66\x61mily_stats\x18\x05 \x03(\x0b\x32#.sift.families.v1.FamilyStatDetailsB\x03\xe0\x41\x01R\x0b\x66\x61milyStats\"v\n\x14\x43reateFamilyResponse\x12 \n\tfamily_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x66\x61milyId\x12<\n\x06\x66\x61mily\x18\x02 \x01(\x0b\x32\x1f.sift.families.v1.FamilyDetailsB\x03\xe0\x41\x02R\x06\x66\x61mily\"\xea\x01\n\x13UpdateFamilyRequest\x12\x1d\n\tfamily_id\x18\x01 \x01(\tH\x00R\x08\x66\x61milyId\x12\x1f\n\nclient_key\x18\x02 \x01(\tH\x00R\tclientKey\x12<\n\x06\x66\x61mily\x18\x03 \x01(\x0b\x32\x1f.sift.families.v1.FamilyDetailsB\x03\xe0\x41\x02R\x06\x66\x61mily\x12@\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMaskB\x13\n\x11\x66\x61mily_identifier\"\xd2\x01\n\x14UpdateFamilyResponse\x12/\n\x11\x66\x61mily_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\x12<\n\x06\x66\x61mily\x18\x02 \x01(\x0b\x32\x1f.sift.families.v1.FamilyDetailsB\x03\xe0\x41\x02R\x06\x66\x61mily\x12K\n\x0c\x66\x61mily_stats\x18\x03 \x03(\x0b\x32#.sift.families.v1.FamilyStatDetailsB\x03\xe0\x41\x01R\x0b\x66\x61milyStats\"\x9e\x01\n\x19ListFamilyVersionsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\x1b\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x98\x01\n\x1aListFamilyVersionsResponse\x12M\n\x0f\x66\x61mily_versions\x18\x01 \x03(\x0b\x32\x1f.sift.families.v1.FamilyVersionB\x03\xe0\x41\x02R\x0e\x66\x61milyVersions\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"\xae\x01\n\x18ListFamilyMembersRequest\x12/\n\x11\x66\x61mily_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\"\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tpageToken\"\x8b\x01\n\x19ListFamilyMembersResponse\x12\x41\n\x0b\x66\x61mily_runs\x18\x01 \x03(\x0b\x32\x1b.sift.families.v1.FamilyRunB\x03\xe0\x41\x02R\nfamilyRuns\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"\xb1\x01\n\x1bListFamilyAlignmentsRequest\x12/\n\x11\x66\x61mily_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\"\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tpageToken\"\xa0\x01\n\x1cListFamilyAlignmentsResponse\x12S\n\x11\x66\x61mily_alignments\x18\x01 \x03(\x0b\x32!.sift.families.v1.FamilyAlignmentB\x03\xe0\x41\x02R\x10\x66\x61milyAlignments\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\"\xba\x01\n ListFamilyAlignmentPointsRequest\x12\x33\n\x13\x66\x61mily_alignment_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x11\x66\x61milyAlignmentId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\"\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01R\tpageToken\"\xb5\x01\n!ListFamilyAlignmentPointsResponse\x12\x63\n\x17\x66\x61mily_alignment_points\x18\x01 \x03(\x0b\x32&.sift.families.v1.FamilyAlignmentPointB\x03\xe0\x41\x02R\x15\x66\x61milyAlignmentPoints\x12+\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rnextPageToken\";\n\x13ImportFamilyRequest\x12$\n\x0b\x66\x61mily_yaml\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nfamilyYaml\"v\n\x14ImportFamilyResponse\x12 \n\tfamily_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x66\x61milyId\x12<\n\x06\x66\x61mily\x18\x02 \x01(\x0b\x32\x1f.sift.families.v1.FamilyDetailsB\x03\xe0\x41\x02R\x06\x66\x61mily\"\xd8\x01\n\x19ImportUpdateFamilyRequest\x12\x1d\n\tfamily_id\x18\x01 \x01(\tH\x00R\x08\x66\x61milyId\x12\x1f\n\nclient_key\x18\x02 \x01(\tH\x00R\tclientKey\x12$\n\x0b\x66\x61mily_yaml\x18\x03 \x01(\tB\x03\xe0\x41\x02R\nfamilyYaml\x12@\n\x0bupdate_mask\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01R\nupdateMaskB\x13\n\x11\x66\x61mily_identifier\"\x8b\x01\n\x1aImportUpdateFamilyResponse\x12/\n\x11\x66\x61mily_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\x12<\n\x06\x66\x61mily\x18\x02 \x01(\x0b\x32\x1f.sift.families.v1.FamilyDetailsB\x03\xe0\x41\x02R\x06\x66\x61mily\"\x98\x01\n\x13\x45xportFamilyRequest\x12\x1d\n\tfamily_id\x18\x01 \x01(\tH\x00R\x08\x66\x61milyId\x12\x1f\n\nclient_key\x18\x02 \x01(\tH\x00R\tclientKey\x12,\n\x11\x66\x61mily_version_id\x18\x03 \x01(\tH\x00R\x0f\x66\x61milyVersionIdB\x13\n\x11\x66\x61mily_identifier\"D\n\x14\x45xportFamilyResponse\x12,\n\x0f\x65xported_family\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0e\x65xportedFamily\"A\n\x19ValidateFamilyNameRequest\x12$\n\x0b\x66\x61mily_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\nfamilyName\"i\n\x1aValidateFamilyNameResponse\x12\x1a\n\x07success\x18\x01 \x01(\x08H\x00R\x07success\x12%\n\rerror_message\x18\x02 \x01(\tH\x00R\x0c\x65rrorMessageB\x08\n\x06result\"D\n\x1eValidateFamilyClientKeyRequest\x12\"\n\nclient_key\x18\x01 \x01(\tB\x03\xe0\x41\x02R\tclientKey\"n\n\x1fValidateFamilyClientKeyResponse\x12\x1a\n\x07success\x18\x01 \x01(\x08H\x00R\x07success\x12%\n\rerror_message\x18\x02 \x01(\tH\x00R\x0c\x65rrorMessageB\x08\n\x06result\"\xba\x04\n\nFamilyStat\x12,\n\x0e\x66\x61mily_stat_id\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0c\x66\x61milyStatId\x12\x32\n\x11\x66\x61mily_version_id\x18\x02 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0b\x64\x65scription\x12$\n\x0bsample_rate\x18\x05 \x01(\x01\x42\x03\xe0\x41\x02R\nsampleRate\x12\x37\n\x15\x64\x65\x66\x61ult_channel_names\x18\x06 \x03(\tB\x03\xe0\x41\x02R\x13\x64\x65\x66\x61ultChannelNames\x12\x45\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe0\x41\x03\xe0\x41\x02R\x0b\x63reatedDate\x12G\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xe0\x41\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x33\n\x12\x63reated_by_user_id\x18\t \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x35\n\x13modified_by_user_id\x18\n \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x10modifiedByUserId\x12/\n\x0forganization_id\x18\x0b \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0eorganizationId\"\x97\x04\n\x14\x46\x61milyStatExpression\x12\x41\n\x19\x66\x61mily_stat_expression_id\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x16\x66\x61milyStatExpressionId\x12,\n\x0e\x66\x61mily_stat_id\x18\x02 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0c\x66\x61milyStatId\x12*\n\x03\x61vg\x18\x03 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00R\x03\x61vg\x12\x30\n\x06median\x18\x04 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00R\x06median\x12*\n\x03min\x18\x05 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00R\x03min\x12*\n\x03max\x18\x06 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00R\x03max\x12.\n\x05stdev\x18\x07 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00R\x05stdev\x12*\n\x03sum\x18\x08 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00R\x03sum\x12\x39\n\x0binput_count\x18\t \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00R\ninputCount\x12\x33\n\x05sigma\x18\n \x01(\x0b\x32\x16.google.protobuf.EmptyB\x03\xe0\x41\x03H\x00R\x05sigmaB\x0c\n\nexpression\"\xd5\x01\n\x11\x46\x61milyStatChannel\x12;\n\x16\x66\x61mily_stat_channel_id\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x13\x66\x61milyStatChannelId\x12,\n\x0e\x66\x61mily_stat_id\x18\x02 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0c\x66\x61milyStatId\x12\"\n\nchannel_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\tchannelId\x12\x31\n\x12\x61lignment_point_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x10\x61lignmentPointId\"}\n\nWindowType\x12\x33\n\x13\x66\x61mily_alignment_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x11\x66\x61milyAlignmentId\x12:\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01R\x08\x64uration\"\xfb\x02\n\x0f\x46\x61milyStatRange\x12\x37\n\x14\x66\x61mily_stat_range_id\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x11\x66\x61milyStatRangeId\x12,\n\x0e\x66\x61mily_stat_id\x18\x02 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x0c\x66\x61milyStatId\x12\x33\n\x13\x66\x61mily_alignment_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x11\x66\x61milyAlignmentId\x12\x1a\n\x04name\x18\x04 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x02R\x04name\x12I\n\x0cwindow_start\x18\x05 \x01(\x0b\x32\x1c.sift.families.v1.WindowTypeB\x03\xe0\x41\x01H\x00R\x0bwindowStart\x88\x01\x01\x12\x45\n\nwindow_end\x18\x06 \x01(\x0b\x32\x1c.sift.families.v1.WindowTypeB\x03\xe0\x41\x01H\x01R\twindowEnd\x88\x01\x01\x42\x0f\n\r_window_startB\r\n\x0b_window_end\"\xee\x02\n\x11\x46\x61milyStatDetails\x12\x42\n\x0b\x66\x61mily_stat\x18\x01 \x01(\x0b\x32\x1c.sift.families.v1.FamilyStatB\x03\xe0\x41\x02R\nfamilyStat\x12\x63\n\x17\x66\x61mily_stat_expressions\x18\x02 \x03(\x0b\x32&.sift.families.v1.FamilyStatExpressionB\x03\xe0\x41\x02R\x15\x66\x61milyStatExpressions\x12Z\n\x14\x66\x61mily_stat_channels\x18\x03 \x03(\x0b\x32#.sift.families.v1.FamilyStatChannelB\x03\xe0\x41\x01R\x12\x66\x61milyStatChannels\x12T\n\x12\x66\x61mily_stat_ranges\x18\x04 \x03(\x0b\x32!.sift.families.v1.FamilyStatRangeB\x03\xe0\x41\x02R\x10\x66\x61milyStatRanges\"A\n\x14GetFamilyStatRequest\x12)\n\x0e\x66\x61mily_stat_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x66\x61milyStatId\"q\n\x15GetFamilyStatResponse\x12X\n\x13\x66\x61mily_stat_details\x18\x01 \x01(\x0b\x32#.sift.families.v1.FamilyStatDetailsB\x03\xe0\x41\x02R\x11\x66\x61milyStatDetails\"H\n\x15GetFamilyStatsRequest\x12/\n\x11\x66\x61mily_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\"t\n\x16GetFamilyStatsResponse\x12Z\n\x14\x66\x61mily_stats_details\x18\x01 \x03(\x0b\x32#.sift.families.v1.FamilyStatDetailsB\x03\xe0\x41\x02R\x12\x66\x61milyStatsDetails\"\xa2\x01\n\x1d\x43reateFamilyStatRangesRequest\x12+\n\x0f\x66\x61mily_stat_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\rfamilyStatIds\x12T\n\x12\x66\x61mily_stat_ranges\x18\x02 \x03(\x0b\x32!.sift.families.v1.FamilyStatRangeB\x03\xe0\x41\x02R\x10\x66\x61milyStatRanges\"\xdc\x01\n\x1e\x43reateFamilyStatRangesResponse\x12/\n\x11\x66\x61mily_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\x12<\n\x06\x66\x61mily\x18\x02 \x01(\x0b\x32\x1f.sift.families.v1.FamilyDetailsB\x03\xe0\x41\x02R\x06\x66\x61mily\x12K\n\x0c\x66\x61mily_stats\x18\x03 \x03(\x0b\x32#.sift.families.v1.FamilyStatDetailsB\x03\xe0\x41\x02R\x0b\x66\x61milyStats\"D\n GetFamilyRuleDependenciesRequest\x12 \n\tfamily_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08\x66\x61milyId\"}\n!GetFamilyRuleDependenciesResponse\x12X\n\x11rule_dependencies\x18\x01 \x03(\x0b\x32&.sift.families.v1.FamilyRuleDependencyB\x03\xe0\x41\x02R\x10ruleDependencies\"\x9d\x01\n\x14\x46\x61milyRuleDependency\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12N\n\x0estat_reference\x18\x03 \x01(\x0b\x32\".sift.rules.v1.FamilyStatReferenceB\x03\xe0\x41\x02R\rstatReference\"\x89\x01\n\x12\x41\x62stractWindowType\x12\x37\n\x15\x66\x61mily_alignment_name\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x13\x66\x61milyAlignmentName\x12:\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01R\x08\x64uration\"\xf5\x01\n\"GenerateFamilyStatRangeNameRequest\x12\x37\n\x15\x66\x61mily_alignment_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x13\x66\x61milyAlignmentName\x12L\n\x0cwindow_start\x18\x02 \x01(\x0b\x32$.sift.families.v1.AbstractWindowTypeB\x03\xe0\x41\x02R\x0bwindowStart\x12H\n\nwindow_end\x18\x03 \x01(\x0b\x32$.sift.families.v1.AbstractWindowTypeB\x03\xe0\x41\x02R\twindowEnd\">\n#GenerateFamilyStatRangeNameResponse\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\"P\n\x1dGetFamilyCandidateRunsRequest\x12/\n\x11\x66\x61mily_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\"s\n\x1eGetFamilyCandidateRunsResponse\x12 \n\trun_query\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08runQuery\x12/\n\x11\x63\x61ndidate_run_ids\x18\x02 \x03(\tB\x03\xe0\x41\x02R\x0f\x63\x61ndidateRunIds\"T\n!GetFamilyCandidateRunCountRequest\x12/\n\x11\x66\x61mily_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\"?\n\"GetFamilyCandidateRunCountResponse\x12\x19\n\x05\x63ount\x18\x01 \x01(\rB\x03\xe0\x41\x02R\x05\x63ount\"\xc5\x01\n\x1eListFamilyCandidateRunsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\x12 \n\tfamily_id\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x08\x66\x61milyId\"u\n\x1fListFamilyCandidateRunsResponse\x12*\n\x04runs\x18\x01 \x03(\x0b\x32\x11.sift.runs.v2.RunB\x03\xe0\x41\x02R\x04runs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"*\n(GetFamilyCandidateRunFilterFieldsRequest\"m\n)GetFamilyCandidateRunFilterFieldsResponse\x12@\n\rfilter_fields\x18\x01 \x03(\x0b\x32\x1b.sift.common.v1.FilterFieldR\x0c\x66ilterFields*l\n\x0eTimeRangeBound\x12$\n\x1cTIME_RANGE_BOUND_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x1a\n\x16TIME_RANGE_BOUND_START\x10\x01\x12\x18\n\x14TIME_RANGE_BOUND_END\x10\x02*\xc2\x01\n\x14\x41nnotationOccurrence\x12)\n!ANNOTATION_OCCURRENCE_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x1f\n\x1b\x41NNOTATION_OCCURRENCE_FIRST\x10\x01\x12\x1e\n\x1a\x41NNOTATION_OCCURRENCE_LAST\x10\x02\x12\x1f\n\x1b\x41NNOTATION_OCCURRENCE_EVERY\x10\x03\x12\x1d\n\x19\x41NNOTATION_OCCURRENCE_NTH\x10\x04\x32\xfd\x33\n\rFamilyService\x12\xe0\x01\n\tGetFamily\x12\".sift.families.v1.GetFamilyRequest\x1a#.sift.families.v1.GetFamilyResponse\"\x89\x01\x92\x41\x36\x12\tGetFamily\x1a)Retrieves the latest version of a family.\x82\xd3\xe4\x93\x02J\x12\x1c/api/v1/families/{family_id}Z*\x12(/api/v1/families/client_key/{client_key}\x12\xc5\x01\n\x0bGetFamilies\x12$.sift.families.v1.GetFamiliesRequest\x1a%.sift.families.v1.GetFamiliesResponse\"i\x92\x41\x42\x12\x0bGetFamilies\x1a\x33Retrieves the latest versions of multiple families.\x82\xd3\xe4\x93\x02\x1e\"\x19/api/v1/families:batchGet:\x01*\x12\xe0\x01\n\x10GetFamilyVersion\x12).sift.families.v1.GetFamilyVersionRequest\x1a*.sift.families.v1.GetFamilyVersionResponse\"u\x92\x41=\x12\x10GetFamilyVersion\x1a)Retrieves a specific version of a family.\x82\xd3\xe4\x93\x02/\x12-/api/v1/families/versions/{family_version_id}\x12\xa2\x01\n\x0c\x43reateFamily\x12%.sift.families.v1.CreateFamilyRequest\x1a&.sift.families.v1.CreateFamilyResponse\"C\x92\x41%\x12\x0c\x43reateFamily\x1a\x15\x43reates a new family.\x82\xd3\xe4\x93\x02\x15\"\x10/api/v1/families:\x01*\x12\x98\x02\n\x0cUpdateFamily\x12%.sift.families.v1.UpdateFamilyRequest\x1a&.sift.families.v1.UpdateFamilyResponse\"\xb8\x01\x92\x41_\x12\x0cUpdateFamily\x1aOUpdates an existing family using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02P2\x1c/api/v1/families/{family_id}:\x01*Z-2(/api/v1/families/client_key/{client_key}:\x01*\x12\xc6\x02\n\x16GetFamilyCandidateRuns\x12/.sift.families.v1.GetFamilyCandidateRunsRequest\x1a\x30.sift.families.v1.GetFamilyCandidateRunsResponse\"\xc8\x01\x92\x41\x80\x01\x12\x16GetFamilyCandidateRuns\x1a\x66Retrieves the candidate runs for a family version based on the run query stored in the family version.\x82\xd3\xe4\x93\x02>\x12\022= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _TimeRangeBound: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _TimeRangeBoundEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TimeRangeBound.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + TIME_RANGE_BOUND_UNSPECIFIED: _TimeRangeBound.ValueType # 0 + TIME_RANGE_BOUND_START: _TimeRangeBound.ValueType # 1 + TIME_RANGE_BOUND_END: _TimeRangeBound.ValueType # 2 + +class TimeRangeBound(_TimeRangeBound, metaclass=_TimeRangeBoundEnumTypeWrapper): ... + +TIME_RANGE_BOUND_UNSPECIFIED: TimeRangeBound.ValueType # 0 +TIME_RANGE_BOUND_START: TimeRangeBound.ValueType # 1 +TIME_RANGE_BOUND_END: TimeRangeBound.ValueType # 2 +global___TimeRangeBound = TimeRangeBound + +class _AnnotationOccurrence: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _AnnotationOccurrenceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_AnnotationOccurrence.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + ANNOTATION_OCCURRENCE_UNSPECIFIED: _AnnotationOccurrence.ValueType # 0 + ANNOTATION_OCCURRENCE_FIRST: _AnnotationOccurrence.ValueType # 1 + ANNOTATION_OCCURRENCE_LAST: _AnnotationOccurrence.ValueType # 2 + ANNOTATION_OCCURRENCE_EVERY: _AnnotationOccurrence.ValueType # 3 + ANNOTATION_OCCURRENCE_NTH: _AnnotationOccurrence.ValueType # 4 + +class AnnotationOccurrence(_AnnotationOccurrence, metaclass=_AnnotationOccurrenceEnumTypeWrapper): ... + +ANNOTATION_OCCURRENCE_UNSPECIFIED: AnnotationOccurrence.ValueType # 0 +ANNOTATION_OCCURRENCE_FIRST: AnnotationOccurrence.ValueType # 1 +ANNOTATION_OCCURRENCE_LAST: AnnotationOccurrence.ValueType # 2 +ANNOTATION_OCCURRENCE_EVERY: AnnotationOccurrence.ValueType # 3 +ANNOTATION_OCCURRENCE_NTH: AnnotationOccurrence.ValueType # 4 +global___AnnotationOccurrence = AnnotationOccurrence + +@typing.final +class Family(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ID_FIELD_NUMBER: builtins.int + CLIENT_KEY_FIELD_NUMBER: builtins.int + CURRENT_VERSION_ID_FIELD_NUMBER: builtins.int + IS_ARCHIVED_FIELD_NUMBER: builtins.int + CREATED_DATE_FIELD_NUMBER: builtins.int + MODIFIED_DATE_FIELD_NUMBER: builtins.int + ARCHIVED_DATE_FIELD_NUMBER: builtins.int + CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int + MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + family_id: builtins.str + client_key: builtins.str + """Client key is a user-provided unique identifier for the family""" + current_version_id: builtins.str + """The latest family_version_id for the family.""" + is_archived: builtins.bool + """Whether the family is archived.""" + created_by_user_id: builtins.str + modified_by_user_id: builtins.str + organization_id: builtins.str + @property + def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def archived_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + family_id: builtins.str = ..., + client_key: builtins.str = ..., + current_version_id: builtins.str = ..., + is_archived: builtins.bool = ..., + created_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_by_user_id: builtins.str = ..., + modified_by_user_id: builtins.str = ..., + organization_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["archived_date", b"archived_date", "created_date", b"created_date", "modified_date", b"modified_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["archived_date", b"archived_date", "client_key", b"client_key", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "current_version_id", b"current_version_id", "family_id", b"family_id", "is_archived", b"is_archived", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "organization_id", b"organization_id"]) -> None: ... + +global___Family = Family + +@typing.final +class FamilyVersion(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + FAMILY_ID_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + RUN_QUERY_FIELD_NUMBER: builtins.int + USER_NOTES_FIELD_NUMBER: builtins.int + CHANGE_MESSAGE_FIELD_NUMBER: builtins.int + METADATA_FIELD_NUMBER: builtins.int + SIGMA_DEFAULT_VALUES_FIELD_NUMBER: builtins.int + CREATED_DATE_FIELD_NUMBER: builtins.int + MODIFIED_DATE_FIELD_NUMBER: builtins.int + CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int + MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + family_version_id: builtins.str + family_id: builtins.str + version: builtins.int + name: builtins.str + """The name of the family. Must be unique within the organization for the latest family versions.""" + description: builtins.str + run_query: builtins.str + """An optional query to track a CEL expression against the ListRuns endpoint. This query is only for reference, + and does not affect the runs that are included in the family. To specify which runs are included in the family, + use the `runs` field. + """ + user_notes: builtins.str + """Notes provided by the user to describe the family version changes""" + change_message: builtins.str + """Family Service provided message describing the changes made to the family version.""" + created_by_user_id: builtins.str + modified_by_user_id: builtins.str + organization_id: builtins.str + @property + def metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.metadata.v1.metadata_pb2.MetadataValue]: + """Metadata associated with the family version.""" + + @property + def sigma_default_values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + """User-configurable default sigma multiplier values, e.g. [1, 2, 3]. + If not provided, the default values [-1, 1, -2, 2, -3, 3] will be used. + """ + + @property + def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + family_version_id: builtins.str = ..., + family_id: builtins.str = ..., + version: builtins.int = ..., + name: builtins.str = ..., + description: builtins.str = ..., + run_query: builtins.str = ..., + user_notes: builtins.str = ..., + change_message: builtins.str = ..., + metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., + sigma_default_values: collections.abc.Iterable[builtins.float] | None = ..., + created_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_by_user_id: builtins.str = ..., + modified_by_user_id: builtins.str = ..., + organization_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["created_date", b"created_date", "modified_date", b"modified_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["change_message", b"change_message", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "family_id", b"family_id", "family_version_id", b"family_version_id", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "run_query", b"run_query", "sigma_default_values", b"sigma_default_values", "user_notes", b"user_notes", "version", b"version"]) -> None: ... + +global___FamilyVersion = FamilyVersion + +@typing.final +class FamilyRun(google.protobuf.message.Message): + """FamilyRun represents a run which is either included in the family or explicitly excluded.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_RUN_ID_FIELD_NUMBER: builtins.int + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + IS_EXCLUSION_FIELD_NUMBER: builtins.int + RATIONALE_FIELD_NUMBER: builtins.int + ADDED_DATE_FIELD_NUMBER: builtins.int + ADDED_BY_USER_ID_FIELD_NUMBER: builtins.int + ADDED_IN_VERSION_ID_FIELD_NUMBER: builtins.int + family_run_id: builtins.str + family_version_id: builtins.str + run_id: builtins.str + is_exclusion: builtins.bool + """Whether the run is excluded from the family. If `true` the run is explicitly excluded, otherwise it is included.""" + rationale: builtins.str + """User rationale for the inclusion or exclusion.""" + added_by_user_id: builtins.str + """User id of the user who included or excluded the run from the family.""" + added_in_version_id: builtins.str + """Version id of the version in which the run was included or excluded from the family.""" + @property + def added_date(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Date when the run was included or excluded from the family.""" + + def __init__( + self, + *, + family_run_id: builtins.str = ..., + family_version_id: builtins.str = ..., + run_id: builtins.str = ..., + is_exclusion: builtins.bool = ..., + rationale: builtins.str = ..., + added_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + added_by_user_id: builtins.str = ..., + added_in_version_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["added_date", b"added_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["added_by_user_id", b"added_by_user_id", "added_date", b"added_date", "added_in_version_id", b"added_in_version_id", "family_run_id", b"family_run_id", "family_version_id", b"family_version_id", "is_exclusion", b"is_exclusion", "rationale", b"rationale", "run_id", b"run_id"]) -> None: ... + +global___FamilyRun = FamilyRun + +@typing.final +class FamilyAlignment(google.protobuf.message.Message): + """FamilyAlignment represents a family-level time-alignment for naming and resolving run relative times.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ALIGNMENT_ID_FIELD_NUMBER: builtins.int + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + RUN_FIELD_NUMBER: builtins.int + ANNOTATION_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + FAMILY_ALIGNMENT_POINTS_FIELD_NUMBER: builtins.int + family_alignment_id: builtins.str + """When creating a family, this field can contain a temporary identifier + provided by the client for referencing this alignment in family_stats. The temporary ID + must be unique within the CreateFamilyRequest and is required when this alignment is + referenced in family_stats. The service will resolve it to the actual alignment ID. + When updating a family, this field must contain the actual family_alignment_id. + In responses, this field contains the actual family_alignment_id. + """ + family_version_id: builtins.str + name: builtins.str + """The name of the alignment. Must be unique within the family.""" + description: builtins.str + @property + def run(self) -> global___RunAlignment: ... + @property + def annotation(self) -> global___DefaultAnnotationAlignment: ... + @property + def timestamp(self) -> global___TimestampAlignment: ... + @property + def family_alignment_points(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyAlignmentPoint]: + """Specific alignment points for each family member for the alignment. If not provided for a family member, the member does not implement this alignment.""" + + def __init__( + self, + *, + family_alignment_id: builtins.str = ..., + family_version_id: builtins.str = ..., + name: builtins.str = ..., + description: builtins.str = ..., + run: global___RunAlignment | None = ..., + annotation: global___DefaultAnnotationAlignment | None = ..., + timestamp: global___TimestampAlignment | None = ..., + family_alignment_points: collections.abc.Iterable[global___FamilyAlignmentPoint] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["annotation", b"annotation", "default_alignment", b"default_alignment", "run", b"run", "timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["annotation", b"annotation", "default_alignment", b"default_alignment", "description", b"description", "family_alignment_id", b"family_alignment_id", "family_alignment_points", b"family_alignment_points", "family_version_id", b"family_version_id", "name", b"name", "run", b"run", "timestamp", b"timestamp"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["default_alignment", b"default_alignment"]) -> typing.Literal["run", "annotation", "timestamp"] | None: ... + +global___FamilyAlignment = FamilyAlignment + +@typing.final +class FamilyAlignmentPoint(google.protobuf.message.Message): + """FamilyAlignmentPoint represents a member specific time-alignment for the FamilyAlignment.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ALIGNMENT_POINT_ID_FIELD_NUMBER: builtins.int + FAMILY_RUN_ID_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + FAMILY_ALIGNMENT_ID_FIELD_NUMBER: builtins.int + RUN_FIELD_NUMBER: builtins.int + ANNOTATION_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + family_alignment_point_id: builtins.str + """When creating a family, this field can contain a temporary identifier + provided by the client for referencing this alignment point in family_stats. The temporary ID + must be unique within the CreateFamilyRequest and is required when this alignment point is + referenced in family_stats. The service will resolve it to the actual alignment_point_id. + When updating a family, this field must contain the actual family_alignment_point_id. + In responses, this field contains the actual family_alignment_point_id. + Can be empty string if not referenced in family_stats. + """ + family_run_id: builtins.str + run_id: builtins.str + family_alignment_id: builtins.str + @property + def run(self) -> global___RunAlignment: ... + @property + def annotation(self) -> global___AnnotationAlignment: ... + @property + def timestamp(self) -> global___TimestampAlignment: ... + def __init__( + self, + *, + family_alignment_point_id: builtins.str = ..., + family_run_id: builtins.str = ..., + run_id: builtins.str = ..., + family_alignment_id: builtins.str = ..., + run: global___RunAlignment | None = ..., + annotation: global___AnnotationAlignment | None = ..., + timestamp: global___TimestampAlignment | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["alignment", b"alignment", "annotation", b"annotation", "run", b"run", "timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["alignment", b"alignment", "annotation", b"annotation", "family_alignment_id", b"family_alignment_id", "family_alignment_point_id", b"family_alignment_point_id", "family_run_id", b"family_run_id", "run", b"run", "run_id", b"run_id", "timestamp", b"timestamp"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["alignment", b"alignment"]) -> typing.Literal["run", "annotation", "timestamp"] | None: ... + +global___FamilyAlignmentPoint = FamilyAlignmentPoint + +@typing.final +class RunAlignment(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + BOUND_FIELD_NUMBER: builtins.int + bound: global___TimeRangeBound.ValueType + def __init__( + self, + *, + bound: global___TimeRangeBound.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["bound", b"bound"]) -> None: ... + +global___RunAlignment = RunAlignment + +@typing.final +class DefaultAnnotationAlignment(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ANNOTATION_NAME_FIELD_NUMBER: builtins.int + BOUND_FIELD_NUMBER: builtins.int + OCCURRENCE_FIELD_NUMBER: builtins.int + OCCURRENCE_INDEX_FIELD_NUMBER: builtins.int + annotation_name: builtins.str + bound: global___TimeRangeBound.ValueType + occurrence: global___AnnotationOccurrence.ValueType + occurrence_index: builtins.int + """Index of the annotation to use when occurrence is "nth". Positive indices start from the beginning, negative from the end.""" + def __init__( + self, + *, + annotation_name: builtins.str = ..., + bound: global___TimeRangeBound.ValueType = ..., + occurrence: global___AnnotationOccurrence.ValueType = ..., + occurrence_index: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["annotation_name", b"annotation_name", "bound", b"bound", "occurrence", b"occurrence", "occurrence_index", b"occurrence_index"]) -> None: ... + +global___DefaultAnnotationAlignment = DefaultAnnotationAlignment + +@typing.final +class TimestampAlignment(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TIMESTAMP_FIELD_NUMBER: builtins.int + @property + def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["timestamp", b"timestamp"]) -> None: ... + +global___TimestampAlignment = TimestampAlignment + +@typing.final +class AnnotationAlignment(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ANNOTATION_ID_FIELD_NUMBER: builtins.int + BOUND_FIELD_NUMBER: builtins.int + annotation_id: builtins.str + bound: global___TimeRangeBound.ValueType + def __init__( + self, + *, + annotation_id: builtins.str = ..., + bound: global___TimeRangeBound.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["annotation_id", b"annotation_id", "bound", b"bound"]) -> None: ... + +global___AnnotationAlignment = AnnotationAlignment + +@typing.final +class FamilyDetails(google.protobuf.message.Message): + """FamilyDetails provides the entire family configuration including version, members, and alignments""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_FIELD_NUMBER: builtins.int + FAMILY_VERSION_FIELD_NUMBER: builtins.int + FAMILY_RUNS_FIELD_NUMBER: builtins.int + FAMILY_ALIGNMENTS_FIELD_NUMBER: builtins.int + FAMILY_STATS_FIELD_NUMBER: builtins.int + @property + def family(self) -> global___Family: ... + @property + def family_version(self) -> global___FamilyVersion: + """The requested FamilyVersion for the family. Matches the current version unless a specific version is requested.""" + + @property + def family_runs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyRun]: + """The family members associated with the FamilyVersion.""" + + @property + def family_alignments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyAlignment]: + """The alignments associated with the FamilyVersion.""" + + @property + def family_stats(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyStatDetails]: + """The family stats associated with the FamilyVersion.""" + + def __init__( + self, + *, + family: global___Family | None = ..., + family_version: global___FamilyVersion | None = ..., + family_runs: collections.abc.Iterable[global___FamilyRun] | None = ..., + family_alignments: collections.abc.Iterable[global___FamilyAlignment] | None = ..., + family_stats: collections.abc.Iterable[global___FamilyStatDetails] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family", b"family", "family_version", b"family_version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family", b"family", "family_alignments", b"family_alignments", "family_runs", b"family_runs", "family_stats", b"family_stats", "family_version", b"family_version"]) -> None: ... + +global___FamilyDetails = FamilyDetails + +@typing.final +class GetFamilyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ID_FIELD_NUMBER: builtins.int + CLIENT_KEY_FIELD_NUMBER: builtins.int + family_id: builtins.str + client_key: builtins.str + def __init__( + self, + *, + family_id: builtins.str = ..., + client_key: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["client_key", b"client_key", "family_id", b"family_id", "family_identifier", b"family_identifier"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["client_key", b"client_key", "family_id", b"family_id", "family_identifier", b"family_identifier"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["family_identifier", b"family_identifier"]) -> typing.Literal["family_id", "client_key"] | None: ... + +global___GetFamilyRequest = GetFamilyRequest + +@typing.final +class GetFamilyResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_FIELD_NUMBER: builtins.int + @property + def family(self) -> global___FamilyDetails: ... + def __init__( + self, + *, + family: global___FamilyDetails | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family", b"family"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family", b"family"]) -> None: ... + +global___GetFamilyResponse = GetFamilyResponse + +@typing.final +class GetFamiliesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_IDS_FIELD_NUMBER: builtins.int + CLIENT_KEYS_FIELD_NUMBER: builtins.int + @property + def family_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def client_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + family_ids: collections.abc.Iterable[builtins.str] | None = ..., + client_keys: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["client_keys", b"client_keys", "family_ids", b"family_ids"]) -> None: ... + +global___GetFamiliesRequest = GetFamiliesRequest + +@typing.final +class GetFamiliesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILIES_FIELD_NUMBER: builtins.int + @property + def families(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyDetails]: ... + def __init__( + self, + *, + families: collections.abc.Iterable[global___FamilyDetails] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["families", b"families"]) -> None: ... + +global___GetFamiliesResponse = GetFamiliesResponse + +@typing.final +class GetFamilyVersionRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + family_version_id: builtins.str + def __init__( + self, + *, + family_version_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_version_id", b"family_version_id"]) -> None: ... + +global___GetFamilyVersionRequest = GetFamilyVersionRequest + +@typing.final +class GetFamilyVersionResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_FIELD_NUMBER: builtins.int + @property + def family(self) -> global___FamilyDetails: ... + def __init__( + self, + *, + family: global___FamilyDetails | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family", b"family"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family", b"family"]) -> None: ... + +global___GetFamilyVersionResponse = GetFamilyVersionResponse + +@typing.final +class ListFamiliesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PAGE_SIZE_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int + page_size: builtins.int + """The maximum number of families to return. The service may return fewer than this value, even if + there are additional pages. If unspecified, the limit defaults to 50. The maximum value is 100. + """ + page_token: builtins.str + """A page token, received from a previous `ListFamilies` call. Provide this to retrieve the + subsequent page. When paginating, all other parameters provided to `ListFamilies` must match + the call that provided the page token. + """ + filter: builtins.str + """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + Available fields to filter by are: `family_id`, `client_key`, `organization_id`, `archived_date`, `is_archived`, `created_by_user_id`, `created_date`, `modified_by_user_id`, `modified_date`, `name`, `description`, `run_query`, `run_id_includes`, `run_id_excludes`, `alignment_name`, `alignment_description`, `metadata`. + For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + """ + order_by: builtins.str + """How to order the retrieved families. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + Available fields to order_by are: `created_date`, `modified_date`, `archived_date`. + If left empty, items are ordered by `created_date` in descending order. + For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + Example: "created_date desc" + """ + def __init__( + self, + *, + page_size: builtins.int = ..., + page_token: builtins.str = ..., + filter: builtins.str = ..., + order_by: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + +global___ListFamiliesRequest = ListFamiliesRequest + +@typing.final +class ListFamiliesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILIES_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + """A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.""" + @property + def families(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ListFamily]: ... + def __init__( + self, + *, + families: collections.abc.Iterable[global___ListFamily] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["families", b"families", "next_page_token", b"next_page_token"]) -> None: ... + +global___ListFamiliesResponse = ListFamiliesResponse + +@typing.final +class ListFamily(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_FIELD_NUMBER: builtins.int + FAMILY_VERSION_FIELD_NUMBER: builtins.int + @property + def family(self) -> global___Family: ... + @property + def family_version(self) -> global___FamilyVersion: + """The latest family version associated with the Family.""" + + def __init__( + self, + *, + family: global___Family | None = ..., + family_version: global___FamilyVersion | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family", b"family", "family_version", b"family_version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family", b"family", "family_version", b"family_version"]) -> None: ... + +global___ListFamily = ListFamily + +@typing.final +class CreateFamilyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_FIELD_NUMBER: builtins.int + FAMILY_VERSION_FIELD_NUMBER: builtins.int + FAMILY_RUNS_FIELD_NUMBER: builtins.int + FAMILY_ALIGNMENTS_FIELD_NUMBER: builtins.int + FAMILY_STATS_FIELD_NUMBER: builtins.int + @property + def family(self) -> global___Family: + """Family level information about the family such as archival status and client_key are set in the Family.""" + + @property + def family_version(self) -> global___FamilyVersion: + """Version specific information about the family such as name, description, metadata, etc. are set in the FamilyVersion.""" + + @property + def family_runs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyRun]: + """The runs to include in the family. At least one run must be specified.""" + + @property + def family_alignments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyAlignment]: + """The alignments to apply to the family. If not provided, a default alignment will be created for the Family.""" + + @property + def family_stats(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyStatDetails]: + """The family stats to create for the family. If not provided, no family stats will be created.""" + + def __init__( + self, + *, + family: global___Family | None = ..., + family_version: global___FamilyVersion | None = ..., + family_runs: collections.abc.Iterable[global___FamilyRun] | None = ..., + family_alignments: collections.abc.Iterable[global___FamilyAlignment] | None = ..., + family_stats: collections.abc.Iterable[global___FamilyStatDetails] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family", b"family", "family_version", b"family_version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family", b"family", "family_alignments", b"family_alignments", "family_runs", b"family_runs", "family_stats", b"family_stats", "family_version", b"family_version"]) -> None: ... + +global___CreateFamilyRequest = CreateFamilyRequest + +@typing.final +class CreateFamilyResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ID_FIELD_NUMBER: builtins.int + FAMILY_FIELD_NUMBER: builtins.int + family_id: builtins.str + @property + def family(self) -> global___FamilyDetails: ... + def __init__( + self, + *, + family_id: builtins.str = ..., + family: global___FamilyDetails | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family", b"family"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family", b"family", "family_id", b"family_id"]) -> None: ... + +global___CreateFamilyResponse = CreateFamilyResponse + +@typing.final +class UpdateFamilyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ID_FIELD_NUMBER: builtins.int + CLIENT_KEY_FIELD_NUMBER: builtins.int + FAMILY_FIELD_NUMBER: builtins.int + UPDATE_MASK_FIELD_NUMBER: builtins.int + family_id: builtins.str + client_key: builtins.str + @property + def family(self) -> global___FamilyDetails: + """The family data to update. Only fields referenced in the update_mask will be updated.""" + + @property + def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask: + """The list of fields to update. The fields available to be updated are + `family_version.name`, `family_version.description`, `family_version.run_query`, `family_version.metadata`, `family_version.user_notes`, `family.is_archived`, `family.client_key`, `family_runs`, `family_alignments`, and `family_stats`. + + Note: Whenever the family is updated, the family stats are also updated to point to the new family version to ensure the family stats are always up to date. + client_key can only be updated if it is not already set. It must be passed in via the family request and cannot be used as identifier. + """ + + def __init__( + self, + *, + family_id: builtins.str = ..., + client_key: builtins.str = ..., + family: global___FamilyDetails | None = ..., + update_mask: google.protobuf.field_mask_pb2.FieldMask | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["client_key", b"client_key", "family", b"family", "family_id", b"family_id", "family_identifier", b"family_identifier", "update_mask", b"update_mask"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["client_key", b"client_key", "family", b"family", "family_id", b"family_id", "family_identifier", b"family_identifier", "update_mask", b"update_mask"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["family_identifier", b"family_identifier"]) -> typing.Literal["family_id", "client_key"] | None: ... + +global___UpdateFamilyRequest = UpdateFamilyRequest + +@typing.final +class UpdateFamilyResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + FAMILY_FIELD_NUMBER: builtins.int + FAMILY_STATS_FIELD_NUMBER: builtins.int + family_version_id: builtins.str + @property + def family(self) -> global___FamilyDetails: ... + @property + def family_stats(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyStatDetails]: ... + def __init__( + self, + *, + family_version_id: builtins.str = ..., + family: global___FamilyDetails | None = ..., + family_stats: collections.abc.Iterable[global___FamilyStatDetails] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family", b"family"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family", b"family", "family_stats", b"family_stats", "family_version_id", b"family_version_id"]) -> None: ... + +global___UpdateFamilyResponse = UpdateFamilyResponse + +@typing.final +class ListFamilyVersionsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PAGE_SIZE_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int + page_size: builtins.int + """The maximum number of family versions to return. The service may return fewer than this value, even if + there are additional pages. If unspecified, the max limit defaults to 50. The maximum value is 200. + """ + filter: builtins.str + """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + Available fields to filter by are: `family_id`, `family_version_id`, `organization_id`, `name`, `description`, `run_query`, `user_notes`, `change_message`, `created_by_user_id`, `created_date`, `modified_by_user_id`, `modified_date`, `archived_date`, `is_archived`, `run_id_includes`, `run_id_excludes`, `alignment_name`, `alignment_description`. + For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + """ + page_token: builtins.str + """A page token, received from a previous `ListFamilyVersions` call. Provide this to retrieve the + subsequent page. When paginating, all other parameters provided to `ListFamilyVersions` must match + the call that provided the page token. + """ + order_by: builtins.str + """How to order the retrieved family versions. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + Available fields to order_by are: `created_date`, `modified_date`, `name`. + If left empty, items are ordered by `created_date` in descending order. + For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + Example: "created_date desc" + """ + def __init__( + self, + *, + page_size: builtins.int = ..., + filter: builtins.str = ..., + page_token: builtins.str = ..., + order_by: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + +global___ListFamilyVersionsRequest = ListFamilyVersionsRequest + +@typing.final +class ListFamilyVersionsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_VERSIONS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + """A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.""" + @property + def family_versions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyVersion]: ... + def __init__( + self, + *, + family_versions: collections.abc.Iterable[global___FamilyVersion] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_versions", b"family_versions", "next_page_token", b"next_page_token"]) -> None: ... + +global___ListFamilyVersionsResponse = ListFamilyVersionsResponse + +@typing.final +class ListFamilyMembersRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + PAGE_SIZE_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + family_version_id: builtins.str + """Provide family_version_id to identify the family to list members for.""" + page_size: builtins.int + """The maximum number of family members to return. The service may return fewer than this value, even if + there are additional pages. If unspecified, the max limit defaults to 200. The maximum value is 500. + """ + filter: builtins.str + """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + Available fields to filter by are: `is_exclusion`, `rationale`, `added_date`, `added_by_user_id`, `added_in_version_id`, and for the associated Run:`name`, `description`, `start_time`, `end_time`, `duration`. + Note: `name`, `description`, `start_time`, `end_time`, and `duration` are filters on the associated run. + For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + """ + page_token: builtins.str + """A page token, received from a previous `ListFamilyMembers` call. Provide this to retrieve the + subsequent page. When paginating, all other parameters provided to `ListFamilyMembers` must match + the call that provided the page token. + """ + def __init__( + self, + *, + family_version_id: builtins.str = ..., + page_size: builtins.int = ..., + filter: builtins.str = ..., + page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_version_id", b"family_version_id", "filter", b"filter", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + +global___ListFamilyMembersRequest = ListFamilyMembersRequest + +@typing.final +class ListFamilyMembersResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_RUNS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + """A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.""" + @property + def family_runs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyRun]: ... + def __init__( + self, + *, + family_runs: collections.abc.Iterable[global___FamilyRun] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_runs", b"family_runs", "next_page_token", b"next_page_token"]) -> None: ... + +global___ListFamilyMembersResponse = ListFamilyMembersResponse + +@typing.final +class ListFamilyAlignmentsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + PAGE_SIZE_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + family_version_id: builtins.str + """Provide family_id to identify the family to list alignments.""" + page_size: builtins.int + """The maximum number of family version alignments to return. The service may return fewer than this value, even if + there are additional pages. If unspecified, the limit defaults to 200. The maximum value is 1000. + """ + filter: builtins.str + """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + Available fields to filter by are: `name`, `description`. + For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + """ + page_token: builtins.str + """A page token, received from a previous `ListFamilyAlignments` call. Provide this to retrieve the + subsequent page. When paginating, all other parameters provided to `ListFamilyAlignments` must match + the call that provided the page token. + """ + def __init__( + self, + *, + family_version_id: builtins.str = ..., + page_size: builtins.int = ..., + filter: builtins.str = ..., + page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_version_id", b"family_version_id", "filter", b"filter", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + +global___ListFamilyAlignmentsRequest = ListFamilyAlignmentsRequest + +@typing.final +class ListFamilyAlignmentsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ALIGNMENTS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + """A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.""" + @property + def family_alignments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyAlignment]: ... + def __init__( + self, + *, + family_alignments: collections.abc.Iterable[global___FamilyAlignment] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_alignments", b"family_alignments", "next_page_token", b"next_page_token"]) -> None: ... + +global___ListFamilyAlignmentsResponse = ListFamilyAlignmentsResponse + +@typing.final +class ListFamilyAlignmentPointsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ALIGNMENT_ID_FIELD_NUMBER: builtins.int + PAGE_SIZE_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + family_alignment_id: builtins.str + """Provide family_alignment_id to identify the family to list alignments points.""" + page_size: builtins.int + """The maximum number of family version alignment points to return. The service may return fewer than this value, even if + there are additional pages. If unspecified, the limit defaults to 200. The maximum value is 1000. + """ + filter: builtins.str + """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + Available fields to filter by are: `family_run_id`, and for the associated Run: `name`, `description`, `start_time`, `end_time`, `duration`. + Note: `name`, `description`, `start_time`, `end_time`, and `duration` are filters on the associated run. + For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + """ + page_token: builtins.str + """A page token, received from a previous `ListFamilyAlignmentPoints` call. Provide this to retrieve the + subsequent page. When paginating, all other parameters provided to `ListFamilyAlignmentPoints` must match + the call that provided the page token. + """ + def __init__( + self, + *, + family_alignment_id: builtins.str = ..., + page_size: builtins.int = ..., + filter: builtins.str = ..., + page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_alignment_id", b"family_alignment_id", "filter", b"filter", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + +global___ListFamilyAlignmentPointsRequest = ListFamilyAlignmentPointsRequest + +@typing.final +class ListFamilyAlignmentPointsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ALIGNMENT_POINTS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + """A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.""" + @property + def family_alignment_points(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyAlignmentPoint]: ... + def __init__( + self, + *, + family_alignment_points: collections.abc.Iterable[global___FamilyAlignmentPoint] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_alignment_points", b"family_alignment_points", "next_page_token", b"next_page_token"]) -> None: ... + +global___ListFamilyAlignmentPointsResponse = ListFamilyAlignmentPointsResponse + +@typing.final +class ImportFamilyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_YAML_FIELD_NUMBER: builtins.int + family_yaml: builtins.str + """The source to import the family from. Must provide family_yaml. The contents of the source + should match the shape of CreateFamilyRequest + """ + def __init__( + self, + *, + family_yaml: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_yaml", b"family_yaml"]) -> None: ... + +global___ImportFamilyRequest = ImportFamilyRequest + +@typing.final +class ImportFamilyResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ID_FIELD_NUMBER: builtins.int + FAMILY_FIELD_NUMBER: builtins.int + family_id: builtins.str + @property + def family(self) -> global___FamilyDetails: ... + def __init__( + self, + *, + family_id: builtins.str = ..., + family: global___FamilyDetails | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family", b"family"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family", b"family", "family_id", b"family_id"]) -> None: ... + +global___ImportFamilyResponse = ImportFamilyResponse + +@typing.final +class ImportUpdateFamilyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ID_FIELD_NUMBER: builtins.int + CLIENT_KEY_FIELD_NUMBER: builtins.int + FAMILY_YAML_FIELD_NUMBER: builtins.int + UPDATE_MASK_FIELD_NUMBER: builtins.int + family_id: builtins.str + client_key: builtins.str + family_yaml: builtins.str + """The source to update the family from. Must provide family_yaml. The contents of the source + should match the shape of UpdateFamilyRequest FamilyDetails. The update_mask is optional and defaults to updating provided fields. + """ + @property + def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask: + """See UpdateFamilyRequest""" + + def __init__( + self, + *, + family_id: builtins.str = ..., + client_key: builtins.str = ..., + family_yaml: builtins.str = ..., + update_mask: google.protobuf.field_mask_pb2.FieldMask | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["client_key", b"client_key", "family_id", b"family_id", "family_identifier", b"family_identifier", "update_mask", b"update_mask"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["client_key", b"client_key", "family_id", b"family_id", "family_identifier", b"family_identifier", "family_yaml", b"family_yaml", "update_mask", b"update_mask"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["family_identifier", b"family_identifier"]) -> typing.Literal["family_id", "client_key"] | None: ... + +global___ImportUpdateFamilyRequest = ImportUpdateFamilyRequest + +@typing.final +class ImportUpdateFamilyResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + FAMILY_FIELD_NUMBER: builtins.int + family_version_id: builtins.str + @property + def family(self) -> global___FamilyDetails: ... + def __init__( + self, + *, + family_version_id: builtins.str = ..., + family: global___FamilyDetails | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family", b"family"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family", b"family", "family_version_id", b"family_version_id"]) -> None: ... + +global___ImportUpdateFamilyResponse = ImportUpdateFamilyResponse + +@typing.final +class ExportFamilyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ID_FIELD_NUMBER: builtins.int + CLIENT_KEY_FIELD_NUMBER: builtins.int + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + family_id: builtins.str + client_key: builtins.str + family_version_id: builtins.str + def __init__( + self, + *, + family_id: builtins.str = ..., + client_key: builtins.str = ..., + family_version_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["client_key", b"client_key", "family_id", b"family_id", "family_identifier", b"family_identifier", "family_version_id", b"family_version_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["client_key", b"client_key", "family_id", b"family_id", "family_identifier", b"family_identifier", "family_version_id", b"family_version_id"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["family_identifier", b"family_identifier"]) -> typing.Literal["family_id", "client_key", "family_version_id"] | None: ... + +global___ExportFamilyRequest = ExportFamilyRequest + +@typing.final +class ExportFamilyResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + EXPORTED_FAMILY_FIELD_NUMBER: builtins.int + exported_family: builtins.str + def __init__( + self, + *, + exported_family: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["exported_family", b"exported_family"]) -> None: ... + +global___ExportFamilyResponse = ExportFamilyResponse + +@typing.final +class ValidateFamilyNameRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_NAME_FIELD_NUMBER: builtins.int + family_name: builtins.str + def __init__( + self, + *, + family_name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_name", b"family_name"]) -> None: ... + +global___ValidateFamilyNameRequest = ValidateFamilyNameRequest + +@typing.final +class ValidateFamilyNameResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SUCCESS_FIELD_NUMBER: builtins.int + ERROR_MESSAGE_FIELD_NUMBER: builtins.int + success: builtins.bool + error_message: builtins.str + def __init__( + self, + *, + success: builtins.bool = ..., + error_message: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["error_message", b"error_message", "result", b"result", "success", b"success"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["error_message", b"error_message", "result", b"result", "success", b"success"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["result", b"result"]) -> typing.Literal["success", "error_message"] | None: ... + +global___ValidateFamilyNameResponse = ValidateFamilyNameResponse + +@typing.final +class ValidateFamilyClientKeyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CLIENT_KEY_FIELD_NUMBER: builtins.int + client_key: builtins.str + def __init__( + self, + *, + client_key: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["client_key", b"client_key"]) -> None: ... + +global___ValidateFamilyClientKeyRequest = ValidateFamilyClientKeyRequest + +@typing.final +class ValidateFamilyClientKeyResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SUCCESS_FIELD_NUMBER: builtins.int + ERROR_MESSAGE_FIELD_NUMBER: builtins.int + success: builtins.bool + error_message: builtins.str + def __init__( + self, + *, + success: builtins.bool = ..., + error_message: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["error_message", b"error_message", "result", b"result", "success", b"success"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["error_message", b"error_message", "result", b"result", "success", b"success"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["result", b"result"]) -> typing.Literal["success", "error_message"] | None: ... + +global___ValidateFamilyClientKeyResponse = ValidateFamilyClientKeyResponse + +@typing.final +class FamilyStat(google.protobuf.message.Message): + """---------------------- + Family Stats + ---------------------- + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_STAT_ID_FIELD_NUMBER: builtins.int + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + SAMPLE_RATE_FIELD_NUMBER: builtins.int + DEFAULT_CHANNEL_NAMES_FIELD_NUMBER: builtins.int + CREATED_DATE_FIELD_NUMBER: builtins.int + MODIFIED_DATE_FIELD_NUMBER: builtins.int + CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int + MODIFIED_BY_USER_ID_FIELD_NUMBER: builtins.int + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + family_stat_id: builtins.str + family_version_id: builtins.str + """The family version id of the family stat.""" + name: builtins.str + """The name of the family stat.""" + description: builtins.str + """The description of the family stat.""" + sample_rate: builtins.float + """The sample rate of the family stat (Hz).""" + created_by_user_id: builtins.str + modified_by_user_id: builtins.str + organization_id: builtins.str + @property + def default_channel_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """Ordered list of channel names to include in the family stat. + The first channel name is the primary channel name across all the family members. + The remaining channel names are fallback channels or individual overrides when the primary channel + is not available across all the family members. + """ + + @property + def created_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + def __init__( + self, + *, + family_stat_id: builtins.str = ..., + family_version_id: builtins.str = ..., + name: builtins.str = ..., + description: builtins.str = ..., + sample_rate: builtins.float = ..., + default_channel_names: collections.abc.Iterable[builtins.str] | None = ..., + created_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + created_by_user_id: builtins.str = ..., + modified_by_user_id: builtins.str = ..., + organization_id: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["created_date", b"created_date", "modified_date", b"modified_date"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "default_channel_names", b"default_channel_names", "description", b"description", "family_stat_id", b"family_stat_id", "family_version_id", b"family_version_id", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "sample_rate", b"sample_rate"]) -> None: ... + +global___FamilyStat = FamilyStat + +@typing.final +class FamilyStatExpression(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_STAT_EXPRESSION_ID_FIELD_NUMBER: builtins.int + FAMILY_STAT_ID_FIELD_NUMBER: builtins.int + AVG_FIELD_NUMBER: builtins.int + MEDIAN_FIELD_NUMBER: builtins.int + MIN_FIELD_NUMBER: builtins.int + MAX_FIELD_NUMBER: builtins.int + STDEV_FIELD_NUMBER: builtins.int + SUM_FIELD_NUMBER: builtins.int + INPUT_COUNT_FIELD_NUMBER: builtins.int + SIGMA_FIELD_NUMBER: builtins.int + family_stat_expression_id: builtins.str + family_stat_id: builtins.str + @property + def avg(self) -> google.protobuf.empty_pb2.Empty: ... + @property + def median(self) -> google.protobuf.empty_pb2.Empty: ... + @property + def min(self) -> google.protobuf.empty_pb2.Empty: ... + @property + def max(self) -> google.protobuf.empty_pb2.Empty: ... + @property + def stdev(self) -> google.protobuf.empty_pb2.Empty: ... + @property + def sum(self) -> google.protobuf.empty_pb2.Empty: ... + @property + def input_count(self) -> google.protobuf.empty_pb2.Empty: ... + @property + def sigma(self) -> google.protobuf.empty_pb2.Empty: ... + def __init__( + self, + *, + family_stat_expression_id: builtins.str = ..., + family_stat_id: builtins.str = ..., + avg: google.protobuf.empty_pb2.Empty | None = ..., + median: google.protobuf.empty_pb2.Empty | None = ..., + min: google.protobuf.empty_pb2.Empty | None = ..., + max: google.protobuf.empty_pb2.Empty | None = ..., + stdev: google.protobuf.empty_pb2.Empty | None = ..., + sum: google.protobuf.empty_pb2.Empty | None = ..., + input_count: google.protobuf.empty_pb2.Empty | None = ..., + sigma: google.protobuf.empty_pb2.Empty | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["avg", b"avg", "expression", b"expression", "input_count", b"input_count", "max", b"max", "median", b"median", "min", b"min", "sigma", b"sigma", "stdev", b"stdev", "sum", b"sum"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["avg", b"avg", "expression", b"expression", "family_stat_expression_id", b"family_stat_expression_id", "family_stat_id", b"family_stat_id", "input_count", b"input_count", "max", b"max", "median", b"median", "min", b"min", "sigma", b"sigma", "stdev", b"stdev", "sum", b"sum"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["expression", b"expression"]) -> typing.Literal["avg", "median", "min", "max", "stdev", "sum", "input_count", "sigma"] | None: ... + +global___FamilyStatExpression = FamilyStatExpression + +@typing.final +class FamilyStatChannel(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_STAT_CHANNEL_ID_FIELD_NUMBER: builtins.int + FAMILY_STAT_ID_FIELD_NUMBER: builtins.int + CHANNEL_ID_FIELD_NUMBER: builtins.int + ALIGNMENT_POINT_ID_FIELD_NUMBER: builtins.int + family_stat_channel_id: builtins.str + family_stat_id: builtins.str + channel_id: builtins.str + """The channel id of the channel to include in the family stat given the list of channel names provided in the family stat.""" + alignment_point_id: builtins.str + """Specific alignment point id of the family member / channel to include in the family stat. + When creating a family stat with a new Family, this field should contain the temporary_id + from FamilyAlignmentPoint.family_alignment_point_id. The service will resolve it to the actual alignment_point_id. + When updating a family stat, this field must contain the actual alignment_point_id. + This will be prevalent when multiple alignment points are supported for a given family member. + """ + def __init__( + self, + *, + family_stat_channel_id: builtins.str = ..., + family_stat_id: builtins.str = ..., + channel_id: builtins.str = ..., + alignment_point_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["alignment_point_id", b"alignment_point_id", "channel_id", b"channel_id", "family_stat_channel_id", b"family_stat_channel_id", "family_stat_id", b"family_stat_id"]) -> None: ... + +global___FamilyStatChannel = FamilyStatChannel + +@typing.final +class WindowType(google.protobuf.message.Message): + """WindowType represents a window boundary that can be either an alignment ID or a duration.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ALIGNMENT_ID_FIELD_NUMBER: builtins.int + DURATION_FIELD_NUMBER: builtins.int + family_alignment_id: builtins.str + """Alignment ID to use as the window boundary. + When creating a family stat with a new Family, this field should contain the temporary_id + from FamilyAlignment.family_alignment_id. Default to the window's T-0 alignment. + The service will resolve it to the actual alignment ID. + When updating a family stat, this field must contain the actual family_alignment_id. + """ + @property + def duration(self) -> google.protobuf.duration_pb2.Duration: + """Duration relative to the alignment used to compare the data. Defaults to 0 seconds.""" + + def __init__( + self, + *, + family_alignment_id: builtins.str = ..., + duration: google.protobuf.duration_pb2.Duration | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["duration", b"duration"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["duration", b"duration", "family_alignment_id", b"family_alignment_id"]) -> None: ... + +global___WindowType = WindowType + +@typing.final +class FamilyStatRange(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_STAT_RANGE_ID_FIELD_NUMBER: builtins.int + FAMILY_STAT_ID_FIELD_NUMBER: builtins.int + FAMILY_ALIGNMENT_ID_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + WINDOW_START_FIELD_NUMBER: builtins.int + WINDOW_END_FIELD_NUMBER: builtins.int + family_stat_range_id: builtins.str + family_stat_id: builtins.str + family_alignment_id: builtins.str + """T-0 Alignment ID to align the data for stat calculation. + When creating a family stat with a new Family, this field should contain the temporary_id + from FamilyAlignment.family_alignment_id. The service will resolve it to the actual alignment ID. + When updating a family stat, this field must contain the actual family_alignment_id. + """ + name: builtins.str + """Unique name for the family stat range.""" + @property + def window_start(self) -> global___WindowType: + """The start of the window for the stat calculation. + The start is an alignment ID and a duration relative to the alignment. + Defaults to T-0 alignment and 0 seconds. + """ + + @property + def window_end(self) -> global___WindowType: + """The end of the window for the stat calculation. + The end is an alignment ID and a duration relative to the alignment. + Defaults to T-0 alignment and 0 seconds. However, window end must be after window start. + Service provides basic validation: if window_start.family_alignment_id = window_end.family_alignment_id, then window_start.duration < window_end.duration. + """ + + def __init__( + self, + *, + family_stat_range_id: builtins.str = ..., + family_stat_id: builtins.str = ..., + family_alignment_id: builtins.str = ..., + name: builtins.str = ..., + window_start: global___WindowType | None = ..., + window_end: global___WindowType | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_window_end", b"_window_end", "_window_start", b"_window_start", "window_end", b"window_end", "window_start", b"window_start"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_window_end", b"_window_end", "_window_start", b"_window_start", "family_alignment_id", b"family_alignment_id", "family_stat_id", b"family_stat_id", "family_stat_range_id", b"family_stat_range_id", "name", b"name", "window_end", b"window_end", "window_start", b"window_start"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_window_end", b"_window_end"]) -> typing.Literal["window_end"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_window_start", b"_window_start"]) -> typing.Literal["window_start"] | None: ... + +global___FamilyStatRange = FamilyStatRange + +@typing.final +class FamilyStatDetails(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_STAT_FIELD_NUMBER: builtins.int + FAMILY_STAT_EXPRESSIONS_FIELD_NUMBER: builtins.int + FAMILY_STAT_CHANNELS_FIELD_NUMBER: builtins.int + FAMILY_STAT_RANGES_FIELD_NUMBER: builtins.int + @property + def family_stat(self) -> global___FamilyStat: ... + @property + def family_stat_expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyStatExpression]: ... + @property + def family_stat_channels(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyStatChannel]: ... + @property + def family_stat_ranges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyStatRange]: ... + def __init__( + self, + *, + family_stat: global___FamilyStat | None = ..., + family_stat_expressions: collections.abc.Iterable[global___FamilyStatExpression] | None = ..., + family_stat_channels: collections.abc.Iterable[global___FamilyStatChannel] | None = ..., + family_stat_ranges: collections.abc.Iterable[global___FamilyStatRange] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family_stat", b"family_stat"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family_stat", b"family_stat", "family_stat_channels", b"family_stat_channels", "family_stat_expressions", b"family_stat_expressions", "family_stat_ranges", b"family_stat_ranges"]) -> None: ... + +global___FamilyStatDetails = FamilyStatDetails + +@typing.final +class GetFamilyStatRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_STAT_ID_FIELD_NUMBER: builtins.int + family_stat_id: builtins.str + def __init__( + self, + *, + family_stat_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_stat_id", b"family_stat_id"]) -> None: ... + +global___GetFamilyStatRequest = GetFamilyStatRequest + +@typing.final +class GetFamilyStatResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_STAT_DETAILS_FIELD_NUMBER: builtins.int + @property + def family_stat_details(self) -> global___FamilyStatDetails: ... + def __init__( + self, + *, + family_stat_details: global___FamilyStatDetails | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family_stat_details", b"family_stat_details"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family_stat_details", b"family_stat_details"]) -> None: ... + +global___GetFamilyStatResponse = GetFamilyStatResponse + +@typing.final +class GetFamilyStatsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + family_version_id: builtins.str + def __init__( + self, + *, + family_version_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_version_id", b"family_version_id"]) -> None: ... + +global___GetFamilyStatsRequest = GetFamilyStatsRequest + +@typing.final +class GetFamilyStatsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_STATS_DETAILS_FIELD_NUMBER: builtins.int + @property + def family_stats_details(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyStatDetails]: ... + def __init__( + self, + *, + family_stats_details: collections.abc.Iterable[global___FamilyStatDetails] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_stats_details", b"family_stats_details"]) -> None: ... + +global___GetFamilyStatsResponse = GetFamilyStatsResponse + +@typing.final +class CreateFamilyStatRangesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_STAT_IDS_FIELD_NUMBER: builtins.int + FAMILY_STAT_RANGES_FIELD_NUMBER: builtins.int + @property + def family_stat_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def family_stat_ranges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyStatRange]: ... + def __init__( + self, + *, + family_stat_ids: collections.abc.Iterable[builtins.str] | None = ..., + family_stat_ranges: collections.abc.Iterable[global___FamilyStatRange] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_stat_ids", b"family_stat_ids", "family_stat_ranges", b"family_stat_ranges"]) -> None: ... + +global___CreateFamilyStatRangesRequest = CreateFamilyStatRangesRequest + +@typing.final +class CreateFamilyStatRangesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + FAMILY_FIELD_NUMBER: builtins.int + FAMILY_STATS_FIELD_NUMBER: builtins.int + family_version_id: builtins.str + @property + def family(self) -> global___FamilyDetails: ... + @property + def family_stats(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyStatDetails]: ... + def __init__( + self, + *, + family_version_id: builtins.str = ..., + family: global___FamilyDetails | None = ..., + family_stats: collections.abc.Iterable[global___FamilyStatDetails] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["family", b"family"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family", b"family", "family_stats", b"family_stats", "family_version_id", b"family_version_id"]) -> None: ... + +global___CreateFamilyStatRangesResponse = CreateFamilyStatRangesResponse + +@typing.final +class GetFamilyRuleDependenciesRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ID_FIELD_NUMBER: builtins.int + family_id: builtins.str + def __init__( + self, + *, + family_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_id", b"family_id"]) -> None: ... + +global___GetFamilyRuleDependenciesRequest = GetFamilyRuleDependenciesRequest + +@typing.final +class GetFamilyRuleDependenciesResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RULE_DEPENDENCIES_FIELD_NUMBER: builtins.int + @property + def rule_dependencies(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FamilyRuleDependency]: ... + def __init__( + self, + *, + rule_dependencies: collections.abc.Iterable[global___FamilyRuleDependency] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["rule_dependencies", b"rule_dependencies"]) -> None: ... + +global___GetFamilyRuleDependenciesResponse = GetFamilyRuleDependenciesResponse + +@typing.final +class FamilyRuleDependency(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RULE_ID_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + STAT_REFERENCE_FIELD_NUMBER: builtins.int + rule_id: builtins.str + name: builtins.str + @property + def stat_reference(self) -> sift.rules.v1.rules_pb2.FamilyStatReference: ... + def __init__( + self, + *, + rule_id: builtins.str = ..., + name: builtins.str = ..., + stat_reference: sift.rules.v1.rules_pb2.FamilyStatReference | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["stat_reference", b"stat_reference"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["name", b"name", "rule_id", b"rule_id", "stat_reference", b"stat_reference"]) -> None: ... + +global___FamilyRuleDependency = FamilyRuleDependency + +@typing.final +class AbstractWindowType(google.protobuf.message.Message): + """AbstractWindowType represents a window boundary that is agnostic of the alignment ID.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ALIGNMENT_NAME_FIELD_NUMBER: builtins.int + DURATION_FIELD_NUMBER: builtins.int + family_alignment_name: builtins.str + @property + def duration(self) -> google.protobuf.duration_pb2.Duration: + """Duration relative to the alignment used to compare the data. Defaults to 0 seconds.""" + + def __init__( + self, + *, + family_alignment_name: builtins.str = ..., + duration: google.protobuf.duration_pb2.Duration | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["duration", b"duration"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["duration", b"duration", "family_alignment_name", b"family_alignment_name"]) -> None: ... + +global___AbstractWindowType = AbstractWindowType + +@typing.final +class GenerateFamilyStatRangeNameRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ALIGNMENT_NAME_FIELD_NUMBER: builtins.int + WINDOW_START_FIELD_NUMBER: builtins.int + WINDOW_END_FIELD_NUMBER: builtins.int + family_alignment_name: builtins.str + @property + def window_start(self) -> global___AbstractWindowType: ... + @property + def window_end(self) -> global___AbstractWindowType: ... + def __init__( + self, + *, + family_alignment_name: builtins.str = ..., + window_start: global___AbstractWindowType | None = ..., + window_end: global___AbstractWindowType | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["window_end", b"window_end", "window_start", b"window_start"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["family_alignment_name", b"family_alignment_name", "window_end", b"window_end", "window_start", b"window_start"]) -> None: ... + +global___GenerateFamilyStatRangeNameRequest = GenerateFamilyStatRangeNameRequest + +@typing.final +class GenerateFamilyStatRangeNameResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + name: builtins.str + def __init__( + self, + *, + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["name", b"name"]) -> None: ... + +global___GenerateFamilyStatRangeNameResponse = GenerateFamilyStatRangeNameResponse + +@typing.final +class GetFamilyCandidateRunsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + family_version_id: builtins.str + def __init__( + self, + *, + family_version_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_version_id", b"family_version_id"]) -> None: ... + +global___GetFamilyCandidateRunsRequest = GetFamilyCandidateRunsRequest + +@typing.final +class GetFamilyCandidateRunsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RUN_QUERY_FIELD_NUMBER: builtins.int + CANDIDATE_RUN_IDS_FIELD_NUMBER: builtins.int + run_query: builtins.str + @property + def candidate_run_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + run_query: builtins.str = ..., + candidate_run_ids: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["candidate_run_ids", b"candidate_run_ids", "run_query", b"run_query"]) -> None: ... + +global___GetFamilyCandidateRunsResponse = GetFamilyCandidateRunsResponse + +@typing.final +class GetFamilyCandidateRunCountRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + family_version_id: builtins.str + def __init__( + self, + *, + family_version_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_version_id", b"family_version_id"]) -> None: ... + +global___GetFamilyCandidateRunCountRequest = GetFamilyCandidateRunCountRequest + +@typing.final +class GetFamilyCandidateRunCountResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + COUNT_FIELD_NUMBER: builtins.int + count: builtins.int + def __init__( + self, + *, + count: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["count", b"count"]) -> None: ... + +global___GetFamilyCandidateRunCountResponse = GetFamilyCandidateRunCountResponse + +@typing.final +class ListFamilyCandidateRunsRequest(google.protobuf.message.Message): + """Request for `FamilyService.ListFamilyCandidateRuns`. + + The CEL filter supports the standard run filter fields plus an + `include_archived` directive. Archived runs are excluded by default; pass + `include_archived == true` in the filter to include them. + + When `family_id` is set, the server filters out runs already on that + family's persisted membership (both included and excluded entries) so the + response only contains runs not yet on the family. Clients editing an + unsaved draft of family membership should omit `family_id` and apply their + own draft-aware filtering, since the persisted membership does not reflect + the draft state. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PAGE_SIZE_FIELD_NUMBER: builtins.int + PAGE_TOKEN_FIELD_NUMBER: builtins.int + FILTER_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int + FAMILY_ID_FIELD_NUMBER: builtins.int + page_size: builtins.int + """The maximum number of runs to return. + The service may return fewer than this value. + If unspecified, at most 50 runs will be returned. + The maximum value is 1000; values above 1000 will be coerced to 1000. + """ + page_token: builtins.str + """A page token, received from a previous call. + Provide this to retrieve the subsequent page. + When paginating, all other parameters provided must match + the call that provided the page token. + """ + filter: builtins.str + """A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string. + Supports all ListRuns filter fields plus `include_archived`. + When `include_archived` is not present in the filter, archived runs are excluded by default. + Set `include_archived == true` in the filter to include archived runs. + Note: `include_archived` is a directive and must appear at the top level of the filter + (or within a top-level AND chain). It cannot be used inside an OR expression. + """ + order_by: builtins.str + """How to order the retrieved runs. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + Available fields to order_by are `name`, `description`, `created_date`, `modified_date`, `start_time`, and `stop_time`. + If left empty, items are ordered by `created_date` in descending order (newest-first). + """ + family_id: builtins.str + """Optional family ID to filter out runs already on the family's persisted membership. + When set, the response excludes runs that are already included or excluded in the family. + Omit this field when working with draft membership changes. + """ + def __init__( + self, + *, + page_size: builtins.int = ..., + page_token: builtins.str = ..., + filter: builtins.str = ..., + order_by: builtins.str = ..., + family_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_id", b"family_id", "filter", b"filter", "order_by", b"order_by", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + +global___ListFamilyCandidateRunsRequest = ListFamilyCandidateRunsRequest + +@typing.final +class ListFamilyCandidateRunsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RUNS_FIELD_NUMBER: builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int + next_page_token: builtins.str + @property + def runs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.runs.v2.runs_pb2.Run]: ... + def __init__( + self, + *, + runs: collections.abc.Iterable[sift.runs.v2.runs_pb2.Run] | None = ..., + next_page_token: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["next_page_token", b"next_page_token", "runs", b"runs"]) -> None: ... + +global___ListFamilyCandidateRunsResponse = ListFamilyCandidateRunsResponse + +@typing.final +class GetFamilyCandidateRunFilterFieldsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___GetFamilyCandidateRunFilterFieldsRequest = GetFamilyCandidateRunFilterFieldsRequest + +@typing.final +class GetFamilyCandidateRunFilterFieldsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILTER_FIELDS_FIELD_NUMBER: builtins.int + @property + def filter_fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sift.common.v1.filter_field_pb2.FilterField]: ... + def __init__( + self, + *, + filter_fields: collections.abc.Iterable[sift.common.v1.filter_field_pb2.FilterField] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["filter_fields", b"filter_fields"]) -> None: ... + +global___GetFamilyCandidateRunFilterFieldsResponse = GetFamilyCandidateRunFilterFieldsResponse diff --git a/python/lib/sift/families/v1/families_pb2_grpc.py b/python/lib/sift/families/v1/families_pb2_grpc.py new file mode 100644 index 0000000000..92907c9d34 --- /dev/null +++ b/python/lib/sift/families/v1/families_pb2_grpc.py @@ -0,0 +1,825 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from sift.families.v1 import families_pb2 as sift_dot_families_dot_v1_dot_families__pb2 + + +class FamilyServiceStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetFamily = channel.unary_unary( + '/sift.families.v1.FamilyService/GetFamily', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyResponse.FromString, + ) + self.GetFamilies = channel.unary_unary( + '/sift.families.v1.FamilyService/GetFamilies', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamiliesRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamiliesResponse.FromString, + ) + self.GetFamilyVersion = channel.unary_unary( + '/sift.families.v1.FamilyService/GetFamilyVersion', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyVersionRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyVersionResponse.FromString, + ) + self.CreateFamily = channel.unary_unary( + '/sift.families.v1.FamilyService/CreateFamily', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyResponse.FromString, + ) + self.UpdateFamily = channel.unary_unary( + '/sift.families.v1.FamilyService/UpdateFamily', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.UpdateFamilyRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.UpdateFamilyResponse.FromString, + ) + self.GetFamilyCandidateRuns = channel.unary_unary( + '/sift.families.v1.FamilyService/GetFamilyCandidateRuns', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunsRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunsResponse.FromString, + ) + self.GetFamilyCandidateRunCount = channel.unary_unary( + '/sift.families.v1.FamilyService/GetFamilyCandidateRunCount', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunCountRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunCountResponse.FromString, + ) + self.ListFamilyCandidateRuns = channel.unary_unary( + '/sift.families.v1.FamilyService/ListFamilyCandidateRuns', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyCandidateRunsRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyCandidateRunsResponse.FromString, + ) + self.GetFamilyCandidateRunFilterFields = channel.unary_unary( + '/sift.families.v1.FamilyService/GetFamilyCandidateRunFilterFields', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunFilterFieldsRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunFilterFieldsResponse.FromString, + ) + self.ListFamilies = channel.unary_unary( + '/sift.families.v1.FamilyService/ListFamilies', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamiliesRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamiliesResponse.FromString, + ) + self.ListFamilyVersions = channel.unary_unary( + '/sift.families.v1.FamilyService/ListFamilyVersions', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyVersionsRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyVersionsResponse.FromString, + ) + self.ListFamilyMembers = channel.unary_unary( + '/sift.families.v1.FamilyService/ListFamilyMembers', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyMembersRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyMembersResponse.FromString, + ) + self.ListFamilyAlignments = channel.unary_unary( + '/sift.families.v1.FamilyService/ListFamilyAlignments', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentsRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentsResponse.FromString, + ) + self.ListFamilyAlignmentPoints = channel.unary_unary( + '/sift.families.v1.FamilyService/ListFamilyAlignmentPoints', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentPointsRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentPointsResponse.FromString, + ) + self.ImportFamily = channel.unary_unary( + '/sift.families.v1.FamilyService/ImportFamily', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.ImportFamilyRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ImportFamilyResponse.FromString, + ) + self.ImportUpdateFamily = channel.unary_unary( + '/sift.families.v1.FamilyService/ImportUpdateFamily', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.ImportUpdateFamilyRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ImportUpdateFamilyResponse.FromString, + ) + self.ExportFamily = channel.unary_unary( + '/sift.families.v1.FamilyService/ExportFamily', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.ExportFamilyRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ExportFamilyResponse.FromString, + ) + self.ValidateFamilyName = channel.unary_unary( + '/sift.families.v1.FamilyService/ValidateFamilyName', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyNameRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyNameResponse.FromString, + ) + self.ValidateFamilyClientKey = channel.unary_unary( + '/sift.families.v1.FamilyService/ValidateFamilyClientKey', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyClientKeyRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyClientKeyResponse.FromString, + ) + self.GetFamilyStat = channel.unary_unary( + '/sift.families.v1.FamilyService/GetFamilyStat', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatResponse.FromString, + ) + self.GetFamilyStats = channel.unary_unary( + '/sift.families.v1.FamilyService/GetFamilyStats', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatsRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatsResponse.FromString, + ) + self.CreateFamilyStatRanges = channel.unary_unary( + '/sift.families.v1.FamilyService/CreateFamilyStatRanges', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyStatRangesRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyStatRangesResponse.FromString, + ) + self.GetFamilyRuleDependencies = channel.unary_unary( + '/sift.families.v1.FamilyService/GetFamilyRuleDependencies', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyRuleDependenciesRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyRuleDependenciesResponse.FromString, + ) + self.GenerateFamilyStatRangeName = channel.unary_unary( + '/sift.families.v1.FamilyService/GenerateFamilyStatRangeName', + request_serializer=sift_dot_families_dot_v1_dot_families__pb2.GenerateFamilyStatRangeNameRequest.SerializeToString, + response_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GenerateFamilyStatRangeNameResponse.FromString, + ) + + +class FamilyServiceServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetFamily(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetFamilies(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetFamilyVersion(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateFamily(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateFamily(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetFamilyCandidateRuns(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetFamilyCandidateRunCount(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListFamilyCandidateRuns(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetFamilyCandidateRunFilterFields(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListFamilies(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListFamilyVersions(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListFamilyMembers(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListFamilyAlignments(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListFamilyAlignmentPoints(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ImportFamily(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ImportUpdateFamily(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ExportFamily(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ValidateFamilyName(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ValidateFamilyClientKey(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetFamilyStat(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetFamilyStats(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateFamilyStatRanges(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetFamilyRuleDependencies(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GenerateFamilyStatRangeName(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_FamilyServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetFamily': grpc.unary_unary_rpc_method_handler( + servicer.GetFamily, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyResponse.SerializeToString, + ), + 'GetFamilies': grpc.unary_unary_rpc_method_handler( + servicer.GetFamilies, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamiliesRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamiliesResponse.SerializeToString, + ), + 'GetFamilyVersion': grpc.unary_unary_rpc_method_handler( + servicer.GetFamilyVersion, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyVersionRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyVersionResponse.SerializeToString, + ), + 'CreateFamily': grpc.unary_unary_rpc_method_handler( + servicer.CreateFamily, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyResponse.SerializeToString, + ), + 'UpdateFamily': grpc.unary_unary_rpc_method_handler( + servicer.UpdateFamily, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.UpdateFamilyRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.UpdateFamilyResponse.SerializeToString, + ), + 'GetFamilyCandidateRuns': grpc.unary_unary_rpc_method_handler( + servicer.GetFamilyCandidateRuns, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunsRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunsResponse.SerializeToString, + ), + 'GetFamilyCandidateRunCount': grpc.unary_unary_rpc_method_handler( + servicer.GetFamilyCandidateRunCount, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunCountRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunCountResponse.SerializeToString, + ), + 'ListFamilyCandidateRuns': grpc.unary_unary_rpc_method_handler( + servicer.ListFamilyCandidateRuns, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyCandidateRunsRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyCandidateRunsResponse.SerializeToString, + ), + 'GetFamilyCandidateRunFilterFields': grpc.unary_unary_rpc_method_handler( + servicer.GetFamilyCandidateRunFilterFields, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunFilterFieldsRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunFilterFieldsResponse.SerializeToString, + ), + 'ListFamilies': grpc.unary_unary_rpc_method_handler( + servicer.ListFamilies, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamiliesRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamiliesResponse.SerializeToString, + ), + 'ListFamilyVersions': grpc.unary_unary_rpc_method_handler( + servicer.ListFamilyVersions, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyVersionsRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyVersionsResponse.SerializeToString, + ), + 'ListFamilyMembers': grpc.unary_unary_rpc_method_handler( + servicer.ListFamilyMembers, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyMembersRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyMembersResponse.SerializeToString, + ), + 'ListFamilyAlignments': grpc.unary_unary_rpc_method_handler( + servicer.ListFamilyAlignments, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentsRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentsResponse.SerializeToString, + ), + 'ListFamilyAlignmentPoints': grpc.unary_unary_rpc_method_handler( + servicer.ListFamilyAlignmentPoints, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentPointsRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentPointsResponse.SerializeToString, + ), + 'ImportFamily': grpc.unary_unary_rpc_method_handler( + servicer.ImportFamily, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ImportFamilyRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.ImportFamilyResponse.SerializeToString, + ), + 'ImportUpdateFamily': grpc.unary_unary_rpc_method_handler( + servicer.ImportUpdateFamily, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ImportUpdateFamilyRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.ImportUpdateFamilyResponse.SerializeToString, + ), + 'ExportFamily': grpc.unary_unary_rpc_method_handler( + servicer.ExportFamily, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ExportFamilyRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.ExportFamilyResponse.SerializeToString, + ), + 'ValidateFamilyName': grpc.unary_unary_rpc_method_handler( + servicer.ValidateFamilyName, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyNameRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyNameResponse.SerializeToString, + ), + 'ValidateFamilyClientKey': grpc.unary_unary_rpc_method_handler( + servicer.ValidateFamilyClientKey, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyClientKeyRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyClientKeyResponse.SerializeToString, + ), + 'GetFamilyStat': grpc.unary_unary_rpc_method_handler( + servicer.GetFamilyStat, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatResponse.SerializeToString, + ), + 'GetFamilyStats': grpc.unary_unary_rpc_method_handler( + servicer.GetFamilyStats, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatsRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatsResponse.SerializeToString, + ), + 'CreateFamilyStatRanges': grpc.unary_unary_rpc_method_handler( + servicer.CreateFamilyStatRanges, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyStatRangesRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyStatRangesResponse.SerializeToString, + ), + 'GetFamilyRuleDependencies': grpc.unary_unary_rpc_method_handler( + servicer.GetFamilyRuleDependencies, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyRuleDependenciesRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.GetFamilyRuleDependenciesResponse.SerializeToString, + ), + 'GenerateFamilyStatRangeName': grpc.unary_unary_rpc_method_handler( + servicer.GenerateFamilyStatRangeName, + request_deserializer=sift_dot_families_dot_v1_dot_families__pb2.GenerateFamilyStatRangeNameRequest.FromString, + response_serializer=sift_dot_families_dot_v1_dot_families__pb2.GenerateFamilyStatRangeNameResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'sift.families.v1.FamilyService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class FamilyService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetFamily(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/GetFamily', + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetFamilies(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/GetFamilies', + sift_dot_families_dot_v1_dot_families__pb2.GetFamiliesRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.GetFamiliesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetFamilyVersion(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/GetFamilyVersion', + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyVersionRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyVersionResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateFamily(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/CreateFamily', + sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateFamily(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/UpdateFamily', + sift_dot_families_dot_v1_dot_families__pb2.UpdateFamilyRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.UpdateFamilyResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetFamilyCandidateRuns(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/GetFamilyCandidateRuns', + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunsRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetFamilyCandidateRunCount(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/GetFamilyCandidateRunCount', + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunCountRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunCountResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListFamilyCandidateRuns(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/ListFamilyCandidateRuns', + sift_dot_families_dot_v1_dot_families__pb2.ListFamilyCandidateRunsRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.ListFamilyCandidateRunsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetFamilyCandidateRunFilterFields(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/GetFamilyCandidateRunFilterFields', + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunFilterFieldsRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyCandidateRunFilterFieldsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListFamilies(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/ListFamilies', + sift_dot_families_dot_v1_dot_families__pb2.ListFamiliesRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.ListFamiliesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListFamilyVersions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/ListFamilyVersions', + sift_dot_families_dot_v1_dot_families__pb2.ListFamilyVersionsRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.ListFamilyVersionsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListFamilyMembers(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/ListFamilyMembers', + sift_dot_families_dot_v1_dot_families__pb2.ListFamilyMembersRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.ListFamilyMembersResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListFamilyAlignments(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/ListFamilyAlignments', + sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentsRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListFamilyAlignmentPoints(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/ListFamilyAlignmentPoints', + sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentPointsRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.ListFamilyAlignmentPointsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ImportFamily(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/ImportFamily', + sift_dot_families_dot_v1_dot_families__pb2.ImportFamilyRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.ImportFamilyResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ImportUpdateFamily(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/ImportUpdateFamily', + sift_dot_families_dot_v1_dot_families__pb2.ImportUpdateFamilyRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.ImportUpdateFamilyResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ExportFamily(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/ExportFamily', + sift_dot_families_dot_v1_dot_families__pb2.ExportFamilyRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.ExportFamilyResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ValidateFamilyName(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/ValidateFamilyName', + sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyNameRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyNameResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ValidateFamilyClientKey(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/ValidateFamilyClientKey', + sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyClientKeyRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.ValidateFamilyClientKeyResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetFamilyStat(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/GetFamilyStat', + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetFamilyStats(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/GetFamilyStats', + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatsRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyStatsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateFamilyStatRanges(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/CreateFamilyStatRanges', + sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyStatRangesRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.CreateFamilyStatRangesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetFamilyRuleDependencies(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/GetFamilyRuleDependencies', + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyRuleDependenciesRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.GetFamilyRuleDependenciesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GenerateFamilyStatRangeName(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sift.families.v1.FamilyService/GenerateFamilyStatRangeName', + sift_dot_families_dot_v1_dot_families__pb2.GenerateFamilyStatRangeNameRequest.SerializeToString, + sift_dot_families_dot_v1_dot_families__pb2.GenerateFamilyStatRangeNameResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/python/lib/sift/families/v1/families_pb2_grpc.pyi b/python/lib/sift/families/v1/families_pb2_grpc.pyi new file mode 100644 index 0000000000..e04302dcf9 --- /dev/null +++ b/python/lib/sift/families/v1/families_pb2_grpc.pyi @@ -0,0 +1,432 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import grpc.aio +import sift.families.v1.families_pb2 +import typing + +_T = typing.TypeVar("_T") + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg] + ... + +class FamilyServiceStub: + def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ... + GetFamily: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyRequest, + sift.families.v1.families_pb2.GetFamilyResponse, + ] + + GetFamilies: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamiliesRequest, + sift.families.v1.families_pb2.GetFamiliesResponse, + ] + + GetFamilyVersion: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyVersionRequest, + sift.families.v1.families_pb2.GetFamilyVersionResponse, + ] + + CreateFamily: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.CreateFamilyRequest, + sift.families.v1.families_pb2.CreateFamilyResponse, + ] + + UpdateFamily: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.UpdateFamilyRequest, + sift.families.v1.families_pb2.UpdateFamilyResponse, + ] + + GetFamilyCandidateRuns: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyCandidateRunsRequest, + sift.families.v1.families_pb2.GetFamilyCandidateRunsResponse, + ] + + GetFamilyCandidateRunCount: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyCandidateRunCountRequest, + sift.families.v1.families_pb2.GetFamilyCandidateRunCountResponse, + ] + + ListFamilyCandidateRuns: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamilyCandidateRunsRequest, + sift.families.v1.families_pb2.ListFamilyCandidateRunsResponse, + ] + + GetFamilyCandidateRunFilterFields: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyCandidateRunFilterFieldsRequest, + sift.families.v1.families_pb2.GetFamilyCandidateRunFilterFieldsResponse, + ] + + ListFamilies: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamiliesRequest, + sift.families.v1.families_pb2.ListFamiliesResponse, + ] + + ListFamilyVersions: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamilyVersionsRequest, + sift.families.v1.families_pb2.ListFamilyVersionsResponse, + ] + + ListFamilyMembers: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamilyMembersRequest, + sift.families.v1.families_pb2.ListFamilyMembersResponse, + ] + + ListFamilyAlignments: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamilyAlignmentsRequest, + sift.families.v1.families_pb2.ListFamilyAlignmentsResponse, + ] + + ListFamilyAlignmentPoints: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamilyAlignmentPointsRequest, + sift.families.v1.families_pb2.ListFamilyAlignmentPointsResponse, + ] + + ImportFamily: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ImportFamilyRequest, + sift.families.v1.families_pb2.ImportFamilyResponse, + ] + + ImportUpdateFamily: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ImportUpdateFamilyRequest, + sift.families.v1.families_pb2.ImportUpdateFamilyResponse, + ] + + ExportFamily: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ExportFamilyRequest, + sift.families.v1.families_pb2.ExportFamilyResponse, + ] + + ValidateFamilyName: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ValidateFamilyNameRequest, + sift.families.v1.families_pb2.ValidateFamilyNameResponse, + ] + + ValidateFamilyClientKey: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ValidateFamilyClientKeyRequest, + sift.families.v1.families_pb2.ValidateFamilyClientKeyResponse, + ] + + GetFamilyStat: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyStatRequest, + sift.families.v1.families_pb2.GetFamilyStatResponse, + ] + + GetFamilyStats: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyStatsRequest, + sift.families.v1.families_pb2.GetFamilyStatsResponse, + ] + + CreateFamilyStatRanges: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.CreateFamilyStatRangesRequest, + sift.families.v1.families_pb2.CreateFamilyStatRangesResponse, + ] + + GetFamilyRuleDependencies: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyRuleDependenciesRequest, + sift.families.v1.families_pb2.GetFamilyRuleDependenciesResponse, + ] + + GenerateFamilyStatRangeName: grpc.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GenerateFamilyStatRangeNameRequest, + sift.families.v1.families_pb2.GenerateFamilyStatRangeNameResponse, + ] + +class FamilyServiceAsyncStub: + GetFamily: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyRequest, + sift.families.v1.families_pb2.GetFamilyResponse, + ] + + GetFamilies: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamiliesRequest, + sift.families.v1.families_pb2.GetFamiliesResponse, + ] + + GetFamilyVersion: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyVersionRequest, + sift.families.v1.families_pb2.GetFamilyVersionResponse, + ] + + CreateFamily: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.CreateFamilyRequest, + sift.families.v1.families_pb2.CreateFamilyResponse, + ] + + UpdateFamily: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.UpdateFamilyRequest, + sift.families.v1.families_pb2.UpdateFamilyResponse, + ] + + GetFamilyCandidateRuns: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyCandidateRunsRequest, + sift.families.v1.families_pb2.GetFamilyCandidateRunsResponse, + ] + + GetFamilyCandidateRunCount: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyCandidateRunCountRequest, + sift.families.v1.families_pb2.GetFamilyCandidateRunCountResponse, + ] + + ListFamilyCandidateRuns: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamilyCandidateRunsRequest, + sift.families.v1.families_pb2.ListFamilyCandidateRunsResponse, + ] + + GetFamilyCandidateRunFilterFields: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyCandidateRunFilterFieldsRequest, + sift.families.v1.families_pb2.GetFamilyCandidateRunFilterFieldsResponse, + ] + + ListFamilies: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamiliesRequest, + sift.families.v1.families_pb2.ListFamiliesResponse, + ] + + ListFamilyVersions: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamilyVersionsRequest, + sift.families.v1.families_pb2.ListFamilyVersionsResponse, + ] + + ListFamilyMembers: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamilyMembersRequest, + sift.families.v1.families_pb2.ListFamilyMembersResponse, + ] + + ListFamilyAlignments: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamilyAlignmentsRequest, + sift.families.v1.families_pb2.ListFamilyAlignmentsResponse, + ] + + ListFamilyAlignmentPoints: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ListFamilyAlignmentPointsRequest, + sift.families.v1.families_pb2.ListFamilyAlignmentPointsResponse, + ] + + ImportFamily: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ImportFamilyRequest, + sift.families.v1.families_pb2.ImportFamilyResponse, + ] + + ImportUpdateFamily: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ImportUpdateFamilyRequest, + sift.families.v1.families_pb2.ImportUpdateFamilyResponse, + ] + + ExportFamily: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ExportFamilyRequest, + sift.families.v1.families_pb2.ExportFamilyResponse, + ] + + ValidateFamilyName: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ValidateFamilyNameRequest, + sift.families.v1.families_pb2.ValidateFamilyNameResponse, + ] + + ValidateFamilyClientKey: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.ValidateFamilyClientKeyRequest, + sift.families.v1.families_pb2.ValidateFamilyClientKeyResponse, + ] + + GetFamilyStat: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyStatRequest, + sift.families.v1.families_pb2.GetFamilyStatResponse, + ] + + GetFamilyStats: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyStatsRequest, + sift.families.v1.families_pb2.GetFamilyStatsResponse, + ] + + CreateFamilyStatRanges: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.CreateFamilyStatRangesRequest, + sift.families.v1.families_pb2.CreateFamilyStatRangesResponse, + ] + + GetFamilyRuleDependencies: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GetFamilyRuleDependenciesRequest, + sift.families.v1.families_pb2.GetFamilyRuleDependenciesResponse, + ] + + GenerateFamilyStatRangeName: grpc.aio.UnaryUnaryMultiCallable[ + sift.families.v1.families_pb2.GenerateFamilyStatRangeNameRequest, + sift.families.v1.families_pb2.GenerateFamilyStatRangeNameResponse, + ] + +class FamilyServiceServicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def GetFamily( + self, + request: sift.families.v1.families_pb2.GetFamilyRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.GetFamilyResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.GetFamilyResponse]]: ... + + @abc.abstractmethod + def GetFamilies( + self, + request: sift.families.v1.families_pb2.GetFamiliesRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.GetFamiliesResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.GetFamiliesResponse]]: ... + + @abc.abstractmethod + def GetFamilyVersion( + self, + request: sift.families.v1.families_pb2.GetFamilyVersionRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.GetFamilyVersionResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.GetFamilyVersionResponse]]: ... + + @abc.abstractmethod + def CreateFamily( + self, + request: sift.families.v1.families_pb2.CreateFamilyRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.CreateFamilyResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.CreateFamilyResponse]]: ... + + @abc.abstractmethod + def UpdateFamily( + self, + request: sift.families.v1.families_pb2.UpdateFamilyRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.UpdateFamilyResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.UpdateFamilyResponse]]: ... + + @abc.abstractmethod + def GetFamilyCandidateRuns( + self, + request: sift.families.v1.families_pb2.GetFamilyCandidateRunsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.GetFamilyCandidateRunsResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.GetFamilyCandidateRunsResponse]]: ... + + @abc.abstractmethod + def GetFamilyCandidateRunCount( + self, + request: sift.families.v1.families_pb2.GetFamilyCandidateRunCountRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.GetFamilyCandidateRunCountResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.GetFamilyCandidateRunCountResponse]]: ... + + @abc.abstractmethod + def ListFamilyCandidateRuns( + self, + request: sift.families.v1.families_pb2.ListFamilyCandidateRunsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.ListFamilyCandidateRunsResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.ListFamilyCandidateRunsResponse]]: ... + + @abc.abstractmethod + def GetFamilyCandidateRunFilterFields( + self, + request: sift.families.v1.families_pb2.GetFamilyCandidateRunFilterFieldsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.GetFamilyCandidateRunFilterFieldsResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.GetFamilyCandidateRunFilterFieldsResponse]]: ... + + @abc.abstractmethod + def ListFamilies( + self, + request: sift.families.v1.families_pb2.ListFamiliesRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.ListFamiliesResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.ListFamiliesResponse]]: ... + + @abc.abstractmethod + def ListFamilyVersions( + self, + request: sift.families.v1.families_pb2.ListFamilyVersionsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.ListFamilyVersionsResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.ListFamilyVersionsResponse]]: ... + + @abc.abstractmethod + def ListFamilyMembers( + self, + request: sift.families.v1.families_pb2.ListFamilyMembersRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.ListFamilyMembersResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.ListFamilyMembersResponse]]: ... + + @abc.abstractmethod + def ListFamilyAlignments( + self, + request: sift.families.v1.families_pb2.ListFamilyAlignmentsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.ListFamilyAlignmentsResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.ListFamilyAlignmentsResponse]]: ... + + @abc.abstractmethod + def ListFamilyAlignmentPoints( + self, + request: sift.families.v1.families_pb2.ListFamilyAlignmentPointsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.ListFamilyAlignmentPointsResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.ListFamilyAlignmentPointsResponse]]: ... + + @abc.abstractmethod + def ImportFamily( + self, + request: sift.families.v1.families_pb2.ImportFamilyRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.ImportFamilyResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.ImportFamilyResponse]]: ... + + @abc.abstractmethod + def ImportUpdateFamily( + self, + request: sift.families.v1.families_pb2.ImportUpdateFamilyRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.ImportUpdateFamilyResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.ImportUpdateFamilyResponse]]: ... + + @abc.abstractmethod + def ExportFamily( + self, + request: sift.families.v1.families_pb2.ExportFamilyRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.ExportFamilyResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.ExportFamilyResponse]]: ... + + @abc.abstractmethod + def ValidateFamilyName( + self, + request: sift.families.v1.families_pb2.ValidateFamilyNameRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.ValidateFamilyNameResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.ValidateFamilyNameResponse]]: ... + + @abc.abstractmethod + def ValidateFamilyClientKey( + self, + request: sift.families.v1.families_pb2.ValidateFamilyClientKeyRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.ValidateFamilyClientKeyResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.ValidateFamilyClientKeyResponse]]: ... + + @abc.abstractmethod + def GetFamilyStat( + self, + request: sift.families.v1.families_pb2.GetFamilyStatRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.GetFamilyStatResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.GetFamilyStatResponse]]: ... + + @abc.abstractmethod + def GetFamilyStats( + self, + request: sift.families.v1.families_pb2.GetFamilyStatsRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.GetFamilyStatsResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.GetFamilyStatsResponse]]: ... + + @abc.abstractmethod + def CreateFamilyStatRanges( + self, + request: sift.families.v1.families_pb2.CreateFamilyStatRangesRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.CreateFamilyStatRangesResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.CreateFamilyStatRangesResponse]]: ... + + @abc.abstractmethod + def GetFamilyRuleDependencies( + self, + request: sift.families.v1.families_pb2.GetFamilyRuleDependenciesRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.GetFamilyRuleDependenciesResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.GetFamilyRuleDependenciesResponse]]: ... + + @abc.abstractmethod + def GenerateFamilyStatRangeName( + self, + request: sift.families.v1.families_pb2.GenerateFamilyStatRangeNameRequest, + context: _ServicerContext, + ) -> typing.Union[sift.families.v1.families_pb2.GenerateFamilyStatRangeNameResponse, collections.abc.Awaitable[sift.families.v1.families_pb2.GenerateFamilyStatRangeNameResponse]]: ... + +def add_FamilyServiceServicer_to_server(servicer: FamilyServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/python/lib/sift/reports/v1/reports_pb2.py b/python/lib/sift/reports/v1/reports_pb2.py index 925cfd9415..1998fd145a 100644 --- a/python/lib/sift/reports/v1/reports_pb2.py +++ b/python/lib/sift/reports/v1/reports_pb2.py @@ -17,10 +17,12 @@ from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 +from sift.canvas.v1 import canvas_pb2 as sift_dot_canvas_dot_v1_dot_canvas__pb2 +from sift.families.v1 import families_pb2 as sift_dot_families_dot_v1_dot_families__pb2 from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dsift/reports/v1/reports.proto\x12\x0fsift.reports.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xf0\x07\n\x06Report\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12\x31\n\x12report_template_id\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x10reportTemplateId\x12\x1a\n\x06run_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x17\n\x04name\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x45\n\tsummaries\x18\x0b \x03(\x0b\x32\".sift.reports.v1.ReportRuleSummaryB\x03\xe0\x41\x02R\tsummaries\x12\x33\n\x04tags\x18\x0c \x03(\x0b\x32\x1a.sift.reports.v1.ReportTagB\x03\xe0\x41\x02R\x04tags\x12\x39\n\x14rerun_from_report_id\x18\r \x01(\tB\x03\xe0\x41\x01H\x01R\x11rerunFromReportId\x88\x01\x01\x12\x1f\n\x06job_id\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x02R\x05jobId\x88\x01\x01\x12I\n\rarchived_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\x0c\x61rchivedDate\x88\x01\x01\x12@\n\x08metadata\x18\x10 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12$\n\x0bis_archived\x18\x11 \x01(\x08\x42\x03\xe0\x41\x01R\nisArchived\x12\x41\n\x0breport_type\x18\x12 \x01(\x0e\x32\x1b.sift.reports.v1.ReportTypeB\x03\xe0\x41\x02R\nreportTypeB\x0e\n\x0c_descriptionB\x17\n\x15_rerun_from_report_idB\t\n\x07_job_idB\x10\n\x0e_archived_date\"\xde\x07\n\x1bReportWithCumulativeSummary\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12\x31\n\x12report_template_id\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x10reportTemplateId\x12\x1a\n\x06run_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x17\n\x04name\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12`\n\x12\x63umulative_summary\x18\x0b \x01(\x0b\x32,.sift.reports.v1.ReportCumulativeRuleSummaryB\x03\xe0\x41\x02R\x11\x63umulativeSummary\x12\x33\n\x04tags\x18\x0c \x03(\x0b\x32\x1a.sift.reports.v1.ReportTagB\x03\xe0\x41\x02R\x04tags\x12\x39\n\x14rerun_from_report_id\x18\r \x01(\tB\x03\xe0\x41\x01H\x01R\x11rerunFromReportId\x88\x01\x01\x12\x1f\n\x06job_id\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x02R\x05jobId\x88\x01\x01\x12I\n\rarchived_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\x0c\x61rchivedDate\x88\x01\x01\x12$\n\x0bis_archived\x18\x10 \x01(\x08\x42\x03\xe0\x41\x01R\nisArchived\x12\x41\n\x0breport_type\x18\x11 \x01(\x0e\x32\x1b.sift.reports.v1.ReportTypeB\x03\xe0\x41\x02R\nreportTypeB\x0e\n\x0c_descriptionB\x17\n\x15_rerun_from_report_idB\t\n\x07_job_idB\x10\n\x0e_archived_date\"\x90\x06\n\x11ReportRuleSummary\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12+\n\x0frule_client_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rruleClientKey\x12+\n\x0frule_version_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\x12\x33\n\x13rule_version_number\x18\x04 \x01(\rB\x03\xe0\x41\x02R\x11ruleVersionNumber\x12\x38\n\x16report_rule_version_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x13reportRuleVersionId\x12\x1e\n\x08num_open\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x07numOpen\x12\"\n\nnum_failed\x18\x07 \x01(\rB\x03\xe0\x41\x02R\tnumFailed\x12\"\n\nnum_passed\x18\x08 \x01(\rB\x03\xe0\x41\x02R\tnumPassed\x12>\n\x06status\x18\t \x01(\x0e\x32!.sift.reports.v1.ReportRuleStatusB\x03\xe0\x41\x02R\x06status\x12T\n\x0estatus_details\x18\n \x01(\x0b\x32(.sift.reports.v1.ReportRuleStatusDetailsB\x03\xe0\x41\x02R\rstatusDetails\x12\x42\n\x0c\x63reated_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x1e\n\x08\x61sset_id\x18\r \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\x42\n\x0c\x64\x65leted_date\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0b\x64\x65letedDate\x12(\n\rdisplay_order\x18\x11 \x01(\rB\x03\xe0\x41\x02R\x0c\x64isplayOrder\"+\n\tReportTag\x12\x1e\n\x08tag_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07tagName\"\x9b\x05\n\x1bReportCumulativeRuleSummary\x12\x35\n\x14num_annotations_open\x18\x01 \x01(\rB\x03\xe0\x41\x02R\x12numAnnotationsOpen\x12\x39\n\x16num_annotations_failed\x18\x02 \x01(\rB\x03\xe0\x41\x02R\x14numAnnotationsFailed\x12\x39\n\x16num_annotations_passed\x18\x03 \x01(\rB\x03\xe0\x41\x02R\x14numAnnotationsPassed\x12\x37\n\x15num_annotations_total\x18\x04 \x01(\rB\x03\xe0\x41\x02R\x13numAnnotationsTotal\x12/\n\x11num_rules_created\x18\x05 \x01(\rB\x03\xe0\x41\x02R\x0fnumRulesCreated\x12)\n\x0enum_rules_live\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x0cnumRulesLive\x12\x31\n\x12num_rules_finished\x18\x07 \x01(\rB\x03\xe0\x41\x02R\x10numRulesFinished\x12-\n\x10num_rules_failed\x18\x08 \x01(\rB\x03\xe0\x41\x02R\x0enumRulesFailed\x12\x31\n\x12num_rules_canceled\x18\t \x01(\rB\x03\xe0\x41\x02R\x10numRulesCanceled\x12+\n\x0fnum_rules_error\x18\n \x01(\rB\x03\xe0\x41\x02R\rnumRulesError\x12+\n\x0fnum_rules_total\x18\x0b \x01(\rB\x03\xe0\x41\x02R\rnumRulesTotal\x12K\n num_of_rules_without_annotations\x18\x0c \x01(\rB\x03\xe0\x41\x02R\x1cnumOfRulesWithoutAnnotations\"\xe6\x03\n\x17ReportRuleStatusDetails\x12K\n\x07\x63reated\x18\x01 \x01(\x0b\x32/.sift.reports.v1.ReportRuleStatusDetailsCreatedH\x00R\x07\x63reated\x12\x42\n\x04live\x18\x02 \x01(\x0b\x32,.sift.reports.v1.ReportRuleStatusDetailsLiveH\x00R\x04live\x12N\n\x08\x66inished\x18\x03 \x01(\x0b\x32\x30.sift.reports.v1.ReportRuleStatusDetailsFinishedH\x00R\x08\x66inished\x12H\n\x06\x66\x61iled\x18\x04 \x01(\x0b\x32..sift.reports.v1.ReportRuleStatusDetailsFailedH\x00R\x06\x66\x61iled\x12N\n\x08\x63\x61nceled\x18\x05 \x01(\x0b\x32\x30.sift.reports.v1.ReportRuleStatusDetailsCanceledH\x00R\x08\x63\x61nceled\x12\x45\n\x05\x65rror\x18\x06 \x01(\x0b\x32-.sift.reports.v1.ReportRuleStatusDetailsErrorH\x00R\x05\x65rrorB\t\n\x07\x64\x65tails\" \n\x1eReportRuleStatusDetailsCreated\"\x1d\n\x1bReportRuleStatusDetailsLive\"q\n\x1fReportRuleStatusDetailsFinished\x12\x1b\n\x06stdout\x18\x01 \x01(\tH\x00R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x02 \x01(\tH\x01R\x06stderr\x88\x01\x01\x42\t\n\x07_stdoutB\t\n\x07_stderr\"\xc9\x01\n\x1dReportRuleStatusDetailsFailed\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x12 \n\texit_code\x18\x02 \x01(\x05H\x00R\x08\x65xitCode\x88\x01\x01\x12\x1b\n\x06stdout\x18\x03 \x01(\tH\x01R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x04 \x01(\tH\x02R\x06stderr\x88\x01\x01\x42\x0c\n\n_exit_codeB\t\n\x07_stdoutB\t\n\x07_stderr\"!\n\x1fReportRuleStatusDetailsCanceled\"\xc8\x01\n\x1cReportRuleStatusDetailsError\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x12 \n\texit_code\x18\x02 \x01(\x05H\x00R\x08\x65xitCode\x88\x01\x01\x12\x1b\n\x06stdout\x18\x03 \x01(\tH\x01R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x04 \x01(\tH\x02R\x06stderr\x88\x01\x01\x42\x0c\n\n_exit_codeB\t\n\x07_stdoutB\t\n\x07_stderr\"\xd2\x03\n\x13\x43reateReportRequest\x12\x8b\x01\n#report_from_report_template_request\x18\x01 \x01(\x0b\x32\x36.sift.reports.v1.CreateReportFromReportTemplateRequestB\x03\xe0\x41\x01H\x00R\x1freportFromReportTemplateRequest\x12o\n\x19report_from_rules_request\x18\x02 \x01(\x0b\x32-.sift.reports.v1.CreateReportFromRulesRequestB\x03\xe0\x41\x01H\x00R\x16reportFromRulesRequest\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x1a\n\x06run_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12\x1c\n\x04name\x18\x05 \x01(\tB\x03\xe0\x41\x02H\x01R\x04name\x88\x01\x01\x12@\n\x08metadata\x18\x10 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\t\n\x07requestB\x07\n\x05_name\"L\n\x14\x43reateReportResponse\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\"Z\n%CreateReportFromReportTemplateRequest\x12\x31\n\x12report_template_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10reportTemplateId\"\xbe\x03\n\x1c\x43reateReportFromRulesRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02H\x01R\x0b\x64\x65scription\x88\x01\x01\x12 \n\ttag_names\x18\x03 \x03(\tB\x03\xe0\x41\x02R\x08tagNames\x12M\n\x08rule_ids\x18\x04 \x01(\x0b\x32+.sift.reports.v1.CreateReportRequestRuleIdsB\x03\xe0\x41\x01H\x00R\x07ruleIds\x12_\n\x10rule_client_keys\x18\x05 \x01(\x0b\x32..sift.reports.v1.CreateReportRequestClientKeysB\x03\xe0\x41\x01H\x00R\x0eruleClientKeys\x12\x63\n\x10rule_version_ids\x18\x06 \x01(\x0b\x32\x32.sift.reports.v1.CreateReportRequestRuleVersionIdsB\x03\xe0\x41\x01H\x00R\x0eruleVersionIdsB\x12\n\x10rule_identifiersB\x0e\n\x0c_description\"<\n\x1a\x43reateReportRequestRuleIds\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x07ruleIds\"N\n\x1d\x43reateReportRequestClientKeys\x12-\n\x10rule_client_keys\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleClientKeys\"R\n!CreateReportRequestRuleVersionIds\x12-\n\x10rule_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleVersionIds\"4\n\x10GetReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x08reportId\"I\n\x11GetReportResponse\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\"\xc5\x01\n\x12ListReportsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"p\n\x13ListReportsResponse\x12\x31\n\x07reports\x18\x01 \x03(\x0b\x32\x17.sift.reports.v1.ReportR\x07reports\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xda\x01\n\'ListReportsWithCumulativeSummaryRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x9a\x01\n(ListReportsWithCumulativeSummaryResponse\x12\x46\n\x07reports\x18\x01 \x03(\x0b\x32,.sift.reports.v1.ReportWithCumulativeSummaryR\x07reports\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"6\n\x12RerunReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"S\n\x13RerunReportResponse\x12\x1a\n\x06job_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05jobId\x12 \n\treport_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"7\n\x13\x43\x61ncelReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"\x16\n\x14\x43\x61ncelReportResponse\"\x8d\x01\n\x13UpdateReportRequest\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\x16\n\x14UpdateReportResponse\"\xc5\x01\n\x1eListReportRuleSummariesRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xa1\x01\n\x1fListReportRuleSummariesResponse\x12V\n\x15report_rule_summaries\x18\x01 \x03(\x0b\x32\".sift.reports.v1.ReportRuleSummaryR\x13reportRuleSummaries\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xa6\x01\n\x1fListReportMetadataValuesRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\"\x94\x01\n ListReportMetadataValuesResponse\x12H\n\x0fmetadata_values\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueR\x0emetadataValues\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken*J\n\nReportType\x12\x1b\n\x17REPORT_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bREPORT_TYPE_RULE_EVALUATION\x10\x01*\xf2\x01\n\x10ReportRuleStatus\x12\"\n\x1eREPORT_RULE_STATUS_UNSPECIFIED\x10\x00\x12\x1e\n\x1aREPORT_RULE_STATUS_CREATED\x10\x01\x12\x1b\n\x17REPORT_RULE_STATUS_LIVE\x10\x02\x12\x1f\n\x1bREPORT_RULE_STATUS_FINISHED\x10\x03\x12\x1d\n\x19REPORT_RULE_STATUS_FAILED\x10\x04\x12\x1f\n\x1bREPORT_RULE_STATUS_CANCELED\x10\x05\x12\x1c\n\x18REPORT_RULE_STATUS_ERROR\x10\x06\x32\xad\x10\n\rReportService\x12\x99\x01\n\tGetReport\x12!.sift.reports.v1.GetReportRequest\x1a\".sift.reports.v1.GetReportResponse\"E\x92\x41\x1f\x12\tGetReport\x1a\x12Retrieve a report.\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/reports/{report_id}\x12\x9a\x01\n\x0c\x43reateReport\x12$.sift.reports.v1.CreateReportRequest\x1a%.sift.reports.v1.CreateReportResponse\"=\x92\x41 \x12\x0c\x43reateReport\x1a\x10\x43reate a report.\x82\xd3\xe4\x93\x02\x14\"\x0f/api/v1/reports:\x01*\x12\x9a\x01\n\x0cUpdateReport\x12$.sift.reports.v1.UpdateReportRequest\x1a%.sift.reports.v1.UpdateReportResponse\"=\x92\x41 \x12\x0cUpdateReport\x1a\x10Update a report.\x82\xd3\xe4\x93\x02\x14\x1a\x0f/api/v1/reports:\x01*\x12\x90\x01\n\x0bListReports\x12#.sift.reports.v1.ListReportsRequest\x1a$.sift.reports.v1.ListReportsResponse\"6\x92\x41\x1c\x12\x0bListReports\x1a\rList reports.\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/reports\x12\xc2\x02\n\x0bRerunReport\x12#.sift.reports.v1.RerunReportRequest\x1a$.sift.reports.v1.RerunReportResponse\"\xe7\x01\x92\x41\xba\x01\x12\x0bRerunReport\x1a\xaa\x01Rerunning a report will create a new report with the same rule versions and run as the original report and run the evaluation again using the most up-to-date set of data.\x82\xd3\xe4\x93\x02#\"!/api/v1/reports/{report_id}:rerun\x12\xc4\x02\n\x0c\x43\x61ncelReport\x12$.sift.reports.v1.CancelReportRequest\x1a%.sift.reports.v1.CancelReportResponse\"\xe6\x01\x92\x41\xb8\x01\x12\x0c\x43\x61ncelReport\x1a\xa7\x01\x43\x61nceling a report will stop the evaluation of the report and mark it as canceled. Any results that have been calculated up to the point of cancellation will be saved.\x82\xd3\xe4\x93\x02$\"\"/api/v1/reports/{report_id}:cancel\x12\x83\x02\n\x17ListReportRuleSummaries\x12/.sift.reports.v1.ListReportRuleSummariesRequest\x1a\x30.sift.reports.v1.ListReportRuleSummariesResponse\"\x84\x01\x92\x41O\x12\x17ListReportRuleSummaries\x1a\x34List paginated rule summaries for a specific report.\x82\xd3\xe4\x93\x02,\x12*/api/v1/reports/{report_id}/rule-summaries\x12\x89\x02\n\x18ListReportMetadataValues\x12\x30.sift.reports.v1.ListReportMetadataValuesRequest\x1a\x31.sift.reports.v1.ListReportMetadataValuesResponse\"\x87\x01\x92\x41Q\x12\x18ListReportMetadataValues\x1a\x35List paginated metadata values for a specific report.\x82\xd3\xe4\x93\x02-\x12+/api/v1/reports/{report_id}/metadata-values\x12\x94\x02\n ListReportsWithCumulativeSummary\x12\x38.sift.reports.v1.ListReportsWithCumulativeSummaryRequest\x1a\x39.sift.reports.v1.ListReportsWithCumulativeSummaryResponse\"{\x92\x41I\x12 ListReportsWithCumulativeSummary\x1a%List reports with cumulative summary.\x82\xd3\xe4\x93\x02)\x12\'/api/v1/reports:with-cumulative-summaryB\x96\x01\n\x13\x63om.sift.reports.v1B\x0cReportsProtoP\x01\xa2\x02\x03SRX\xaa\x02\x0fSift.Reports.V1\xca\x02\x0fSift\\Reports\\V1\xe2\x02\x1bSift\\Reports\\V1\\GPBMetadata\xea\x02\x11Sift::Reports::V1\x92\x41\x12\x12\x10\n\x0eReport serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dsift/reports/v1/reports.proto\x12\x0fsift.reports.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1bsift/canvas/v1/canvas.proto\x1a\x1fsift/families/v1/families.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xae\t\n\x06Report\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12\x31\n\x12report_template_id\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x10reportTemplateId\x12\x1a\n\x06run_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x17\n\x04name\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x45\n\tsummaries\x18\x0b \x03(\x0b\x32\".sift.reports.v1.ReportRuleSummaryB\x03\xe0\x41\x02R\tsummaries\x12\x33\n\x04tags\x18\x0c \x03(\x0b\x32\x1a.sift.reports.v1.ReportTagB\x03\xe0\x41\x02R\x04tags\x12\x39\n\x14rerun_from_report_id\x18\r \x01(\tB\x03\xe0\x41\x01H\x01R\x11rerunFromReportId\x88\x01\x01\x12\x1f\n\x06job_id\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x02R\x05jobId\x88\x01\x01\x12I\n\rarchived_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\x0c\x61rchivedDate\x88\x01\x01\x12@\n\x08metadata\x18\x10 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12$\n\x0bis_archived\x18\x11 \x01(\x08\x42\x03\xe0\x41\x01R\nisArchived\x12\x41\n\x0breport_type\x18\x12 \x01(\x0e\x32\x1b.sift.reports.v1.ReportTypeB\x03\xe0\x41\x02R\nreportType\x12\x38\n\x13\x63\x61nvas_execution_id\x18\x13 \x01(\tB\x03\xe0\x41\x01H\x04R\x11\x63\x61nvasExecutionId\x88\x01\x01\x12X\n\rcanvas_status\x18\x14 \x01(\x0e\x32).sift.canvas.v1.CanvasCellExecutionStatusB\x03\xe0\x41\x01H\x05R\x0c\x63\x61nvasStatus\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x17\n\x15_rerun_from_report_idB\t\n\x07_job_idB\x10\n\x0e_archived_dateB\x16\n\x14_canvas_execution_idB\x10\n\x0e_canvas_status\"\x9c\t\n\x1bReportWithCumulativeSummary\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12\x31\n\x12report_template_id\x18\x02 \x01(\tB\x03\xe0\x41\x01R\x10reportTemplateId\x12\x1a\n\x06run_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x17\n\x04name\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12`\n\x12\x63umulative_summary\x18\x0b \x01(\x0b\x32,.sift.reports.v1.ReportCumulativeRuleSummaryB\x03\xe0\x41\x02R\x11\x63umulativeSummary\x12\x33\n\x04tags\x18\x0c \x03(\x0b\x32\x1a.sift.reports.v1.ReportTagB\x03\xe0\x41\x02R\x04tags\x12\x39\n\x14rerun_from_report_id\x18\r \x01(\tB\x03\xe0\x41\x01H\x01R\x11rerunFromReportId\x88\x01\x01\x12\x1f\n\x06job_id\x18\x0e \x01(\tB\x03\xe0\x41\x01H\x02R\x05jobId\x88\x01\x01\x12I\n\rarchived_date\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x03R\x0c\x61rchivedDate\x88\x01\x01\x12$\n\x0bis_archived\x18\x10 \x01(\x08\x42\x03\xe0\x41\x01R\nisArchived\x12\x41\n\x0breport_type\x18\x11 \x01(\x0e\x32\x1b.sift.reports.v1.ReportTypeB\x03\xe0\x41\x02R\nreportType\x12\x38\n\x13\x63\x61nvas_execution_id\x18\x12 \x01(\tB\x03\xe0\x41\x01H\x04R\x11\x63\x61nvasExecutionId\x88\x01\x01\x12X\n\rcanvas_status\x18\x13 \x01(\x0e\x32).sift.canvas.v1.CanvasCellExecutionStatusB\x03\xe0\x41\x01H\x05R\x0c\x63\x61nvasStatus\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x17\n\x15_rerun_from_report_idB\t\n\x07_job_idB\x10\n\x0e_archived_dateB\x16\n\x14_canvas_execution_idB\x10\n\x0e_canvas_status\"\xda\x07\n\x11ReportRuleSummary\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12+\n\x0frule_client_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\rruleClientKey\x12+\n\x0frule_version_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\x12\x33\n\x13rule_version_number\x18\x04 \x01(\rB\x03\xe0\x41\x02R\x11ruleVersionNumber\x12\x38\n\x16report_rule_version_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x13reportRuleVersionId\x12\x1e\n\x08num_open\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x07numOpen\x12\"\n\nnum_failed\x18\x07 \x01(\rB\x03\xe0\x41\x02R\tnumFailed\x12\"\n\nnum_passed\x18\x08 \x01(\rB\x03\xe0\x41\x02R\tnumPassed\x12>\n\x06status\x18\t \x01(\x0e\x32!.sift.reports.v1.ReportRuleStatusB\x03\xe0\x41\x02R\x06status\x12T\n\x0estatus_details\x18\n \x01(\x0b\x32(.sift.reports.v1.ReportRuleStatusDetailsB\x03\xe0\x41\x02R\rstatusDetails\x12\x42\n\x0c\x63reated_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x1e\n\x08\x61sset_id\x18\r \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\x42\n\x0c\x64\x65leted_date\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0b\x64\x65letedDate\x12\\\n\x15resolved_family_stats\x18\x0f \x03(\x0b\x32#.sift.reports.v1.ResolvedFamilyStatB\x03\xe0\x41\x01R\x13resolvedFamilyStats\x12j\n\x1aresolved_alignment_configs\x18\x10 \x03(\x0b\x32\'.sift.reports.v1.ResolvedAlignmentEntryB\x03\xe0\x41\x01R\x18resolvedAlignmentConfigs\x12(\n\rdisplay_order\x18\x11 \x01(\rB\x03\xe0\x41\x02R\x0c\x64isplayOrder\"+\n\tReportTag\x12\x1e\n\x08tag_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07tagName\"\x9b\x05\n\x1bReportCumulativeRuleSummary\x12\x35\n\x14num_annotations_open\x18\x01 \x01(\rB\x03\xe0\x41\x02R\x12numAnnotationsOpen\x12\x39\n\x16num_annotations_failed\x18\x02 \x01(\rB\x03\xe0\x41\x02R\x14numAnnotationsFailed\x12\x39\n\x16num_annotations_passed\x18\x03 \x01(\rB\x03\xe0\x41\x02R\x14numAnnotationsPassed\x12\x37\n\x15num_annotations_total\x18\x04 \x01(\rB\x03\xe0\x41\x02R\x13numAnnotationsTotal\x12/\n\x11num_rules_created\x18\x05 \x01(\rB\x03\xe0\x41\x02R\x0fnumRulesCreated\x12)\n\x0enum_rules_live\x18\x06 \x01(\rB\x03\xe0\x41\x02R\x0cnumRulesLive\x12\x31\n\x12num_rules_finished\x18\x07 \x01(\rB\x03\xe0\x41\x02R\x10numRulesFinished\x12-\n\x10num_rules_failed\x18\x08 \x01(\rB\x03\xe0\x41\x02R\x0enumRulesFailed\x12\x31\n\x12num_rules_canceled\x18\t \x01(\rB\x03\xe0\x41\x02R\x10numRulesCanceled\x12+\n\x0fnum_rules_error\x18\n \x01(\rB\x03\xe0\x41\x02R\rnumRulesError\x12+\n\x0fnum_rules_total\x18\x0b \x01(\rB\x03\xe0\x41\x02R\rnumRulesTotal\x12K\n num_of_rules_without_annotations\x18\x0c \x01(\rB\x03\xe0\x41\x02R\x1cnumOfRulesWithoutAnnotations\"\x80\x02\n\x12ResolvedFamilyStat\x12!\n\treference\x18\x01 \x01(\tB\x03\xe0\x41\x02R\treference\x12 \n\tfamily_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08\x66\x61milyId\x12/\n\x11\x66\x61mily_version_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0f\x66\x61milyVersionId\x12>\n\x19\x66\x61mily_stat_expression_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x16\x66\x61milyStatExpressionId\x12\x34\n\x14\x66\x61mily_stat_range_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x11\x66\x61milyStatRangeId\"\x8c\x02\n\x16ResolvedAlignmentEntry\x12-\n\x12\x63hannel_references\x18\x01 \x03(\tR\x11\x63hannelReferences\x12\x37\n\x02t0\x18\x02 \x01(\x0b\x32\'.sift.reports.v1.ResolvedAlignmentPointR\x02t0\x12\x46\n\nstart_time\x18\x03 \x01(\x0b\x32\'.sift.reports.v1.ResolvedAlignmentPointR\tstartTime\x12\x42\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\'.sift.reports.v1.ResolvedAlignmentPointR\x07\x65ndTime\"\xb6\x02\n\x16ResolvedAlignmentPoint\x12\x38\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimestamp\x12\x32\n\x03run\x18\x03 \x01(\x0b\x32\x1e.sift.families.v1.RunAlignmentH\x00R\x03run\x12G\n\nannotation\x18\x04 \x01(\x0b\x32%.sift.families.v1.AnnotationAlignmentH\x00R\nannotation\x12Q\n\x10timestamp_config\x18\x05 \x01(\x0b\x32$.sift.families.v1.TimestampAlignmentH\x00R\x0ftimestampConfigB\x12\n\x10\x61lignment_config\"\xe6\x03\n\x17ReportRuleStatusDetails\x12K\n\x07\x63reated\x18\x01 \x01(\x0b\x32/.sift.reports.v1.ReportRuleStatusDetailsCreatedH\x00R\x07\x63reated\x12\x42\n\x04live\x18\x02 \x01(\x0b\x32,.sift.reports.v1.ReportRuleStatusDetailsLiveH\x00R\x04live\x12N\n\x08\x66inished\x18\x03 \x01(\x0b\x32\x30.sift.reports.v1.ReportRuleStatusDetailsFinishedH\x00R\x08\x66inished\x12H\n\x06\x66\x61iled\x18\x04 \x01(\x0b\x32..sift.reports.v1.ReportRuleStatusDetailsFailedH\x00R\x06\x66\x61iled\x12N\n\x08\x63\x61nceled\x18\x05 \x01(\x0b\x32\x30.sift.reports.v1.ReportRuleStatusDetailsCanceledH\x00R\x08\x63\x61nceled\x12\x45\n\x05\x65rror\x18\x06 \x01(\x0b\x32-.sift.reports.v1.ReportRuleStatusDetailsErrorH\x00R\x05\x65rrorB\t\n\x07\x64\x65tails\" \n\x1eReportRuleStatusDetailsCreated\"\x1d\n\x1bReportRuleStatusDetailsLive\"q\n\x1fReportRuleStatusDetailsFinished\x12\x1b\n\x06stdout\x18\x01 \x01(\tH\x00R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x02 \x01(\tH\x01R\x06stderr\x88\x01\x01\x42\t\n\x07_stdoutB\t\n\x07_stderr\"\xc9\x01\n\x1dReportRuleStatusDetailsFailed\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x12 \n\texit_code\x18\x02 \x01(\x05H\x00R\x08\x65xitCode\x88\x01\x01\x12\x1b\n\x06stdout\x18\x03 \x01(\tH\x01R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x04 \x01(\tH\x02R\x06stderr\x88\x01\x01\x42\x0c\n\n_exit_codeB\t\n\x07_stdoutB\t\n\x07_stderr\"!\n\x1fReportRuleStatusDetailsCanceled\"\xc8\x01\n\x1cReportRuleStatusDetailsError\x12(\n\rerror_message\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0c\x65rrorMessage\x12 \n\texit_code\x18\x02 \x01(\x05H\x00R\x08\x65xitCode\x88\x01\x01\x12\x1b\n\x06stdout\x18\x03 \x01(\tH\x01R\x06stdout\x88\x01\x01\x12\x1b\n\x06stderr\x18\x04 \x01(\tH\x02R\x06stderr\x88\x01\x01\x42\x0c\n\n_exit_codeB\t\n\x07_stdoutB\t\n\x07_stderr\"\xd2\x03\n\x13\x43reateReportRequest\x12\x8b\x01\n#report_from_report_template_request\x18\x01 \x01(\x0b\x32\x36.sift.reports.v1.CreateReportFromReportTemplateRequestB\x03\xe0\x41\x01H\x00R\x1freportFromReportTemplateRequest\x12o\n\x19report_from_rules_request\x18\x02 \x01(\x0b\x32-.sift.reports.v1.CreateReportFromRulesRequestB\x03\xe0\x41\x01H\x00R\x16reportFromRulesRequest\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x1a\n\x06run_id\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x05runId\x12\x1c\n\x04name\x18\x05 \x01(\tB\x03\xe0\x41\x02H\x01R\x04name\x88\x01\x01\x12@\n\x08metadata\x18\x10 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x01R\x08metadataB\t\n\x07requestB\x07\n\x05_name\"L\n\x14\x43reateReportResponse\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\"Z\n%CreateReportFromReportTemplateRequest\x12\x31\n\x12report_template_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10reportTemplateId\"\xbe\x03\n\x1c\x43reateReportFromRulesRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12*\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x02H\x01R\x0b\x64\x65scription\x88\x01\x01\x12 \n\ttag_names\x18\x03 \x03(\tB\x03\xe0\x41\x02R\x08tagNames\x12M\n\x08rule_ids\x18\x04 \x01(\x0b\x32+.sift.reports.v1.CreateReportRequestRuleIdsB\x03\xe0\x41\x01H\x00R\x07ruleIds\x12_\n\x10rule_client_keys\x18\x05 \x01(\x0b\x32..sift.reports.v1.CreateReportRequestClientKeysB\x03\xe0\x41\x01H\x00R\x0eruleClientKeys\x12\x63\n\x10rule_version_ids\x18\x06 \x01(\x0b\x32\x32.sift.reports.v1.CreateReportRequestRuleVersionIdsB\x03\xe0\x41\x01H\x00R\x0eruleVersionIdsB\x12\n\x10rule_identifiersB\x0e\n\x0c_description\"<\n\x1a\x43reateReportRequestRuleIds\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x07ruleIds\"N\n\x1d\x43reateReportRequestClientKeys\x12-\n\x10rule_client_keys\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleClientKeys\"R\n!CreateReportRequestRuleVersionIds\x12-\n\x10rule_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleVersionIds\"4\n\x10GetReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x08reportId\"I\n\x11GetReportResponse\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\"\xc5\x01\n\x12ListReportsRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"p\n\x13ListReportsResponse\x12\x31\n\x07reports\x18\x01 \x03(\x0b\x32\x17.sift.reports.v1.ReportR\x07reports\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xda\x01\n\'ListReportsWithCumulativeSummaryRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x9a\x01\n(ListReportsWithCumulativeSummaryResponse\x12\x46\n\x07reports\x18\x01 \x03(\x0b\x32,.sift.reports.v1.ReportWithCumulativeSummaryR\x07reports\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"6\n\x12RerunReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"S\n\x13RerunReportResponse\x12\x1a\n\x06job_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x05jobId\x12 \n\treport_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"7\n\x13\x43\x61ncelReportRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\"\x16\n\x14\x43\x61ncelReportResponse\"\x8d\x01\n\x13UpdateReportRequest\x12\x34\n\x06report\x18\x01 \x01(\x0b\x32\x17.sift.reports.v1.ReportB\x03\xe0\x41\x02R\x06report\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"\x16\n\x14UpdateReportResponse\"\xc5\x01\n\x1eListReportRuleSummariesRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\xa1\x01\n\x1fListReportRuleSummariesResponse\x12V\n\x15report_rule_summaries\x18\x01 \x03(\x0b\x32\".sift.reports.v1.ReportRuleSummaryR\x13reportRuleSummaries\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xa6\x01\n\x1fListReportMetadataValuesRequest\x12 \n\treport_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x08reportId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\"\x94\x01\n ListReportMetadataValuesResponse\x12H\n\x0fmetadata_values\x18\x01 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueR\x0emetadataValues\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken*b\n\nReportType\x12\x1b\n\x17REPORT_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bREPORT_TYPE_RULE_EVALUATION\x10\x01\x12\x16\n\x12REPORT_TYPE_CANVAS\x10\x02*\xf2\x01\n\x10ReportRuleStatus\x12\"\n\x1eREPORT_RULE_STATUS_UNSPECIFIED\x10\x00\x12\x1e\n\x1aREPORT_RULE_STATUS_CREATED\x10\x01\x12\x1b\n\x17REPORT_RULE_STATUS_LIVE\x10\x02\x12\x1f\n\x1bREPORT_RULE_STATUS_FINISHED\x10\x03\x12\x1d\n\x19REPORT_RULE_STATUS_FAILED\x10\x04\x12\x1f\n\x1bREPORT_RULE_STATUS_CANCELED\x10\x05\x12\x1c\n\x18REPORT_RULE_STATUS_ERROR\x10\x06\x32\xad\x10\n\rReportService\x12\x99\x01\n\tGetReport\x12!.sift.reports.v1.GetReportRequest\x1a\".sift.reports.v1.GetReportResponse\"E\x92\x41\x1f\x12\tGetReport\x1a\x12Retrieve a report.\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/reports/{report_id}\x12\x9a\x01\n\x0c\x43reateReport\x12$.sift.reports.v1.CreateReportRequest\x1a%.sift.reports.v1.CreateReportResponse\"=\x92\x41 \x12\x0c\x43reateReport\x1a\x10\x43reate a report.\x82\xd3\xe4\x93\x02\x14\"\x0f/api/v1/reports:\x01*\x12\x9a\x01\n\x0cUpdateReport\x12$.sift.reports.v1.UpdateReportRequest\x1a%.sift.reports.v1.UpdateReportResponse\"=\x92\x41 \x12\x0cUpdateReport\x1a\x10Update a report.\x82\xd3\xe4\x93\x02\x14\x1a\x0f/api/v1/reports:\x01*\x12\x90\x01\n\x0bListReports\x12#.sift.reports.v1.ListReportsRequest\x1a$.sift.reports.v1.ListReportsResponse\"6\x92\x41\x1c\x12\x0bListReports\x1a\rList reports.\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/reports\x12\xc2\x02\n\x0bRerunReport\x12#.sift.reports.v1.RerunReportRequest\x1a$.sift.reports.v1.RerunReportResponse\"\xe7\x01\x92\x41\xba\x01\x12\x0bRerunReport\x1a\xaa\x01Rerunning a report will create a new report with the same rule versions and run as the original report and run the evaluation again using the most up-to-date set of data.\x82\xd3\xe4\x93\x02#\"!/api/v1/reports/{report_id}:rerun\x12\xc4\x02\n\x0c\x43\x61ncelReport\x12$.sift.reports.v1.CancelReportRequest\x1a%.sift.reports.v1.CancelReportResponse\"\xe6\x01\x92\x41\xb8\x01\x12\x0c\x43\x61ncelReport\x1a\xa7\x01\x43\x61nceling a report will stop the evaluation of the report and mark it as canceled. Any results that have been calculated up to the point of cancellation will be saved.\x82\xd3\xe4\x93\x02$\"\"/api/v1/reports/{report_id}:cancel\x12\x83\x02\n\x17ListReportRuleSummaries\x12/.sift.reports.v1.ListReportRuleSummariesRequest\x1a\x30.sift.reports.v1.ListReportRuleSummariesResponse\"\x84\x01\x92\x41O\x12\x17ListReportRuleSummaries\x1a\x34List paginated rule summaries for a specific report.\x82\xd3\xe4\x93\x02,\x12*/api/v1/reports/{report_id}/rule-summaries\x12\x89\x02\n\x18ListReportMetadataValues\x12\x30.sift.reports.v1.ListReportMetadataValuesRequest\x1a\x31.sift.reports.v1.ListReportMetadataValuesResponse\"\x87\x01\x92\x41Q\x12\x18ListReportMetadataValues\x1a\x35List paginated metadata values for a specific report.\x82\xd3\xe4\x93\x02-\x12+/api/v1/reports/{report_id}/metadata-values\x12\x94\x02\n ListReportsWithCumulativeSummary\x12\x38.sift.reports.v1.ListReportsWithCumulativeSummaryRequest\x1a\x39.sift.reports.v1.ListReportsWithCumulativeSummaryResponse\"{\x92\x41I\x12 ListReportsWithCumulativeSummary\x1a%List reports with cumulative summary.\x82\xd3\xe4\x93\x02)\x12\'/api/v1/reports:with-cumulative-summaryB\x96\x01\n\x13\x63om.sift.reports.v1B\x0cReportsProtoP\x01\xa2\x02\x03SRX\xaa\x02\x0fSift.Reports.V1\xca\x02\x0fSift\\Reports\\V1\xe2\x02\x1bSift\\Reports\\V1\\GPBMetadata\xea\x02\x11Sift::Reports::V1\x92\x41\x12\x12\x10\n\x0eReport serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -64,6 +66,10 @@ _globals['_REPORT'].fields_by_name['is_archived']._serialized_options = b'\340A\001' _globals['_REPORT'].fields_by_name['report_type']._loaded_options = None _globals['_REPORT'].fields_by_name['report_type']._serialized_options = b'\340A\002' + _globals['_REPORT'].fields_by_name['canvas_execution_id']._loaded_options = None + _globals['_REPORT'].fields_by_name['canvas_execution_id']._serialized_options = b'\340A\001' + _globals['_REPORT'].fields_by_name['canvas_status']._loaded_options = None + _globals['_REPORT'].fields_by_name['canvas_status']._serialized_options = b'\340A\001' _globals['_REPORTWITHCUMULATIVESUMMARY'].fields_by_name['report_id']._loaded_options = None _globals['_REPORTWITHCUMULATIVESUMMARY'].fields_by_name['report_id']._serialized_options = b'\340A\002' _globals['_REPORTWITHCUMULATIVESUMMARY'].fields_by_name['report_template_id']._loaded_options = None @@ -98,6 +104,10 @@ _globals['_REPORTWITHCUMULATIVESUMMARY'].fields_by_name['is_archived']._serialized_options = b'\340A\001' _globals['_REPORTWITHCUMULATIVESUMMARY'].fields_by_name['report_type']._loaded_options = None _globals['_REPORTWITHCUMULATIVESUMMARY'].fields_by_name['report_type']._serialized_options = b'\340A\002' + _globals['_REPORTWITHCUMULATIVESUMMARY'].fields_by_name['canvas_execution_id']._loaded_options = None + _globals['_REPORTWITHCUMULATIVESUMMARY'].fields_by_name['canvas_execution_id']._serialized_options = b'\340A\001' + _globals['_REPORTWITHCUMULATIVESUMMARY'].fields_by_name['canvas_status']._loaded_options = None + _globals['_REPORTWITHCUMULATIVESUMMARY'].fields_by_name['canvas_status']._serialized_options = b'\340A\001' _globals['_REPORTRULESUMMARY'].fields_by_name['rule_id']._loaded_options = None _globals['_REPORTRULESUMMARY'].fields_by_name['rule_id']._serialized_options = b'\340A\002' _globals['_REPORTRULESUMMARY'].fields_by_name['rule_client_key']._loaded_options = None @@ -126,6 +136,10 @@ _globals['_REPORTRULESUMMARY'].fields_by_name['asset_id']._serialized_options = b'\340A\002' _globals['_REPORTRULESUMMARY'].fields_by_name['deleted_date']._loaded_options = None _globals['_REPORTRULESUMMARY'].fields_by_name['deleted_date']._serialized_options = b'\340A\001' + _globals['_REPORTRULESUMMARY'].fields_by_name['resolved_family_stats']._loaded_options = None + _globals['_REPORTRULESUMMARY'].fields_by_name['resolved_family_stats']._serialized_options = b'\340A\001' + _globals['_REPORTRULESUMMARY'].fields_by_name['resolved_alignment_configs']._loaded_options = None + _globals['_REPORTRULESUMMARY'].fields_by_name['resolved_alignment_configs']._serialized_options = b'\340A\001' _globals['_REPORTRULESUMMARY'].fields_by_name['display_order']._loaded_options = None _globals['_REPORTRULESUMMARY'].fields_by_name['display_order']._serialized_options = b'\340A\002' _globals['_REPORTTAG'].fields_by_name['tag_name']._loaded_options = None @@ -154,6 +168,16 @@ _globals['_REPORTCUMULATIVERULESUMMARY'].fields_by_name['num_rules_total']._serialized_options = b'\340A\002' _globals['_REPORTCUMULATIVERULESUMMARY'].fields_by_name['num_of_rules_without_annotations']._loaded_options = None _globals['_REPORTCUMULATIVERULESUMMARY'].fields_by_name['num_of_rules_without_annotations']._serialized_options = b'\340A\002' + _globals['_RESOLVEDFAMILYSTAT'].fields_by_name['reference']._loaded_options = None + _globals['_RESOLVEDFAMILYSTAT'].fields_by_name['reference']._serialized_options = b'\340A\002' + _globals['_RESOLVEDFAMILYSTAT'].fields_by_name['family_id']._loaded_options = None + _globals['_RESOLVEDFAMILYSTAT'].fields_by_name['family_id']._serialized_options = b'\340A\002' + _globals['_RESOLVEDFAMILYSTAT'].fields_by_name['family_version_id']._loaded_options = None + _globals['_RESOLVEDFAMILYSTAT'].fields_by_name['family_version_id']._serialized_options = b'\340A\002' + _globals['_RESOLVEDFAMILYSTAT'].fields_by_name['family_stat_expression_id']._loaded_options = None + _globals['_RESOLVEDFAMILYSTAT'].fields_by_name['family_stat_expression_id']._serialized_options = b'\340A\002' + _globals['_RESOLVEDFAMILYSTAT'].fields_by_name['family_stat_range_id']._loaded_options = None + _globals['_RESOLVEDFAMILYSTAT'].fields_by_name['family_stat_range_id']._serialized_options = b'\340A\002' _globals['_REPORTRULESTATUSDETAILSFAILED'].fields_by_name['error_message']._loaded_options = None _globals['_REPORTRULESTATUSDETAILSFAILED'].fields_by_name['error_message']._serialized_options = b'\340A\002' _globals['_REPORTRULESTATUSDETAILSERROR'].fields_by_name['error_message']._loaded_options = None @@ -264,80 +288,86 @@ _globals['_REPORTSERVICE'].methods_by_name['ListReportMetadataValues']._serialized_options = b'\222AQ\022\030ListReportMetadataValues\0325List paginated metadata values for a specific report.\202\323\344\223\002-\022+/api/v1/reports/{report_id}/metadata-values' _globals['_REPORTSERVICE'].methods_by_name['ListReportsWithCumulativeSummary']._loaded_options = None _globals['_REPORTSERVICE'].methods_by_name['ListReportsWithCumulativeSummary']._serialized_options = b'\222AI\022 ListReportsWithCumulativeSummary\032%List reports with cumulative summary.\202\323\344\223\002)\022\'/api/v1/reports:with-cumulative-summary' - _globals['_REPORTTYPE']._serialized_start=8087 - _globals['_REPORTTYPE']._serialized_end=8161 - _globals['_REPORTRULESTATUS']._serialized_start=8164 - _globals['_REPORTRULESTATUS']._serialized_end=8406 - _globals['_REPORT']._serialized_start=262 - _globals['_REPORT']._serialized_end=1270 - _globals['_REPORTWITHCUMULATIVESUMMARY']._serialized_start=1273 - _globals['_REPORTWITHCUMULATIVESUMMARY']._serialized_end=2263 - _globals['_REPORTRULESUMMARY']._serialized_start=2266 - _globals['_REPORTRULESUMMARY']._serialized_end=3050 - _globals['_REPORTTAG']._serialized_start=3052 - _globals['_REPORTTAG']._serialized_end=3095 - _globals['_REPORTCUMULATIVERULESUMMARY']._serialized_start=3098 - _globals['_REPORTCUMULATIVERULESUMMARY']._serialized_end=3765 - _globals['_REPORTRULESTATUSDETAILS']._serialized_start=3768 - _globals['_REPORTRULESTATUSDETAILS']._serialized_end=4254 - _globals['_REPORTRULESTATUSDETAILSCREATED']._serialized_start=4256 - _globals['_REPORTRULESTATUSDETAILSCREATED']._serialized_end=4288 - _globals['_REPORTRULESTATUSDETAILSLIVE']._serialized_start=4290 - _globals['_REPORTRULESTATUSDETAILSLIVE']._serialized_end=4319 - _globals['_REPORTRULESTATUSDETAILSFINISHED']._serialized_start=4321 - _globals['_REPORTRULESTATUSDETAILSFINISHED']._serialized_end=4434 - _globals['_REPORTRULESTATUSDETAILSFAILED']._serialized_start=4437 - _globals['_REPORTRULESTATUSDETAILSFAILED']._serialized_end=4638 - _globals['_REPORTRULESTATUSDETAILSCANCELED']._serialized_start=4640 - _globals['_REPORTRULESTATUSDETAILSCANCELED']._serialized_end=4673 - _globals['_REPORTRULESTATUSDETAILSERROR']._serialized_start=4676 - _globals['_REPORTRULESTATUSDETAILSERROR']._serialized_end=4876 - _globals['_CREATEREPORTREQUEST']._serialized_start=4879 - _globals['_CREATEREPORTREQUEST']._serialized_end=5345 - _globals['_CREATEREPORTRESPONSE']._serialized_start=5347 - _globals['_CREATEREPORTRESPONSE']._serialized_end=5423 - _globals['_CREATEREPORTFROMREPORTTEMPLATEREQUEST']._serialized_start=5425 - _globals['_CREATEREPORTFROMREPORTTEMPLATEREQUEST']._serialized_end=5515 - _globals['_CREATEREPORTFROMRULESREQUEST']._serialized_start=5518 - _globals['_CREATEREPORTFROMRULESREQUEST']._serialized_end=5964 - _globals['_CREATEREPORTREQUESTRULEIDS']._serialized_start=5966 - _globals['_CREATEREPORTREQUESTRULEIDS']._serialized_end=6026 - _globals['_CREATEREPORTREQUESTCLIENTKEYS']._serialized_start=6028 - _globals['_CREATEREPORTREQUESTCLIENTKEYS']._serialized_end=6106 - _globals['_CREATEREPORTREQUESTRULEVERSIONIDS']._serialized_start=6108 - _globals['_CREATEREPORTREQUESTRULEVERSIONIDS']._serialized_end=6190 - _globals['_GETREPORTREQUEST']._serialized_start=6192 - _globals['_GETREPORTREQUEST']._serialized_end=6244 - _globals['_GETREPORTRESPONSE']._serialized_start=6246 - _globals['_GETREPORTRESPONSE']._serialized_end=6319 - _globals['_LISTREPORTSREQUEST']._serialized_start=6322 - _globals['_LISTREPORTSREQUEST']._serialized_end=6519 - _globals['_LISTREPORTSRESPONSE']._serialized_start=6521 - _globals['_LISTREPORTSRESPONSE']._serialized_end=6633 - _globals['_LISTREPORTSWITHCUMULATIVESUMMARYREQUEST']._serialized_start=6636 - _globals['_LISTREPORTSWITHCUMULATIVESUMMARYREQUEST']._serialized_end=6854 - _globals['_LISTREPORTSWITHCUMULATIVESUMMARYRESPONSE']._serialized_start=6857 - _globals['_LISTREPORTSWITHCUMULATIVESUMMARYRESPONSE']._serialized_end=7011 - _globals['_RERUNREPORTREQUEST']._serialized_start=7013 - _globals['_RERUNREPORTREQUEST']._serialized_end=7067 - _globals['_RERUNREPORTRESPONSE']._serialized_start=7069 - _globals['_RERUNREPORTRESPONSE']._serialized_end=7152 - _globals['_CANCELREPORTREQUEST']._serialized_start=7154 - _globals['_CANCELREPORTREQUEST']._serialized_end=7209 - _globals['_CANCELREPORTRESPONSE']._serialized_start=7211 - _globals['_CANCELREPORTRESPONSE']._serialized_end=7233 - _globals['_UPDATEREPORTREQUEST']._serialized_start=7236 - _globals['_UPDATEREPORTREQUEST']._serialized_end=7377 - _globals['_UPDATEREPORTRESPONSE']._serialized_start=7379 - _globals['_UPDATEREPORTRESPONSE']._serialized_end=7401 - _globals['_LISTREPORTRULESUMMARIESREQUEST']._serialized_start=7404 - _globals['_LISTREPORTRULESUMMARIESREQUEST']._serialized_end=7601 - _globals['_LISTREPORTRULESUMMARIESRESPONSE']._serialized_start=7604 - _globals['_LISTREPORTRULESUMMARIESRESPONSE']._serialized_end=7765 - _globals['_LISTREPORTMETADATAVALUESREQUEST']._serialized_start=7768 - _globals['_LISTREPORTMETADATAVALUESREQUEST']._serialized_end=7934 - _globals['_LISTREPORTMETADATAVALUESRESPONSE']._serialized_start=7937 - _globals['_LISTREPORTMETADATAVALUESRESPONSE']._serialized_end=8085 - _globals['_REPORTSERVICE']._serialized_start=8409 - _globals['_REPORTSERVICE']._serialized_end=10502 + _globals['_REPORTTYPE']._serialized_start=9574 + _globals['_REPORTTYPE']._serialized_end=9672 + _globals['_REPORTRULESTATUS']._serialized_start=9675 + _globals['_REPORTRULESTATUS']._serialized_end=9917 + _globals['_REPORT']._serialized_start=324 + _globals['_REPORT']._serialized_end=1522 + _globals['_REPORTWITHCUMULATIVESUMMARY']._serialized_start=1525 + _globals['_REPORTWITHCUMULATIVESUMMARY']._serialized_end=2705 + _globals['_REPORTRULESUMMARY']._serialized_start=2708 + _globals['_REPORTRULESUMMARY']._serialized_end=3694 + _globals['_REPORTTAG']._serialized_start=3696 + _globals['_REPORTTAG']._serialized_end=3739 + _globals['_REPORTCUMULATIVERULESUMMARY']._serialized_start=3742 + _globals['_REPORTCUMULATIVERULESUMMARY']._serialized_end=4409 + _globals['_RESOLVEDFAMILYSTAT']._serialized_start=4412 + _globals['_RESOLVEDFAMILYSTAT']._serialized_end=4668 + _globals['_RESOLVEDALIGNMENTENTRY']._serialized_start=4671 + _globals['_RESOLVEDALIGNMENTENTRY']._serialized_end=4939 + _globals['_RESOLVEDALIGNMENTPOINT']._serialized_start=4942 + _globals['_RESOLVEDALIGNMENTPOINT']._serialized_end=5252 + _globals['_REPORTRULESTATUSDETAILS']._serialized_start=5255 + _globals['_REPORTRULESTATUSDETAILS']._serialized_end=5741 + _globals['_REPORTRULESTATUSDETAILSCREATED']._serialized_start=5743 + _globals['_REPORTRULESTATUSDETAILSCREATED']._serialized_end=5775 + _globals['_REPORTRULESTATUSDETAILSLIVE']._serialized_start=5777 + _globals['_REPORTRULESTATUSDETAILSLIVE']._serialized_end=5806 + _globals['_REPORTRULESTATUSDETAILSFINISHED']._serialized_start=5808 + _globals['_REPORTRULESTATUSDETAILSFINISHED']._serialized_end=5921 + _globals['_REPORTRULESTATUSDETAILSFAILED']._serialized_start=5924 + _globals['_REPORTRULESTATUSDETAILSFAILED']._serialized_end=6125 + _globals['_REPORTRULESTATUSDETAILSCANCELED']._serialized_start=6127 + _globals['_REPORTRULESTATUSDETAILSCANCELED']._serialized_end=6160 + _globals['_REPORTRULESTATUSDETAILSERROR']._serialized_start=6163 + _globals['_REPORTRULESTATUSDETAILSERROR']._serialized_end=6363 + _globals['_CREATEREPORTREQUEST']._serialized_start=6366 + _globals['_CREATEREPORTREQUEST']._serialized_end=6832 + _globals['_CREATEREPORTRESPONSE']._serialized_start=6834 + _globals['_CREATEREPORTRESPONSE']._serialized_end=6910 + _globals['_CREATEREPORTFROMREPORTTEMPLATEREQUEST']._serialized_start=6912 + _globals['_CREATEREPORTFROMREPORTTEMPLATEREQUEST']._serialized_end=7002 + _globals['_CREATEREPORTFROMRULESREQUEST']._serialized_start=7005 + _globals['_CREATEREPORTFROMRULESREQUEST']._serialized_end=7451 + _globals['_CREATEREPORTREQUESTRULEIDS']._serialized_start=7453 + _globals['_CREATEREPORTREQUESTRULEIDS']._serialized_end=7513 + _globals['_CREATEREPORTREQUESTCLIENTKEYS']._serialized_start=7515 + _globals['_CREATEREPORTREQUESTCLIENTKEYS']._serialized_end=7593 + _globals['_CREATEREPORTREQUESTRULEVERSIONIDS']._serialized_start=7595 + _globals['_CREATEREPORTREQUESTRULEVERSIONIDS']._serialized_end=7677 + _globals['_GETREPORTREQUEST']._serialized_start=7679 + _globals['_GETREPORTREQUEST']._serialized_end=7731 + _globals['_GETREPORTRESPONSE']._serialized_start=7733 + _globals['_GETREPORTRESPONSE']._serialized_end=7806 + _globals['_LISTREPORTSREQUEST']._serialized_start=7809 + _globals['_LISTREPORTSREQUEST']._serialized_end=8006 + _globals['_LISTREPORTSRESPONSE']._serialized_start=8008 + _globals['_LISTREPORTSRESPONSE']._serialized_end=8120 + _globals['_LISTREPORTSWITHCUMULATIVESUMMARYREQUEST']._serialized_start=8123 + _globals['_LISTREPORTSWITHCUMULATIVESUMMARYREQUEST']._serialized_end=8341 + _globals['_LISTREPORTSWITHCUMULATIVESUMMARYRESPONSE']._serialized_start=8344 + _globals['_LISTREPORTSWITHCUMULATIVESUMMARYRESPONSE']._serialized_end=8498 + _globals['_RERUNREPORTREQUEST']._serialized_start=8500 + _globals['_RERUNREPORTREQUEST']._serialized_end=8554 + _globals['_RERUNREPORTRESPONSE']._serialized_start=8556 + _globals['_RERUNREPORTRESPONSE']._serialized_end=8639 + _globals['_CANCELREPORTREQUEST']._serialized_start=8641 + _globals['_CANCELREPORTREQUEST']._serialized_end=8696 + _globals['_CANCELREPORTRESPONSE']._serialized_start=8698 + _globals['_CANCELREPORTRESPONSE']._serialized_end=8720 + _globals['_UPDATEREPORTREQUEST']._serialized_start=8723 + _globals['_UPDATEREPORTREQUEST']._serialized_end=8864 + _globals['_UPDATEREPORTRESPONSE']._serialized_start=8866 + _globals['_UPDATEREPORTRESPONSE']._serialized_end=8888 + _globals['_LISTREPORTRULESUMMARIESREQUEST']._serialized_start=8891 + _globals['_LISTREPORTRULESUMMARIESREQUEST']._serialized_end=9088 + _globals['_LISTREPORTRULESUMMARIESRESPONSE']._serialized_start=9091 + _globals['_LISTREPORTRULESUMMARIESRESPONSE']._serialized_end=9252 + _globals['_LISTREPORTMETADATAVALUESREQUEST']._serialized_start=9255 + _globals['_LISTREPORTMETADATAVALUESREQUEST']._serialized_end=9421 + _globals['_LISTREPORTMETADATAVALUESRESPONSE']._serialized_start=9424 + _globals['_LISTREPORTMETADATAVALUESRESPONSE']._serialized_end=9572 + _globals['_REPORTSERVICE']._serialized_start=9920 + _globals['_REPORTSERVICE']._serialized_end=12013 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/reports/v1/reports_pb2.pyi b/python/lib/sift/reports/v1/reports_pb2.pyi index 277cde9e03..770b5f744b 100644 --- a/python/lib/sift/reports/v1/reports_pb2.pyi +++ b/python/lib/sift/reports/v1/reports_pb2.pyi @@ -11,6 +11,8 @@ import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message import google.protobuf.timestamp_pb2 +import sift.canvas.v1.canvas_pb2 +import sift.families.v1.families_pb2 import sift.metadata.v1.metadata_pb2 import sys import typing @@ -30,6 +32,7 @@ class _ReportTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._Enu DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor REPORT_TYPE_UNSPECIFIED: _ReportType.ValueType # 0 REPORT_TYPE_RULE_EVALUATION: _ReportType.ValueType # 1 + REPORT_TYPE_CANVAS: _ReportType.ValueType # 2 class ReportType(_ReportType, metaclass=_ReportTypeEnumTypeWrapper): """ReportType discriminates the two kinds of report rows that share the unified @@ -39,6 +42,7 @@ class ReportType(_ReportType, metaclass=_ReportTypeEnumTypeWrapper): REPORT_TYPE_UNSPECIFIED: ReportType.ValueType # 0 REPORT_TYPE_RULE_EVALUATION: ReportType.ValueType # 1 +REPORT_TYPE_CANVAS: ReportType.ValueType # 2 global___ReportType = ReportType class _ReportRuleStatus: @@ -88,6 +92,8 @@ class Report(google.protobuf.message.Message): METADATA_FIELD_NUMBER: builtins.int IS_ARCHIVED_FIELD_NUMBER: builtins.int REPORT_TYPE_FIELD_NUMBER: builtins.int + CANVAS_EXECUTION_ID_FIELD_NUMBER: builtins.int + CANVAS_STATUS_FIELD_NUMBER: builtins.int report_id: builtins.str report_template_id: builtins.str run_id: builtins.str @@ -105,11 +111,14 @@ class Report(google.protobuf.message.Message): job_id: builtins.str is_archived: builtins.bool report_type: global___ReportType.ValueType - """Discriminates the report kind. Defaults to RULE_EVALUATION for existing rows. - For CANVAS reports, the id of the published canvas_execution this report row + """Discriminates the report kind. Defaults to RULE_EVALUATION for existing rows.""" + canvas_execution_id: builtins.str + """For CANVAS reports, the id of the published canvas_execution this report row is linked to (read-through from canvas_executions.canvas_execution_id). Empty for RULE_EVALUATION reports. Used by clients to route to the canvas detail page. - For CANVAS reports, the execution status read through from the linked + """ + canvas_status: sift.canvas.v1.canvas_pb2.CanvasCellExecutionStatus.ValueType + """For CANVAS reports, the execution status read through from the linked canvas_executions.status. Unset for RULE_EVALUATION reports (whose status is conveyed via the per-rule `summaries` instead). """ @@ -150,12 +159,18 @@ class Report(google.protobuf.message.Message): metadata: collections.abc.Iterable[sift.metadata.v1.metadata_pb2.MetadataValue] | None = ..., is_archived: builtins.bool = ..., report_type: global___ReportType.ValueType = ..., + canvas_execution_id: builtins.str | None = ..., + canvas_status: sift.canvas.v1.canvas_pb2.CanvasCellExecutionStatus.ValueType | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_description", b"_description", "_job_id", b"_job_id", "_rerun_from_report_id", b"_rerun_from_report_id", "archived_date", b"archived_date", "created_date", b"created_date", "description", b"description", "job_id", b"job_id", "modified_date", b"modified_date", "rerun_from_report_id", b"rerun_from_report_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_description", b"_description", "_job_id", b"_job_id", "_rerun_from_report_id", b"_rerun_from_report_id", "archived_date", b"archived_date", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "is_archived", b"is_archived", "job_id", b"job_id", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "report_id", b"report_id", "report_template_id", b"report_template_id", "report_type", b"report_type", "rerun_from_report_id", b"rerun_from_report_id", "run_id", b"run_id", "summaries", b"summaries", "tags", b"tags"]) -> None: ... + def HasField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_canvas_execution_id", b"_canvas_execution_id", "_canvas_status", b"_canvas_status", "_description", b"_description", "_job_id", b"_job_id", "_rerun_from_report_id", b"_rerun_from_report_id", "archived_date", b"archived_date", "canvas_execution_id", b"canvas_execution_id", "canvas_status", b"canvas_status", "created_date", b"created_date", "description", b"description", "job_id", b"job_id", "modified_date", b"modified_date", "rerun_from_report_id", b"rerun_from_report_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_canvas_execution_id", b"_canvas_execution_id", "_canvas_status", b"_canvas_status", "_description", b"_description", "_job_id", b"_job_id", "_rerun_from_report_id", b"_rerun_from_report_id", "archived_date", b"archived_date", "canvas_execution_id", b"canvas_execution_id", "canvas_status", b"canvas_status", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "description", b"description", "is_archived", b"is_archived", "job_id", b"job_id", "metadata", b"metadata", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "report_id", b"report_id", "report_template_id", b"report_template_id", "report_type", b"report_type", "rerun_from_report_id", b"rerun_from_report_id", "run_id", b"run_id", "summaries", b"summaries", "tags", b"tags"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_archived_date", b"_archived_date"]) -> typing.Literal["archived_date"] | None: ... @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_canvas_execution_id", b"_canvas_execution_id"]) -> typing.Literal["canvas_execution_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_canvas_status", b"_canvas_status"]) -> typing.Literal["canvas_status"] | None: ... + @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_description", b"_description"]) -> typing.Literal["description"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_job_id", b"_job_id"]) -> typing.Literal["job_id"] | None: ... @@ -190,6 +205,8 @@ class ReportWithCumulativeSummary(google.protobuf.message.Message): ARCHIVED_DATE_FIELD_NUMBER: builtins.int IS_ARCHIVED_FIELD_NUMBER: builtins.int REPORT_TYPE_FIELD_NUMBER: builtins.int + CANVAS_EXECUTION_ID_FIELD_NUMBER: builtins.int + CANVAS_STATUS_FIELD_NUMBER: builtins.int report_id: builtins.str """The unique identifier of the report.""" report_template_id: builtins.str @@ -213,11 +230,14 @@ class ReportWithCumulativeSummary(google.protobuf.message.Message): is_archived: builtins.bool """Whether the report has been archived.""" report_type: global___ReportType.ValueType - """Discriminates the report kind. Defaults to RULE_EVALUATION for existing rows. - For CANVAS reports, the id of the published canvas_execution this report row + """Discriminates the report kind. Defaults to RULE_EVALUATION for existing rows.""" + canvas_execution_id: builtins.str + """For CANVAS reports, the id of the published canvas_execution this report row is linked to (read-through from canvas_executions.canvas_execution_id). Empty for RULE_EVALUATION reports. Used by clients to route to the canvas detail page. - For CANVAS reports, the execution status read through from the linked + """ + canvas_status: sift.canvas.v1.canvas_pb2.CanvasCellExecutionStatus.ValueType + """For CANVAS reports, the execution status read through from the linked canvas_executions.status. Unset for RULE_EVALUATION reports (whose status is conveyed via the `cumulative_summary` instead). """ @@ -261,12 +281,18 @@ class ReportWithCumulativeSummary(google.protobuf.message.Message): archived_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., is_archived: builtins.bool = ..., report_type: global___ReportType.ValueType = ..., + canvas_execution_id: builtins.str | None = ..., + canvas_status: sift.canvas.v1.canvas_pb2.CanvasCellExecutionStatus.ValueType | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_description", b"_description", "_job_id", b"_job_id", "_rerun_from_report_id", b"_rerun_from_report_id", "archived_date", b"archived_date", "created_date", b"created_date", "cumulative_summary", b"cumulative_summary", "description", b"description", "job_id", b"job_id", "modified_date", b"modified_date", "rerun_from_report_id", b"rerun_from_report_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_description", b"_description", "_job_id", b"_job_id", "_rerun_from_report_id", b"_rerun_from_report_id", "archived_date", b"archived_date", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "cumulative_summary", b"cumulative_summary", "description", b"description", "is_archived", b"is_archived", "job_id", b"job_id", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "report_id", b"report_id", "report_template_id", b"report_template_id", "report_type", b"report_type", "rerun_from_report_id", b"rerun_from_report_id", "run_id", b"run_id", "tags", b"tags"]) -> None: ... + def HasField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_canvas_execution_id", b"_canvas_execution_id", "_canvas_status", b"_canvas_status", "_description", b"_description", "_job_id", b"_job_id", "_rerun_from_report_id", b"_rerun_from_report_id", "archived_date", b"archived_date", "canvas_execution_id", b"canvas_execution_id", "canvas_status", b"canvas_status", "created_date", b"created_date", "cumulative_summary", b"cumulative_summary", "description", b"description", "job_id", b"job_id", "modified_date", b"modified_date", "rerun_from_report_id", b"rerun_from_report_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_archived_date", b"_archived_date", "_canvas_execution_id", b"_canvas_execution_id", "_canvas_status", b"_canvas_status", "_description", b"_description", "_job_id", b"_job_id", "_rerun_from_report_id", b"_rerun_from_report_id", "archived_date", b"archived_date", "canvas_execution_id", b"canvas_execution_id", "canvas_status", b"canvas_status", "created_by_user_id", b"created_by_user_id", "created_date", b"created_date", "cumulative_summary", b"cumulative_summary", "description", b"description", "is_archived", b"is_archived", "job_id", b"job_id", "modified_by_user_id", b"modified_by_user_id", "modified_date", b"modified_date", "name", b"name", "organization_id", b"organization_id", "report_id", b"report_id", "report_template_id", b"report_template_id", "report_type", b"report_type", "rerun_from_report_id", b"rerun_from_report_id", "run_id", b"run_id", "tags", b"tags"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_archived_date", b"_archived_date"]) -> typing.Literal["archived_date"] | None: ... @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_canvas_execution_id", b"_canvas_execution_id"]) -> typing.Literal["canvas_execution_id"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_canvas_status", b"_canvas_status"]) -> typing.Literal["canvas_status"] | None: ... + @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_description", b"_description"]) -> typing.Literal["description"] | None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_job_id", b"_job_id"]) -> typing.Literal["job_id"] | None: ... @@ -293,6 +319,8 @@ class ReportRuleSummary(google.protobuf.message.Message): MODIFIED_DATE_FIELD_NUMBER: builtins.int ASSET_ID_FIELD_NUMBER: builtins.int DELETED_DATE_FIELD_NUMBER: builtins.int + RESOLVED_FAMILY_STATS_FIELD_NUMBER: builtins.int + RESOLVED_ALIGNMENT_CONFIGS_FIELD_NUMBER: builtins.int DISPLAY_ORDER_FIELD_NUMBER: builtins.int rule_id: builtins.str rule_client_key: builtins.str @@ -316,6 +344,10 @@ class ReportRuleSummary(google.protobuf.message.Message): def modified_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... @property def deleted_date(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def resolved_family_stats(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResolvedFamilyStat]: ... + @property + def resolved_alignment_configs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResolvedAlignmentEntry]: ... def __init__( self, *, @@ -333,10 +365,12 @@ class ReportRuleSummary(google.protobuf.message.Message): modified_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., asset_id: builtins.str = ..., deleted_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., + resolved_family_stats: collections.abc.Iterable[global___ResolvedFamilyStat] | None = ..., + resolved_alignment_configs: collections.abc.Iterable[global___ResolvedAlignmentEntry] | None = ..., display_order: builtins.int = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["created_date", b"created_date", "deleted_date", b"deleted_date", "modified_date", b"modified_date", "status_details", b"status_details"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["asset_id", b"asset_id", "created_date", b"created_date", "deleted_date", b"deleted_date", "display_order", b"display_order", "modified_date", b"modified_date", "num_failed", b"num_failed", "num_open", b"num_open", "num_passed", b"num_passed", "report_rule_version_id", b"report_rule_version_id", "rule_client_key", b"rule_client_key", "rule_id", b"rule_id", "rule_version_id", b"rule_version_id", "rule_version_number", b"rule_version_number", "status", b"status", "status_details", b"status_details"]) -> None: ... + def ClearField(self, field_name: typing.Literal["asset_id", b"asset_id", "created_date", b"created_date", "deleted_date", b"deleted_date", "display_order", b"display_order", "modified_date", b"modified_date", "num_failed", b"num_failed", "num_open", b"num_open", "num_passed", b"num_passed", "report_rule_version_id", b"report_rule_version_id", "resolved_alignment_configs", b"resolved_alignment_configs", "resolved_family_stats", b"resolved_family_stats", "rule_client_key", b"rule_client_key", "rule_id", b"rule_id", "rule_version_id", b"rule_version_id", "rule_version_number", b"rule_version_number", "status", b"status", "status_details", b"status_details"]) -> None: ... global___ReportRuleSummary = ReportRuleSummary @@ -422,6 +456,92 @@ class ReportCumulativeRuleSummary(google.protobuf.message.Message): global___ReportCumulativeRuleSummary = ReportCumulativeRuleSummary +@typing.final +class ResolvedFamilyStat(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REFERENCE_FIELD_NUMBER: builtins.int + FAMILY_ID_FIELD_NUMBER: builtins.int + FAMILY_VERSION_ID_FIELD_NUMBER: builtins.int + FAMILY_STAT_EXPRESSION_ID_FIELD_NUMBER: builtins.int + FAMILY_STAT_RANGE_ID_FIELD_NUMBER: builtins.int + reference: builtins.str + family_id: builtins.str + family_version_id: builtins.str + family_stat_expression_id: builtins.str + family_stat_range_id: builtins.str + def __init__( + self, + *, + reference: builtins.str = ..., + family_id: builtins.str = ..., + family_version_id: builtins.str = ..., + family_stat_expression_id: builtins.str = ..., + family_stat_range_id: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_id", b"family_id", "family_stat_expression_id", b"family_stat_expression_id", "family_stat_range_id", b"family_stat_range_id", "family_version_id", b"family_version_id", "reference", b"reference"]) -> None: ... + +global___ResolvedFamilyStat = ResolvedFamilyStat + +@typing.final +class ResolvedAlignmentEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CHANNEL_REFERENCES_FIELD_NUMBER: builtins.int + T0_FIELD_NUMBER: builtins.int + START_TIME_FIELD_NUMBER: builtins.int + END_TIME_FIELD_NUMBER: builtins.int + @property + def channel_references(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def t0(self) -> global___ResolvedAlignmentPoint: ... + @property + def start_time(self) -> global___ResolvedAlignmentPoint: ... + @property + def end_time(self) -> global___ResolvedAlignmentPoint: ... + def __init__( + self, + *, + channel_references: collections.abc.Iterable[builtins.str] | None = ..., + t0: global___ResolvedAlignmentPoint | None = ..., + start_time: global___ResolvedAlignmentPoint | None = ..., + end_time: global___ResolvedAlignmentPoint | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["end_time", b"end_time", "start_time", b"start_time", "t0", b"t0"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["channel_references", b"channel_references", "end_time", b"end_time", "start_time", b"start_time", "t0", b"t0"]) -> None: ... + +global___ResolvedAlignmentEntry = ResolvedAlignmentEntry + +@typing.final +class ResolvedAlignmentPoint(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TIMESTAMP_FIELD_NUMBER: builtins.int + RUN_FIELD_NUMBER: builtins.int + ANNOTATION_FIELD_NUMBER: builtins.int + TIMESTAMP_CONFIG_FIELD_NUMBER: builtins.int + @property + def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + @property + def run(self) -> sift.families.v1.families_pb2.RunAlignment: ... + @property + def annotation(self) -> sift.families.v1.families_pb2.AnnotationAlignment: ... + @property + def timestamp_config(self) -> sift.families.v1.families_pb2.TimestampAlignment: ... + def __init__( + self, + *, + timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + run: sift.families.v1.families_pb2.RunAlignment | None = ..., + annotation: sift.families.v1.families_pb2.AnnotationAlignment | None = ..., + timestamp_config: sift.families.v1.families_pb2.TimestampAlignment | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["alignment_config", b"alignment_config", "annotation", b"annotation", "run", b"run", "timestamp", b"timestamp", "timestamp_config", b"timestamp_config"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["alignment_config", b"alignment_config", "annotation", b"annotation", "run", b"run", "timestamp", b"timestamp", "timestamp_config", b"timestamp_config"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["alignment_config", b"alignment_config"]) -> typing.Literal["run", "annotation", "timestamp_config"] | None: ... + +global___ResolvedAlignmentPoint = ResolvedAlignmentPoint + @typing.final class ReportRuleStatusDetails(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor diff --git a/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.py b/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.py index 13694f06d6..35662d2549 100644 --- a/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.py +++ b/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.py @@ -17,10 +17,12 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 from sift.common.type.v1 import resource_identifier_pb2 as sift_dot_common_dot_type_dot_v1_dot_resource__identifier__pb2 +from sift.families.v1 import families_pb2 as sift_dot_families_dot_v1_dot_families__pb2 +from sift.reports.v1 import reports_pb2 as sift_dot_reports_dot_v1_dot_reports__pb2 from sift.rules.v1 import rules_pb2 as sift_dot_rules_dot_v1_dot_rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-sift/rule_evaluation/v1/rule_evaluation.proto\x12\x17sift.rule_evaluation.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a-sift/common/type/v1/resource_identifier.proto\x1a\x19sift/rules/v1/rules.proto\"\x96\x06\n\x14\x45valuateRulesRequest\x12;\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierH\x00R\x03run\x12\x42\n\x06\x61ssets\x18\x02 \x01(\x0b\x32(.sift.rule_evaluation.v1.AssetsTimeRangeH\x00R\x06\x61ssets\x12M\n\x0erun_time_range\x18\t \x01(\x0b\x32%.sift.rule_evaluation.v1.RunTimeRangeH\x00R\x0crunTimeRange\x12U\n\x05rules\x18\x03 \x01(\x0b\x32=.sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersionsH\x01R\x05rules\x12]\n\rrule_versions\x18\x04 \x01(\x0b\x32\x36.sift.rule_evaluation.v1.EvaluateRulesFromRuleVersionsH\x01R\x0cruleVersions\x12\x63\n\x0freport_template\x18\x05 \x01(\x0b\x32\x38.sift.rule_evaluation.v1.EvaluateRulesFromReportTemplateH\x01R\x0ereportTemplate\x12\x32\n\x14\x61ll_applicable_rules\x18\n \x01(\x08H\x01R\x12\x61llApplicableRules\x12\x66\n\x12\x61nnotation_options\x18\x06 \x01(\x0b\x32\x37.sift.rule_evaluation.v1.EvaluateRulesAnnotationOptionsR\x11\x61nnotationOptions\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12)\n\x0breport_name\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x02R\nreportName\x88\x01\x01\x42\x06\n\x04timeB\x06\n\x04modeB\x0e\n\x0c_report_name\"\xeb\x01\n\x0cRunTimeRange\x12\x39\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierR\x03run\x12\x43\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\tstartTime\x88\x01\x01\x12?\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x07\x65ndTime\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_time\"\xcf\x01\n\x0f\x41ssetsTimeRange\x12@\n\x06\x61ssets\x18\x01 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x02R\x06\x61ssets\x12>\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\"k\n$EvaluateRulesFromCurrentRuleVersions\x12\x43\n\x05rules\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.ResourceIdentifiersB\x03\xe0\x41\x02R\x05rules\"x\n\x1f\x45valuateRulesFromReportTemplate\x12U\n\x0freport_template\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierB\x03\xe0\x41\x02R\x0ereportTemplate\"N\n\x1d\x45valuateRulesFromRuleVersions\x12-\n\x10rule_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleVersionIds\"^\n\x1e\x45valuateRulesAnnotationOptions\x12<\n\x04tags\x18\x01 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x02R\x04tags\"\xb7\x01\n\x15\x45valuateRulesResponse\x12=\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02R\x16\x63reatedAnnotationCount\x12%\n\treport_id\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x08reportId\x88\x01\x01\x12\x1f\n\x06job_id\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x01R\x05jobId\x88\x01\x01\x42\x0c\n\n_report_idB\t\n\x07_job_id\"\xde\x04\n\x1b\x45valuateRulesPreviewRequest\x12;\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierH\x00R\x03run\x12M\n\x0erun_time_range\x18\x08 \x01(\x0b\x32%.sift.rule_evaluation.v1.RunTimeRangeH\x00R\x0crunTimeRange\x12U\n\x05rules\x18\x03 \x01(\x0b\x32=.sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersionsH\x01R\x05rules\x12]\n\rrule_versions\x18\x04 \x01(\x0b\x32\x36.sift.rule_evaluation.v1.EvaluateRulesFromRuleVersionsH\x01R\x0cruleVersions\x12\x63\n\x0freport_template\x18\x05 \x01(\x0b\x32\x38.sift.rule_evaluation.v1.EvaluateRulesFromReportTemplateH\x01R\x0ereportTemplate\x12Z\n\x0crule_configs\x18\x06 \x01(\x0b\x32\x35.sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigsH\x01R\x0bruleConfigs\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationIdB\x06\n\x04timeB\x06\n\x04mode\"_\n\x1c\x45valuateRulesFromRuleConfigs\x12?\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x07\x63onfigs\"\xae\x01\n\x1c\x45valuateRulesPreviewResponse\x12=\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02R\x16\x63reatedAnnotationCount\x12O\n\x13\x64ry_run_annotations\x18\x02 \x03(\x0b\x32\x1f.sift.rules.v1.DryRunAnnotationR\x11\x64ryRunAnnotations2\xd8\x06\n\x15RuleEvaluationService\x12\xc3\x02\n\rEvaluateRules\x12-.sift.rule_evaluation.v1.EvaluateRulesRequest\x1a..sift.rule_evaluation.v1.EvaluateRulesResponse\"\xd2\x01\x92\x41\xa7\x01\x12\rEvaluateRules\x1a\x95\x01\x45valuate rules from a designated source against a run or asset and return the total amount of annotations created and the ID of the generated report.\x82\xd3\xe4\x93\x02!\"\x1c/api/v1/rules/evaluate-rules:\x01*\x12\xda\x02\n\x14\x45valuateRulesPreview\x12\x34.sift.rule_evaluation.v1.EvaluateRulesPreviewRequest\x1a\x35.sift.rule_evaluation.v1.EvaluateRulesPreviewResponse\"\xd4\x01\x92\x41\xa1\x01\x12\x14\x45valuateRulesPreview\x1a\x88\x01Perform a dry run evaluation for existing rules or rule configurations against a run and return the annotations that would be generated.\x82\xd3\xe4\x93\x02)\"$/api/v1/rules/evaluate-rules:preview:\x01*\x1a\x9b\x01\x92\x41\x97\x01\x12\x1aService to evaluate rules.\x1ay\n\x1fRead more about what rules are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102B\xca\x01\n\x1b\x63om.sift.rule_evaluation.v1B\x13RuleEvaluationProtoP\x01\xa2\x02\x03SRX\xaa\x02\x16Sift.RuleEvaluation.V1\xca\x02\x16Sift\\RuleEvaluation\\V1\xe2\x02\"Sift\\RuleEvaluation\\V1\\GPBMetadata\xea\x02\x18Sift::RuleEvaluation::V1\x92\x41\x1b\x12\x19\n\x17Rule Evaluation Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-sift/rule_evaluation/v1/rule_evaluation.proto\x12\x17sift.rule_evaluation.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a-sift/common/type/v1/resource_identifier.proto\x1a\x1fsift/families/v1/families.proto\x1a\x1dsift/reports/v1/reports.proto\x1a\x19sift/rules/v1/rules.proto\"\x8f\x07\n\x14\x45valuateRulesRequest\x12;\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierH\x00R\x03run\x12\x42\n\x06\x61ssets\x18\x02 \x01(\x0b\x32(.sift.rule_evaluation.v1.AssetsTimeRangeH\x00R\x06\x61ssets\x12M\n\x0erun_time_range\x18\t \x01(\x0b\x32%.sift.rule_evaluation.v1.RunTimeRangeH\x00R\x0crunTimeRange\x12U\n\x05rules\x18\x03 \x01(\x0b\x32=.sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersionsH\x01R\x05rules\x12]\n\rrule_versions\x18\x04 \x01(\x0b\x32\x36.sift.rule_evaluation.v1.EvaluateRulesFromRuleVersionsH\x01R\x0cruleVersions\x12\x63\n\x0freport_template\x18\x05 \x01(\x0b\x32\x38.sift.rule_evaluation.v1.EvaluateRulesFromReportTemplateH\x01R\x0ereportTemplate\x12\x32\n\x14\x61ll_applicable_rules\x18\n \x01(\x08H\x01R\x12\x61llApplicableRules\x12\x66\n\x12\x61nnotation_options\x18\x06 \x01(\x0b\x32\x37.sift.rule_evaluation.v1.EvaluateRulesAnnotationOptionsR\x11\x61nnotationOptions\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12)\n\x0breport_name\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x02R\nreportName\x88\x01\x01\x12w\n\x1crun_family_alignment_configs\x18\x0b \x03(\x0b\x32\x31.sift.rule_evaluation.v1.RunFamilyAlignmentConfigB\x03\xe0\x41\x01R\x19runFamilyAlignmentConfigsB\x06\n\x04timeB\x06\n\x04modeB\x0e\n\x0c_report_name\"\xeb\x01\n\x0cRunTimeRange\x12\x39\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierR\x03run\x12\x43\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x00R\tstartTime\x88\x01\x01\x12?\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x07\x65ndTime\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_time\"\xcf\x01\n\x0f\x41ssetsTimeRange\x12@\n\x06\x61ssets\x18\x01 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x02R\x06\x61ssets\x12>\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\"k\n$EvaluateRulesFromCurrentRuleVersions\x12\x43\n\x05rules\x18\x01 \x01(\x0b\x32(.sift.common.type.v1.ResourceIdentifiersB\x03\xe0\x41\x02R\x05rules\"x\n\x1f\x45valuateRulesFromReportTemplate\x12U\n\x0freport_template\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierB\x03\xe0\x41\x02R\x0ereportTemplate\"N\n\x1d\x45valuateRulesFromRuleVersions\x12-\n\x10rule_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleVersionIds\"^\n\x1e\x45valuateRulesAnnotationOptions\x12<\n\x04tags\x18\x01 \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesB\x03\xe0\x41\x02R\x04tags\"\xb7\x01\n\x15\x45valuateRulesResponse\x12=\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02R\x16\x63reatedAnnotationCount\x12%\n\treport_id\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\x08reportId\x88\x01\x01\x12\x1f\n\x06job_id\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x01R\x05jobId\x88\x01\x01\x42\x0c\n\n_report_idB\t\n\x07_job_id\"\xd7\x05\n\x1b\x45valuateRulesPreviewRequest\x12;\n\x03run\x18\x01 \x01(\x0b\x32\'.sift.common.type.v1.ResourceIdentifierH\x00R\x03run\x12M\n\x0erun_time_range\x18\x08 \x01(\x0b\x32%.sift.rule_evaluation.v1.RunTimeRangeH\x00R\x0crunTimeRange\x12U\n\x05rules\x18\x03 \x01(\x0b\x32=.sift.rule_evaluation.v1.EvaluateRulesFromCurrentRuleVersionsH\x01R\x05rules\x12]\n\rrule_versions\x18\x04 \x01(\x0b\x32\x36.sift.rule_evaluation.v1.EvaluateRulesFromRuleVersionsH\x01R\x0cruleVersions\x12\x63\n\x0freport_template\x18\x05 \x01(\x0b\x32\x38.sift.rule_evaluation.v1.EvaluateRulesFromReportTemplateH\x01R\x0ereportTemplate\x12Z\n\x0crule_configs\x18\x06 \x01(\x0b\x32\x35.sift.rule_evaluation.v1.EvaluateRulesFromRuleConfigsH\x01R\x0bruleConfigs\x12,\n\x0forganization_id\x18\x07 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12w\n\x1crun_family_alignment_configs\x18\t \x03(\x0b\x32\x31.sift.rule_evaluation.v1.RunFamilyAlignmentConfigB\x03\xe0\x41\x01R\x19runFamilyAlignmentConfigsB\x06\n\x04timeB\x06\n\x04mode\"\xaa\x02\n\x18RunFamilyAlignmentConfig\x12\x37\n\x15\x66\x61mily_alignment_name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x13\x66\x61milyAlignmentName\x12\x32\n\x03run\x18\x02 \x01(\x0b\x32\x1e.sift.families.v1.RunAlignmentH\x00R\x03run\x12G\n\nannotation\x18\x03 \x01(\x0b\x32%.sift.families.v1.AnnotationAlignmentH\x00R\nannotation\x12\x44\n\ttimestamp\x18\x04 \x01(\x0b\x32$.sift.families.v1.TimestampAlignmentH\x00R\ttimestampB\x12\n\x10\x61lignment_config\"_\n\x1c\x45valuateRulesFromRuleConfigs\x12?\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x07\x63onfigs\"\xae\x01\n\x1c\x45valuateRulesPreviewResponse\x12=\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02R\x16\x63reatedAnnotationCount\x12O\n\x13\x64ry_run_annotations\x18\x02 \x03(\x0b\x32\x1f.sift.rules.v1.DryRunAnnotationR\x11\x64ryRunAnnotations2\xd8\x06\n\x15RuleEvaluationService\x12\xc3\x02\n\rEvaluateRules\x12-.sift.rule_evaluation.v1.EvaluateRulesRequest\x1a..sift.rule_evaluation.v1.EvaluateRulesResponse\"\xd2\x01\x92\x41\xa7\x01\x12\rEvaluateRules\x1a\x95\x01\x45valuate rules from a designated source against a run or asset and return the total amount of annotations created and the ID of the generated report.\x82\xd3\xe4\x93\x02!\"\x1c/api/v1/rules/evaluate-rules:\x01*\x12\xda\x02\n\x14\x45valuateRulesPreview\x12\x34.sift.rule_evaluation.v1.EvaluateRulesPreviewRequest\x1a\x35.sift.rule_evaluation.v1.EvaluateRulesPreviewResponse\"\xd4\x01\x92\x41\xa1\x01\x12\x14\x45valuateRulesPreview\x1a\x88\x01Perform a dry run evaluation for existing rules or rule configurations against a run and return the annotations that would be generated.\x82\xd3\xe4\x93\x02)\"$/api/v1/rules/evaluate-rules:preview:\x01*\x1a\x9b\x01\x92\x41\x97\x01\x12\x1aService to evaluate rules.\x1ay\n\x1fRead more about what rules are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102B\xca\x01\n\x1b\x63om.sift.rule_evaluation.v1B\x13RuleEvaluationProtoP\x01\xa2\x02\x03SRX\xaa\x02\x16Sift.RuleEvaluation.V1\xca\x02\x16Sift\\RuleEvaluation\\V1\xe2\x02\"Sift\\RuleEvaluation\\V1\\GPBMetadata\xea\x02\x18Sift::RuleEvaluation::V1\x92\x41\x1b\x12\x19\n\x17Rule Evaluation Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,6 +34,8 @@ _globals['_EVALUATERULESREQUEST'].fields_by_name['organization_id']._serialized_options = b'\340A\001' _globals['_EVALUATERULESREQUEST'].fields_by_name['report_name']._loaded_options = None _globals['_EVALUATERULESREQUEST'].fields_by_name['report_name']._serialized_options = b'\340A\001' + _globals['_EVALUATERULESREQUEST'].fields_by_name['run_family_alignment_configs']._loaded_options = None + _globals['_EVALUATERULESREQUEST'].fields_by_name['run_family_alignment_configs']._serialized_options = b'\340A\001' _globals['_RUNTIMERANGE'].fields_by_name['start_time']._loaded_options = None _globals['_RUNTIMERANGE'].fields_by_name['start_time']._serialized_options = b'\340A\001' _globals['_RUNTIMERANGE'].fields_by_name['end_time']._loaded_options = None @@ -58,6 +62,10 @@ _globals['_EVALUATERULESRESPONSE'].fields_by_name['job_id']._serialized_options = b'\340A\001' _globals['_EVALUATERULESPREVIEWREQUEST'].fields_by_name['organization_id']._loaded_options = None _globals['_EVALUATERULESPREVIEWREQUEST'].fields_by_name['organization_id']._serialized_options = b'\340A\001' + _globals['_EVALUATERULESPREVIEWREQUEST'].fields_by_name['run_family_alignment_configs']._loaded_options = None + _globals['_EVALUATERULESPREVIEWREQUEST'].fields_by_name['run_family_alignment_configs']._serialized_options = b'\340A\001' + _globals['_RUNFAMILYALIGNMENTCONFIG'].fields_by_name['family_alignment_name']._loaded_options = None + _globals['_RUNFAMILYALIGNMENTCONFIG'].fields_by_name['family_alignment_name']._serialized_options = b'\340A\002' _globals['_EVALUATERULESFROMRULECONFIGS'].fields_by_name['configs']._loaded_options = None _globals['_EVALUATERULESFROMRULECONFIGS'].fields_by_name['configs']._serialized_options = b'\340A\002' _globals['_EVALUATERULESPREVIEWRESPONSE'].fields_by_name['created_annotation_count']._loaded_options = None @@ -68,28 +76,30 @@ _globals['_RULEEVALUATIONSERVICE'].methods_by_name['EvaluateRules']._serialized_options = b'\222A\247\001\022\rEvaluateRules\032\225\001Evaluate rules from a designated source against a run or asset and return the total amount of annotations created and the ID of the generated report.\202\323\344\223\002!\"\034/api/v1/rules/evaluate-rules:\001*' _globals['_RULEEVALUATIONSERVICE'].methods_by_name['EvaluateRulesPreview']._loaded_options = None _globals['_RULEEVALUATIONSERVICE'].methods_by_name['EvaluateRulesPreview']._serialized_options = b'\222A\241\001\022\024EvaluateRulesPreview\032\210\001Perform a dry run evaluation for existing rules or rule configurations against a run and return the annotations that would be generated.\202\323\344\223\002)\"$/api/v1/rules/evaluate-rules:preview:\001*' - _globals['_EVALUATERULESREQUEST']._serialized_start=293 - _globals['_EVALUATERULESREQUEST']._serialized_end=1083 - _globals['_RUNTIMERANGE']._serialized_start=1086 - _globals['_RUNTIMERANGE']._serialized_end=1321 - _globals['_ASSETSTIMERANGE']._serialized_start=1324 - _globals['_ASSETSTIMERANGE']._serialized_end=1531 - _globals['_EVALUATERULESFROMCURRENTRULEVERSIONS']._serialized_start=1533 - _globals['_EVALUATERULESFROMCURRENTRULEVERSIONS']._serialized_end=1640 - _globals['_EVALUATERULESFROMREPORTTEMPLATE']._serialized_start=1642 - _globals['_EVALUATERULESFROMREPORTTEMPLATE']._serialized_end=1762 - _globals['_EVALUATERULESFROMRULEVERSIONS']._serialized_start=1764 - _globals['_EVALUATERULESFROMRULEVERSIONS']._serialized_end=1842 - _globals['_EVALUATERULESANNOTATIONOPTIONS']._serialized_start=1844 - _globals['_EVALUATERULESANNOTATIONOPTIONS']._serialized_end=1938 - _globals['_EVALUATERULESRESPONSE']._serialized_start=1941 - _globals['_EVALUATERULESRESPONSE']._serialized_end=2124 - _globals['_EVALUATERULESPREVIEWREQUEST']._serialized_start=2127 - _globals['_EVALUATERULESPREVIEWREQUEST']._serialized_end=2733 - _globals['_EVALUATERULESFROMRULECONFIGS']._serialized_start=2735 - _globals['_EVALUATERULESFROMRULECONFIGS']._serialized_end=2830 - _globals['_EVALUATERULESPREVIEWRESPONSE']._serialized_start=2833 - _globals['_EVALUATERULESPREVIEWRESPONSE']._serialized_end=3007 - _globals['_RULEEVALUATIONSERVICE']._serialized_start=3010 - _globals['_RULEEVALUATIONSERVICE']._serialized_end=3866 + _globals['_EVALUATERULESREQUEST']._serialized_start=357 + _globals['_EVALUATERULESREQUEST']._serialized_end=1268 + _globals['_RUNTIMERANGE']._serialized_start=1271 + _globals['_RUNTIMERANGE']._serialized_end=1506 + _globals['_ASSETSTIMERANGE']._serialized_start=1509 + _globals['_ASSETSTIMERANGE']._serialized_end=1716 + _globals['_EVALUATERULESFROMCURRENTRULEVERSIONS']._serialized_start=1718 + _globals['_EVALUATERULESFROMCURRENTRULEVERSIONS']._serialized_end=1825 + _globals['_EVALUATERULESFROMREPORTTEMPLATE']._serialized_start=1827 + _globals['_EVALUATERULESFROMREPORTTEMPLATE']._serialized_end=1947 + _globals['_EVALUATERULESFROMRULEVERSIONS']._serialized_start=1949 + _globals['_EVALUATERULESFROMRULEVERSIONS']._serialized_end=2027 + _globals['_EVALUATERULESANNOTATIONOPTIONS']._serialized_start=2029 + _globals['_EVALUATERULESANNOTATIONOPTIONS']._serialized_end=2123 + _globals['_EVALUATERULESRESPONSE']._serialized_start=2126 + _globals['_EVALUATERULESRESPONSE']._serialized_end=2309 + _globals['_EVALUATERULESPREVIEWREQUEST']._serialized_start=2312 + _globals['_EVALUATERULESPREVIEWREQUEST']._serialized_end=3039 + _globals['_RUNFAMILYALIGNMENTCONFIG']._serialized_start=3042 + _globals['_RUNFAMILYALIGNMENTCONFIG']._serialized_end=3340 + _globals['_EVALUATERULESFROMRULECONFIGS']._serialized_start=3342 + _globals['_EVALUATERULESFROMRULECONFIGS']._serialized_end=3437 + _globals['_EVALUATERULESPREVIEWRESPONSE']._serialized_start=3440 + _globals['_EVALUATERULESPREVIEWRESPONSE']._serialized_end=3614 + _globals['_RULEEVALUATIONSERVICE']._serialized_start=3617 + _globals['_RULEEVALUATIONSERVICE']._serialized_end=4473 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.pyi b/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.pyi index 234a76eada..1a506691f2 100644 --- a/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.pyi +++ b/python/lib/sift/rule_evaluation/v1/rule_evaluation_pb2.pyi @@ -10,6 +10,7 @@ import google.protobuf.internal.containers import google.protobuf.message import google.protobuf.timestamp_pb2 import sift.common.type.v1.resource_identifier_pb2 +import sift.families.v1.families_pb2 import sift.rules.v1.rules_pb2 import typing @@ -29,6 +30,7 @@ class EvaluateRulesRequest(google.protobuf.message.Message): ANNOTATION_OPTIONS_FIELD_NUMBER: builtins.int ORGANIZATION_ID_FIELD_NUMBER: builtins.int REPORT_NAME_FIELD_NUMBER: builtins.int + RUN_FAMILY_ALIGNMENT_CONFIGS_FIELD_NUMBER: builtins.int all_applicable_rules: builtins.bool organization_id: builtins.str """Only required if your user belongs to multiple organizations""" @@ -48,6 +50,10 @@ class EvaluateRulesRequest(google.protobuf.message.Message): def report_template(self) -> global___EvaluateRulesFromReportTemplate: ... @property def annotation_options(self) -> global___EvaluateRulesAnnotationOptions: ... + @property + def run_family_alignment_configs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RunFamilyAlignmentConfig]: + """If evaluating a run against a family stat, this field will be used to provide alignment configuration for the run under test""" + def __init__( self, *, @@ -61,9 +67,10 @@ class EvaluateRulesRequest(google.protobuf.message.Message): annotation_options: global___EvaluateRulesAnnotationOptions | None = ..., organization_id: builtins.str = ..., report_name: builtins.str | None = ..., + run_family_alignment_configs: collections.abc.Iterable[global___RunFamilyAlignmentConfig] | None = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["_report_name", b"_report_name", "all_applicable_rules", b"all_applicable_rules", "annotation_options", b"annotation_options", "assets", b"assets", "mode", b"mode", "report_name", b"report_name", "report_template", b"report_template", "rule_versions", b"rule_versions", "rules", b"rules", "run", b"run", "run_time_range", b"run_time_range", "time", b"time"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_report_name", b"_report_name", "all_applicable_rules", b"all_applicable_rules", "annotation_options", b"annotation_options", "assets", b"assets", "mode", b"mode", "organization_id", b"organization_id", "report_name", b"report_name", "report_template", b"report_template", "rule_versions", b"rule_versions", "rules", b"rules", "run", b"run", "run_time_range", b"run_time_range", "time", b"time"]) -> None: ... + def ClearField(self, field_name: typing.Literal["_report_name", b"_report_name", "all_applicable_rules", b"all_applicable_rules", "annotation_options", b"annotation_options", "assets", b"assets", "mode", b"mode", "organization_id", b"organization_id", "report_name", b"report_name", "report_template", b"report_template", "rule_versions", b"rule_versions", "rules", b"rules", "run", b"run", "run_family_alignment_configs", b"run_family_alignment_configs", "run_time_range", b"run_time_range", "time", b"time"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["_report_name", b"_report_name"]) -> typing.Literal["report_name"] | None: ... @typing.overload @@ -233,6 +240,7 @@ class EvaluateRulesPreviewRequest(google.protobuf.message.Message): REPORT_TEMPLATE_FIELD_NUMBER: builtins.int RULE_CONFIGS_FIELD_NUMBER: builtins.int ORGANIZATION_ID_FIELD_NUMBER: builtins.int + RUN_FAMILY_ALIGNMENT_CONFIGS_FIELD_NUMBER: builtins.int organization_id: builtins.str """Only required if your user belongs to multiple organizations""" @property @@ -247,6 +255,10 @@ class EvaluateRulesPreviewRequest(google.protobuf.message.Message): def report_template(self) -> global___EvaluateRulesFromReportTemplate: ... @property def rule_configs(self) -> global___EvaluateRulesFromRuleConfigs: ... + @property + def run_family_alignment_configs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RunFamilyAlignmentConfig]: + """If evaluating a run against a family stat, this field will be used to provide alignment configuration for the run under test""" + def __init__( self, *, @@ -257,9 +269,10 @@ class EvaluateRulesPreviewRequest(google.protobuf.message.Message): report_template: global___EvaluateRulesFromReportTemplate | None = ..., rule_configs: global___EvaluateRulesFromRuleConfigs | None = ..., organization_id: builtins.str = ..., + run_family_alignment_configs: collections.abc.Iterable[global___RunFamilyAlignmentConfig] | None = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["mode", b"mode", "report_template", b"report_template", "rule_configs", b"rule_configs", "rule_versions", b"rule_versions", "rules", b"rules", "run", b"run", "run_time_range", b"run_time_range", "time", b"time"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["mode", b"mode", "organization_id", b"organization_id", "report_template", b"report_template", "rule_configs", b"rule_configs", "rule_versions", b"rule_versions", "rules", b"rules", "run", b"run", "run_time_range", b"run_time_range", "time", b"time"]) -> None: ... + def ClearField(self, field_name: typing.Literal["mode", b"mode", "organization_id", b"organization_id", "report_template", b"report_template", "rule_configs", b"rule_configs", "rule_versions", b"rule_versions", "rules", b"rules", "run", b"run", "run_family_alignment_configs", b"run_family_alignment_configs", "run_time_range", b"run_time_range", "time", b"time"]) -> None: ... @typing.overload def WhichOneof(self, oneof_group: typing.Literal["mode", b"mode"]) -> typing.Literal["rules", "rule_versions", "report_template", "rule_configs"] | None: ... @typing.overload @@ -267,6 +280,35 @@ class EvaluateRulesPreviewRequest(google.protobuf.message.Message): global___EvaluateRulesPreviewRequest = EvaluateRulesPreviewRequest +@typing.final +class RunFamilyAlignmentConfig(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FAMILY_ALIGNMENT_NAME_FIELD_NUMBER: builtins.int + RUN_FIELD_NUMBER: builtins.int + ANNOTATION_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + family_alignment_name: builtins.str + @property + def run(self) -> sift.families.v1.families_pb2.RunAlignment: ... + @property + def annotation(self) -> sift.families.v1.families_pb2.AnnotationAlignment: ... + @property + def timestamp(self) -> sift.families.v1.families_pb2.TimestampAlignment: ... + def __init__( + self, + *, + family_alignment_name: builtins.str = ..., + run: sift.families.v1.families_pb2.RunAlignment | None = ..., + annotation: sift.families.v1.families_pb2.AnnotationAlignment | None = ..., + timestamp: sift.families.v1.families_pb2.TimestampAlignment | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["alignment_config", b"alignment_config", "annotation", b"annotation", "run", b"run", "timestamp", b"timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["alignment_config", b"alignment_config", "annotation", b"annotation", "family_alignment_name", b"family_alignment_name", "run", b"run", "timestamp", b"timestamp"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["alignment_config", b"alignment_config"]) -> typing.Literal["run", "annotation", "timestamp"] | None: ... + +global___RunFamilyAlignmentConfig = RunFamilyAlignmentConfig + @typing.final class EvaluateRulesFromRuleConfigs(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor diff --git a/python/lib/sift/rules/v1/rules_pb2.py b/python/lib/sift/rules/v1/rules_pb2.py index 173c0c201e..714d25ae39 100644 --- a/python/lib/sift/rules/v1/rules_pb2.py +++ b/python/lib/sift/rules/v1/rules_pb2.py @@ -23,7 +23,7 @@ from sift.metadata.v1 import metadata_pb2 as sift_dot_metadata_dot_v1_dot_metadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19sift/rules/v1/rules.proto\x12\rsift.rules.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a%sift/annotations/v1/annotations.proto\x1a-sift/common/type/v1/calculated_channels.proto\x1a-sift/common/type/v1/resource_identifier.proto\x1a\x30sift/common/type/v1/user_defined_functions.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xdd\t\n\x04Rule\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12 \n\x08\x61sset_id\x18\x02 \x01(\tB\x05\x18\x01\xe0\x41\x02R\x07\x61ssetId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\"\n\nis_enabled\x18\x06 \x01(\x08\x42\x03\xe0\x41\x02R\tisEnabled\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\n \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12,\n\x0forganization_id\x18\x0b \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x41\n\nconditions\x18\x0c \x03(\x0b\x32\x1c.sift.rules.v1.RuleConditionB\x03\xe0\x41\x02R\nconditions\x12\x42\n\x0crule_version\x18\r \x01(\x0b\x32\x1a.sift.rules.v1.RuleVersionB\x03\xe0\x41\x02R\x0bruleVersion\x12\"\n\nclient_key\x18\x0e \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12[\n\x13\x61sset_configuration\x18\x0f \x01(\x0b\x32%.sift.rules.v1.RuleAssetConfigurationB\x03\xe0\x41\x02R\x12\x61ssetConfiguration\x12W\n\x13\x63ontextual_channels\x18\x10 \x01(\x0b\x32!.sift.rules.v1.ContextualChannelsB\x03\xe0\x41\x02R\x12\x63ontextualChannels\x12\x44\n\x0c\x64\x65leted_date\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x05\x18\x01\xe0\x41\x01R\x0b\x64\x65letedDate\x12$\n\x0bis_external\x18\x12 \x01(\x08\x42\x03\xe0\x41\x02R\nisExternal\x12@\n\x08metadata\x18\x13 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12\x44\n\rarchived_date\x18\x14 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12$\n\x0bis_archived\x18\x15 \x01(\x08\x42\x03\xe0\x41\x02R\nisArchived\x12@\n\x1ais_live_evaluation_enabled\x18\x16 \x01(\x08\x42\x03\xe0\x41\x01R\x17isLiveEvaluationEnabled\x12\x31\n\x12\x63urrent_version_id\x18\x17 \x01(\tB\x03\xe0\x41\x02R\x10\x63urrentVersionId\x12\x1d\n\nfolder_ids\x18\x18 \x03(\tR\tfolderIdsJ\x04\x08\x05\x10\x06\"\x9b\x04\n\rRuleCondition\x12/\n\x11rule_condition_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0fruleConditionId\x12\x1c\n\x07rule_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12K\n\nexpression\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleConditionExpressionB\x03\xe0\x41\x02R\nexpression\x12\x42\n\x0c\x63reated_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x38\n\x07\x61\x63tions\x18\t \x03(\x0b\x32\x19.sift.rules.v1.RuleActionB\x03\xe0\x41\x02R\x07\x61\x63tions\x12>\n\x19rule_condition_version_id\x18\n \x01(\tB\x03\xe0\x41\x02R\x16ruleConditionVersionIdJ\x04\x08\x04\x10\x05\"\xa6\x04\n\nRuleAction\x12)\n\x0erule_action_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cruleActionId\x12/\n\x11rule_condition_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0fruleConditionId\x12?\n\x0b\x61\x63tion_type\x18\x03 \x01(\x0e\x32\x19.sift.rules.v1.ActionKindB\x03\xe0\x41\x02R\nactionType\x12Q\n\rconfiguration\x18\x04 \x01(\x0b\x32&.sift.rules.v1.RuleActionConfigurationB\x03\xe0\x41\x02R\rconfiguration\x12\x42\n\x0c\x63reated_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x38\n\x16rule_action_version_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x13ruleActionVersionId\"N\n\x16RuleAssetConfiguration\x12\x1b\n\tasset_ids\x18\x01 \x03(\tR\x08\x61ssetIds\x12\x17\n\x07tag_ids\x18\x02 \x03(\tR\x06tagIds\"V\n\x12\x43ontextualChannels\x12@\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1f.sift.rules.v1.ChannelReferenceB\x03\xe0\x41\x02R\x08\x63hannels\"\xb6\x01\n\x1f\x41ssetExpressionValidationResult\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nasset_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tassetName\x12%\n\x0c\x61sset_tag_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\nassetTagId\x12\x1e\n\x05\x65rror\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xc6\x03\n\x12SearchRulesRequest\x12\x19\n\x05limit\x18\x01 \x01(\rH\x00R\x05limit\x88\x01\x01\x12\x16\n\x06offset\x18\x02 \x01(\rR\x06offset\x12\x35\n\x05order\x18\x03 \x01(\x0e\x32\x1a.sift.rules.v1.SearchOrderH\x01R\x05order\x88\x01\x01\x12!\n\x0cname_matches\x18\x04 \x01(\tR\x0bnameMatches\x12%\n\x0e\x63\x61se_sensitive\x18\x05 \x01(\x08R\rcaseSensitive\x12\x16\n\x06regexp\x18\x06 \x01(\x08R\x06regexp\x12\x1e\n\x08order_by\x18\x07 \x01(\tH\x02R\x07orderBy\x88\x01\x01\x12\x19\n\x08rule_ids\x18\x08 \x03(\tR\x07ruleIds\x12\x1b\n\tasset_ids\x18\t \x03(\tR\x08\x61ssetIds\x12\'\n\x0finclude_deleted\x18\n \x01(\x08R\x0eincludeDeleted\x12\x42\n\nasset_tags\x18\x0b \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesR\tassetTagsB\x08\n\x06_limitB\x08\n\x06_orderB\x0b\n\t_order_by\"`\n\x13SearchRulesResponse\x12\x19\n\x05\x63ount\x18\x01 \x01(\rB\x03\xe0\x41\x02R\x05\x63ount\x12.\n\x05rules\x18\x02 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"R\n\x0eGetRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"?\n\x0fGetRuleResponse\x12,\n\x04rule\x18\x01 \x01(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x04rule\"\\\n\x14\x42\x61tchGetRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"G\n\x15\x42\x61tchGetRulesResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"R\n\x11\x43reateRuleRequest\x12=\n\x06update\x18\x01 \x01(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x06update\"2\n\x12\x43reateRuleResponse\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\"\xad\x06\n\x11UpdateRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tH\x00R\x06ruleId\x88\x01\x01\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12 \n\x08\x61sset_id\x18\x04 \x01(\tB\x05\x18\x01\xe0\x41\x01R\x07\x61ssetId\x12$\n\nis_enabled\x18\x05 \x01(\x08\x42\x05\x18\x01\xe0\x41\x01R\tisEnabled\x12J\n\nconditions\x18\x06 \x03(\x0b\x32%.sift.rules.v1.UpdateConditionRequestB\x03\xe0\x41\x02R\nconditions\x12\'\n\x0forganization_id\x18\x07 \x01(\tR\x0eorganizationId\x12#\n\rversion_notes\x18\x08 \x01(\tR\x0cversionNotes\x12\"\n\nclient_key\x18\t \x01(\tH\x01R\tclientKey\x88\x01\x01\x12V\n\x13\x61sset_configuration\x18\n \x01(\x0b\x32%.sift.rules.v1.RuleAssetConfigurationR\x12\x61ssetConfiguration\x12R\n\x13\x63ontextual_channels\x18\x0b \x01(\x0b\x32!.sift.rules.v1.ContextualChannelsR\x12\x63ontextualChannels\x12\x1f\n\x0bis_external\x18\x0c \x01(\x08R\nisExternal\x12@\n\x08metadata\x18\r \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12$\n\x0bis_archived\x18\x0e \x01(\x08\x42\x03\xe0\x41\x01R\nisArchived\x12\x45\n\x1ais_live_evaluation_enabled\x18\x0f \x01(\x08\x42\x03\xe0\x41\x01H\x02R\x17isLiveEvaluationEnabled\x88\x01\x01\x42\n\n\x08_rule_idB\r\n\x0b_client_keyB\x1d\n\x1b_is_live_evaluation_enabled\"\xf5\x01\n\x16UpdateConditionRequest\x12/\n\x11rule_condition_id\x18\x01 \x01(\tH\x00R\x0fruleConditionId\x88\x01\x01\x12K\n\nexpression\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleConditionExpressionB\x03\xe0\x41\x02R\nexpression\x12\x41\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\".sift.rules.v1.UpdateActionRequestB\x03\xe0\x41\x02R\x07\x61\x63tionsB\x14\n\x12_rule_condition_idJ\x04\x08\x02\x10\x03\"\xe7\x01\n\x13UpdateActionRequest\x12)\n\x0erule_action_id\x18\x01 \x01(\tH\x00R\x0cruleActionId\x88\x01\x01\x12?\n\x0b\x61\x63tion_type\x18\x02 \x01(\x0e\x32\x19.sift.rules.v1.ActionKindB\x03\xe0\x41\x02R\nactionType\x12Q\n\rconfiguration\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleActionConfigurationB\x03\xe0\x41\x02R\rconfigurationB\x11\n\x0f_rule_action_id\"2\n\x12UpdateRuleResponse\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\"\xa5\x02\n\x10ValidationResult\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12\x82\x01\n#asset_expression_validation_results\x18\x03 \x03(\x0b\x32..sift.rules.v1.AssetExpressionValidationResultB\x03\xe0\x41\x02R assetExpressionValidationResults\x12\x1e\n\x05\x65rror\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x05\x65rror\x88\x01\x01\x12 \n\trule_name\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x08ruleNameB\x08\n\x06_error\"\xca\x01\n\x17\x42\x61tchUpdateRulesRequest\x12;\n\x05rules\x18\x01 \x03(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x05rules\x12(\n\rvalidate_only\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01R\x0cvalidateOnly\x12H\n\x1eoverride_expression_validation\x18\x03 \x01(\x08\x42\x02\x18\x01R\x1coverrideExpressionValidation\"\x9d\x04\n\x18\x42\x61tchUpdateRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12\x33\n\x13rules_created_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesCreatedCount\x12\x33\n\x13rules_updated_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesUpdatedCount\x12(\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x02R\x0cvalidateOnly\x12S\n\x12validation_results\x18\x05 \x03(\x0b\x32\x1f.sift.rules.v1.ValidationResultB\x03\xe0\x41\x02R\x11validationResults\x12v\n\x18\x63reated_rule_identifiers\x18\x06 \x03(\x0b\x32\x37.sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiersB\x03\xe0\x41\x02R\x16\x63reatedRuleIdentifiers\x1a\x80\x01\n\x0fRuleIdentifiers\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\'\n\nclient_key\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x42\r\n\x0b_client_key\"U\n\x11\x44\x65leteRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x14\n\x12\x44\x65leteRuleResponse\"_\n\x17\x42\x61tchDeleteRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1a\n\x18\x42\x61tchDeleteRulesResponse\"V\n\x12\x41rchiveRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x15\n\x13\x41rchiveRuleResponse\"`\n\x18\x42\x61tchArchiveRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1b\n\x19\x42\x61tchArchiveRulesResponse\"W\n\x13UndeleteRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x16\n\x14UndeleteRuleResponse\"a\n\x19\x42\x61tchUndeleteRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1c\n\x1a\x42\x61tchUndeleteRulesResponse\"X\n\x14UnarchiveRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x17\n\x15UnarchiveRuleResponse\"b\n\x1a\x42\x61tchUnarchiveRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1d\n\x1b\x42\x61tchUnarchiveRulesResponse\"C\n\x1dViewHumanFriendlyRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId:\x02\x18\x01\"H\n\x1eViewHumanFriendlyRulesResponse\x12\"\n\nrules_json\x18\x01 \x01(\tB\x03\xe0\x41\x02R\trulesJson:\x02\x18\x01\"\x97\x01\n\x1fUpdateHumanFriendlyRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nrules_json\x18\x02 \x01(\tB\x03\xe0\x41\x02R\trulesJson\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId:\x02\x18\x01\"\x8c\x01\n UpdateHumanFriendlyRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12$\n\x0brules_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\nrulesCount\x12\x1f\n\x08messages\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x08messages:\x02\x18\x01\"6\n\x14ViewJsonRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\";\n\x15ViewJsonRulesResponse\x12\"\n\nrules_json\x18\x01 \x01(\tB\x03\xe0\x41\x02R\trulesJson\"\x84\x01\n\x10JsonRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nrules_json\x18\x02 \x01(\tB\x03\xe0\x41\x02R\trulesJson\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\"\xc1\x02\n\x11JsonRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12/\n\x11total_rules_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\x0ftotalRulesCount\x12\x33\n\x13rules_created_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesCreatedCount\x12\x33\n\x13rules_updated_count\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesUpdatedCount\x12\x33\n\x13rules_deleted_count\x18\x05 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesDeletedCount\x12*\n\x0e\x65rror_messages\x18\x06 \x01(\tH\x00R\rerrorMessages\x88\x01\x01\x42\x11\n\x0f_error_messages\"Z\n\x18ValidateJsonRulesRequest\x12>\n\x07request\x18\x01 \x01(\x0b\x32\x1f.sift.rules.v1.JsonRulesRequestB\x03\xe0\x41\x02R\x07request\"^\n\x19ValidateJsonRulesResponse\x12\x41\n\x08response\x18\x01 \x01(\x0b\x32 .sift.rules.v1.JsonRulesResponseB\x03\xe0\x41\x02R\x08response\"X\n\x16UpdateJsonRulesRequest\x12>\n\x07request\x18\x01 \x01(\x0b\x32\x1f.sift.rules.v1.JsonRulesRequestB\x03\xe0\x41\x02R\x07request\"\\\n\x17UpdateJsonRulesResponse\x12\x41\n\x08response\x18\x01 \x01(\x0b\x32 .sift.rules.v1.JsonRulesResponseB\x03\xe0\x41\x02R\x08response\"\x95\x01\n\x10ListRulesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"k\n\x11ListRulesResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x95\x01\n\x17ListRuleVersionsRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x16\n\x06\x66ilter\x18\x04 \x01(\tR\x06\x66ilter\"\x88\x04\n\x0bRuleVersion\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12+\n\x0frule_version_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\x12\x1d\n\x07version\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x07version\x12\x42\n\x0c\x63reated_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12(\n\rversion_notes\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0cversionNotes\x12=\n\x18generated_change_message\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x16generatedChangeMessage\x12\x44\n\x0c\x64\x65leted_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x05\x18\x01\xe0\x41\x01R\x0b\x64\x65letedDate\x12\x44\n\rarchived_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12$\n\x0bis_archived\x18\n \x01(\x08\x42\x03\xe0\x41\x02R\nisArchived\"\x88\x01\n\x18ListRuleVersionsResponse\x12\x44\n\rrule_versions\x18\x01 \x03(\x0b\x32\x1a.sift.rules.v1.RuleVersionB\x03\xe0\x41\x02R\x0cruleVersions\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"D\n\x15GetRuleVersionRequest\x12+\n\x0frule_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\"F\n\x16GetRuleVersionResponse\x12,\n\x04rule\x18\x01 \x01(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x04rule\"L\n\x1b\x42\x61tchGetRuleVersionsRequest\x12-\n\x10rule_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleVersionIds\"N\n\x1c\x42\x61tchGetRuleVersionsResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"\xf4\x01\n\x17RuleConditionExpression\x12r\n\x19single_channel_comparison\x18\x01 \x01(\x0b\x32\x30.sift.rules.v1.SingleChannelComparisonExpressionB\x02\x18\x01H\x00R\x17singleChannelComparison\x12W\n\x12\x63\x61lculated_channel\x18\x02 \x01(\x0b\x32&.sift.rules.v1.CalculatedChannelConfigH\x00R\x11\x63\x61lculatedChannelB\x0c\n\nexpression\"\xcb\x02\n!SingleChannelComparisonExpression\x12\x30\n\x11\x63hannel_component\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x63hannelComponent\x12&\n\x0c\x63hannel_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x63hannelName\x12G\n\ncomparator\x18\x03 \x01(\x0e\x32\".sift.rules.v1.ConditionComparatorB\x03\xe0\x41\x02R\ncomparator\x12\x18\n\x06\x64ouble\x18\x04 \x01(\x01H\x00R\x06\x64ouble\x12\x18\n\x06string\x18\x05 \x01(\tH\x00R\x06string\x12\x42\n\nlast_value\x18\x06 \x01(\x0b\x32!.sift.rules.v1.LastValueThresholdH\x00R\tlastValueB\x0b\n\tthreshold\"\x14\n\x12LastValueThreshold\"\xfa\x03\n\x17\x43\x61lculatedChannelConfig\x12q\n\x12\x63hannel_references\x18\x01 \x03(\x0b\x32=.sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntryB\x03\xe0\x41\x02R\x11\x63hannelReferences\x12#\n\nexpression\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12\x61\n\x15\x66unction_dependencies\x18\x03 \x03(\x0b\x32\'.sift.common.type.v1.FunctionDependencyB\x03\xe0\x41\x01R\x14\x66unctionDependencies\x12}\n\x1f\x63\x61lculated_channel_dependencies\x18\x05 \x03(\x0b\x32\x30.sift.common.type.v1.CalculatedChannelDependencyB\x03\xe0\x41\x03R\x1d\x63\x61lculatedChannelDependencies\x1a\x65\n\x16\x43hannelReferencesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32\x1f.sift.rules.v1.ChannelReferenceR\x05value:\x02\x38\x01\"\xbd\x01\n\x10\x43hannelReference\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x04name\x12!\n\tcomponent\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tcomponent\x12K\n\x1d\x63\x61lculated_channel_version_id\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\x1a\x63\x61lculatedChannelVersionId\x88\x01\x01\x42 \n\x1e_calculated_channel_version_id\"\x97\x02\n\x17RuleActionConfiguration\x12T\n\x0cnotification\x18\x01 \x01(\x0b\x32..sift.rules.v1.NotificationActionConfigurationH\x00R\x0cnotification\x12N\n\nannotation\x18\x02 \x01(\x0b\x32,.sift.rules.v1.AnnotationActionConfigurationH\x00R\nannotation\x12\x45\n\x07webhook\x18\x03 \x01(\x0b\x32).sift.rules.v1.WebhookActionConfigurationH\x00R\x07webhookB\x0f\n\rconfiguration\"T\n\x1fNotificationActionConfiguration\x12\x31\n\x12recipient_user_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x10recipientUserIds\"@\n\x1aWebhookActionConfiguration\x12\"\n\nwebhook_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\twebhookId\"\x94\x02\n\x1d\x41nnotationActionConfiguration\x12\x1c\n\x07tag_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x06tagIds\x12L\n\x0f\x61nnotation_type\x18\x02 \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeR\x0e\x61nnotationType\x12\x32\n\x13\x61ssigned_to_user_id\x18\x03 \x01(\tH\x00R\x10\x61ssignedToUserId\x88\x01\x01\x12;\n\x08metadata\x18\x04 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueR\x08metadataB\x16\n\x14_assigned_to_user_id\"\x8e\x02\n\x14\x45valuateRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x07ruleIds\x12X\n\x12\x61nnotation_options\x18\x02 \x01(\x0b\x32).sift.rules.v1.EvaluatedAnnotationOptionsR\x11\x61nnotationOptions\x12\x17\n\x06run_id\x18\x03 \x01(\tH\x00R\x05runId\x12>\n\ntime_range\x18\x04 \x01(\x0b\x32\x1d.sift.rules.v1.TimeRangeQueryH\x00R\ttimeRange\x12\x17\n\x07\x64ry_run\x18\x05 \x01(\x08R\x06\x64ryRun:\x02\x18\x01\x42\x06\n\x04time\"5\n\x1a\x45valuatedAnnotationOptions\x12\x17\n\x07tag_ids\x18\x01 \x03(\tR\x06tagIds\"\x82\x01\n\x0eTimeRangeQuery\x12\x39\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartTime\x12\x35\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65ndTime\"\xfd\x01\n\x15\x45valuateRulesResponse\x12\x38\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05R\x16\x63reatedAnnotationCount\x12O\n\x13\x64ry_run_annotations\x18\x02 \x03(\x0b\x32\x1f.sift.rules.v1.DryRunAnnotationR\x11\x64ryRunAnnotations\x12\x1a\n\x06job_id\x18\x03 \x01(\tH\x00R\x05jobId\x88\x01\x01\x12 \n\treport_id\x18\x04 \x01(\tH\x01R\x08reportId\x88\x01\x01:\x02\x18\x01\x42\t\n\x07_job_idB\x0c\n\n_report_id\"\xf7\x01\n\x10\x44ryRunAnnotation\x12!\n\x0c\x63ondition_id\x18\x01 \x01(\tR\x0b\x63onditionId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x30\n\x14\x63ondition_version_id\x18\x05 \x01(\tR\x12\x63onditionVersionId*\\\n\x0bSearchOrder\x12 \n\x18SEARCH_ORDER_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x14\n\x10SEARCH_ORDER_ASC\x10\x01\x12\x15\n\x11SEARCH_ORDER_DESC\x10\x02*\\\n\nActionKind\x12\x1f\n\x17\x41\x43TION_KIND_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x10\n\x0cNOTIFICATION\x10\x01\x12\x0e\n\nANNOTATION\x10\x02\x12\x0b\n\x07WEBHOOK\x10\x03*\xad\x01\n\x13\x43onditionComparator\x12(\n CONDITION_COMPARATOR_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\r\n\tLESS_THAN\x10\x01\x12\x16\n\x12LESS_THAN_OR_EQUAL\x10\x02\x12\x10\n\x0cGREATER_THAN\x10\x03\x12\x19\n\x15GREATER_THAN_OR_EQUAL\x10\x04\x12\t\n\x05\x45QUAL\x10\x05\x12\r\n\tNOT_EQUAL\x10\x06\x32\x9f\'\n\x0bRuleService\x12\xb9\x01\n\x0bSearchRules\x12!.sift.rules.v1.SearchRulesRequest\x1a\".sift.rules.v1.SearchRulesResponse\"c\x92\x41\x41\x12\x0bSearchRules\x1a\x32Queries rules based on provided search parameters.\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/rules/search:\x01*\x12\x94\x01\n\x07GetRule\x12\x1d.sift.rules.v1.GetRuleRequest\x1a\x1e.sift.rules.v1.GetRuleResponse\"J\x92\x41\x32\x12\x07GetRule\x1a\'Retrieves the latest version of a rule.\x82\xd3\xe4\x93\x02\x0f\x12\r/api/v1/rules\x12\xaa\x01\n\rBatchGetRules\x12#.sift.rules.v1.BatchGetRulesRequest\x1a$.sift.rules.v1.BatchGetRulesResponse\"N\x92\x41*\x12\rBatchGetRules\x1a\x19Retrieves multiple rules.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules:batchGet:\x01*\x12\x8b\x01\n\nCreateRule\x12 .sift.rules.v1.CreateRuleRequest\x1a!.sift.rules.v1.CreateRuleResponse\"8\x92\x41\x1d\x12\nCreateRule\x1a\x0f\x43reates a rule.\x82\xd3\xe4\x93\x02\x12\"\r/api/v1/rules:\x01*\x12\x95\x01\n\nUpdateRule\x12 .sift.rules.v1.UpdateRuleRequest\x1a!.sift.rules.v1.UpdateRuleResponse\"B\x92\x41\'\x12\nUpdateRule\x1a\x19Updates an existing rule.\x82\xd3\xe4\x93\x02\x12\x1a\r/api/v1/rules:\x01*\x12\xda\x01\n\x10\x42\x61tchUpdateRules\x12&.sift.rules.v1.BatchUpdateRulesRequest\x1a\'.sift.rules.v1.BatchUpdateRulesResponse\"u\x92\x41N\x12\x10\x42\x61tchUpdateRules\x1a:Updates existing rules or creates rules that do not exist.\x82\xd3\xe4\x93\x02\x1e\x1a\x19/api/v1/rules:batchUpdate:\x01*\x12\xbb\x01\n\nDeleteRule\x12 .sift.rules.v1.DeleteRuleRequest\x1a!.sift.rules.v1.DeleteRuleResponse\"h\x88\x02\x01\x92\x41\x43\x12\nDeleteRule\x1a\x35\x41rchives a rule. Deprecated: Use ArchiveRule instead.\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/rules/delete:\x01*\x12\x98\x01\n\x0b\x41rchiveRule\x12!.sift.rules.v1.ArchiveRuleRequest\x1a\".sift.rules.v1.ArchiveRuleResponse\"B\x92\x41\x1f\x12\x0b\x41rchiveRule\x1a\x10\x41rchives a rule.\x82\xd3\xe4\x93\x02\x1a\"\x15/api/v1/rules/archive:\x01*\x12\xe7\x01\n\x10\x42\x61tchDeleteRules\x12&.sift.rules.v1.BatchDeleteRulesRequest\x1a\'.sift.rules.v1.BatchDeleteRulesResponse\"\x81\x01\x88\x02\x01\x92\x41W\x12\x10\x42\x61tchDeleteRules\x1a\x43\x41rchives multiple rules. Deprecated: Use BatchArchiveRules instead.\x82\xd3\xe4\x93\x02\x1e\"\x19/api/v1/rules/batchDelete:\x01*\x12\xba\x01\n\x11\x42\x61tchArchiveRules\x12\'.sift.rules.v1.BatchArchiveRulesRequest\x1a(.sift.rules.v1.BatchArchiveRulesResponse\"R\x92\x41*\x12\x11\x42\x61tchArchiveRules\x1a\x15\x42\x61tch archives rules.\x82\xd3\xe4\x93\x02\x1f\"\x1a/api/v1/rules/batchArchive:\x01*\x12\xa4\x01\n\rUnarchiveRule\x12#.sift.rules.v1.UnarchiveRuleRequest\x1a$.sift.rules.v1.UnarchiveRuleResponse\"H\x92\x41#\x12\rUnarchiveRule\x1a\x12Unarchives a rule.\x82\xd3\xe4\x93\x02\x1c\"\x17/api/v1/rules/unarchive:\x01*\x12\xc6\x01\n\x13\x42\x61tchUnarchiveRules\x12).sift.rules.v1.BatchUnarchiveRulesRequest\x1a*.sift.rules.v1.BatchUnarchiveRulesResponse\"X\x92\x41.\x12\x13\x42\x61tchUnarchiveRules\x1a\x17\x42\x61tch unarchives rules.\x82\xd3\xe4\x93\x02!\"\x1c/api/v1/rules/batchUnarchive:\x01*\x12\xb6\x01\n\x0cUndeleteRule\x12\".sift.rules.v1.UndeleteRuleRequest\x1a#.sift.rules.v1.UndeleteRuleResponse\"]\x88\x02\x01\x92\x41\x36\x12\x0cUndeleteRule\x1a&Deprecated: Use UnarchiveRule instead.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules/undelete:\x01*\x12\xd9\x01\n\x12\x42\x61tchUndeleteRules\x12(.sift.rules.v1.BatchUndeleteRulesRequest\x1a).sift.rules.v1.BatchUndeleteRulesResponse\"n\x88\x02\x01\x92\x41\x42\x12\x12\x42\x61tchUndeleteRules\x1a,Deprecated: Use BatchUnarchiveRules instead.\x82\xd3\xe4\x93\x02 \"\x1b/api/v1/rules/batchUndelete:\x01*\x12\xdf\x01\n\rEvaluateRules\x12#.sift.rules.v1.EvaluateRulesRequest\x1a$.sift.rules.v1.EvaluateRulesResponse\"\x82\x01\x88\x02\x01\x92\x41[\x12\rEvaluateRules\x1aJEvaluates the provided rules and generate annotations based on the result.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules/evaluate:\x01*\x12\x84\x02\n\x16ViewHumanFriendlyRules\x12,.sift.rules.v1.ViewHumanFriendlyRulesRequest\x1a-.sift.rules.v1.ViewHumanFriendlyRulesResponse\"\x8c\x01\x88\x02\x01\x92\x41_\x12\x16ViewHumanFriendlyRules\x1a\x45Retrieve a JSON object containing all of the rules for a given asset.\x82\xd3\xe4\x93\x02!\x12\x1f/api/v1/rules:viewHumanFriendly\x12\xd6\x01\n\rViewJsonRules\x12#.sift.rules.v1.ViewJsonRulesRequest\x1a$.sift.rules.v1.ViewJsonRulesResponse\"z\x88\x02\x01\x92\x41V\x12\rViewJsonRules\x1a\x45Retrieve a JSON object containing all of the rules for a given asset.\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/rules:viewJson\x12\x94\x02\n\x18UpdateHumanFriendlyRules\x12..sift.rules.v1.UpdateHumanFriendlyRulesRequest\x1a/.sift.rules.v1.UpdateHumanFriendlyRulesResponse\"\x96\x01\x88\x02\x01\x92\x41\x64\x12\x18UpdateHumanFriendlyRules\x1aHBatch update rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02&\"!/api/v1/rules:updateHumanFriendly:\x01*\x12\x80\x02\n\x11ValidateJsonRules\x12\'.sift.rules.v1.ValidateJsonRulesRequest\x1a(.sift.rules.v1.ValidateJsonRulesResponse\"\x97\x01\x88\x02\x01\x92\x41l\x12\x11ValidateJsonRules\x1aWValidate a batch update for rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02\x1f\"\x1a/api/v1/rules:validateJson:\x01*\x12\xe7\x01\n\x0fUpdateJsonRules\x12%.sift.rules.v1.UpdateJsonRulesRequest\x1a&.sift.rules.v1.UpdateJsonRulesResponse\"\x84\x01\x88\x02\x01\x92\x41[\x12\x0fUpdateJsonRules\x1aHBatch update rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v1/rules:updateJson:\x01*\x12\x94\x01\n\tListRules\x12\x1f.sift.rules.v1.ListRulesRequest\x1a .sift.rules.v1.ListRulesResponse\"D\x92\x41\'\x12\tListRules\x1a\x1aRetrieves a list of rules.\x82\xd3\xe4\x93\x02\x14\x12\x12/api/v1/rules:list\x12\xd9\x01\n\x10ListRuleVersions\x12&.sift.rules.v1.ListRuleVersionsRequest\x1a\'.sift.rules.v1.ListRuleVersionsResponse\"t\x92\x41I\x12\x10ListRuleVersions\x1a\x35Retrieves a list of rule versions for the given rule.\x82\xd3\xe4\x93\x02\"\x12 /api/v1/rules/{rule_id}/versions\x12\xb8\x01\n\x0eGetRuleVersion\x12$.sift.rules.v1.GetRuleVersionRequest\x1a%.sift.rules.v1.GetRuleVersionResponse\"Y\x92\x41\x39\x12\x0eGetRuleVersion\x1a\'Retrieves a specific version of a rule.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/rules:version\x12\xdf\x01\n\x14\x42\x61tchGetRuleVersions\x12*.sift.rules.v1.BatchGetRuleVersionsRequest\x1a+.sift.rules.v1.BatchGetRuleVersionsResponse\"n\x92\x41\x42\x12\x14\x42\x61tchGetRuleVersions\x1a*Retrieves multiple rules by rule versions.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/rules:batchGetVersions:\x01*\x1a\xb1\x01\x92\x41\xad\x01\x12\x30Service to programmatically interact with rules.\x1ay\n\x1fRead more about what rules are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102B\x88\x01\n\x11\x63om.sift.rules.v1B\nRulesProtoP\x01\xa2\x02\x03SRX\xaa\x02\rSift.Rules.V1\xca\x02\rSift\\Rules\\V1\xe2\x02\x19Sift\\Rules\\V1\\GPBMetadata\xea\x02\x0fSift::Rules::V1\x92\x41\x10\x12\x0e\n\x0cRule Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19sift/rules/v1/rules.proto\x12\rsift.rules.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a%sift/annotations/v1/annotations.proto\x1a-sift/common/type/v1/calculated_channels.proto\x1a-sift/common/type/v1/resource_identifier.proto\x1a\x30sift/common/type/v1/user_defined_functions.proto\x1a\x1fsift/metadata/v1/metadata.proto\"\xdd\t\n\x04Rule\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12 \n\x08\x61sset_id\x18\x02 \x01(\tB\x05\x18\x01\xe0\x41\x02R\x07\x61ssetId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12\"\n\nis_enabled\x18\x06 \x01(\x08\x42\x03\xe0\x41\x02R\tisEnabled\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\n \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12,\n\x0forganization_id\x18\x0b \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x41\n\nconditions\x18\x0c \x03(\x0b\x32\x1c.sift.rules.v1.RuleConditionB\x03\xe0\x41\x02R\nconditions\x12\x42\n\x0crule_version\x18\r \x01(\x0b\x32\x1a.sift.rules.v1.RuleVersionB\x03\xe0\x41\x02R\x0bruleVersion\x12\"\n\nclient_key\x18\x0e \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12[\n\x13\x61sset_configuration\x18\x0f \x01(\x0b\x32%.sift.rules.v1.RuleAssetConfigurationB\x03\xe0\x41\x02R\x12\x61ssetConfiguration\x12W\n\x13\x63ontextual_channels\x18\x10 \x01(\x0b\x32!.sift.rules.v1.ContextualChannelsB\x03\xe0\x41\x02R\x12\x63ontextualChannels\x12\x44\n\x0c\x64\x65leted_date\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x05\x18\x01\xe0\x41\x01R\x0b\x64\x65letedDate\x12$\n\x0bis_external\x18\x12 \x01(\x08\x42\x03\xe0\x41\x02R\nisExternal\x12@\n\x08metadata\x18\x13 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12\x44\n\rarchived_date\x18\x14 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12$\n\x0bis_archived\x18\x15 \x01(\x08\x42\x03\xe0\x41\x02R\nisArchived\x12@\n\x1ais_live_evaluation_enabled\x18\x16 \x01(\x08\x42\x03\xe0\x41\x01R\x17isLiveEvaluationEnabled\x12\x31\n\x12\x63urrent_version_id\x18\x17 \x01(\tB\x03\xe0\x41\x02R\x10\x63urrentVersionId\x12\x1d\n\nfolder_ids\x18\x18 \x03(\tR\tfolderIdsJ\x04\x08\x05\x10\x06\"\x9b\x04\n\rRuleCondition\x12/\n\x11rule_condition_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0fruleConditionId\x12\x1c\n\x07rule_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12K\n\nexpression\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleConditionExpressionB\x03\xe0\x41\x02R\nexpression\x12\x42\n\x0c\x63reated_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x38\n\x07\x61\x63tions\x18\t \x03(\x0b\x32\x19.sift.rules.v1.RuleActionB\x03\xe0\x41\x02R\x07\x61\x63tions\x12>\n\x19rule_condition_version_id\x18\n \x01(\tB\x03\xe0\x41\x02R\x16ruleConditionVersionIdJ\x04\x08\x04\x10\x05\"\xa6\x04\n\nRuleAction\x12)\n\x0erule_action_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0cruleActionId\x12/\n\x11rule_condition_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0fruleConditionId\x12?\n\x0b\x61\x63tion_type\x18\x03 \x01(\x0e\x32\x19.sift.rules.v1.ActionKindB\x03\xe0\x41\x02R\nactionType\x12Q\n\rconfiguration\x18\x04 \x01(\x0b\x32&.sift.rules.v1.RuleActionConfigurationB\x03\xe0\x41\x02R\rconfiguration\x12\x42\n\x0c\x63reated_date\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x08 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x38\n\x16rule_action_version_id\x18\t \x01(\tB\x03\xe0\x41\x02R\x13ruleActionVersionId\"N\n\x16RuleAssetConfiguration\x12\x1b\n\tasset_ids\x18\x01 \x03(\tR\x08\x61ssetIds\x12\x17\n\x07tag_ids\x18\x02 \x03(\tR\x06tagIds\"V\n\x12\x43ontextualChannels\x12@\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1f.sift.rules.v1.ChannelReferenceB\x03\xe0\x41\x02R\x08\x63hannels\"\xb6\x01\n\x1f\x41ssetExpressionValidationResult\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nasset_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\tassetName\x12%\n\x0c\x61sset_tag_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\nassetTagId\x12\x1e\n\x05\x65rror\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xc6\x03\n\x12SearchRulesRequest\x12\x19\n\x05limit\x18\x01 \x01(\rH\x00R\x05limit\x88\x01\x01\x12\x16\n\x06offset\x18\x02 \x01(\rR\x06offset\x12\x35\n\x05order\x18\x03 \x01(\x0e\x32\x1a.sift.rules.v1.SearchOrderH\x01R\x05order\x88\x01\x01\x12!\n\x0cname_matches\x18\x04 \x01(\tR\x0bnameMatches\x12%\n\x0e\x63\x61se_sensitive\x18\x05 \x01(\x08R\rcaseSensitive\x12\x16\n\x06regexp\x18\x06 \x01(\x08R\x06regexp\x12\x1e\n\x08order_by\x18\x07 \x01(\tH\x02R\x07orderBy\x88\x01\x01\x12\x19\n\x08rule_ids\x18\x08 \x03(\tR\x07ruleIds\x12\x1b\n\tasset_ids\x18\t \x03(\tR\x08\x61ssetIds\x12\'\n\x0finclude_deleted\x18\n \x01(\x08R\x0eincludeDeleted\x12\x42\n\nasset_tags\x18\x0b \x01(\x0b\x32#.sift.common.type.v1.NamedResourcesR\tassetTagsB\x08\n\x06_limitB\x08\n\x06_orderB\x0b\n\t_order_by\"`\n\x13SearchRulesResponse\x12\x19\n\x05\x63ount\x18\x01 \x01(\rB\x03\xe0\x41\x02R\x05\x63ount\x12.\n\x05rules\x18\x02 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"R\n\x0eGetRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"?\n\x0fGetRuleResponse\x12,\n\x04rule\x18\x01 \x01(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x04rule\"\\\n\x14\x42\x61tchGetRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"G\n\x15\x42\x61tchGetRulesResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"R\n\x11\x43reateRuleRequest\x12=\n\x06update\x18\x01 \x01(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x06update\"2\n\x12\x43reateRuleResponse\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\"\xad\x06\n\x11UpdateRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tH\x00R\x06ruleId\x88\x01\x01\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0b\x64\x65scription\x12 \n\x08\x61sset_id\x18\x04 \x01(\tB\x05\x18\x01\xe0\x41\x01R\x07\x61ssetId\x12$\n\nis_enabled\x18\x05 \x01(\x08\x42\x05\x18\x01\xe0\x41\x01R\tisEnabled\x12J\n\nconditions\x18\x06 \x03(\x0b\x32%.sift.rules.v1.UpdateConditionRequestB\x03\xe0\x41\x02R\nconditions\x12\'\n\x0forganization_id\x18\x07 \x01(\tR\x0eorganizationId\x12#\n\rversion_notes\x18\x08 \x01(\tR\x0cversionNotes\x12\"\n\nclient_key\x18\t \x01(\tH\x01R\tclientKey\x88\x01\x01\x12V\n\x13\x61sset_configuration\x18\n \x01(\x0b\x32%.sift.rules.v1.RuleAssetConfigurationR\x12\x61ssetConfiguration\x12R\n\x13\x63ontextual_channels\x18\x0b \x01(\x0b\x32!.sift.rules.v1.ContextualChannelsR\x12\x63ontextualChannels\x12\x1f\n\x0bis_external\x18\x0c \x01(\x08R\nisExternal\x12@\n\x08metadata\x18\r \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueB\x03\xe0\x41\x02R\x08metadata\x12$\n\x0bis_archived\x18\x0e \x01(\x08\x42\x03\xe0\x41\x01R\nisArchived\x12\x45\n\x1ais_live_evaluation_enabled\x18\x0f \x01(\x08\x42\x03\xe0\x41\x01H\x02R\x17isLiveEvaluationEnabled\x88\x01\x01\x42\n\n\x08_rule_idB\r\n\x0b_client_keyB\x1d\n\x1b_is_live_evaluation_enabled\"\xf5\x01\n\x16UpdateConditionRequest\x12/\n\x11rule_condition_id\x18\x01 \x01(\tH\x00R\x0fruleConditionId\x88\x01\x01\x12K\n\nexpression\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleConditionExpressionB\x03\xe0\x41\x02R\nexpression\x12\x41\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\".sift.rules.v1.UpdateActionRequestB\x03\xe0\x41\x02R\x07\x61\x63tionsB\x14\n\x12_rule_condition_idJ\x04\x08\x02\x10\x03\"\xe7\x01\n\x13UpdateActionRequest\x12)\n\x0erule_action_id\x18\x01 \x01(\tH\x00R\x0cruleActionId\x88\x01\x01\x12?\n\x0b\x61\x63tion_type\x18\x02 \x01(\x0e\x32\x19.sift.rules.v1.ActionKindB\x03\xe0\x41\x02R\nactionType\x12Q\n\rconfiguration\x18\x03 \x01(\x0b\x32&.sift.rules.v1.RuleActionConfigurationB\x03\xe0\x41\x02R\rconfigurationB\x11\n\x0f_rule_action_id\"2\n\x12UpdateRuleResponse\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\"\xa5\x02\n\x10ValidationResult\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\x12\x82\x01\n#asset_expression_validation_results\x18\x03 \x03(\x0b\x32..sift.rules.v1.AssetExpressionValidationResultB\x03\xe0\x41\x02R assetExpressionValidationResults\x12\x1e\n\x05\x65rror\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x00R\x05\x65rror\x88\x01\x01\x12 \n\trule_name\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x08ruleNameB\x08\n\x06_error\"\xca\x01\n\x17\x42\x61tchUpdateRulesRequest\x12;\n\x05rules\x18\x01 \x03(\x0b\x32 .sift.rules.v1.UpdateRuleRequestB\x03\xe0\x41\x02R\x05rules\x12(\n\rvalidate_only\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01R\x0cvalidateOnly\x12H\n\x1eoverride_expression_validation\x18\x03 \x01(\x08\x42\x02\x18\x01R\x1coverrideExpressionValidation\"\x9d\x04\n\x18\x42\x61tchUpdateRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12\x33\n\x13rules_created_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesCreatedCount\x12\x33\n\x13rules_updated_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesUpdatedCount\x12(\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x02R\x0cvalidateOnly\x12S\n\x12validation_results\x18\x05 \x03(\x0b\x32\x1f.sift.rules.v1.ValidationResultB\x03\xe0\x41\x02R\x11validationResults\x12v\n\x18\x63reated_rule_identifiers\x18\x06 \x03(\x0b\x32\x37.sift.rules.v1.BatchUpdateRulesResponse.RuleIdentifiersB\x03\xe0\x41\x02R\x16\x63reatedRuleIdentifiers\x1a\x80\x01\n\x0fRuleIdentifiers\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\x12\'\n\nclient_key\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\tclientKey\x88\x01\x01\x42\r\n\x0b_client_key\"U\n\x11\x44\x65leteRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x14\n\x12\x44\x65leteRuleResponse\"_\n\x17\x42\x61tchDeleteRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1a\n\x18\x42\x61tchDeleteRulesResponse\"V\n\x12\x41rchiveRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x15\n\x13\x41rchiveRuleResponse\"`\n\x18\x42\x61tchArchiveRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1b\n\x19\x42\x61tchArchiveRulesResponse\"W\n\x13UndeleteRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x16\n\x14UndeleteRuleResponse\"a\n\x19\x42\x61tchUndeleteRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1c\n\x1a\x42\x61tchUndeleteRulesResponse\"X\n\x14UnarchiveRuleRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x06ruleId\x12\"\n\nclient_key\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tclientKey\"\x17\n\x15UnarchiveRuleResponse\"b\n\x1a\x42\x61tchUnarchiveRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01R\x07ruleIds\x12$\n\x0b\x63lient_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01R\nclientKeys\"\x1d\n\x1b\x42\x61tchUnarchiveRulesResponse\"C\n\x1dViewHumanFriendlyRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId:\x02\x18\x01\"H\n\x1eViewHumanFriendlyRulesResponse\x12\"\n\nrules_json\x18\x01 \x01(\tB\x03\xe0\x41\x02R\trulesJson:\x02\x18\x01\"\x97\x01\n\x1fUpdateHumanFriendlyRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nrules_json\x18\x02 \x01(\tB\x03\xe0\x41\x02R\trulesJson\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId:\x02\x18\x01\"\x8c\x01\n UpdateHumanFriendlyRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12$\n\x0brules_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\nrulesCount\x12\x1f\n\x08messages\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x08messages:\x02\x18\x01\"6\n\x14ViewJsonRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\";\n\x15ViewJsonRulesResponse\x12\"\n\nrules_json\x18\x01 \x01(\tB\x03\xe0\x41\x02R\trulesJson\"\x84\x01\n\x10JsonRulesRequest\x12\x1e\n\x08\x61sset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x07\x61ssetId\x12\"\n\nrules_json\x18\x02 \x01(\tB\x03\xe0\x41\x02R\trulesJson\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\"\xc1\x02\n\x11JsonRulesResponse\x12\x1d\n\x07success\x18\x01 \x01(\x08\x42\x03\xe0\x41\x02R\x07success\x12/\n\x11total_rules_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02R\x0ftotalRulesCount\x12\x33\n\x13rules_created_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesCreatedCount\x12\x33\n\x13rules_updated_count\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesUpdatedCount\x12\x33\n\x13rules_deleted_count\x18\x05 \x01(\x05\x42\x03\xe0\x41\x02R\x11rulesDeletedCount\x12*\n\x0e\x65rror_messages\x18\x06 \x01(\tH\x00R\rerrorMessages\x88\x01\x01\x42\x11\n\x0f_error_messages\"Z\n\x18ValidateJsonRulesRequest\x12>\n\x07request\x18\x01 \x01(\x0b\x32\x1f.sift.rules.v1.JsonRulesRequestB\x03\xe0\x41\x02R\x07request\"^\n\x19ValidateJsonRulesResponse\x12\x41\n\x08response\x18\x01 \x01(\x0b\x32 .sift.rules.v1.JsonRulesResponseB\x03\xe0\x41\x02R\x08response\"X\n\x16UpdateJsonRulesRequest\x12>\n\x07request\x18\x01 \x01(\x0b\x32\x1f.sift.rules.v1.JsonRulesRequestB\x03\xe0\x41\x02R\x07request\"\\\n\x17UpdateJsonRulesResponse\x12\x41\n\x08response\x18\x01 \x01(\x0b\x32 .sift.rules.v1.JsonRulesResponseB\x03\xe0\x41\x02R\x08response\"\x95\x01\n\x10ListRulesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12\x1e\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"k\n\x11ListRulesResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x95\x01\n\x17ListRuleVersionsRequest\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12 \n\tpage_size\x18\x02 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x16\n\x06\x66ilter\x18\x04 \x01(\tR\x06\x66ilter\"\x88\x04\n\x0bRuleVersion\x12\x1c\n\x07rule_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x06ruleId\x12+\n\x0frule_version_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\x12\x1d\n\x07version\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x07version\x12\x42\n\x0c\x63reated_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12(\n\rversion_notes\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x0cversionNotes\x12=\n\x18generated_change_message\x18\x07 \x01(\tB\x03\xe0\x41\x02R\x16generatedChangeMessage\x12\x44\n\x0c\x64\x65leted_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x05\x18\x01\xe0\x41\x01R\x0b\x64\x65letedDate\x12\x44\n\rarchived_date\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01R\x0c\x61rchivedDate\x12$\n\x0bis_archived\x18\n \x01(\x08\x42\x03\xe0\x41\x02R\nisArchived\"\x88\x01\n\x18ListRuleVersionsResponse\x12\x44\n\rrule_versions\x18\x01 \x03(\x0b\x32\x1a.sift.rules.v1.RuleVersionB\x03\xe0\x41\x02R\x0cruleVersions\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"D\n\x15GetRuleVersionRequest\x12+\n\x0frule_version_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rruleVersionId\"F\n\x16GetRuleVersionResponse\x12,\n\x04rule\x18\x01 \x01(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x04rule\"L\n\x1b\x42\x61tchGetRuleVersionsRequest\x12-\n\x10rule_version_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x0eruleVersionIds\"N\n\x1c\x42\x61tchGetRuleVersionsResponse\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x13.sift.rules.v1.RuleB\x03\xe0\x41\x02R\x05rules\"\xf4\x01\n\x17RuleConditionExpression\x12r\n\x19single_channel_comparison\x18\x01 \x01(\x0b\x32\x30.sift.rules.v1.SingleChannelComparisonExpressionB\x02\x18\x01H\x00R\x17singleChannelComparison\x12W\n\x12\x63\x61lculated_channel\x18\x02 \x01(\x0b\x32&.sift.rules.v1.CalculatedChannelConfigH\x00R\x11\x63\x61lculatedChannelB\x0c\n\nexpression\"\xcb\x02\n!SingleChannelComparisonExpression\x12\x30\n\x11\x63hannel_component\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x10\x63hannelComponent\x12&\n\x0c\x63hannel_name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0b\x63hannelName\x12G\n\ncomparator\x18\x03 \x01(\x0e\x32\".sift.rules.v1.ConditionComparatorB\x03\xe0\x41\x02R\ncomparator\x12\x18\n\x06\x64ouble\x18\x04 \x01(\x01H\x00R\x06\x64ouble\x12\x18\n\x06string\x18\x05 \x01(\tH\x00R\x06string\x12\x42\n\nlast_value\x18\x06 \x01(\x0b\x32!.sift.rules.v1.LastValueThresholdH\x00R\tlastValueB\x0b\n\tthreshold\"\x14\n\x12LastValueThreshold\"\xfa\x03\n\x17\x43\x61lculatedChannelConfig\x12q\n\x12\x63hannel_references\x18\x01 \x03(\x0b\x32=.sift.rules.v1.CalculatedChannelConfig.ChannelReferencesEntryB\x03\xe0\x41\x02R\x11\x63hannelReferences\x12#\n\nexpression\x18\x02 \x01(\tB\x03\xe0\x41\x02R\nexpression\x12\x61\n\x15\x66unction_dependencies\x18\x03 \x03(\x0b\x32\'.sift.common.type.v1.FunctionDependencyB\x03\xe0\x41\x01R\x14\x66unctionDependencies\x12}\n\x1f\x63\x61lculated_channel_dependencies\x18\x05 \x03(\x0b\x32\x30.sift.common.type.v1.CalculatedChannelDependencyB\x03\xe0\x41\x03R\x1d\x63\x61lculatedChannelDependencies\x1a\x65\n\x16\x43hannelReferencesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32\x1f.sift.rules.v1.ChannelReferenceR\x05value:\x02\x38\x01\"\xbd\x01\n\x10\x43hannelReference\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01R\x04name\x12!\n\tcomponent\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tcomponent\x12K\n\x1d\x63\x61lculated_channel_version_id\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x00R\x1a\x63\x61lculatedChannelVersionId\x88\x01\x01\x42 \n\x1e_calculated_channel_version_id\"\x97\x02\n\x17RuleActionConfiguration\x12T\n\x0cnotification\x18\x01 \x01(\x0b\x32..sift.rules.v1.NotificationActionConfigurationH\x00R\x0cnotification\x12N\n\nannotation\x18\x02 \x01(\x0b\x32,.sift.rules.v1.AnnotationActionConfigurationH\x00R\nannotation\x12\x45\n\x07webhook\x18\x03 \x01(\x0b\x32).sift.rules.v1.WebhookActionConfigurationH\x00R\x07webhookB\x0f\n\rconfiguration\"T\n\x1fNotificationActionConfiguration\x12\x31\n\x12recipient_user_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x10recipientUserIds\"@\n\x1aWebhookActionConfiguration\x12\"\n\nwebhook_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\twebhookId\"\x94\x02\n\x1d\x41nnotationActionConfiguration\x12\x1c\n\x07tag_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x06tagIds\x12L\n\x0f\x61nnotation_type\x18\x02 \x01(\x0e\x32#.sift.annotations.v1.AnnotationTypeR\x0e\x61nnotationType\x12\x32\n\x13\x61ssigned_to_user_id\x18\x03 \x01(\tH\x00R\x10\x61ssignedToUserId\x88\x01\x01\x12;\n\x08metadata\x18\x04 \x03(\x0b\x32\x1f.sift.metadata.v1.MetadataValueR\x08metadataB\x16\n\x14_assigned_to_user_id\"\xfe\x01\n\x13\x46\x61milyStatReference\x12!\n\treference\x18\x01 \x01(\tB\x03\xe0\x41\x02R\treference\x12 \n\tfamily_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x08\x66\x61milyId\x12-\n\x10\x66\x61mily_stat_name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x0e\x66\x61milyStatName\x12\x39\n\x16\x66\x61mily_stat_expression\x18\x04 \x01(\tB\x03\xe0\x41\x02R\x14\x66\x61milyStatExpression\x12\x38\n\x16\x66\x61mily_stat_range_name\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x13\x66\x61milyStatRangeName\"\x8e\x02\n\x14\x45valuateRulesRequest\x12\x1e\n\x08rule_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02R\x07ruleIds\x12X\n\x12\x61nnotation_options\x18\x02 \x01(\x0b\x32).sift.rules.v1.EvaluatedAnnotationOptionsR\x11\x61nnotationOptions\x12\x17\n\x06run_id\x18\x03 \x01(\tH\x00R\x05runId\x12>\n\ntime_range\x18\x04 \x01(\x0b\x32\x1d.sift.rules.v1.TimeRangeQueryH\x00R\ttimeRange\x12\x17\n\x07\x64ry_run\x18\x05 \x01(\x08R\x06\x64ryRun:\x02\x18\x01\x42\x06\n\x04time\"5\n\x1a\x45valuatedAnnotationOptions\x12\x17\n\x07tag_ids\x18\x01 \x03(\tR\x06tagIds\"\x82\x01\n\x0eTimeRangeQuery\x12\x39\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartTime\x12\x35\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65ndTime\"\xfd\x01\n\x15\x45valuateRulesResponse\x12\x38\n\x18\x63reated_annotation_count\x18\x01 \x01(\x05R\x16\x63reatedAnnotationCount\x12O\n\x13\x64ry_run_annotations\x18\x02 \x03(\x0b\x32\x1f.sift.rules.v1.DryRunAnnotationR\x11\x64ryRunAnnotations\x12\x1a\n\x06job_id\x18\x03 \x01(\tH\x00R\x05jobId\x88\x01\x01\x12 \n\treport_id\x18\x04 \x01(\tH\x01R\x08reportId\x88\x01\x01:\x02\x18\x01\x42\t\n\x07_job_idB\x0c\n\n_report_id\"\xf7\x01\n\x10\x44ryRunAnnotation\x12!\n\x0c\x63ondition_id\x18\x01 \x01(\tR\x0b\x63onditionId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12>\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\tstartTime\x12:\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x07\x65ndTime\x12\x30\n\x14\x63ondition_version_id\x18\x05 \x01(\tR\x12\x63onditionVersionId*\\\n\x0bSearchOrder\x12 \n\x18SEARCH_ORDER_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x14\n\x10SEARCH_ORDER_ASC\x10\x01\x12\x15\n\x11SEARCH_ORDER_DESC\x10\x02*\\\n\nActionKind\x12\x1f\n\x17\x41\x43TION_KIND_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\x10\n\x0cNOTIFICATION\x10\x01\x12\x0e\n\nANNOTATION\x10\x02\x12\x0b\n\x07WEBHOOK\x10\x03*\xad\x01\n\x13\x43onditionComparator\x12(\n CONDITION_COMPARATOR_UNSPECIFIED\x10\x00\x1a\x02\x08\x01\x12\r\n\tLESS_THAN\x10\x01\x12\x16\n\x12LESS_THAN_OR_EQUAL\x10\x02\x12\x10\n\x0cGREATER_THAN\x10\x03\x12\x19\n\x15GREATER_THAN_OR_EQUAL\x10\x04\x12\t\n\x05\x45QUAL\x10\x05\x12\r\n\tNOT_EQUAL\x10\x06\x32\x9f\'\n\x0bRuleService\x12\xb9\x01\n\x0bSearchRules\x12!.sift.rules.v1.SearchRulesRequest\x1a\".sift.rules.v1.SearchRulesResponse\"c\x92\x41\x41\x12\x0bSearchRules\x1a\x32Queries rules based on provided search parameters.\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/rules/search:\x01*\x12\x94\x01\n\x07GetRule\x12\x1d.sift.rules.v1.GetRuleRequest\x1a\x1e.sift.rules.v1.GetRuleResponse\"J\x92\x41\x32\x12\x07GetRule\x1a\'Retrieves the latest version of a rule.\x82\xd3\xe4\x93\x02\x0f\x12\r/api/v1/rules\x12\xaa\x01\n\rBatchGetRules\x12#.sift.rules.v1.BatchGetRulesRequest\x1a$.sift.rules.v1.BatchGetRulesResponse\"N\x92\x41*\x12\rBatchGetRules\x1a\x19Retrieves multiple rules.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules:batchGet:\x01*\x12\x8b\x01\n\nCreateRule\x12 .sift.rules.v1.CreateRuleRequest\x1a!.sift.rules.v1.CreateRuleResponse\"8\x92\x41\x1d\x12\nCreateRule\x1a\x0f\x43reates a rule.\x82\xd3\xe4\x93\x02\x12\"\r/api/v1/rules:\x01*\x12\x95\x01\n\nUpdateRule\x12 .sift.rules.v1.UpdateRuleRequest\x1a!.sift.rules.v1.UpdateRuleResponse\"B\x92\x41\'\x12\nUpdateRule\x1a\x19Updates an existing rule.\x82\xd3\xe4\x93\x02\x12\x1a\r/api/v1/rules:\x01*\x12\xda\x01\n\x10\x42\x61tchUpdateRules\x12&.sift.rules.v1.BatchUpdateRulesRequest\x1a\'.sift.rules.v1.BatchUpdateRulesResponse\"u\x92\x41N\x12\x10\x42\x61tchUpdateRules\x1a:Updates existing rules or creates rules that do not exist.\x82\xd3\xe4\x93\x02\x1e\x1a\x19/api/v1/rules:batchUpdate:\x01*\x12\xbb\x01\n\nDeleteRule\x12 .sift.rules.v1.DeleteRuleRequest\x1a!.sift.rules.v1.DeleteRuleResponse\"h\x88\x02\x01\x92\x41\x43\x12\nDeleteRule\x1a\x35\x41rchives a rule. Deprecated: Use ArchiveRule instead.\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/rules/delete:\x01*\x12\x98\x01\n\x0b\x41rchiveRule\x12!.sift.rules.v1.ArchiveRuleRequest\x1a\".sift.rules.v1.ArchiveRuleResponse\"B\x92\x41\x1f\x12\x0b\x41rchiveRule\x1a\x10\x41rchives a rule.\x82\xd3\xe4\x93\x02\x1a\"\x15/api/v1/rules/archive:\x01*\x12\xe7\x01\n\x10\x42\x61tchDeleteRules\x12&.sift.rules.v1.BatchDeleteRulesRequest\x1a\'.sift.rules.v1.BatchDeleteRulesResponse\"\x81\x01\x88\x02\x01\x92\x41W\x12\x10\x42\x61tchDeleteRules\x1a\x43\x41rchives multiple rules. Deprecated: Use BatchArchiveRules instead.\x82\xd3\xe4\x93\x02\x1e\"\x19/api/v1/rules/batchDelete:\x01*\x12\xba\x01\n\x11\x42\x61tchArchiveRules\x12\'.sift.rules.v1.BatchArchiveRulesRequest\x1a(.sift.rules.v1.BatchArchiveRulesResponse\"R\x92\x41*\x12\x11\x42\x61tchArchiveRules\x1a\x15\x42\x61tch archives rules.\x82\xd3\xe4\x93\x02\x1f\"\x1a/api/v1/rules/batchArchive:\x01*\x12\xa4\x01\n\rUnarchiveRule\x12#.sift.rules.v1.UnarchiveRuleRequest\x1a$.sift.rules.v1.UnarchiveRuleResponse\"H\x92\x41#\x12\rUnarchiveRule\x1a\x12Unarchives a rule.\x82\xd3\xe4\x93\x02\x1c\"\x17/api/v1/rules/unarchive:\x01*\x12\xc6\x01\n\x13\x42\x61tchUnarchiveRules\x12).sift.rules.v1.BatchUnarchiveRulesRequest\x1a*.sift.rules.v1.BatchUnarchiveRulesResponse\"X\x92\x41.\x12\x13\x42\x61tchUnarchiveRules\x1a\x17\x42\x61tch unarchives rules.\x82\xd3\xe4\x93\x02!\"\x1c/api/v1/rules/batchUnarchive:\x01*\x12\xb6\x01\n\x0cUndeleteRule\x12\".sift.rules.v1.UndeleteRuleRequest\x1a#.sift.rules.v1.UndeleteRuleResponse\"]\x88\x02\x01\x92\x41\x36\x12\x0cUndeleteRule\x1a&Deprecated: Use UnarchiveRule instead.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules/undelete:\x01*\x12\xd9\x01\n\x12\x42\x61tchUndeleteRules\x12(.sift.rules.v1.BatchUndeleteRulesRequest\x1a).sift.rules.v1.BatchUndeleteRulesResponse\"n\x88\x02\x01\x92\x41\x42\x12\x12\x42\x61tchUndeleteRules\x1a,Deprecated: Use BatchUnarchiveRules instead.\x82\xd3\xe4\x93\x02 \"\x1b/api/v1/rules/batchUndelete:\x01*\x12\xdf\x01\n\rEvaluateRules\x12#.sift.rules.v1.EvaluateRulesRequest\x1a$.sift.rules.v1.EvaluateRulesResponse\"\x82\x01\x88\x02\x01\x92\x41[\x12\rEvaluateRules\x1aJEvaluates the provided rules and generate annotations based on the result.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/rules/evaluate:\x01*\x12\x84\x02\n\x16ViewHumanFriendlyRules\x12,.sift.rules.v1.ViewHumanFriendlyRulesRequest\x1a-.sift.rules.v1.ViewHumanFriendlyRulesResponse\"\x8c\x01\x88\x02\x01\x92\x41_\x12\x16ViewHumanFriendlyRules\x1a\x45Retrieve a JSON object containing all of the rules for a given asset.\x82\xd3\xe4\x93\x02!\x12\x1f/api/v1/rules:viewHumanFriendly\x12\xd6\x01\n\rViewJsonRules\x12#.sift.rules.v1.ViewJsonRulesRequest\x1a$.sift.rules.v1.ViewJsonRulesResponse\"z\x88\x02\x01\x92\x41V\x12\rViewJsonRules\x1a\x45Retrieve a JSON object containing all of the rules for a given asset.\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/rules:viewJson\x12\x94\x02\n\x18UpdateHumanFriendlyRules\x12..sift.rules.v1.UpdateHumanFriendlyRulesRequest\x1a/.sift.rules.v1.UpdateHumanFriendlyRulesResponse\"\x96\x01\x88\x02\x01\x92\x41\x64\x12\x18UpdateHumanFriendlyRules\x1aHBatch update rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02&\"!/api/v1/rules:updateHumanFriendly:\x01*\x12\x80\x02\n\x11ValidateJsonRules\x12\'.sift.rules.v1.ValidateJsonRulesRequest\x1a(.sift.rules.v1.ValidateJsonRulesResponse\"\x97\x01\x88\x02\x01\x92\x41l\x12\x11ValidateJsonRules\x1aWValidate a batch update for rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02\x1f\"\x1a/api/v1/rules:validateJson:\x01*\x12\xe7\x01\n\x0fUpdateJsonRules\x12%.sift.rules.v1.UpdateJsonRulesRequest\x1a&.sift.rules.v1.UpdateJsonRulesResponse\"\x84\x01\x88\x02\x01\x92\x41[\x12\x0fUpdateJsonRules\x1aHBatch update rules given the `rules_json` which is a JSON list of rules.\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v1/rules:updateJson:\x01*\x12\x94\x01\n\tListRules\x12\x1f.sift.rules.v1.ListRulesRequest\x1a .sift.rules.v1.ListRulesResponse\"D\x92\x41\'\x12\tListRules\x1a\x1aRetrieves a list of rules.\x82\xd3\xe4\x93\x02\x14\x12\x12/api/v1/rules:list\x12\xd9\x01\n\x10ListRuleVersions\x12&.sift.rules.v1.ListRuleVersionsRequest\x1a\'.sift.rules.v1.ListRuleVersionsResponse\"t\x92\x41I\x12\x10ListRuleVersions\x1a\x35Retrieves a list of rule versions for the given rule.\x82\xd3\xe4\x93\x02\"\x12 /api/v1/rules/{rule_id}/versions\x12\xb8\x01\n\x0eGetRuleVersion\x12$.sift.rules.v1.GetRuleVersionRequest\x1a%.sift.rules.v1.GetRuleVersionResponse\"Y\x92\x41\x39\x12\x0eGetRuleVersion\x1a\'Retrieves a specific version of a rule.\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/rules:version\x12\xdf\x01\n\x14\x42\x61tchGetRuleVersions\x12*.sift.rules.v1.BatchGetRuleVersionsRequest\x1a+.sift.rules.v1.BatchGetRuleVersionsResponse\"n\x92\x41\x42\x12\x14\x42\x61tchGetRuleVersions\x1a*Retrieves multiple rules by rule versions.\x82\xd3\xe4\x93\x02#\"\x1e/api/v1/rules:batchGetVersions:\x01*\x1a\xb1\x01\x92\x41\xad\x01\x12\x30Service to programmatically interact with rules.\x1ay\n\x1fRead more about what rules are.\x12Vhttps://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102B\x88\x01\n\x11\x63om.sift.rules.v1B\nRulesProtoP\x01\xa2\x02\x03SRX\xaa\x02\rSift.Rules.V1\xca\x02\rSift\\Rules\\V1\xe2\x02\x19Sift\\Rules\\V1\\GPBMetadata\xea\x02\x0fSift::Rules::V1\x92\x41\x10\x12\x0e\n\x0cRule Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -367,6 +367,16 @@ _globals['_WEBHOOKACTIONCONFIGURATION'].fields_by_name['webhook_id']._serialized_options = b'\340A\002' _globals['_ANNOTATIONACTIONCONFIGURATION'].fields_by_name['tag_ids']._loaded_options = None _globals['_ANNOTATIONACTIONCONFIGURATION'].fields_by_name['tag_ids']._serialized_options = b'\340A\002' + _globals['_FAMILYSTATREFERENCE'].fields_by_name['reference']._loaded_options = None + _globals['_FAMILYSTATREFERENCE'].fields_by_name['reference']._serialized_options = b'\340A\002' + _globals['_FAMILYSTATREFERENCE'].fields_by_name['family_id']._loaded_options = None + _globals['_FAMILYSTATREFERENCE'].fields_by_name['family_id']._serialized_options = b'\340A\002' + _globals['_FAMILYSTATREFERENCE'].fields_by_name['family_stat_name']._loaded_options = None + _globals['_FAMILYSTATREFERENCE'].fields_by_name['family_stat_name']._serialized_options = b'\340A\002' + _globals['_FAMILYSTATREFERENCE'].fields_by_name['family_stat_expression']._loaded_options = None + _globals['_FAMILYSTATREFERENCE'].fields_by_name['family_stat_expression']._serialized_options = b'\340A\002' + _globals['_FAMILYSTATREFERENCE'].fields_by_name['family_stat_range_name']._loaded_options = None + _globals['_FAMILYSTATREFERENCE'].fields_by_name['family_stat_range_name']._serialized_options = b'\340A\002' _globals['_EVALUATERULESREQUEST'].fields_by_name['rule_ids']._loaded_options = None _globals['_EVALUATERULESREQUEST'].fields_by_name['rule_ids']._serialized_options = b'\340A\002' _globals['_EVALUATERULESREQUEST']._loaded_options = None @@ -427,12 +437,12 @@ _globals['_RULESERVICE'].methods_by_name['GetRuleVersion']._serialized_options = b'\222A9\022\016GetRuleVersion\032\'Retrieves a specific version of a rule.\202\323\344\223\002\027\022\025/api/v1/rules:version' _globals['_RULESERVICE'].methods_by_name['BatchGetRuleVersions']._loaded_options = None _globals['_RULESERVICE'].methods_by_name['BatchGetRuleVersions']._serialized_options = b'\222AB\022\024BatchGetRuleVersions\032*Retrieves multiple rules by rule versions.\202\323\344\223\002#\"\036/api/v1/rules:batchGetVersions:\001*' - _globals['_SEARCHORDER']._serialized_start=13209 - _globals['_SEARCHORDER']._serialized_end=13301 - _globals['_ACTIONKIND']._serialized_start=13303 - _globals['_ACTIONKIND']._serialized_end=13395 - _globals['_CONDITIONCOMPARATOR']._serialized_start=13398 - _globals['_CONDITIONCOMPARATOR']._serialized_end=13571 + _globals['_SEARCHORDER']._serialized_start=13466 + _globals['_SEARCHORDER']._serialized_end=13558 + _globals['_ACTIONKIND']._serialized_start=13560 + _globals['_ACTIONKIND']._serialized_end=13652 + _globals['_CONDITIONCOMPARATOR']._serialized_start=13655 + _globals['_CONDITIONCOMPARATOR']._serialized_end=13828 _globals['_RULE']._serialized_start=405 _globals['_RULE']._serialized_end=1650 _globals['_RULECONDITION']._serialized_start=1653 @@ -571,16 +581,18 @@ _globals['_WEBHOOKACTIONCONFIGURATION']._serialized_end=11961 _globals['_ANNOTATIONACTIONCONFIGURATION']._serialized_start=11964 _globals['_ANNOTATIONACTIONCONFIGURATION']._serialized_end=12240 - _globals['_EVALUATERULESREQUEST']._serialized_start=12243 - _globals['_EVALUATERULESREQUEST']._serialized_end=12513 - _globals['_EVALUATEDANNOTATIONOPTIONS']._serialized_start=12515 - _globals['_EVALUATEDANNOTATIONOPTIONS']._serialized_end=12568 - _globals['_TIMERANGEQUERY']._serialized_start=12571 - _globals['_TIMERANGEQUERY']._serialized_end=12701 - _globals['_EVALUATERULESRESPONSE']._serialized_start=12704 - _globals['_EVALUATERULESRESPONSE']._serialized_end=12957 - _globals['_DRYRUNANNOTATION']._serialized_start=12960 - _globals['_DRYRUNANNOTATION']._serialized_end=13207 - _globals['_RULESERVICE']._serialized_start=13574 - _globals['_RULESERVICE']._serialized_end=18597 + _globals['_FAMILYSTATREFERENCE']._serialized_start=12243 + _globals['_FAMILYSTATREFERENCE']._serialized_end=12497 + _globals['_EVALUATERULESREQUEST']._serialized_start=12500 + _globals['_EVALUATERULESREQUEST']._serialized_end=12770 + _globals['_EVALUATEDANNOTATIONOPTIONS']._serialized_start=12772 + _globals['_EVALUATEDANNOTATIONOPTIONS']._serialized_end=12825 + _globals['_TIMERANGEQUERY']._serialized_start=12828 + _globals['_TIMERANGEQUERY']._serialized_end=12958 + _globals['_EVALUATERULESRESPONSE']._serialized_start=12961 + _globals['_EVALUATERULESRESPONSE']._serialized_end=13214 + _globals['_DRYRUNANNOTATION']._serialized_start=13217 + _globals['_DRYRUNANNOTATION']._serialized_end=13464 + _globals['_RULESERVICE']._serialized_start=13831 + _globals['_RULESERVICE']._serialized_end=18854 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/rules/v1/rules_pb2.pyi b/python/lib/sift/rules/v1/rules_pb2.pyi index ea5eeba878..e3e70771d4 100644 --- a/python/lib/sift/rules/v1/rules_pb2.pyi +++ b/python/lib/sift/rules/v1/rules_pb2.pyi @@ -1781,6 +1781,37 @@ class AnnotationActionConfiguration(google.protobuf.message.Message): global___AnnotationActionConfiguration = AnnotationActionConfiguration +@typing.final +class FamilyStatReference(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REFERENCE_FIELD_NUMBER: builtins.int + FAMILY_ID_FIELD_NUMBER: builtins.int + FAMILY_STAT_NAME_FIELD_NUMBER: builtins.int + FAMILY_STAT_EXPRESSION_FIELD_NUMBER: builtins.int + FAMILY_STAT_RANGE_NAME_FIELD_NUMBER: builtins.int + reference: builtins.str + """How to refer to the family stat in the expression, e.g. $A""" + family_id: builtins.str + """Choose the family, e.g. Sift Rocket Engine""" + family_stat_name: builtins.str + """Choose the stat, e.g. TC-TURB.avg""" + family_stat_expression: builtins.str + family_stat_range_name: builtins.str + """Choose the range by name, which will be used to resolve the alignment and range, e.g. Startup +/- 5s""" + def __init__( + self, + *, + reference: builtins.str = ..., + family_id: builtins.str = ..., + family_stat_name: builtins.str = ..., + family_stat_expression: builtins.str = ..., + family_stat_range_name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["family_id", b"family_id", "family_stat_expression", b"family_stat_expression", "family_stat_name", b"family_stat_name", "family_stat_range_name", b"family_stat_range_name", "reference", b"reference"]) -> None: ... + +global___FamilyStatReference = FamilyStatReference + @typing.final class EvaluateRulesRequest(google.protobuf.message.Message): """Deprecated - use RuleEvaluationService instead.""" diff --git a/python/lib/sift/saved_searches/v1/saved_searches_pb2.py b/python/lib/sift/saved_searches/v1/saved_searches_pb2.py index d0b0727d98..3e541a2967 100644 --- a/python/lib/sift/saved_searches/v1/saved_searches_pb2.py +++ b/python/lib/sift/saved_searches/v1/saved_searches_pb2.py @@ -19,7 +19,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sift/saved_searches/v1/saved_searches.proto\x12\x16sift.saved_searches.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xc5\x03\n\x0bSavedSearch\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12R\n\nproperties\x18\x04 \x01(\x0b\x32-.sift.saved_searches.v1.SavedSearchPropertiesB\x03\xe0\x41\x02R\nproperties\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\"\xa9\t\n\x15SavedSearchProperties\x12(\n\roverview_mode\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0coverviewMode\x12)\n\x0bsearch_term\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\nsearchTerm\x88\x01\x01\x12J\n\x0e\x66rom_date_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x0c\x66romDateTime\x88\x01\x01\x12\x46\n\x0cto_date_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x02R\ntoDateTime\x88\x01\x01\x12S\n\x0b\x61sset_items\x18\x05 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\nassetItems\x12Q\n\nuser_items\x18\x06 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\tuserItems\x12O\n\ttag_items\x18\x07 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x08tagItems\x12]\n\x10\x61nnotation_items\x18\x08 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x0f\x61nnotationItems\x12O\n\trun_items\x18\t \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x08runItems\x12\x66\n\x15report_template_items\x18\n \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x13reportTemplateItems\x12<\n\x15show_advanced_filters\x18\x0b \x01(\x08\x42\x03\xe0\x41\x01H\x03R\x13showAdvancedFilters\x88\x01\x01\x12\x33\n\x10include_archived\x18\x0c \x01(\x08\x42\x03\xe0\x41\x01H\x04R\x0fincludeArchived\x88\x01\x01\x12#\n\x08order_by\x18\r \x01(\tB\x03\xe0\x41\x01H\x05R\x07orderBy\x88\x01\x01\x12[\n\x0emetadata_items\x18\x0e \x03(\x0b\x32/.sift.saved_searches.v1.SavedSearchMetadataItemB\x03\xe0\x41\x01R\rmetadataItems\x12$\n\x08\x64uration\x18\x0f \x01(\tB\x03\xe0\x41\x01H\x06R\x08\x64uration\x88\x01\x01\x42\x0e\n\x0c_search_termB\x11\n\x0f_from_date_timeB\x0f\n\r_to_date_timeB\x18\n\x16_show_advanced_filtersB\x13\n\x11_include_archivedB\x0b\n\t_order_byB\x0b\n\t_duration\"E\n\x15SavedSearchFilterItem\x12\x13\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x02id\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\"\xaa\x01\n\x17SavedSearchMetadataItem\x12\x15\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x03key\x12#\n\x0cstring_value\x18\x02 \x01(\tH\x00R\x0bstringValue\x12#\n\x0cnumber_value\x18\x03 \x01(\x01H\x00R\x0bnumberValue\x12%\n\rboolean_value\x18\x04 \x01(\x08H\x00R\x0c\x62ooleanValueB\x07\n\x05value\"D\n\x15GetSavedSearchRequest\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\"e\n\x16GetSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\"\xab\x01\n\x18ListSavedSearchesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"\x8f\x01\n\x19ListSavedSearchesResponse\x12J\n\x0esaved_searches\x18\x01 \x03(\x0b\x32#.sift.saved_searches.v1.SavedSearchR\rsavedSearches\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xb5\x01\n\x18\x43reateSavedSearchRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12R\n\nproperties\x18\x02 \x01(\x0b\x32-.sift.saved_searches.v1.SavedSearchPropertiesB\x03\xe0\x41\x02R\nproperties\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"h\n\x19\x43reateSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\"G\n\x18\x44\x65leteSavedSearchRequest\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\"\x1b\n\x19\x44\x65leteSavedSearchResponse\"K\n\x1f\x42\x61tchDeleteSavedSearchesRequest\x12(\n\x10saved_search_ids\x18\x01 \x03(\tR\x0esavedSearchIds\"\"\n BatchDeleteSavedSearchesResponse\"\xa9\x01\n\x18UpdateSavedSearchRequest\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"h\n\x19UpdateSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch2\xdf\n\n\x12SavedSearchService\x12\xce\x01\n\x0eGetSavedSearch\x12-.sift.saved_searches.v1.GetSavedSearchRequest\x1a..sift.saved_searches.v1.GetSavedSearchResponse\"]\x92\x41*\x12\x0eGetSavedSearch\x1a\x18Retrieve a saved search.\x82\xd3\xe4\x93\x02*\x12(/api/v1/saved_searches/{saved_search_id}\x12\xc9\x01\n\x11\x43reateSavedSearch\x12\x30.sift.saved_searches.v1.CreateSavedSearchRequest\x1a\x31.sift.saved_searches.v1.CreateSavedSearchResponse\"O\x92\x41+\x12\x11\x43reateSavedSearch\x1a\x16\x43reate a saved search.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/saved_searches:\x01*\x12\xc4\x01\n\x11ListSavedSearches\x12\x30.sift.saved_searches.v1.ListSavedSearchesRequest\x1a\x31.sift.saved_searches.v1.ListSavedSearchesResponse\"J\x92\x41)\x12\x11ListSavedSearches\x1a\x14List saved searches.\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/saved_searches\x12\x8f\x02\n\x11UpdateSavedSearch\x12\x30.sift.saved_searches.v1.UpdateSavedSearchRequest\x1a\x31.sift.saved_searches.v1.UpdateSavedSearchResponse\"\x94\x01\x92\x41p\x12\x11UpdateSavedSearch\x1a[Updates an existing saved search using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x1b\x32\x16/api/v1/saved_searches:\x01*\x12\xd8\x01\n\x11\x44\x65leteSavedSearch\x12\x30.sift.saved_searches.v1.DeleteSavedSearchRequest\x1a\x31.sift.saved_searches.v1.DeleteSavedSearchResponse\"^\x92\x41+\x12\x11\x44\x65leteSavedSearch\x1a\x16\x44\x65lete a saved search.\x82\xd3\xe4\x93\x02**(/api/v1/saved_searches/{saved_search_id}\x12\xf7\x01\n\x18\x42\x61tchDeleteSavedSearches\x12\x37.sift.saved_searches.v1.BatchDeleteSavedSearchesRequest\x1a\x38.sift.saved_searches.v1.BatchDeleteSavedSearchesResponse\"h\x92\x41\x38\x12\x18\x42\x61tchDeleteSavedSearches\x1a\x1c\x42\x61tch delete saved searches.\x82\xd3\xe4\x93\x02\'\"\"/api/v1/saved_searches:batchDelete:\x01*B\xc0\x01\n\x1a\x63om.sift.saved_searches.v1B\x12SavedSearchesProtoP\x01\xa2\x02\x03SSX\xaa\x02\x15Sift.SavedSearches.V1\xca\x02\x15Sift\\SavedSearches\\V1\xe2\x02!Sift\\SavedSearches\\V1\\GPBMetadata\xea\x02\x17Sift::SavedSearches::V1\x92\x41\x17\x12\x15\n\x13SavedSearch serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sift/saved_searches/v1/saved_searches.proto\x12\x16sift.saved_searches.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xc5\x03\n\x0bSavedSearch\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\x12,\n\x0forganization_id\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x0eorganizationId\x12\x17\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x02R\x04name\x12R\n\nproperties\x18\x04 \x01(\x0b\x32-.sift.saved_searches.v1.SavedSearchPropertiesB\x03\xe0\x41\x02R\nproperties\x12\x30\n\x12\x63reated_by_user_id\x18\x05 \x01(\tB\x03\xe0\x41\x02R\x0f\x63reatedByUserId\x12\x32\n\x13modified_by_user_id\x18\x06 \x01(\tB\x03\xe0\x41\x02R\x10modifiedByUserId\x12\x42\n\x0c\x63reated_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0b\x63reatedDate\x12\x44\n\rmodified_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02R\x0cmodifiedDate\"\xa9\t\n\x15SavedSearchProperties\x12(\n\roverview_mode\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x0coverviewMode\x12)\n\x0bsearch_term\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00R\nsearchTerm\x88\x01\x01\x12J\n\x0e\x66rom_date_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x01R\x0c\x66romDateTime\x88\x01\x01\x12\x46\n\x0cto_date_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01H\x02R\ntoDateTime\x88\x01\x01\x12S\n\x0b\x61sset_items\x18\x05 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\nassetItems\x12Q\n\nuser_items\x18\x06 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\tuserItems\x12O\n\ttag_items\x18\x07 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x08tagItems\x12]\n\x10\x61nnotation_items\x18\x08 \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x0f\x61nnotationItems\x12O\n\trun_items\x18\t \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x08runItems\x12\x66\n\x15report_template_items\x18\n \x03(\x0b\x32-.sift.saved_searches.v1.SavedSearchFilterItemB\x03\xe0\x41\x01R\x13reportTemplateItems\x12<\n\x15show_advanced_filters\x18\x0b \x01(\x08\x42\x03\xe0\x41\x01H\x03R\x13showAdvancedFilters\x88\x01\x01\x12\x33\n\x10include_archived\x18\x0c \x01(\x08\x42\x03\xe0\x41\x01H\x04R\x0fincludeArchived\x88\x01\x01\x12#\n\x08order_by\x18\r \x01(\tB\x03\xe0\x41\x01H\x05R\x07orderBy\x88\x01\x01\x12[\n\x0emetadata_items\x18\x0e \x03(\x0b\x32/.sift.saved_searches.v1.SavedSearchMetadataItemB\x03\xe0\x41\x01R\rmetadataItems\x12$\n\x08\x64uration\x18\x0f \x01(\tB\x03\xe0\x41\x01H\x06R\x08\x64uration\x88\x01\x01\x42\x0e\n\x0c_search_termB\x11\n\x0f_from_date_timeB\x0f\n\r_to_date_timeB\x18\n\x16_show_advanced_filtersB\x13\n\x11_include_archivedB\x0b\n\t_order_byB\x0b\n\t_duration\"E\n\x15SavedSearchFilterItem\x12\x13\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x02id\x12\x17\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02R\x04name\"\xaa\x01\n\x17SavedSearchMetadataItem\x12\x15\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x03key\x12#\n\x0cstring_value\x18\x02 \x01(\tH\x00R\x0bstringValue\x12#\n\x0cnumber_value\x18\x03 \x01(\x01H\x00R\x0bnumberValue\x12%\n\rboolean_value\x18\x04 \x01(\x08H\x00R\x0c\x62ooleanValueB\x07\n\x05value\"D\n\x15GetSavedSearchRequest\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\"e\n\x16GetSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\"\xcb\x01\n\x18ListSavedSearchesRequest\x12 \n\tpage_size\x18\x01 \x01(\rB\x03\xe0\x41\x01R\x08pageSize\x12\"\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01R\tpageToken\x12\x1b\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x06\x66ilter\x12,\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\x12\x1e\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01R\x07orderBy\"\x8f\x01\n\x19ListSavedSearchesResponse\x12J\n\x0esaved_searches\x18\x01 \x03(\x0b\x32#.sift.saved_searches.v1.SavedSearchR\rsavedSearches\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xb5\x01\n\x18\x43reateSavedSearchRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02R\x04name\x12R\n\nproperties\x18\x02 \x01(\x0b\x32-.sift.saved_searches.v1.SavedSearchPropertiesB\x03\xe0\x41\x02R\nproperties\x12,\n\x0forganization_id\x18\x03 \x01(\tB\x03\xe0\x41\x01R\x0eorganizationId\"h\n\x19\x43reateSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\"G\n\x18\x44\x65leteSavedSearchRequest\x12+\n\x0fsaved_search_id\x18\x01 \x01(\tB\x03\xe0\x41\x02R\rsavedSearchId\"\x1b\n\x19\x44\x65leteSavedSearchResponse\"K\n\x1f\x42\x61tchDeleteSavedSearchesRequest\x12(\n\x10saved_search_ids\x18\x01 \x03(\tR\x0esavedSearchIds\"\"\n BatchDeleteSavedSearchesResponse\"\xa9\x01\n\x18UpdateSavedSearchRequest\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch\x12@\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02R\nupdateMask\"h\n\x19UpdateSavedSearchResponse\x12K\n\x0csaved_search\x18\x01 \x01(\x0b\x32#.sift.saved_searches.v1.SavedSearchB\x03\xe0\x41\x02R\x0bsavedSearch2\xdf\n\n\x12SavedSearchService\x12\xce\x01\n\x0eGetSavedSearch\x12-.sift.saved_searches.v1.GetSavedSearchRequest\x1a..sift.saved_searches.v1.GetSavedSearchResponse\"]\x92\x41*\x12\x0eGetSavedSearch\x1a\x18Retrieve a saved search.\x82\xd3\xe4\x93\x02*\x12(/api/v1/saved_searches/{saved_search_id}\x12\xc9\x01\n\x11\x43reateSavedSearch\x12\x30.sift.saved_searches.v1.CreateSavedSearchRequest\x1a\x31.sift.saved_searches.v1.CreateSavedSearchResponse\"O\x92\x41+\x12\x11\x43reateSavedSearch\x1a\x16\x43reate a saved search.\x82\xd3\xe4\x93\x02\x1b\"\x16/api/v1/saved_searches:\x01*\x12\xc4\x01\n\x11ListSavedSearches\x12\x30.sift.saved_searches.v1.ListSavedSearchesRequest\x1a\x31.sift.saved_searches.v1.ListSavedSearchesResponse\"J\x92\x41)\x12\x11ListSavedSearches\x1a\x14List saved searches.\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/saved_searches\x12\x8f\x02\n\x11UpdateSavedSearch\x12\x30.sift.saved_searches.v1.UpdateSavedSearchRequest\x1a\x31.sift.saved_searches.v1.UpdateSavedSearchResponse\"\x94\x01\x92\x41p\x12\x11UpdateSavedSearch\x1a[Updates an existing saved search using using the list of fields specified in `update_mask`.\x82\xd3\xe4\x93\x02\x1b\x32\x16/api/v1/saved_searches:\x01*\x12\xd8\x01\n\x11\x44\x65leteSavedSearch\x12\x30.sift.saved_searches.v1.DeleteSavedSearchRequest\x1a\x31.sift.saved_searches.v1.DeleteSavedSearchResponse\"^\x92\x41+\x12\x11\x44\x65leteSavedSearch\x1a\x16\x44\x65lete a saved search.\x82\xd3\xe4\x93\x02**(/api/v1/saved_searches/{saved_search_id}\x12\xf7\x01\n\x18\x42\x61tchDeleteSavedSearches\x12\x37.sift.saved_searches.v1.BatchDeleteSavedSearchesRequest\x1a\x38.sift.saved_searches.v1.BatchDeleteSavedSearchesResponse\"h\x92\x41\x38\x12\x18\x42\x61tchDeleteSavedSearches\x1a\x1c\x42\x61tch delete saved searches.\x82\xd3\xe4\x93\x02\'\"\"/api/v1/saved_searches:batchDelete:\x01*B\xc0\x01\n\x1a\x63om.sift.saved_searches.v1B\x12SavedSearchesProtoP\x01\xa2\x02\x03SSX\xaa\x02\x15Sift.SavedSearches.V1\xca\x02\x15Sift\\SavedSearches\\V1\xe2\x02!Sift\\SavedSearches\\V1\\GPBMetadata\xea\x02\x17Sift::SavedSearches::V1\x92\x41\x17\x12\x15\n\x13SavedSearch serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -91,6 +91,8 @@ _globals['_LISTSAVEDSEARCHESREQUEST'].fields_by_name['filter']._serialized_options = b'\340A\001' _globals['_LISTSAVEDSEARCHESREQUEST'].fields_by_name['organization_id']._loaded_options = None _globals['_LISTSAVEDSEARCHESREQUEST'].fields_by_name['organization_id']._serialized_options = b'\340A\001' + _globals['_LISTSAVEDSEARCHESREQUEST'].fields_by_name['order_by']._loaded_options = None + _globals['_LISTSAVEDSEARCHESREQUEST'].fields_by_name['order_by']._serialized_options = b'\340A\001' _globals['_CREATESAVEDSEARCHREQUEST'].fields_by_name['name']._loaded_options = None _globals['_CREATESAVEDSEARCHREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002' _globals['_CREATESAVEDSEARCHREQUEST'].fields_by_name['properties']._loaded_options = None @@ -132,25 +134,25 @@ _globals['_GETSAVEDSEARCHRESPONSE']._serialized_start=2215 _globals['_GETSAVEDSEARCHRESPONSE']._serialized_end=2316 _globals['_LISTSAVEDSEARCHESREQUEST']._serialized_start=2319 - _globals['_LISTSAVEDSEARCHESREQUEST']._serialized_end=2490 - _globals['_LISTSAVEDSEARCHESRESPONSE']._serialized_start=2493 - _globals['_LISTSAVEDSEARCHESRESPONSE']._serialized_end=2636 - _globals['_CREATESAVEDSEARCHREQUEST']._serialized_start=2639 - _globals['_CREATESAVEDSEARCHREQUEST']._serialized_end=2820 - _globals['_CREATESAVEDSEARCHRESPONSE']._serialized_start=2822 - _globals['_CREATESAVEDSEARCHRESPONSE']._serialized_end=2926 - _globals['_DELETESAVEDSEARCHREQUEST']._serialized_start=2928 - _globals['_DELETESAVEDSEARCHREQUEST']._serialized_end=2999 - _globals['_DELETESAVEDSEARCHRESPONSE']._serialized_start=3001 - _globals['_DELETESAVEDSEARCHRESPONSE']._serialized_end=3028 - _globals['_BATCHDELETESAVEDSEARCHESREQUEST']._serialized_start=3030 - _globals['_BATCHDELETESAVEDSEARCHESREQUEST']._serialized_end=3105 - _globals['_BATCHDELETESAVEDSEARCHESRESPONSE']._serialized_start=3107 - _globals['_BATCHDELETESAVEDSEARCHESRESPONSE']._serialized_end=3141 - _globals['_UPDATESAVEDSEARCHREQUEST']._serialized_start=3144 - _globals['_UPDATESAVEDSEARCHREQUEST']._serialized_end=3313 - _globals['_UPDATESAVEDSEARCHRESPONSE']._serialized_start=3315 - _globals['_UPDATESAVEDSEARCHRESPONSE']._serialized_end=3419 - _globals['_SAVEDSEARCHSERVICE']._serialized_start=3422 - _globals['_SAVEDSEARCHSERVICE']._serialized_end=4797 + _globals['_LISTSAVEDSEARCHESREQUEST']._serialized_end=2522 + _globals['_LISTSAVEDSEARCHESRESPONSE']._serialized_start=2525 + _globals['_LISTSAVEDSEARCHESRESPONSE']._serialized_end=2668 + _globals['_CREATESAVEDSEARCHREQUEST']._serialized_start=2671 + _globals['_CREATESAVEDSEARCHREQUEST']._serialized_end=2852 + _globals['_CREATESAVEDSEARCHRESPONSE']._serialized_start=2854 + _globals['_CREATESAVEDSEARCHRESPONSE']._serialized_end=2958 + _globals['_DELETESAVEDSEARCHREQUEST']._serialized_start=2960 + _globals['_DELETESAVEDSEARCHREQUEST']._serialized_end=3031 + _globals['_DELETESAVEDSEARCHRESPONSE']._serialized_start=3033 + _globals['_DELETESAVEDSEARCHRESPONSE']._serialized_end=3060 + _globals['_BATCHDELETESAVEDSEARCHESREQUEST']._serialized_start=3062 + _globals['_BATCHDELETESAVEDSEARCHESREQUEST']._serialized_end=3137 + _globals['_BATCHDELETESAVEDSEARCHESRESPONSE']._serialized_start=3139 + _globals['_BATCHDELETESAVEDSEARCHESRESPONSE']._serialized_end=3173 + _globals['_UPDATESAVEDSEARCHREQUEST']._serialized_start=3176 + _globals['_UPDATESAVEDSEARCHREQUEST']._serialized_end=3345 + _globals['_UPDATESAVEDSEARCHRESPONSE']._serialized_start=3347 + _globals['_UPDATESAVEDSEARCHRESPONSE']._serialized_end=3451 + _globals['_SAVEDSEARCHSERVICE']._serialized_start=3454 + _globals['_SAVEDSEARCHSERVICE']._serialized_end=4829 # @@protoc_insertion_point(module_scope) diff --git a/python/lib/sift/saved_searches/v1/saved_searches_pb2.pyi b/python/lib/sift/saved_searches/v1/saved_searches_pb2.pyi index 44f4d37e8e..6e0bb3dd8c 100644 --- a/python/lib/sift/saved_searches/v1/saved_searches_pb2.pyi +++ b/python/lib/sift/saved_searches/v1/saved_searches_pb2.pyi @@ -225,6 +225,7 @@ class ListSavedSearchesRequest(google.protobuf.message.Message): PAGE_TOKEN_FIELD_NUMBER: builtins.int FILTER_FIELD_NUMBER: builtins.int ORGANIZATION_ID_FIELD_NUMBER: builtins.int + ORDER_BY_FIELD_NUMBER: builtins.int page_size: builtins.int """The maximum number of saved searches to return. The service may return fewer than this value. If unspecified, at most 50 saved searches will be returned. The maximum value is 1000; values above @@ -244,6 +245,13 @@ class ListSavedSearchesRequest(google.protobuf.message.Message): """ organization_id: builtins.str """This field is only required if your user belongs to multiple organizations.""" + order_by: builtins.str + """How to order the retrieved saved searches. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...". + Available fields to order_by are `name`, `created_date`, and `modified_date`. + If left empty, items are ordered by `created_date` in ascending order (oldest-first). + For more information about the format of this field, read [this](https://google.aip.dev/132#ordering) + Example: "created_date desc,modified_date" + """ def __init__( self, *, @@ -251,8 +259,9 @@ class ListSavedSearchesRequest(google.protobuf.message.Message): page_token: builtins.str = ..., filter: builtins.str = ..., organization_id: builtins.str = ..., + order_by: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing.Literal["filter", b"filter", "organization_id", b"organization_id", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "order_by", b"order_by", "organization_id", b"organization_id", "page_size", b"page_size", "page_token", b"page_token"]) -> None: ... global___ListSavedSearchesRequest = ListSavedSearchesRequest diff --git a/rust/crates/sift_cli/src/cmd/import/parquet/detect_parquet_schema.rs b/rust/crates/sift_cli/src/cmd/import/parquet/detect_parquet_schema.rs index 2c475730f9..da1b830505 100644 --- a/rust/crates/sift_cli/src/cmd/import/parquet/detect_parquet_schema.rs +++ b/rust/crates/sift_cli/src/cmd/import/parquet/detect_parquet_schema.rs @@ -98,6 +98,7 @@ pub fn detect_flat_dataset_config( ParquetFlatDatasetConfig { time_column, data_columns, + use_embedded_config: false, }, format_source, )) diff --git a/rust/crates/sift_rs/src/gen/mod.rs b/rust/crates/sift_rs/src/gen/mod.rs index ac38a07545..82c8d17774 100644 --- a/rust/crates/sift_rs/src/gen/mod.rs +++ b/rust/crates/sift_rs/src/gen/mod.rs @@ -146,6 +146,13 @@ pub mod sift { // @@protoc_insertion_point(sift.external_sync.v1) } } + pub mod families { + // @@protoc_insertion_point(attribute:sift.families.v1) + pub mod v1 { + include!("sift/families/v1/sift.families.v1.rs"); + // @@protoc_insertion_point(sift.families.v1) + } + } pub mod filters { // @@protoc_insertion_point(attribute:sift.filters.v1) pub mod v1 { diff --git a/rust/crates/sift_rs/src/gen/sift/canvas/v1/sift.canvas.v1.rs b/rust/crates/sift_rs/src/gen/sift/canvas/v1/sift.canvas.v1.rs index 64ecfdc887..5c708c431f 100644 --- a/rust/crates/sift_rs/src/gen/sift/canvas/v1/sift.canvas.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift/canvas/v1/sift.canvas.v1.rs @@ -93,9 +93,9 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x31, 0xe2, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x3a, 0x3a, 0x56, - 0x31, 0x4a, 0xaf, 0x05, 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x12, 0x01, 0x0a, 0x08, 0x0a, 0x01, + 0x31, 0x4a, 0xaf, 0x05, 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x13, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x17, - 0x0a, 0xea, 0x01, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x07, 0x00, 0x12, 0x01, 0x1a, 0xdd, 0x01, + 0x0a, 0xea, 0x01, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x08, 0x00, 0x13, 0x01, 0x1a, 0xdd, 0x01, 0x20, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x41, 0x6c, 0x73, 0x6f, 0x20, @@ -110,33 +110,33 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x41, 0x49, 0x4c, 0x45, 0x44, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x79, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, - 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x07, 0x05, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, - 0x00, 0x01, 0x12, 0x03, 0x08, 0x02, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, - 0x03, 0x08, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x08, - 0x2d, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x09, 0x02, 0x2a, - 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x09, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x09, 0x2d, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, - 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x0a, 0x02, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, - 0x02, 0x12, 0x03, 0x0a, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, - 0x03, 0x0a, 0x2d, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x0b, - 0x02, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x0b, 0x02, 0x2f, 0x0a, - 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x0b, 0x2d, 0x2e, 0x0a, 0x0c, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x0c, 0x02, 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x05, - 0x00, 0x02, 0x04, 0x12, 0x03, 0x0c, 0x02, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, - 0x02, 0x12, 0x03, 0x0c, 0x2f, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x01, 0x12, - 0x03, 0x0d, 0x02, 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x05, 0x12, 0x03, 0x0d, 0x02, - 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x02, 0x12, 0x03, 0x0d, 0x2f, 0x30, 0x0a, - 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x0e, 0x02, 0x24, 0x0a, 0x0b, 0x0a, - 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x03, 0x0e, 0x02, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, - 0x02, 0x06, 0x02, 0x12, 0x03, 0x0e, 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, - 0x01, 0x12, 0x03, 0x0f, 0x02, 0x26, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x07, 0x12, 0x03, - 0x0f, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, 0x0f, 0x29, - 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x10, 0x02, 0x23, 0x0a, - 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x08, 0x12, 0x03, 0x10, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, - 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, 0x03, 0x10, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, - 0x02, 0x09, 0x01, 0x12, 0x03, 0x11, 0x02, 0x31, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x09, - 0x12, 0x03, 0x11, 0x02, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x02, 0x12, 0x03, - 0x11, 0x34, 0x35, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x08, 0x05, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x00, 0x01, 0x12, 0x03, 0x09, 0x02, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, + 0x03, 0x09, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x09, + 0x2d, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x0a, 0x02, 0x2a, + 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x0a, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, + 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x0a, 0x2d, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x0b, 0x02, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, + 0x02, 0x12, 0x03, 0x0b, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, + 0x03, 0x0b, 0x2d, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x0c, + 0x02, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x0c, 0x02, 0x2f, 0x0a, + 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x0c, 0x2d, 0x2e, 0x0a, 0x0c, 0x0a, + 0x05, 0x05, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x0d, 0x02, 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x05, + 0x00, 0x02, 0x04, 0x12, 0x03, 0x0d, 0x02, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, + 0x02, 0x12, 0x03, 0x0d, 0x2f, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x01, 0x12, + 0x03, 0x0e, 0x02, 0x2c, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x05, 0x12, 0x03, 0x0e, 0x02, + 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x02, 0x12, 0x03, 0x0e, 0x2f, 0x30, 0x0a, + 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x0f, 0x02, 0x24, 0x0a, 0x0b, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x03, 0x0f, 0x02, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x06, 0x02, 0x12, 0x03, 0x0f, 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, + 0x01, 0x12, 0x03, 0x10, 0x02, 0x26, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x07, 0x12, 0x03, + 0x10, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, 0x10, 0x29, + 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x11, 0x02, 0x23, 0x0a, + 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x08, 0x12, 0x03, 0x11, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, 0x03, 0x11, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x09, 0x01, 0x12, 0x03, 0x12, 0x02, 0x31, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x09, + 0x12, 0x03, 0x12, 0x02, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x02, 0x12, 0x03, + 0x12, 0x34, 0x35, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, ]; include!("sift.canvas.v1.serde.rs"); // @@protoc_insertion_point(module) \ No newline at end of file diff --git a/rust/crates/sift_rs/src/gen/sift/common/v1/sift.common.v1.rs b/rust/crates/sift_rs/src/gen/sift/common/v1/sift.common.v1.rs index fe6ee7d056..58fb7a1acc 100644 --- a/rust/crates/sift_rs/src/gen/sift/common/v1/sift.common.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift/common/v1/sift.common.v1.rs @@ -1,6 +1,6 @@ // @generated // This file is @generated by prost-build. -#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct FilterField { #[prost(string, tag="1")] pub field_name: ::prost::alloc::string::String, @@ -18,6 +18,18 @@ pub struct FilterField { pub functions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, #[prost(bool, optional, tag="8")] pub nullable: ::core::option::Option, + #[prost(string, tag="9")] + pub entity: ::prost::alloc::string::String, + #[prost(string, tag="10")] + pub name: ::prost::alloc::string::String, + #[prost(string, tag="11")] + pub key: ::prost::alloc::string::String, + #[prost(enumeration="FilterFieldKind", tag="12")] + pub field_kind: i32, + #[prost(message, repeated, tag="13")] + pub fields: ::prost::alloc::vec::Vec, + #[prost(string, repeated, tag="14")] + pub quantifiers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] @@ -68,6 +80,41 @@ impl FilterFieldType { } #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] +pub enum FilterFieldKind { + Unspecified = 0, + Scalar = 1, + Map = 2, + Relation = 3, + Directive = 4, +} +impl FilterFieldKind { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Self::Unspecified => "FILTER_FIELD_KIND_UNSPECIFIED", + Self::Scalar => "FILTER_FIELD_KIND_SCALAR", + Self::Map => "FILTER_FIELD_KIND_MAP", + Self::Relation => "FILTER_FIELD_KIND_RELATION", + Self::Directive => "FILTER_FIELD_KIND_DIRECTIVE", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "FILTER_FIELD_KIND_UNSPECIFIED" => Some(Self::Unspecified), + "FILTER_FIELD_KIND_SCALAR" => Some(Self::Scalar), + "FILTER_FIELD_KIND_MAP" => Some(Self::Map), + "FILTER_FIELD_KIND_RELATION" => Some(Self::Relation), + "FILTER_FIELD_KIND_DIRECTIVE" => Some(Self::Directive), + _ => None, + } + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] pub enum ActionType { Unspecified = 0, IngestData = 110, @@ -180,10 +227,10 @@ impl ResourceType { } /// Encoded file descriptor set for the `sift.common.v1` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0x81, 0x18, 0x0a, 0x21, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x0a, 0xae, 0x31, 0x0a, 0x21, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x22, 0xb1, 0x02, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x22, 0x86, 0x04, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, @@ -201,362 +248,564 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x0a, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2a, 0xa0, 0x02, 0x0a, 0x0f, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, - 0x0a, 0x1d, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, - 0x1f, 0x0a, 0x1b, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x02, - 0x12, 0x19, 0x0a, 0x15, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x46, - 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x49, 0x4c, 0x54, 0x45, - 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x55, 0x52, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x49, 0x4c, 0x54, 0x45, - 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, - 0x42, 0x4c, 0x45, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, - 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, - 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, - 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x55, 0x49, 0x44, 0x10, 0x08, 0x42, 0x80, 0x01, - 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, - 0x0e, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, - 0xe2, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x10, - 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, - 0x4a, 0xe9, 0x11, 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x2d, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, - 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x17, 0x0a, - 0x33, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x06, 0x00, 0x10, 0x01, 0x1a, 0x27, 0x20, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x06, 0x05, 0x14, - 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x07, 0x02, 0x1f, 0x0a, 0x0b, - 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x07, 0x02, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x05, - 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x07, 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, - 0x01, 0x01, 0x12, 0x03, 0x08, 0x02, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, - 0x03, 0x08, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x08, - 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x09, 0x02, 0x1d, - 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x03, 0x09, 0x02, 0x22, 0x0a, 0x0c, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x09, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x05, - 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x0a, 0x02, 0x17, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, - 0x03, 0x12, 0x03, 0x0a, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, - 0x03, 0x0a, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x0b, - 0x02, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x04, 0x12, 0x03, 0x0b, 0x02, 0x1d, 0x0a, - 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x02, 0x12, 0x03, 0x0b, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x0c, 0x02, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x05, - 0x00, 0x02, 0x05, 0x12, 0x03, 0x0c, 0x02, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, - 0x02, 0x12, 0x03, 0x0c, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, - 0x03, 0x0d, 0x02, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x03, 0x0d, 0x02, - 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x0d, 0x1d, 0x1e, 0x0a, - 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x0e, 0x02, 0x18, 0x0a, 0x0b, 0x0a, - 0x04, 0x05, 0x00, 0x02, 0x07, 0x12, 0x03, 0x0e, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, - 0x02, 0x07, 0x02, 0x12, 0x03, 0x0e, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, - 0x01, 0x12, 0x03, 0x0f, 0x02, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x08, 0x12, 0x03, - 0x0f, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, 0x03, 0x0f, 0x1b, - 0x1c, 0x0a, 0x51, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x13, 0x00, 0x2d, 0x01, 0x1a, 0x45, 0x20, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x73, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x45, 0x4c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x13, 0x08, 0x13, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x15, 0x02, 0x08, 0x0a, 0x60, - 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x15, 0x02, 0x18, 0x1a, 0x53, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x45, 0x4c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x65, - 0x2e, 0x67, 0x2e, 0x2c, 0x20, 0x22, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x2c, 0x20, 0x22, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0x29, 0x2e, 0x0a, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x15, 0x09, 0x13, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x15, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x01, 0x06, 0x12, 0x03, 0x18, 0x02, 0x11, 0x0a, 0x79, 0x0a, 0x04, 0x04, 0x00, - 0x02, 0x01, 0x12, 0x03, 0x18, 0x02, 0x1b, 0x1a, 0x6c, 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x61, - 0x74, 0x61, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x20, 0x55, 0x55, 0x49, 0x44, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x45, - 0x4e, 0x55, 0x4d, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x6e, 0x6f, - 0x0a, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x65, - 0x61, 0x6e, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x65, 0x65, - 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, - 0x18, 0x12, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x18, 0x19, - 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x1a, 0x02, 0x0a, 0x0a, - 0x54, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x1a, 0x02, 0x22, 0x1a, 0x47, 0x20, 0x49, - 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, - 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, - 0x2c, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, - 0x1a, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x1a, 0x12, - 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x1a, 0x20, 0x21, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x1c, 0x02, 0x08, 0x0a, 0x5a, 0x0a, - 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x1c, 0x02, 0x19, 0x1a, 0x4d, 0x20, 0x48, 0x75, 0x6d, - 0x61, 0x6e, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x2c, 0x20, 0x22, 0x57, 0x68, 0x65, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x77, 0x61, 0x73, 0x20, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x29, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x03, 0x01, 0x12, 0x03, 0x1c, 0x09, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, - 0x12, 0x03, 0x1c, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x05, 0x12, 0x03, - 0x1e, 0x02, 0x08, 0x0a, 0x5c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x1e, 0x02, 0x1a, - 0x1a, 0x4f, 0x20, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x2d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, - 0x79, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x28, - 0x65, 0x2e, 0x67, 0x2e, 0x2c, 0x20, 0x22, 0x41, 0x73, 0x73, 0x65, 0x74, 0x20, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x22, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x29, 0x2e, - 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x1e, 0x09, 0x15, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x1e, 0x18, 0x19, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x22, 0x02, 0x0a, 0x0a, 0xe7, 0x01, 0x0a, 0x04, - 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x22, 0x02, 0x20, 0x1a, 0xd9, 0x01, 0x20, 0x43, 0x45, 0x4c, - 0x20, 0x69, 0x6e, 0x66, 0x69, 0x78, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x22, 0x3d, 0x3d, 0x22, 0x2c, 0x20, 0x22, 0x69, 0x6e, 0x22, 0x2e, 0x20, 0x55, 0x73, - 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x27, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x62, 0x75, 0x74, - 0x20, 0x6e, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x65, 0x72, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, - 0x74, 0x73, 0x20, 0x69, 0x74, 0x2e, 0x0a, 0x20, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, - 0x63, 0x6f, 0x70, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x05, 0x12, 0x03, - 0x22, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x22, 0x12, - 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x22, 0x1e, 0x1f, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x04, 0x12, 0x03, 0x25, 0x02, 0x0a, 0x0a, 0x9c, 0x01, - 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x25, 0x02, 0x20, 0x1a, 0x8e, 0x01, 0x20, 0x43, - 0x45, 0x4c, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x65, - 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x22, 0x2c, 0x20, - 0x22, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x22, 0x2e, 0x0a, 0x20, - 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x65, 0x73, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6d, - 0x6d, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, 0x03, 0x25, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x06, 0x01, 0x12, 0x03, 0x25, 0x12, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, - 0x03, 0x12, 0x03, 0x25, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x04, 0x12, - 0x03, 0x2c, 0x02, 0x0a, 0x0a, 0xbb, 0x03, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, 0x2c, - 0x02, 0x1d, 0x1a, 0xad, 0x03, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x61, 0x72, 0x65, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x6e, 0x75, 0x6c, 0x6c, - 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x20, 0x6b, 0x65, 0x79, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, 0x75, - 0x65, 0x3a, 0x0a, 0x20, 0x61, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x20, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x20, 0x61, 0x73, 0x20, - 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x60, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, - 0x3d, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x60, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, - 0x0a, 0x20, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x21, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x60, 0x20, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, 0x74, 0x2e, 0x0a, 0x20, 0x28, 0x54, 0x68, 0x65, - 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, - 0x65, 0x20, 0x22, 0x73, 0x65, 0x74, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x22, - 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2c, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x6e, - 0x20, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, - 0x20, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x72, 0x65, 0x74, - 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x29, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6e, 0x20, 0x75, 0x6e, - 0x73, 0x65, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x0a, - 0x20, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0x20, 0x72, 0x61, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x6c, - 0x79, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x22, - 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x05, 0x12, 0x03, 0x2c, 0x0b, 0x0f, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x2c, 0x10, 0x18, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x2c, 0x1b, 0x1c, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, 0x0a, 0x80, 0x0c, 0x0a, 0x20, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2a, 0xab, 0x02, 0x0a, 0x0a, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x45, 0x53, 0x54, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x10, 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x78, 0x12, 0x1d, - 0x0a, 0x18, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, - 0x45, 0x57, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x53, 0x10, 0xc8, 0x01, 0x12, 0x1a, 0x0a, - 0x15, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x45, - 0x57, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0xcd, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x41, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x10, - 0xd2, 0x01, 0x12, 0x1d, 0x0a, 0x18, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x45, 0x44, 0x49, 0x54, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x53, 0x10, 0xb6, - 0x02, 0x12, 0x1a, 0x0a, 0x15, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x45, 0x44, 0x49, 0x54, 0x5f, 0x54, 0x41, 0x47, 0x53, 0x10, 0xb8, 0x02, 0x12, 0x1e, 0x0a, - 0x19, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x44, 0x49, - 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb9, 0x02, 0x12, 0x18, 0x0a, - 0x13, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x52, 0x43, - 0x48, 0x49, 0x56, 0x45, 0x10, 0x90, 0x03, 0x42, 0x7f, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0xa2, 0x02, 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x5c, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0x94, 0x08, 0x0a, 0x06, 0x12, 0x04, 0x00, - 0x00, 0x1b, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, - 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x17, 0x0a, 0x7f, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x07, - 0x00, 0x1b, 0x01, 0x1a, 0x73, 0x20, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, - 0x65, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x20, 0x6f, - 0x6e, 0x20, 0x61, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x0a, 0x20, 0x47, 0x72, - 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x41, 0x42, 0x41, 0x43, 0x20, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x6e, 0x20, 0x75, 0x70, 0x20, 0x62, - 0x79, 0x20, 0x43, 0x52, 0x55, 0x44, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, - 0x03, 0x07, 0x05, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x08, - 0x02, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x08, 0x02, 0x1e, 0x0a, - 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x08, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x0a, 0x02, 0x19, 0x0a, 0x40, 0x0a, 0x04, 0x05, - 0x00, 0x02, 0x01, 0x12, 0x03, 0x0a, 0x02, 0x20, 0x1a, 0x33, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x6e, 0x67, 0x20, 0x31, 0x30, 0x30, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x29, 0x0a, 0x0a, 0x0c, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x0a, 0x1c, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, - 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x0b, 0x02, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, - 0x02, 0x12, 0x03, 0x0b, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, - 0x03, 0x0b, 0x1b, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x0f, - 0x02, 0x1a, 0x0a, 0xb9, 0x01, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x0f, 0x02, 0x21, - 0x1a, 0xab, 0x01, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x20, 0x4c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x2d, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, - 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x65, 0x6e, 0x69, - 0x65, 0x64, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, - 0x64, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x55, 0x73, - 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x76, 0x69, 0x65, 0x77, 0x2f, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x20, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, - 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x0f, 0x1d, 0x20, 0x0a, 0x0c, 0x0a, 0x05, - 0x05, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x12, 0x02, 0x17, 0x0a, 0x93, 0x01, 0x0a, 0x04, 0x05, - 0x00, 0x02, 0x04, 0x12, 0x03, 0x12, 0x02, 0x1e, 0x1a, 0x85, 0x01, 0x20, 0x52, 0x65, 0x61, 0x64, - 0x20, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, - 0x2e, 0x0a, 0x20, 0x4b, 0x65, 0x65, 0x70, 0x20, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x53, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, - 0x72, 0x79, 0x20, 0x22, 0x76, 0x69, 0x65, 0x77, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x22, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x0a, - 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x02, 0x12, 0x03, 0x12, 0x1a, 0x1d, 0x0a, 0x0c, - 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x13, 0x02, 0x14, 0x0a, 0x0b, 0x0a, 0x04, - 0x05, 0x00, 0x02, 0x05, 0x12, 0x03, 0x13, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, - 0x05, 0x02, 0x12, 0x03, 0x13, 0x17, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x01, - 0x12, 0x03, 0x16, 0x02, 0x1a, 0x0a, 0x5d, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x03, 0x16, - 0x02, 0x21, 0x1a, 0x50, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x45, 0x64, 0x69, 0x74, - 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x6e, 0x67, 0x20, 0x33, 0x30, 0x30, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x69, 0x63, 0x20, 0x65, 0x64, 0x69, 0x74, 0x29, 0x0a, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x2c, - 0x20, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x55, 0x6e, - 0x69, 0x74, 0x73, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x16, - 0x1d, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x17, 0x02, 0x17, - 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x07, 0x12, 0x03, 0x17, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, 0x17, 0x1a, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, - 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x18, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, - 0x08, 0x12, 0x03, 0x18, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, - 0x03, 0x18, 0x1e, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x1a, - 0x02, 0x15, 0x0a, 0x1d, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x09, 0x12, 0x03, 0x1a, 0x02, 0x1c, 0x1a, - 0x10, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x02, 0x12, 0x03, 0x1a, 0x18, 0x1b, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x0a, 0xf8, 0x0a, 0x0a, 0x22, 0x73, 0x69, 0x66, 0x74, - 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2a, 0xb2, - 0x03, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, - 0x0a, 0x13, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x41, 0x53, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, - 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x53, - 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x45, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4d, 0x50, 0x41, 0x49, 0x47, - 0x4e, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, 0x12, 0x16, 0x0a, - 0x12, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, - 0x55, 0x4c, 0x45, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x53, - 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x27, 0x0a, 0x23, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, - 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x24, - 0x0a, 0x20, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x43, 0x41, 0x4c, 0x43, 0x55, 0x4c, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, - 0x45, 0x4c, 0x10, 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x45, 0x4d, - 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, - 0x50, 0x4f, 0x52, 0x54, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x16, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, - 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x46, 0x54, 0x5f, 0x41, 0x50, 0x50, - 0x10, 0xe8, 0x07, 0x42, 0x81, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, - 0x02, 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0x80, 0x06, 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, - 0x17, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, - 0x02, 0x12, 0x03, 0x02, 0x00, 0x17, 0x0a, 0x4a, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x06, 0x00, - 0x17, 0x01, 0x1a, 0x3e, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, - 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x06, 0x05, 0x11, 0x0a, 0x0c, - 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x07, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, - 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x07, 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, - 0x00, 0x02, 0x12, 0x03, 0x07, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, - 0x12, 0x03, 0x08, 0x02, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x08, - 0x02, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x08, 0x18, 0x19, - 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x09, 0x02, 0x17, 0x0a, 0x0b, - 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x03, 0x09, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, - 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x09, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, - 0x03, 0x01, 0x12, 0x03, 0x0a, 0x02, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, - 0x03, 0x0a, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x0a, - 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x0b, 0x02, 0x1a, - 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x04, 0x12, 0x03, 0x0b, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x04, 0x02, 0x12, 0x03, 0x0b, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, - 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x0c, 0x02, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, - 0x05, 0x12, 0x03, 0x0c, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x02, 0x12, - 0x03, 0x0c, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x0d, - 0x02, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x03, 0x0d, 0x02, 0x1b, 0x0a, - 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x0d, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x0e, 0x02, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x05, - 0x00, 0x02, 0x07, 0x12, 0x03, 0x0e, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, - 0x02, 0x12, 0x03, 0x0e, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x01, 0x12, - 0x03, 0x0f, 0x02, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x08, 0x12, 0x03, 0x0f, 0x02, - 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, 0x03, 0x0f, 0x1f, 0x20, 0x0a, - 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x10, 0x02, 0x25, 0x0a, 0x0b, 0x0a, - 0x04, 0x05, 0x00, 0x02, 0x09, 0x12, 0x03, 0x10, 0x02, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, - 0x02, 0x09, 0x02, 0x12, 0x03, 0x10, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0a, - 0x01, 0x12, 0x03, 0x11, 0x02, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0a, 0x12, 0x03, - 0x11, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0a, 0x02, 0x12, 0x03, 0x11, 0x25, - 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x12, 0x02, 0x1f, 0x0a, - 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0b, 0x12, 0x03, 0x12, 0x02, 0x25, 0x0a, 0x0c, 0x0a, 0x05, - 0x05, 0x00, 0x02, 0x0b, 0x02, 0x12, 0x03, 0x12, 0x22, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, - 0x02, 0x0c, 0x01, 0x12, 0x03, 0x13, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0c, - 0x12, 0x03, 0x13, 0x02, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x02, 0x12, 0x03, - 0x13, 0x1e, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x03, 0x16, 0x02, - 0x18, 0x0a, 0x59, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0d, 0x12, 0x03, 0x16, 0x02, 0x20, 0x1a, 0x4c, - 0x20, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x79, 0x65, 0x74, 0x20, 0x65, 0x78, - 0x69, 0x73, 0x74, 0x20, 0x28, 0x65, 0x67, 0x2e, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x29, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, - 0x05, 0x00, 0x02, 0x0d, 0x02, 0x12, 0x03, 0x16, 0x1b, 0x1f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x69, 0x6e, 0x64, + 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x33, 0x0a, 0x06, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2a, + 0xa0, 0x02, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, + 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, + 0x41, 0x4d, 0x50, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, + 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x10, 0x03, + 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, + 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, + 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, + 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x55, 0x49, 0x44, + 0x10, 0x08, 0x2a, 0xae, 0x01, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x46, 0x49, 0x4c, + 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, + 0x43, 0x41, 0x4c, 0x41, 0x52, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x49, 0x4c, 0x54, 0x45, + 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x50, + 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x56, + 0x45, 0x10, 0x04, 0x42, 0x80, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, + 0x03, 0x53, 0x43, 0x58, 0xaa, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0x90, 0x28, 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x5e, + 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, + 0x12, 0x03, 0x02, 0x00, 0x17, 0x0a, 0x33, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x06, 0x00, 0x10, + 0x01, 0x1a, 0x27, 0x20, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, + 0x01, 0x12, 0x03, 0x06, 0x05, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, + 0x03, 0x07, 0x02, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x07, 0x02, + 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x07, 0x22, 0x23, 0x0a, + 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x08, 0x02, 0x1a, 0x0a, 0x0b, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x08, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x01, 0x02, 0x12, 0x03, 0x08, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, + 0x01, 0x12, 0x03, 0x09, 0x02, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x03, + 0x09, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x09, 0x20, + 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x0a, 0x02, 0x17, 0x0a, + 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x0a, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x0a, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x04, 0x01, 0x12, 0x03, 0x0b, 0x02, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x04, + 0x12, 0x03, 0x0b, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x02, 0x12, 0x03, + 0x0b, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x0c, 0x02, + 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x05, 0x12, 0x03, 0x0c, 0x02, 0x21, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x02, 0x12, 0x03, 0x0c, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x0d, 0x02, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, + 0x02, 0x06, 0x12, 0x03, 0x0d, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x02, + 0x12, 0x03, 0x0d, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, + 0x0e, 0x02, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x07, 0x12, 0x03, 0x0e, 0x02, 0x1d, + 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, 0x0e, 0x1b, 0x1c, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x0f, 0x02, 0x18, 0x0a, 0x0b, 0x0a, 0x04, + 0x05, 0x00, 0x02, 0x08, 0x12, 0x03, 0x0f, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x08, 0x02, 0x12, 0x03, 0x0f, 0x1b, 0x1c, 0x0a, 0xe1, 0x01, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x04, + 0x15, 0x00, 0x26, 0x01, 0x1a, 0xd4, 0x01, 0x20, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x61, 0x6c, + 0x20, 0x73, 0x68, 0x61, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x61, 0x20, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x0a, + 0x20, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, + 0x74, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6f, 0x72, 0x74, 0x68, 0x6f, + 0x67, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x27, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x0a, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x29, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x05, + 0x01, 0x01, 0x12, 0x03, 0x15, 0x05, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x01, + 0x12, 0x03, 0x17, 0x02, 0x1f, 0x0a, 0x55, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x00, 0x12, 0x03, 0x17, + 0x02, 0x24, 0x1a, 0x48, 0x20, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x2e, 0x20, 0x54, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x41, 0x52, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x01, 0x02, 0x00, 0x02, 0x12, 0x03, 0x17, 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, + 0x02, 0x01, 0x01, 0x12, 0x03, 0x1a, 0x02, 0x1a, 0x0a, 0x93, 0x01, 0x0a, 0x04, 0x05, 0x01, 0x02, + 0x01, 0x12, 0x03, 0x1a, 0x02, 0x1f, 0x1a, 0x85, 0x01, 0x20, 0x41, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x64, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x3a, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x70, 0x6c, 0x75, 0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x20, 0x60, 0x74, + 0x79, 0x70, 0x65, 0x60, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x0a, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x72, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x73, + 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x69, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x02, 0x12, 0x03, 0x1a, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x1e, 0x02, 0x17, 0x0a, 0xde, 0x01, 0x0a, 0x04, 0x05, + 0x01, 0x02, 0x02, 0x12, 0x03, 0x1e, 0x02, 0x1c, 0x1a, 0xd0, 0x01, 0x20, 0x41, 0x20, 0x64, 0x79, + 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x20, 0x6b, 0x65, 0x79, 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x29, 0x2e, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x69, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x20, 0x60, 0x6b, 0x65, 0x79, 0x60, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, + 0x20, 0x60, 0x74, 0x79, 0x70, 0x65, 0x60, 0x20, 0x69, 0x73, 0x20, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x63, 0x68, 0x6f, 0x73, 0x65, 0x6e, 0x20, 0x6b, 0x65, 0x79, + 0x27, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, + 0x64, 0x20, 0x70, 0x65, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x76, 0x69, 0x61, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x72, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x02, 0x02, 0x12, 0x03, 0x1e, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x22, 0x02, 0x1c, 0x0a, 0xc8, 0x01, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x03, + 0x12, 0x03, 0x22, 0x02, 0x21, 0x1a, 0xba, 0x01, 0x20, 0x41, 0x20, 0x68, 0x61, 0x73, 0x2d, 0x6d, + 0x61, 0x6e, 0x79, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x61, 0x20, 0x43, 0x45, 0x4c, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, + 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x28, 0x6d, 0x2c, 0x20, 0x6d, 0x2e, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, + 0x22, 0x20, 0x26, 0x26, 0x20, 0x6d, 0x2e, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3e, 0x20, 0x35, 0x30, 0x29, 0x29, 0x2e, 0x0a, 0x20, 0x53, 0x65, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x20, + 0x60, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x60, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x60, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, + 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x02, 0x12, 0x03, 0x22, 0x1f, 0x20, + 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x04, 0x01, 0x12, 0x03, 0x25, 0x02, 0x1d, 0x0a, 0x69, + 0x0a, 0x04, 0x05, 0x01, 0x02, 0x04, 0x12, 0x03, 0x25, 0x02, 0x22, 0x1a, 0x5c, 0x20, 0x41, 0x20, + 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x2d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x28, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x29, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x73, 0x68, 0x61, 0x70, + 0x65, 0x20, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x0a, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x61, + 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, + 0x04, 0x02, 0x12, 0x03, 0x25, 0x20, 0x21, 0x0a, 0x51, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x29, + 0x00, 0x5e, 0x01, 0x1a, 0x45, 0x20, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x73, 0x20, + 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x45, 0x4c, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x20, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, + 0x01, 0x12, 0x03, 0x29, 0x08, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, + 0x03, 0x2b, 0x02, 0x08, 0x0a, 0x60, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x2b, 0x02, + 0x18, 0x1a, 0x53, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x45, 0x4c, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x2c, 0x20, 0x22, 0x72, 0x75, 0x6e, 0x5f, + 0x69, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x22, 0x29, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, + 0x03, 0x2b, 0x09, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x2b, + 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x06, 0x12, 0x03, 0x2e, 0x02, 0x11, + 0x0a, 0x79, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x2e, 0x02, 0x1b, 0x1a, 0x6c, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x20, 0x55, 0x55, 0x49, 0x44, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x45, 0x4e, 0x55, 0x4d, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x2d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2c, + 0x20, 0x73, 0x6f, 0x20, 0x6e, 0x6f, 0x0a, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x2e, 0x12, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x01, 0x03, 0x12, 0x03, 0x2e, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, + 0x12, 0x03, 0x30, 0x02, 0x0a, 0x0a, 0x54, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x30, + 0x02, 0x22, 0x1a, 0x47, 0x20, 0x49, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, + 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x30, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x03, 0x30, 0x12, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, + 0x12, 0x03, 0x30, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, + 0x32, 0x02, 0x08, 0x0a, 0x5a, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x32, 0x02, 0x19, + 0x1a, 0x4d, 0x20, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, + 0x2c, 0x20, 0x22, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, + 0x77, 0x61, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x29, 0x2e, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x32, 0x09, 0x14, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x32, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x04, 0x05, 0x12, 0x03, 0x34, 0x02, 0x08, 0x0a, 0x5c, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x04, 0x12, 0x03, 0x34, 0x02, 0x1a, 0x1a, 0x4f, 0x20, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x2d, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x2c, 0x20, 0x22, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x22, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x29, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, + 0x12, 0x03, 0x34, 0x09, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, + 0x34, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x38, 0x02, + 0x0a, 0x0a, 0xe7, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x38, 0x02, 0x20, 0x1a, + 0xd9, 0x01, 0x20, 0x43, 0x45, 0x4c, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x78, 0x20, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x20, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x3d, 0x3d, 0x22, 0x2c, 0x20, 0x22, 0x69, + 0x6e, 0x22, 0x2e, 0x20, 0x55, 0x73, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x0a, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x27, 0x73, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x65, 0x72, 0x20, + 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x72, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x73, 0x20, 0x69, 0x74, 0x2e, 0x0a, 0x20, 0x44, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x61, 0x63, 0x68, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6d, 0x6d, + 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x05, 0x05, 0x12, 0x03, 0x38, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x05, 0x01, 0x12, 0x03, 0x38, 0x12, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, + 0x12, 0x03, 0x38, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x04, 0x12, 0x03, + 0x3b, 0x02, 0x0a, 0x0a, 0x9c, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x3b, 0x02, + 0x20, 0x1a, 0x8e, 0x01, 0x20, 0x43, 0x45, 0x4c, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x73, 0x22, 0x2c, 0x20, 0x22, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x22, 0x2e, 0x0a, 0x20, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x63, 0x6f, + 0x70, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x47, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, 0x03, 0x3b, 0x0b, 0x11, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x3b, 0x12, 0x1b, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x3b, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x07, 0x04, 0x12, 0x03, 0x42, 0x02, 0x0a, 0x0a, 0xbb, 0x03, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x07, 0x12, 0x03, 0x42, 0x02, 0x1d, 0x1a, 0xad, 0x03, 0x20, 0x57, 0x68, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, + 0x74, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3a, 0x0a, 0x20, 0x61, 0x20, 0x6b, 0x65, 0x79, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x20, 0x61, 0x73, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x60, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x60, 0x20, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x0a, 0x20, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x21, 0x3d, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x60, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x6f, + 0x73, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x69, 0x74, 0x2e, + 0x0a, 0x20, 0x28, 0x54, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x73, + 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x22, 0x73, 0x65, 0x74, 0x20, 0x62, 0x75, 0x74, + 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x22, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2c, 0x20, 0x73, 0x69, + 0x6e, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x20, + 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x20, 0x63, + 0x6f, 0x6e, 0x63, 0x72, 0x65, 0x74, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x29, 0x20, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x61, 0x6e, 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x0a, 0x20, 0x22, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, + 0x20, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x69, 0x6d, 0x70, + 0x6c, 0x69, 0x63, 0x69, 0x74, 0x6c, 0x79, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x75, 0x6c, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, + 0x05, 0x12, 0x03, 0x42, 0x0b, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, + 0x03, 0x42, 0x10, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x42, + 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x03, 0x47, 0x02, 0x08, + 0x0a, 0xbb, 0x02, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x03, 0x47, 0x02, 0x14, 0x1a, 0xad, + 0x02, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, + 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x2c, 0x20, + 0x22, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x29, 0x2e, 0x20, 0x54, 0x6f, + 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, 0x0a, 0x20, 0x60, 0x6e, 0x61, + 0x6d, 0x65, 0x60, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6b, 0x65, 0x79, 0x60, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x75, 0x72, 0x65, 0x64, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x3b, 0x20, 0x60, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x0a, 0x20, 0x69, 0x73, 0x20, 0x69, 0x74, 0x73, + 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x20, 0x43, + 0x45, 0x4c, 0x20, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, + 0x6e, 0x65, 0x76, 0x65, 0x72, 0x20, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x73, 0x20, + 0x6f, 0x72, 0x0a, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x73, 0x20, 0x69, 0x74, 0x2e, 0x20, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x77, + 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x63, 0x61, + 0x72, 0x72, 0x69, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x64, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x0a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x47, 0x09, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, 0x47, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x09, 0x05, 0x12, 0x03, 0x50, 0x02, 0x08, 0x0a, 0xec, 0x03, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x09, 0x12, 0x03, 0x50, 0x02, 0x13, 0x1a, 0xde, 0x03, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x2c, 0x20, 0x61, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x29, 0x2c, 0x0a, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x6d, 0x65, 0x61, 0x73, + 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x29, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x27, 0x73, 0x20, + 0x6f, 0x77, 0x6e, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x60, 0x6e, 0x61, + 0x6d, 0x65, 0x60, 0x0a, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x27, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x28, + 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x20, 0x6f, 0x72, + 0x20, 0x60, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x20, 0x6f, + 0x6e, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x29, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x69, 0x74, 0x0a, + 0x20, 0x6d, 0x61, 0x70, 0x73, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x2e, 0x20, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x0a, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, + 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x20, 0x28, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x60, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x60, 0x29, 0x20, 0x63, 0x61, 0x72, 0x72, 0x79, 0x20, 0x61, 0x20, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x76, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x01, + 0x12, 0x03, 0x50, 0x09, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x03, 0x12, 0x03, + 0x50, 0x10, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x05, 0x12, 0x03, 0x53, 0x02, + 0x08, 0x0a, 0x7d, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0a, 0x12, 0x03, 0x53, 0x02, 0x12, 0x1a, 0x70, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x20, 0x6d, 0x61, 0x70, + 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x60, 0x6e, 0x61, 0x6d, + 0x65, 0x60, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x28, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6b, + 0x65, 0x79, 0x29, 0x2e, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x0a, 0x20, 0x77, 0x68, 0x65, 0x6e, + 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, + 0x20, 0x6d, 0x61, 0x70, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x53, 0x09, 0x0c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, 0x12, 0x03, 0x53, 0x0f, 0x11, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0b, 0x06, 0x12, 0x03, 0x55, 0x02, 0x11, 0x0a, 0x4d, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x0b, 0x12, 0x03, 0x55, 0x02, 0x22, 0x1a, 0x40, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x61, 0x6c, 0x20, 0x73, 0x68, 0x61, 0x70, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x20, 0x55, 0x6e, 0x73, + 0x65, 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, + 0x20, 0x53, 0x43, 0x41, 0x4c, 0x41, 0x52, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0b, 0x01, 0x12, 0x03, 0x55, 0x12, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x03, + 0x12, 0x03, 0x55, 0x1f, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x03, + 0x59, 0x02, 0x0a, 0x0a, 0xbb, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0c, 0x12, 0x03, 0x59, 0x02, + 0x23, 0x1a, 0xad, 0x01, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x52, 0x45, 0x4c, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x2c, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x61, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x0a, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x2c, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x2c, 0x20, 0x22, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x22, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x2e, 0x0a, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x2e, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x06, 0x12, 0x03, 0x59, 0x0b, 0x16, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x59, 0x17, 0x1d, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0c, 0x03, 0x12, 0x03, 0x59, 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0d, 0x04, 0x12, 0x03, 0x5d, 0x02, 0x0a, 0x0a, 0xd3, 0x01, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x0d, 0x12, 0x03, 0x5d, 0x02, 0x23, 0x1a, 0xc5, 0x01, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x0a, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x65, 0x78, 0x69, + 0x73, 0x74, 0x73, 0x22, 0x2c, 0x20, 0x22, 0x61, 0x6c, 0x6c, 0x22, 0x2c, 0x20, 0x22, 0x65, 0x78, + 0x69, 0x73, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x65, 0x22, 0x29, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x69, 0x63, 0x6b, 0x73, 0x20, 0x6f, 0x6e, 0x65, + 0x2c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x73, 0x0a, + 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x20, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x60, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x60, 0x2e, + 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x2e, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x05, 0x12, 0x03, 0x5d, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x03, 0x5d, 0x12, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0d, 0x03, 0x12, 0x03, 0x5d, 0x20, 0x22, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x0a, 0x80, 0x0c, 0x0a, 0x20, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2a, 0xab, 0x02, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x45, 0x53, 0x54, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x6e, 0x12, + 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, + 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x78, 0x12, 0x1d, 0x0a, 0x18, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, + 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x53, 0x10, 0xc8, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x44, + 0x41, 0x54, 0x41, 0x10, 0xcd, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x10, 0xd2, 0x01, 0x12, + 0x1d, 0x0a, 0x18, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, + 0x44, 0x49, 0x54, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x53, 0x10, 0xb6, 0x02, 0x12, 0x1a, + 0x0a, 0x15, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x44, + 0x49, 0x54, 0x5f, 0x54, 0x41, 0x47, 0x53, 0x10, 0xb8, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x44, 0x49, 0x54, 0x5f, 0x4d, + 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0xb9, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, + 0x45, 0x10, 0x90, 0x03, 0x42, 0x7f, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, + 0x53, 0x43, 0x58, 0xaa, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0x94, 0x08, 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x1b, 0x01, + 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, + 0x03, 0x02, 0x00, 0x17, 0x0a, 0x7f, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x07, 0x00, 0x1b, 0x01, + 0x1a, 0x73, 0x20, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x65, 0x69, 0x6e, + 0x67, 0x20, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x0a, 0x20, 0x47, 0x72, 0x61, 0x6e, 0x75, + 0x6c, 0x61, 0x72, 0x20, 0x41, 0x42, 0x41, 0x43, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2c, 0x20, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x6e, 0x20, 0x75, 0x70, 0x20, 0x62, 0x79, 0x20, 0x43, + 0x52, 0x55, 0x44, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x07, 0x05, + 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x08, 0x02, 0x19, 0x0a, + 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x08, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x08, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x01, 0x01, 0x12, 0x03, 0x0a, 0x02, 0x19, 0x0a, 0x40, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, + 0x12, 0x03, 0x0a, 0x02, 0x20, 0x1a, 0x33, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, + 0x67, 0x20, 0x31, 0x30, 0x30, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, + 0x63, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x29, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x01, 0x02, 0x12, 0x03, 0x0a, 0x1c, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, + 0x01, 0x12, 0x03, 0x0b, 0x02, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x03, + 0x0b, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x0b, 0x1b, + 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x0f, 0x02, 0x1a, 0x0a, + 0xb9, 0x01, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x0f, 0x02, 0x21, 0x1a, 0xab, 0x01, + 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x4c, + 0x6f, 0x77, 0x65, 0x73, 0x74, 0x2d, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x20, 0x49, 0x66, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x2c, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, + 0x65, 0x20, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x55, 0x73, 0x65, 0x64, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x76, 0x69, 0x65, 0x77, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x20, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x0f, 0x1d, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x04, 0x01, 0x12, 0x03, 0x12, 0x02, 0x17, 0x0a, 0x93, 0x01, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x04, + 0x12, 0x03, 0x12, 0x02, 0x1e, 0x1a, 0x85, 0x01, 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x74, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2e, 0x0a, 0x20, + 0x4b, 0x65, 0x65, 0x70, 0x20, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x53, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x20, + 0x22, 0x76, 0x69, 0x65, 0x77, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x20, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x05, 0x00, 0x02, 0x04, 0x02, 0x12, 0x03, 0x12, 0x1a, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x13, 0x02, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, + 0x05, 0x12, 0x03, 0x13, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x02, 0x12, + 0x03, 0x13, 0x17, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x16, + 0x02, 0x1a, 0x0a, 0x5d, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x03, 0x16, 0x02, 0x21, 0x1a, + 0x50, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x45, 0x64, 0x69, 0x74, 0x20, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x28, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, + 0x20, 0x33, 0x30, 0x30, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, + 0x20, 0x65, 0x64, 0x69, 0x74, 0x29, 0x0a, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x55, 0x6e, 0x69, 0x74, 0x73, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x16, 0x1d, 0x20, 0x0a, + 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x17, 0x02, 0x17, 0x0a, 0x0b, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x07, 0x12, 0x03, 0x17, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x07, 0x02, 0x12, 0x03, 0x17, 0x1a, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, + 0x01, 0x12, 0x03, 0x18, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x08, 0x12, 0x03, + 0x18, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, 0x03, 0x18, 0x1e, + 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x1a, 0x02, 0x15, 0x0a, + 0x1d, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x09, 0x12, 0x03, 0x1a, 0x02, 0x1c, 0x1a, 0x10, 0x20, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x02, 0x12, 0x03, 0x1a, 0x18, 0x1b, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x0a, 0xf8, 0x0a, 0x0a, 0x22, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2a, 0xb2, 0x03, 0x0a, 0x0c, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, + 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x52, + 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x53, 0x53, + 0x45, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x02, 0x12, + 0x15, 0x0a, 0x11, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4d, 0x50, 0x41, 0x49, 0x47, 0x4e, 0x10, 0x05, + 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, + 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, + 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, + 0x10, 0x08, 0x12, 0x27, 0x0a, 0x23, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, + 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x52, + 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4c, + 0x43, 0x55, 0x4c, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, + 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x4c, 0x41, + 0x54, 0x45, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, + 0x54, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x16, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x46, 0x54, 0x5f, 0x41, 0x50, 0x50, 0x10, 0xe8, 0x07, + 0x42, 0x81, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x53, + 0x43, 0x58, 0xaa, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0e, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1a, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0x80, 0x06, 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x17, 0x01, 0x0a, + 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, + 0x02, 0x00, 0x17, 0x0a, 0x4a, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x06, 0x00, 0x17, 0x01, 0x1a, + 0x3e, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x20, 0x72, + 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x62, + 0x65, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, + 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x06, 0x05, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x07, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, + 0x00, 0x12, 0x03, 0x07, 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, + 0x03, 0x07, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x08, + 0x02, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x08, 0x02, 0x1a, 0x0a, + 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x08, 0x18, 0x19, 0x0a, 0x0c, 0x0a, + 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x09, 0x02, 0x17, 0x0a, 0x0b, 0x0a, 0x04, 0x05, + 0x00, 0x02, 0x02, 0x12, 0x03, 0x09, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, + 0x02, 0x12, 0x03, 0x09, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x01, 0x12, + 0x03, 0x0a, 0x02, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x0a, 0x02, + 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x0a, 0x16, 0x17, 0x0a, + 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x0b, 0x02, 0x1a, 0x0a, 0x0b, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x04, 0x12, 0x03, 0x0b, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x04, 0x02, 0x12, 0x03, 0x0b, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, + 0x01, 0x12, 0x03, 0x0c, 0x02, 0x18, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x05, 0x12, 0x03, + 0x0c, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x02, 0x12, 0x03, 0x0c, 0x1b, + 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x0d, 0x02, 0x16, 0x0a, + 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x03, 0x0d, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x0d, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x07, 0x01, 0x12, 0x03, 0x0e, 0x02, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x07, + 0x12, 0x03, 0x0e, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, + 0x0e, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x0f, 0x02, + 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x08, 0x12, 0x03, 0x0f, 0x02, 0x21, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, 0x03, 0x0f, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x10, 0x02, 0x25, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, + 0x02, 0x09, 0x12, 0x03, 0x10, 0x02, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x02, + 0x12, 0x03, 0x10, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x03, + 0x11, 0x02, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0a, 0x12, 0x03, 0x11, 0x02, 0x28, + 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0a, 0x02, 0x12, 0x03, 0x11, 0x25, 0x27, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x12, 0x02, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, + 0x05, 0x00, 0x02, 0x0b, 0x12, 0x03, 0x12, 0x02, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x0b, 0x02, 0x12, 0x03, 0x12, 0x22, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x01, + 0x12, 0x03, 0x13, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0c, 0x12, 0x03, 0x13, + 0x02, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x02, 0x12, 0x03, 0x13, 0x1e, 0x20, + 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x03, 0x16, 0x02, 0x18, 0x0a, 0x59, + 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0d, 0x12, 0x03, 0x16, 0x02, 0x20, 0x1a, 0x4c, 0x20, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x64, + 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x79, 0x65, 0x74, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, + 0x20, 0x28, 0x65, 0x67, 0x2e, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x29, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x0d, 0x02, 0x12, 0x03, 0x16, 0x1b, 0x1f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, ]; include!("sift.common.v1.serde.rs"); // @@protoc_insertion_point(module) \ No newline at end of file diff --git a/rust/crates/sift_rs/src/gen/sift/common/v1/sift.common.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift/common/v1/sift.common.v1.serde.rs index e8d2d2c70f..0c831a6ff6 100644 --- a/rust/crates/sift_rs/src/gen/sift/common/v1/sift.common.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift/common/v1/sift.common.v1.serde.rs @@ -126,6 +126,24 @@ impl serde::Serialize for FilterField { if self.nullable.is_some() { len += 1; } + if !self.entity.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if !self.key.is_empty() { + len += 1; + } + if self.field_kind != 0 { + len += 1; + } + if !self.fields.is_empty() { + len += 1; + } + if !self.quantifiers.is_empty() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.common.v1.FilterField", len)?; if !self.field_name.is_empty() { struct_ser.serialize_field("fieldName", &self.field_name)?; @@ -153,6 +171,26 @@ impl serde::Serialize for FilterField { if let Some(v) = self.nullable.as_ref() { struct_ser.serialize_field("nullable", v)?; } + if !self.entity.is_empty() { + struct_ser.serialize_field("entity", &self.entity)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.key.is_empty() { + struct_ser.serialize_field("key", &self.key)?; + } + if self.field_kind != 0 { + let v = FilterFieldKind::try_from(self.field_kind) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.field_kind)))?; + struct_ser.serialize_field("fieldKind", &v)?; + } + if !self.fields.is_empty() { + struct_ser.serialize_field("fields", &self.fields)?; + } + if !self.quantifiers.is_empty() { + struct_ser.serialize_field("quantifiers", &self.quantifiers)?; + } struct_ser.end() } } @@ -174,6 +212,13 @@ impl<'de> serde::Deserialize<'de> for FilterField { "operators", "functions", "nullable", + "entity", + "name", + "key", + "field_kind", + "fieldKind", + "fields", + "quantifiers", ]; #[allow(clippy::enum_variant_names)] @@ -186,6 +231,12 @@ impl<'de> serde::Deserialize<'de> for FilterField { Operators, Functions, Nullable, + Entity, + Name, + Key, + FieldKind, + Fields, + Quantifiers, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -215,6 +266,12 @@ impl<'de> serde::Deserialize<'de> for FilterField { "operators" => Ok(GeneratedField::Operators), "functions" => Ok(GeneratedField::Functions), "nullable" => Ok(GeneratedField::Nullable), + "entity" => Ok(GeneratedField::Entity), + "name" => Ok(GeneratedField::Name), + "key" => Ok(GeneratedField::Key), + "fieldKind" | "field_kind" => Ok(GeneratedField::FieldKind), + "fields" => Ok(GeneratedField::Fields), + "quantifiers" => Ok(GeneratedField::Quantifiers), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -242,6 +299,12 @@ impl<'de> serde::Deserialize<'de> for FilterField { let mut operators__ = None; let mut functions__ = None; let mut nullable__ = None; + let mut entity__ = None; + let mut name__ = None; + let mut key__ = None; + let mut field_kind__ = None; + let mut fields__ = None; + let mut quantifiers__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::FieldName => { @@ -292,6 +355,42 @@ impl<'de> serde::Deserialize<'de> for FilterField { } nullable__ = map_.next_value()?; } + GeneratedField::Entity => { + if entity__.is_some() { + return Err(serde::de::Error::duplicate_field("entity")); + } + entity__ = Some(map_.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::Key => { + if key__.is_some() { + return Err(serde::de::Error::duplicate_field("key")); + } + key__ = Some(map_.next_value()?); + } + GeneratedField::FieldKind => { + if field_kind__.is_some() { + return Err(serde::de::Error::duplicate_field("fieldKind")); + } + field_kind__ = Some(map_.next_value::()? as i32); + } + GeneratedField::Fields => { + if fields__.is_some() { + return Err(serde::de::Error::duplicate_field("fields")); + } + fields__ = Some(map_.next_value()?); + } + GeneratedField::Quantifiers => { + if quantifiers__.is_some() { + return Err(serde::de::Error::duplicate_field("quantifiers")); + } + quantifiers__ = Some(map_.next_value()?); + } } } Ok(FilterField { @@ -303,12 +402,98 @@ impl<'de> serde::Deserialize<'de> for FilterField { operators: operators__.unwrap_or_default(), functions: functions__.unwrap_or_default(), nullable: nullable__, + entity: entity__.unwrap_or_default(), + name: name__.unwrap_or_default(), + key: key__.unwrap_or_default(), + field_kind: field_kind__.unwrap_or_default(), + fields: fields__.unwrap_or_default(), + quantifiers: quantifiers__.unwrap_or_default(), }) } } deserializer.deserialize_struct("sift.common.v1.FilterField", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for FilterFieldKind { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "FILTER_FIELD_KIND_UNSPECIFIED", + Self::Scalar => "FILTER_FIELD_KIND_SCALAR", + Self::Map => "FILTER_FIELD_KIND_MAP", + Self::Relation => "FILTER_FIELD_KIND_RELATION", + Self::Directive => "FILTER_FIELD_KIND_DIRECTIVE", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for FilterFieldKind { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "FILTER_FIELD_KIND_UNSPECIFIED", + "FILTER_FIELD_KIND_SCALAR", + "FILTER_FIELD_KIND_MAP", + "FILTER_FIELD_KIND_RELATION", + "FILTER_FIELD_KIND_DIRECTIVE", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FilterFieldKind; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "FILTER_FIELD_KIND_UNSPECIFIED" => Ok(FilterFieldKind::Unspecified), + "FILTER_FIELD_KIND_SCALAR" => Ok(FilterFieldKind::Scalar), + "FILTER_FIELD_KIND_MAP" => Ok(FilterFieldKind::Map), + "FILTER_FIELD_KIND_RELATION" => Ok(FilterFieldKind::Relation), + "FILTER_FIELD_KIND_DIRECTIVE" => Ok(FilterFieldKind::Directive), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} impl serde::Serialize for FilterFieldType { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result diff --git a/rust/crates/sift_rs/src/gen/sift/data_imports/v2/sift.data_imports.v2.rs b/rust/crates/sift_rs/src/gen/sift/data_imports/v2/sift.data_imports.v2.rs index 611c5da8b4..a908e619b0 100644 --- a/rust/crates/sift_rs/src/gen/sift/data_imports/v2/sift.data_imports.v2.rs +++ b/rust/crates/sift_rs/src/gen/sift/data_imports/v2/sift.data_imports.v2.rs @@ -74,6 +74,8 @@ pub struct CsvConfig { pub data_columns: ::std::collections::HashMap, #[prost(uint64, optional, tag="7")] pub num_rows: ::core::option::Option, + #[prost(bool, tag="10")] + pub use_embedded_config: bool, } #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] pub struct CsvTimeColumn { @@ -179,6 +181,8 @@ pub struct ParquetFlatDatasetConfig { pub time_column: ::core::option::Option, #[prost(message, repeated, tag="2")] pub data_columns: ::prost::alloc::vec::Vec, + #[prost(bool, tag="3")] + pub use_embedded_config: bool, } #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct ParquetSingleChannelPerRowMultiChannelConfig { @@ -673,7 +677,7 @@ impl DataImportStatus { } /// Encoded file descriptor set for the `sift.data_imports.v2` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xd8, 0x89, 0x02, 0x0a, 0x27, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x0a, 0xd1, 0x8f, 0x02, 0x0a, 0x27, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, @@ -780,7 +784,7 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x09, 0x52, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x49, 0x64, 0x22, 0xc8, 0x03, 0x0a, 0x09, 0x43, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x49, 0x64, 0x22, 0xf8, 0x03, 0x0a, 0x09, 0x43, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -800,7 +804,10 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, - 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x62, 0x0a, 0x10, + 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x13, + 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, 0x45, 0x6d, + 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x62, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -943,7 +950,7 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xe0, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x48, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, @@ -954,7 +961,10 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x0b, 0x64, 0x61, 0x74, - 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x22, 0x68, 0x0a, 0x2c, 0x50, 0x61, 0x72, 0x71, + 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x5f, + 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x68, 0x0a, 0x2c, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x65, 0x72, 0x52, 0x6f, 0x77, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, @@ -1487,7 +1497,7 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x5c, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, - 0x3a, 0x56, 0x32, 0x4a, 0xed, 0xa3, 0x01, 0x0a, 0x07, 0x12, 0x05, 0x00, 0x00, 0xfa, 0x03, 0x22, + 0x3a, 0x56, 0x32, 0x4a, 0x86, 0xa9, 0x01, 0x0a, 0x07, 0x12, 0x05, 0x00, 0x00, 0x84, 0x04, 0x22, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x1d, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x04, 0x00, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, @@ -1725,7 +1735,7 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x04, 0x83, 0x01, 0x02, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0c, 0x12, 0x04, 0x83, 0x01, 0x02, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x02, 0x12, 0x04, 0x83, 0x01, 0x2a, 0x2c, 0x0a, 0x0c, 0x0a, 0x02, - 0x04, 0x06, 0x12, 0x06, 0x86, 0x01, 0x00, 0x93, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x06, + 0x04, 0x06, 0x12, 0x06, 0x86, 0x01, 0x00, 0x98, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x04, 0x86, 0x01, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, 0x04, 0x87, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x04, 0x87, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x04, 0x87, @@ -1776,1029 +1786,1071 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x06, 0x01, 0x12, 0x04, 0x92, 0x01, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x06, 0x03, 0x12, 0x04, 0x92, 0x01, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x06, 0x08, 0x12, 0x04, 0x92, 0x01, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x06, 0x02, 0x06, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0x92, 0x01, 0x20, 0x46, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x06, - 0x95, 0x01, 0x00, 0x9a, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x04, 0x95, - 0x01, 0x08, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, 0x04, 0x97, 0x01, - 0x02, 0x08, 0x0a, 0x41, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x04, 0x97, 0x01, 0x02, 0x1b, - 0x1a, 0x33, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x31, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x29, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x63, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x01, 0x12, 0x04, - 0x97, 0x01, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x03, 0x12, 0x04, 0x97, - 0x01, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x06, 0x12, 0x04, 0x98, 0x01, - 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, 0x04, 0x98, 0x01, 0x02, 0x18, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, 0x12, 0x04, 0x98, 0x01, 0x0d, 0x13, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, 0x04, 0x98, 0x01, 0x16, 0x17, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x04, 0x12, 0x04, 0x99, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x07, 0x02, 0x02, 0x12, 0x04, 0x99, 0x01, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x07, 0x02, 0x02, 0x06, 0x12, 0x04, 0x99, 0x01, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, - 0x02, 0x02, 0x01, 0x12, 0x04, 0x99, 0x01, 0x25, 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, - 0x02, 0x03, 0x12, 0x04, 0x99, 0x01, 0x3b, 0x3c, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x06, - 0x9e, 0x01, 0x00, 0xa7, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, 0x04, 0x9e, - 0x01, 0x05, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9f, 0x01, - 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x00, 0x12, 0x04, 0x9f, 0x01, 0x02, 0x34, - 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x02, 0x12, 0x04, 0x9f, 0x01, 0x1e, 0x1f, 0x0a, - 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9f, 0x01, 0x20, 0x33, 0x0a, 0x0e, - 0x0a, 0x06, 0x05, 0x01, 0x02, 0x00, 0x03, 0x01, 0x12, 0x04, 0x9f, 0x01, 0x21, 0x32, 0x0a, 0x0d, - 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa0, 0x01, 0x02, 0x13, 0x0a, 0x0c, 0x0a, - 0x04, 0x05, 0x01, 0x02, 0x01, 0x12, 0x04, 0xa0, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x01, 0x02, 0x01, 0x02, 0x12, 0x04, 0xa0, 0x01, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, - 0x02, 0x02, 0x01, 0x12, 0x04, 0xa1, 0x01, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, - 0x02, 0x12, 0x04, 0xa1, 0x01, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x02, - 0x12, 0x04, 0xa1, 0x01, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x01, 0x12, - 0x04, 0xa2, 0x01, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x03, 0x12, 0x04, 0xa2, - 0x01, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x02, 0x12, 0x04, 0xa2, 0x01, - 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa3, 0x01, 0x02, - 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x04, 0x12, 0x04, 0xa3, 0x01, 0x02, 0x28, 0x0a, - 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x04, 0x02, 0x12, 0x04, 0xa3, 0x01, 0x26, 0x27, 0x0a, 0x0d, - 0x0a, 0x05, 0x05, 0x01, 0x02, 0x05, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x02, 0x2e, 0x0a, 0x0c, 0x0a, - 0x04, 0x05, 0x01, 0x02, 0x05, 0x12, 0x04, 0xa4, 0x01, 0x02, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x01, 0x02, 0x05, 0x02, 0x12, 0x04, 0xa4, 0x01, 0x31, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, - 0x02, 0x06, 0x01, 0x12, 0x04, 0xa5, 0x01, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, - 0x06, 0x12, 0x04, 0xa5, 0x01, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x06, 0x02, - 0x12, 0x04, 0xa5, 0x01, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x07, 0x01, 0x12, - 0x04, 0xa6, 0x01, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x07, 0x12, 0x04, 0xa6, - 0x01, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x07, 0x02, 0x12, 0x04, 0xa6, 0x01, - 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x06, 0xa9, 0x01, 0x00, 0xac, 0x01, 0x01, - 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x04, 0xa9, 0x01, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x04, 0xaa, 0x01, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x08, 0x02, 0x00, 0x12, 0x04, 0xaa, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, - 0x02, 0x00, 0x01, 0x12, 0x04, 0xaa, 0x01, 0x08, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, - 0x00, 0x03, 0x12, 0x04, 0xaa, 0x01, 0x0f, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, - 0x06, 0x12, 0x04, 0xab, 0x01, 0x02, 0x0d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, - 0x04, 0xab, 0x01, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x04, - 0xab, 0x01, 0x0e, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x04, 0xab, - 0x01, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x09, 0x12, 0x06, 0xae, 0x01, 0x00, 0xb3, 0x01, - 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x04, 0xae, 0x01, 0x08, 0x1c, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x06, 0x12, 0x04, 0xaf, 0x01, 0x02, 0x0b, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, 0x04, 0xaf, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x09, 0x02, 0x00, 0x01, 0x12, 0x04, 0xaf, 0x01, 0x0c, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, - 0x02, 0x00, 0x03, 0x12, 0x04, 0xaf, 0x01, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, - 0x01, 0x06, 0x12, 0x04, 0xb0, 0x01, 0x02, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x01, - 0x12, 0x04, 0xb0, 0x01, 0x02, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x01, 0x12, - 0x04, 0xb0, 0x01, 0x10, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x03, 0x12, 0x04, - 0xb0, 0x01, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb1, - 0x01, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x02, 0x12, 0x04, 0xb1, 0x01, 0x02, - 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb1, 0x01, 0x0d, 0x18, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb1, 0x01, 0x1b, 0x1c, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x06, 0x12, 0x04, 0xb2, 0x01, 0x02, 0x0c, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x09, 0x02, 0x03, 0x12, 0x04, 0xb2, 0x01, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x09, 0x02, 0x03, 0x01, 0x12, 0x04, 0xb2, 0x01, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x09, 0x02, 0x03, 0x03, 0x12, 0x04, 0xb2, 0x01, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0a, - 0x12, 0x06, 0xb5, 0x01, 0x00, 0xb9, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0a, 0x01, 0x12, - 0x04, 0xb5, 0x01, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x05, 0x12, 0x04, - 0xb6, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, 0xb6, 0x01, - 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb6, 0x01, 0x09, - 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb6, 0x01, 0x16, 0x17, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb7, 0x01, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x01, 0x12, 0x04, 0xb7, 0x01, 0x02, 0x16, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0a, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb7, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb7, 0x01, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0a, 0x02, 0x02, 0x05, 0x12, 0x04, 0xb8, 0x01, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, - 0x02, 0x02, 0x12, 0x04, 0xb8, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, - 0x01, 0x12, 0x04, 0xb8, 0x01, 0x07, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x03, - 0x12, 0x04, 0xb8, 0x01, 0x16, 0x17, 0x0a, 0x9a, 0x01, 0x0a, 0x02, 0x05, 0x02, 0x12, 0x06, 0xbd, - 0x01, 0x00, 0xc3, 0x01, 0x01, 0x1a, 0x8b, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6c, - 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x74, 0x65, 0x6c, - 0x6c, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, - 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x72, 0x65, 0x61, 0x74, 0x20, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x61, - 0x6e, 0x79, 0x20, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2c, 0x20, 0x77, 0x61, 0x76, 0x65, - 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x20, - 0x6f, 0x72, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x29, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x02, 0x01, 0x12, 0x04, 0xbd, 0x01, 0x05, 0x17, - 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x00, 0x01, 0x12, 0x04, 0xbe, 0x01, 0x02, 0x22, 0x0a, - 0x0c, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x00, 0x12, 0x04, 0xbe, 0x01, 0x02, 0x3b, 0x0a, 0x0d, 0x0a, - 0x05, 0x05, 0x02, 0x02, 0x00, 0x02, 0x12, 0x04, 0xbe, 0x01, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, - 0x05, 0x02, 0x02, 0x00, 0x03, 0x12, 0x04, 0xbe, 0x01, 0x27, 0x3a, 0x0a, 0x0e, 0x0a, 0x06, 0x05, - 0x02, 0x02, 0x00, 0x03, 0x01, 0x12, 0x04, 0xbe, 0x01, 0x28, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x02, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc0, 0x01, 0x02, 0x24, 0x0a, 0x5b, 0x0a, 0x04, 0x05, 0x02, - 0x02, 0x01, 0x12, 0x04, 0xc0, 0x01, 0x02, 0x29, 0x1a, 0x4d, 0x20, 0x46, 0x61, 0x69, 0x6c, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x66, 0x20, 0x61, - 0x6e, 0x79, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x01, 0x02, - 0x12, 0x04, 0xc0, 0x01, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x02, 0x01, 0x12, - 0x04, 0xc2, 0x01, 0x02, 0x23, 0x0a, 0x40, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x02, 0x12, 0x04, 0xc2, - 0x01, 0x02, 0x28, 0x1a, 0x32, 0x20, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, - 0x6e, 0x79, 0x20, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x02, 0x02, - 0x12, 0x04, 0xc2, 0x01, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x03, 0x12, 0x06, 0xc5, 0x01, - 0x00, 0xca, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x03, 0x01, 0x12, 0x04, 0xc5, 0x01, 0x05, - 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x03, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc7, 0x01, 0x02, 0x24, - 0x0a, 0x38, 0x0a, 0x04, 0x05, 0x03, 0x02, 0x00, 0x12, 0x04, 0xc7, 0x01, 0x02, 0x29, 0x1a, 0x2a, - 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x03, - 0x02, 0x00, 0x02, 0x12, 0x04, 0xc7, 0x01, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x03, 0x02, - 0x01, 0x01, 0x12, 0x04, 0xc8, 0x01, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x03, 0x02, 0x01, - 0x12, 0x04, 0xc8, 0x01, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x03, 0x02, 0x01, 0x02, 0x12, - 0x04, 0xc8, 0x01, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x03, 0x02, 0x02, 0x01, 0x12, 0x04, - 0xc9, 0x01, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x03, 0x02, 0x02, 0x12, 0x04, 0xc9, 0x01, - 0x02, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x03, 0x02, 0x02, 0x02, 0x12, 0x04, 0xc9, 0x01, 0x25, - 0x26, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0b, 0x12, 0x06, 0xcc, 0x01, 0x00, 0xe0, 0x01, 0x01, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x0b, 0x01, 0x12, 0x04, 0xcc, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0b, 0x02, 0x00, 0x05, 0x12, 0x04, 0xce, 0x01, 0x02, 0x08, 0x0a, 0x41, 0x0a, 0x04, 0x04, - 0x0b, 0x02, 0x00, 0x12, 0x04, 0xce, 0x01, 0x02, 0x18, 0x1a, 0x33, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x54, 0x44, 0x4d, 0x53, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xce, 0x01, 0x09, 0x13, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xce, 0x01, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd1, 0x01, 0x02, 0x08, 0x0a, 0x43, 0x0a, 0x04, 0x04, - 0x0b, 0x02, 0x01, 0x12, 0x04, 0xd1, 0x01, 0x02, 0x1a, 0x1a, 0x35, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x54, 0x44, 0x4d, 0x53, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd1, 0x01, 0x09, 0x15, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd1, 0x01, 0x18, 0x19, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x02, 0x06, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x23, 0x0a, 0x28, 0x0a, - 0x04, 0x04, 0x0b, 0x02, 0x02, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x37, 0x1a, 0x1a, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x53, 0x69, 0x66, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x02, 0x01, - 0x12, 0x04, 0xd4, 0x01, 0x24, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x02, 0x03, 0x12, - 0x04, 0xd4, 0x01, 0x35, 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x03, 0x04, 0x12, 0x04, - 0xd8, 0x01, 0x02, 0x0a, 0x0a, 0x92, 0x01, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x03, 0x12, 0x04, 0xd8, - 0x01, 0x02, 0x28, 0x1a, 0x83, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x77, 0x65, 0x20, - 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x20, 0x69, 0x74, 0x27, 0x73, 0x20, 0x61, 0x20, 0x77, 0x61, - 0x76, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x77, 0x61, 0x76, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, - 0x03, 0x05, 0x12, 0x04, 0xd8, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x03, - 0x01, 0x12, 0x04, 0xd8, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x03, 0x03, - 0x12, 0x04, 0xd8, 0x01, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x04, 0x04, 0x12, - 0x04, 0xdb, 0x01, 0x02, 0x0a, 0x0a, 0x61, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x04, 0x12, 0x04, 0xdb, - 0x01, 0x02, 0x1b, 0x1a, 0x53, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, - 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x6f, - 0x72, 0x20, 0x72, 0x61, 0x77, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x20, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x54, 0x72, 0x75, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x04, - 0x05, 0x12, 0x04, 0xdb, 0x01, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x04, 0x01, - 0x12, 0x04, 0xdb, 0x01, 0x10, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x04, 0x03, 0x12, - 0x04, 0xdb, 0x01, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x05, 0x04, 0x12, 0x04, - 0xdf, 0x01, 0x02, 0x0a, 0x0a, 0x79, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x05, 0x12, 0x04, 0xdf, 0x01, - 0x02, 0x36, 0x1a, 0x6b, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, - 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x20, - 0x6f, 0x72, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x20, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x05, 0x06, 0x12, 0x04, 0xdf, 0x01, 0x0b, 0x1f, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x05, 0x01, 0x12, 0x04, 0xdf, 0x01, 0x20, 0x31, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0b, 0x02, 0x05, 0x03, 0x12, 0x04, 0xdf, 0x01, 0x34, 0x35, 0x0a, 0x0c, 0x0a, 0x02, - 0x04, 0x0c, 0x12, 0x06, 0xe2, 0x01, 0x00, 0x81, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0c, - 0x01, 0x12, 0x04, 0xe2, 0x01, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x05, - 0x12, 0x04, 0xe3, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x00, 0x12, 0x04, - 0xe3, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe3, - 0x01, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe3, 0x01, - 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x05, 0x12, 0x04, 0xe4, 0x01, 0x02, - 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x01, 0x12, 0x04, 0xe4, 0x01, 0x02, 0x16, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe4, 0x01, 0x09, 0x11, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe4, 0x01, 0x14, 0x15, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0c, 0x02, 0x02, 0x06, 0x12, 0x04, 0xe8, 0x01, 0x02, 0x1b, 0x0a, 0xb4, 0x01, 0x0a, - 0x04, 0x04, 0x0c, 0x02, 0x02, 0x12, 0x04, 0xe8, 0x01, 0x02, 0x34, 0x1a, 0xa5, 0x01, 0x20, 0x4f, - 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x66, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x0a, 0x20, 0x55, 0x73, 0x65, 0x66, - 0x75, 0x6c, 0x20, 0x69, 0x66, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x77, 0x61, 0x76, 0x65, 0x66, - 0x6f, 0x72, 0x6d, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x20, 0x77, 0x66, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x20, 0x77, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x20, 0x28, 0x56, 0x65, 0x72, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x67, 0x75, 0x69, 0x6c, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x02, 0x01, 0x12, 0x04, 0xe8, 0x01, - 0x1c, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x02, 0x03, 0x12, 0x04, 0xe8, 0x01, 0x32, - 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x04, 0x12, 0x04, 0xec, 0x01, 0x02, 0x0a, - 0x0a, 0x74, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x03, 0x12, 0x04, 0xec, 0x01, 0x02, 0x34, 0x1a, 0x66, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x69, - 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x05, 0x12, - 0x04, 0xec, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x01, 0x12, 0x04, - 0xec, 0x01, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x03, 0x12, 0x04, 0xec, - 0x01, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x08, 0x12, 0x04, 0xec, 0x01, - 0x20, 0x33, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0c, 0x02, 0x03, 0x08, 0x03, 0x12, 0x04, 0xec, 0x01, - 0x21, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x04, 0x05, 0x12, 0x04, 0xef, 0x01, 0x02, - 0x08, 0x0a, 0x55, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x04, 0x12, 0x04, 0xef, 0x01, 0x02, 0x14, 0x1a, - 0x47, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x75, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, 0x2c, - 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x69, 0x73, 0x20, 0x69, - 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x04, - 0x01, 0x12, 0x04, 0xef, 0x01, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x04, 0x03, - 0x12, 0x04, 0xef, 0x01, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x05, 0x04, 0x12, - 0x04, 0xf3, 0x01, 0x02, 0x0a, 0x0a, 0x87, 0x01, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x05, 0x12, 0x04, - 0xf3, 0x01, 0x02, 0x23, 0x1a, 0x79, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x61, 0x74, - 0x61, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, - 0x75, 0x6f, 0x75, 0x73, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x05, 0x06, 0x12, 0x04, 0xf3, 0x01, 0x0b, 0x19, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x05, 0x01, 0x12, 0x04, 0xf3, 0x01, 0x1a, 0x1e, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0c, 0x02, 0x05, 0x03, 0x12, 0x04, 0xf3, 0x01, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0c, 0x02, 0x06, 0x06, 0x12, 0x04, 0xf6, 0x01, 0x02, 0x14, 0x0a, 0x51, 0x0a, 0x04, 0x04, - 0x0c, 0x02, 0x06, 0x12, 0x04, 0xf6, 0x01, 0x02, 0x29, 0x1a, 0x43, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, - 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x06, 0x01, 0x12, 0x04, 0xf6, 0x01, 0x15, 0x24, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0c, 0x02, 0x06, 0x03, 0x12, 0x04, 0xf6, 0x01, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0c, 0x02, 0x07, 0x04, 0x12, 0x04, 0xf9, 0x01, 0x02, 0x0a, 0x0a, 0x50, 0x0a, 0x04, 0x04, - 0x0c, 0x02, 0x07, 0x12, 0x04, 0xf9, 0x01, 0x02, 0x26, 0x1a, 0x42, 0x20, 0x54, 0x69, 0x6d, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x69, 0x6d, 0x65, - 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x44, 0x4d, 0x53, 0x20, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0c, 0x02, 0x07, 0x06, 0x12, 0x04, 0xf9, 0x01, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0c, 0x02, 0x07, 0x01, 0x12, 0x04, 0xf9, 0x01, 0x16, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0c, 0x02, 0x07, 0x03, 0x12, 0x04, 0xf9, 0x01, 0x24, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, - 0x02, 0x08, 0x04, 0x12, 0x04, 0xfc, 0x01, 0x02, 0x0a, 0x0a, 0x53, 0x0a, 0x04, 0x04, 0x0c, 0x02, - 0x08, 0x12, 0x04, 0xfc, 0x01, 0x02, 0x3d, 0x1a, 0x45, 0x20, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, - 0x74, 0x69, 0x6d, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x08, 0x06, 0x12, 0x04, 0xfc, 0x01, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0c, 0x02, 0x08, 0x01, 0x12, 0x04, 0xfc, 0x01, 0x25, 0x38, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0c, 0x02, 0x08, 0x03, 0x12, 0x04, 0xfc, 0x01, 0x3b, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0c, 0x02, 0x09, 0x05, 0x12, 0x04, 0x80, 0x02, 0x02, 0x06, 0x0a, 0x7d, 0x0a, 0x04, 0x04, 0x0c, - 0x02, 0x09, 0x12, 0x04, 0x80, 0x02, 0x02, 0x23, 0x1a, 0x6f, 0x20, 0x49, 0x66, 0x20, 0x74, 0x72, - 0x75, 0x65, 0x2c, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, - 0x54, 0x44, 0x4d, 0x53, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, - 0x61, 0x73, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x20, 0x4f, 0x6e, - 0x6c, 0x79, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, - 0x20, 0x69, 0x73, 0x20, 0x73, 0x65, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, - 0x09, 0x01, 0x12, 0x04, 0x80, 0x02, 0x07, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x09, - 0x03, 0x12, 0x04, 0x80, 0x02, 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x06, 0x83, - 0x02, 0x00, 0x87, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0d, 0x01, 0x12, 0x04, 0x83, 0x02, - 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x05, 0x12, 0x04, 0x84, 0x02, 0x02, - 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x00, 0x12, 0x04, 0x84, 0x02, 0x02, 0x12, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x01, 0x12, 0x04, 0x84, 0x02, 0x09, 0x0d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x03, 0x12, 0x04, 0x84, 0x02, 0x10, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0d, 0x02, 0x01, 0x06, 0x12, 0x04, 0x85, 0x02, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x0d, 0x02, 0x01, 0x12, 0x04, 0x85, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, - 0x02, 0x01, 0x01, 0x12, 0x04, 0x85, 0x02, 0x0d, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, - 0x01, 0x03, 0x12, 0x04, 0x85, 0x02, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, - 0x04, 0x12, 0x04, 0x86, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x02, 0x12, - 0x04, 0x86, 0x02, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, 0x06, 0x12, 0x04, - 0x86, 0x02, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, 0x01, 0x12, 0x04, 0x86, - 0x02, 0x25, 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, 0x03, 0x12, 0x04, 0x86, 0x02, - 0x3b, 0x3c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0e, 0x12, 0x06, 0x89, 0x02, 0x00, 0x8c, 0x02, 0x01, - 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0e, 0x01, 0x12, 0x04, 0x89, 0x02, 0x08, 0x19, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0e, 0x02, 0x00, 0x05, 0x12, 0x04, 0x8a, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x0e, 0x02, 0x00, 0x12, 0x04, 0x8a, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, - 0x02, 0x00, 0x01, 0x12, 0x04, 0x8a, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, - 0x00, 0x03, 0x12, 0x04, 0x8a, 0x02, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, - 0x06, 0x12, 0x04, 0x8b, 0x02, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x01, 0x12, - 0x04, 0x8b, 0x02, 0x02, 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x01, 0x12, 0x04, - 0x8b, 0x02, 0x24, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8b, - 0x02, 0x35, 0x36, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0f, 0x12, 0x06, 0x8e, 0x02, 0x00, 0x91, 0x02, - 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0f, 0x01, 0x12, 0x04, 0x8e, 0x02, 0x08, 0x15, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x05, 0x12, 0x04, 0x8f, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x0f, 0x02, 0x00, 0x12, 0x04, 0x8f, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0f, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8f, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, - 0x02, 0x00, 0x03, 0x12, 0x04, 0x8f, 0x02, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, - 0x01, 0x06, 0x12, 0x04, 0x90, 0x02, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x01, - 0x12, 0x04, 0x90, 0x02, 0x02, 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x01, 0x12, - 0x04, 0x90, 0x02, 0x24, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x03, 0x12, 0x04, - 0x90, 0x02, 0x34, 0x35, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x10, 0x12, 0x06, 0x93, 0x02, 0x00, 0x96, - 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x10, 0x01, 0x12, 0x04, 0x93, 0x02, 0x08, 0x20, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x06, 0x12, 0x04, 0x94, 0x02, 0x02, 0x13, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x10, 0x02, 0x00, 0x12, 0x04, 0x94, 0x02, 0x02, 0x24, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x10, 0x02, 0x00, 0x01, 0x12, 0x04, 0x94, 0x02, 0x14, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x10, 0x02, 0x00, 0x03, 0x12, 0x04, 0x94, 0x02, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, - 0x02, 0x01, 0x04, 0x12, 0x04, 0x95, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, - 0x01, 0x12, 0x04, 0x95, 0x02, 0x02, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x06, - 0x12, 0x04, 0x95, 0x02, 0x0b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x01, 0x12, - 0x04, 0x95, 0x02, 0x1d, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x03, 0x12, 0x04, - 0x95, 0x02, 0x2c, 0x2d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x11, 0x12, 0x06, 0x98, 0x02, 0x00, 0x9b, - 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x11, 0x01, 0x12, 0x04, 0x98, 0x02, 0x08, 0x34, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x05, 0x12, 0x04, 0x99, 0x02, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x11, 0x02, 0x00, 0x12, 0x04, 0x99, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x11, 0x02, 0x00, 0x01, 0x12, 0x04, 0x99, 0x02, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x11, 0x02, 0x00, 0x03, 0x12, 0x04, 0x99, 0x02, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, - 0x02, 0x01, 0x05, 0x12, 0x04, 0x9a, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, - 0x01, 0x12, 0x04, 0x9a, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x01, - 0x12, 0x04, 0x9a, 0x02, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x03, 0x12, - 0x04, 0x9a, 0x02, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x12, 0x12, 0x06, 0x9d, 0x02, 0x00, - 0xa0, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x12, 0x01, 0x12, 0x04, 0x9d, 0x02, 0x08, 0x35, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x05, 0x12, 0x04, 0x9e, 0x02, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x00, 0x12, 0x04, 0x9e, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x12, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9e, 0x02, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x12, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9e, 0x02, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x12, 0x02, 0x01, 0x06, 0x12, 0x04, 0x9f, 0x02, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, - 0x02, 0x01, 0x12, 0x04, 0x9f, 0x02, 0x02, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, - 0x01, 0x12, 0x04, 0x9f, 0x02, 0x24, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x03, - 0x12, 0x04, 0x9f, 0x02, 0x2e, 0x2f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x13, 0x12, 0x06, 0xa2, 0x02, - 0x00, 0xad, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x13, 0x01, 0x12, 0x04, 0xa2, 0x02, 0x08, - 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x06, 0x12, 0x04, 0xa4, 0x02, 0x02, 0x13, - 0x0a, 0x2f, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x00, 0x12, 0x04, 0xa4, 0x02, 0x02, 0x24, 0x1a, 0x21, - 0x20, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa4, 0x02, 0x14, 0x1f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa4, 0x02, 0x22, 0x23, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x04, 0x12, 0x04, 0xa6, 0x02, 0x02, 0x0a, 0x0a, 0x21, - 0x0a, 0x04, 0x04, 0x13, 0x02, 0x01, 0x12, 0x04, 0xa6, 0x02, 0x02, 0x25, 0x1a, 0x13, 0x20, 0x44, - 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x06, 0x12, 0x04, 0xa6, 0x02, 0x0b, 0x18, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa6, 0x02, 0x19, 0x20, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa6, 0x02, 0x23, 0x24, 0x0a, 0x0e, - 0x0a, 0x04, 0x04, 0x13, 0x08, 0x00, 0x12, 0x06, 0xa7, 0x02, 0x02, 0xac, 0x02, 0x03, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x13, 0x08, 0x00, 0x01, 0x12, 0x04, 0xa7, 0x02, 0x08, 0x0e, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x13, 0x02, 0x02, 0x06, 0x12, 0x04, 0xa9, 0x02, 0x04, 0x31, 0x0a, 0x36, 0x0a, 0x04, - 0x04, 0x13, 0x02, 0x02, 0x12, 0x04, 0xa9, 0x02, 0x04, 0x45, 0x1a, 0x28, 0x20, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x01, 0x12, 0x04, 0xa9, - 0x02, 0x32, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x03, 0x12, 0x04, 0xa9, 0x02, - 0x43, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x06, 0x12, 0x04, 0xab, 0x02, 0x04, - 0x30, 0x0a, 0x35, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x03, 0x12, 0x04, 0xab, 0x02, 0x04, 0x43, 0x1a, - 0x27, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, - 0x01, 0x12, 0x04, 0xab, 0x02, 0x31, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x03, - 0x12, 0x04, 0xab, 0x02, 0x41, 0x42, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x04, 0x12, 0x06, 0xaf, 0x02, - 0x00, 0xb9, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x04, 0x01, 0x12, 0x04, 0xaf, 0x02, 0x05, - 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb0, 0x02, 0x02, 0x2f, - 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x04, 0x02, 0x00, 0x12, 0x04, 0xb0, 0x02, 0x02, 0x48, 0x0a, 0x0d, - 0x0a, 0x05, 0x05, 0x04, 0x02, 0x00, 0x02, 0x12, 0x04, 0xb0, 0x02, 0x32, 0x33, 0x0a, 0x0d, 0x0a, - 0x05, 0x05, 0x04, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb0, 0x02, 0x34, 0x47, 0x0a, 0x0e, 0x0a, 0x06, - 0x05, 0x04, 0x02, 0x00, 0x03, 0x01, 0x12, 0x04, 0xb0, 0x02, 0x35, 0x46, 0x0a, 0x0d, 0x0a, 0x05, - 0x05, 0x04, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb2, 0x02, 0x02, 0x2a, 0x0a, 0x3c, 0x0a, 0x04, 0x05, - 0x04, 0x02, 0x01, 0x12, 0x04, 0xb2, 0x02, 0x02, 0x2f, 0x1a, 0x2e, 0x20, 0x49, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, - 0x01, 0x02, 0x12, 0x04, 0xb2, 0x02, 0x2d, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, 0x02, - 0x01, 0x12, 0x04, 0xb4, 0x02, 0x02, 0x28, 0x0a, 0x4a, 0x0a, 0x04, 0x05, 0x04, 0x02, 0x02, 0x12, - 0x04, 0xb4, 0x02, 0x02, 0x2d, 0x1a, 0x3c, 0x20, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x61, 0x73, 0x20, - 0x62, 0x6f, 0x74, 0x68, 0x20, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, 0x02, 0x02, 0x12, 0x04, 0xb4, 0x02, - 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, 0x03, 0x01, 0x12, 0x04, 0xb6, 0x02, 0x02, - 0x2a, 0x0a, 0x3a, 0x0a, 0x04, 0x05, 0x04, 0x02, 0x03, 0x12, 0x04, 0xb6, 0x02, 0x02, 0x2f, 0x1a, - 0x2c, 0x20, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x4a, - 0x53, 0x4f, 0x4e, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x05, 0x04, 0x02, 0x03, 0x02, 0x12, 0x04, 0xb6, 0x02, 0x2d, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, - 0x05, 0x04, 0x02, 0x04, 0x01, 0x12, 0x04, 0xb8, 0x02, 0x02, 0x29, 0x0a, 0x39, 0x0a, 0x04, 0x05, - 0x04, 0x02, 0x04, 0x12, 0x04, 0xb8, 0x02, 0x02, 0x2e, 0x1a, 0x2b, 0x20, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x20, 0x61, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x20, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, 0x04, 0x02, 0x12, - 0x04, 0xb8, 0x02, 0x2c, 0x2d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x14, 0x12, 0x06, 0xbb, 0x02, 0x00, - 0xc8, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x14, 0x01, 0x12, 0x04, 0xbb, 0x02, 0x08, 0x15, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x05, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x00, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x14, 0x02, 0x00, 0x01, 0x12, 0x04, 0xbc, 0x02, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x14, 0x02, 0x00, 0x03, 0x12, 0x04, 0xbc, 0x02, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x14, 0x02, 0x01, 0x05, 0x12, 0x04, 0xbd, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, - 0x02, 0x01, 0x12, 0x04, 0xbd, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, - 0x01, 0x12, 0x04, 0xbd, 0x02, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x03, - 0x12, 0x04, 0xbd, 0x02, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, 0x05, 0x12, - 0x04, 0xbf, 0x02, 0x02, 0x08, 0x0a, 0x55, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x02, 0x12, 0x04, 0xbf, - 0x02, 0x02, 0x14, 0x1a, 0x47, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x49, 0x66, 0x20, - 0x73, 0x65, 0x74, 0x2c, 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, - 0x69, 0x73, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x14, 0x02, 0x02, 0x01, 0x12, 0x04, 0xbf, 0x02, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x14, 0x02, 0x02, 0x03, 0x12, 0x04, 0xbf, 0x02, 0x12, 0x13, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x14, - 0x08, 0x00, 0x12, 0x06, 0xc0, 0x02, 0x02, 0xc3, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, - 0x08, 0x00, 0x01, 0x12, 0x04, 0xc0, 0x02, 0x08, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, - 0x03, 0x06, 0x12, 0x04, 0xc1, 0x02, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x03, - 0x12, 0x04, 0xc1, 0x02, 0x04, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x01, 0x12, - 0x04, 0xc1, 0x02, 0x1d, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x03, 0x12, 0x04, - 0xc1, 0x02, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x04, 0x06, 0x12, 0x04, 0xc2, - 0x02, 0x04, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x04, 0x12, 0x04, 0xc2, 0x02, 0x04, - 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x04, 0x01, 0x12, 0x04, 0xc2, 0x02, 0x25, 0x3b, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x04, 0x03, 0x12, 0x04, 0xc2, 0x02, 0x3e, 0x3f, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x05, 0x12, 0x04, 0xc4, 0x02, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x14, 0x02, 0x05, 0x12, 0x04, 0xc4, 0x02, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x14, 0x02, 0x05, 0x01, 0x12, 0x04, 0xc4, 0x02, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x14, 0x02, 0x05, 0x03, 0x12, 0x04, 0xc4, 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, - 0x02, 0x06, 0x05, 0x12, 0x04, 0xc5, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, - 0x06, 0x12, 0x04, 0xc5, 0x02, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x06, 0x01, - 0x12, 0x04, 0xc5, 0x02, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x06, 0x03, 0x12, - 0x04, 0xc5, 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x07, 0x06, 0x12, 0x04, - 0xc7, 0x02, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x07, 0x12, 0x04, 0xc7, 0x02, - 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x07, 0x01, 0x12, 0x04, 0xc7, 0x02, 0x20, - 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x07, 0x03, 0x12, 0x04, 0xc7, 0x02, 0x3c, 0x3d, - 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x15, 0x12, 0x06, 0xca, 0x02, 0x00, 0xd3, 0x02, 0x01, 0x0a, 0x0b, - 0x0a, 0x03, 0x04, 0x15, 0x01, 0x12, 0x04, 0xca, 0x02, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x15, 0x02, 0x00, 0x05, 0x12, 0x04, 0xcb, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, - 0x02, 0x00, 0x12, 0x04, 0xcb, 0x02, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, - 0x01, 0x12, 0x04, 0xcb, 0x02, 0x09, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x03, - 0x12, 0x04, 0xcb, 0x02, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x05, 0x12, - 0x04, 0xcc, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x01, 0x12, 0x04, 0xcc, - 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcc, 0x02, - 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x03, 0x12, 0x04, 0xcc, 0x02, 0x16, - 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x05, 0x12, 0x04, 0xcd, 0x02, 0x02, 0x08, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x02, 0x12, 0x04, 0xcd, 0x02, 0x02, 0x1b, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x01, 0x12, 0x04, 0xcd, 0x02, 0x09, 0x16, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x15, 0x02, 0x02, 0x03, 0x12, 0x04, 0xcd, 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x15, 0x02, 0x03, 0x05, 0x12, 0x04, 0xce, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x15, 0x02, 0x03, 0x12, 0x04, 0xce, 0x02, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, - 0x03, 0x01, 0x12, 0x04, 0xce, 0x02, 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x03, - 0x03, 0x12, 0x04, 0xce, 0x02, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x04, 0x06, - 0x12, 0x04, 0xcf, 0x02, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x04, 0x12, 0x04, - 0xcf, 0x02, 0x02, 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x04, 0x01, 0x12, 0x04, 0xcf, - 0x02, 0x24, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x04, 0x03, 0x12, 0x04, 0xcf, 0x02, - 0x35, 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x05, 0x04, 0x12, 0x04, 0xd1, 0x02, 0x02, - 0x0a, 0x0a, 0x49, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x05, 0x12, 0x04, 0xd1, 0x02, 0x02, 0x21, 0x1a, - 0x3b, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x15, 0x02, 0x05, 0x05, 0x12, 0x04, 0xd1, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x15, 0x02, 0x05, 0x01, 0x12, 0x04, 0xd1, 0x02, 0x12, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, - 0x02, 0x05, 0x03, 0x12, 0x04, 0xd1, 0x02, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, - 0x06, 0x04, 0x12, 0x04, 0xd2, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x06, - 0x12, 0x04, 0xd2, 0x02, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x06, 0x05, 0x12, - 0x04, 0xd2, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x06, 0x01, 0x12, 0x04, - 0xd2, 0x02, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x06, 0x03, 0x12, 0x04, 0xd2, - 0x02, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x16, 0x12, 0x06, 0xd5, 0x02, 0x00, 0xdd, 0x02, - 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x16, 0x01, 0x12, 0x04, 0xd5, 0x02, 0x08, 0x12, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x16, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd6, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x16, 0x02, 0x00, 0x12, 0x04, 0xd6, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x16, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd6, 0x02, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, - 0x02, 0x00, 0x03, 0x12, 0x04, 0xd6, 0x02, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, - 0x01, 0x05, 0x12, 0x04, 0xd7, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x01, - 0x12, 0x04, 0xd7, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x01, 0x12, - 0x04, 0xd7, 0x02, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x03, 0x12, 0x04, - 0xd7, 0x02, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x05, 0x12, 0x04, 0xd9, - 0x02, 0x02, 0x08, 0x0a, 0x55, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x02, 0x12, 0x04, 0xd9, 0x02, 0x02, - 0x14, 0x1a, 0x47, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x73, 0x65, - 0x74, 0x2c, 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x69, 0x73, - 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, - 0x02, 0x02, 0x01, 0x12, 0x04, 0xd9, 0x02, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, - 0x02, 0x03, 0x12, 0x04, 0xd9, 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x03, - 0x04, 0x12, 0x04, 0xda, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x03, 0x12, - 0x04, 0xda, 0x02, 0x02, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x03, 0x06, 0x12, 0x04, - 0xda, 0x02, 0x0b, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x03, 0x01, 0x12, 0x04, 0xda, - 0x02, 0x1a, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x03, 0x03, 0x12, 0x04, 0xda, 0x02, - 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x06, 0x12, 0x04, 0xdb, 0x02, 0x02, - 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x04, 0x12, 0x04, 0xdb, 0x02, 0x02, 0x1d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x01, 0x12, 0x04, 0xdb, 0x02, 0x0d, 0x18, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x03, 0x12, 0x04, 0xdb, 0x02, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x16, 0x02, 0x05, 0x04, 0x12, 0x04, 0xdc, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x16, 0x02, 0x05, 0x12, 0x04, 0xdc, 0x02, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, - 0x02, 0x05, 0x06, 0x12, 0x04, 0xdc, 0x02, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, - 0x05, 0x01, 0x12, 0x04, 0xdc, 0x02, 0x25, 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, - 0x03, 0x12, 0x04, 0xdc, 0x02, 0x3b, 0x3c, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x05, 0x12, 0x06, 0xdf, - 0x02, 0x00, 0xe6, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x05, 0x01, 0x12, 0x04, 0xdf, 0x02, - 0x05, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe1, 0x02, 0x02, - 0x25, 0x0a, 0x41, 0x0a, 0x04, 0x05, 0x05, 0x02, 0x00, 0x12, 0x04, 0xe1, 0x02, 0x02, 0x2a, 0x1a, - 0x33, 0x20, 0x54, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x55, 0x4c, 0x4f, - 0x47, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x50, 0x4f, - 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x5f, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x00, 0x02, 0x12, 0x04, 0xe1, - 0x02, 0x28, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe3, 0x02, - 0x02, 0x27, 0x0a, 0x3f, 0x0a, 0x04, 0x05, 0x05, 0x02, 0x01, 0x12, 0x04, 0xe3, 0x02, 0x02, 0x2c, - 0x1a, 0x31, 0x20, 0x46, 0x61, 0x69, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x01, 0x02, 0x12, 0x04, 0xe3, 0x02, - 0x2a, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x02, 0x01, 0x12, 0x04, 0xe5, 0x02, 0x02, - 0x26, 0x0a, 0x3f, 0x0a, 0x04, 0x05, 0x05, 0x02, 0x02, 0x12, 0x04, 0xe5, 0x02, 0x02, 0x2b, 0x1a, - 0x31, 0x20, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, - 0x72, 0x73, 0x65, 0x64, 0x3b, 0x20, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x64, - 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x02, 0x02, 0x12, 0x04, 0xe5, 0x02, 0x29, - 0x2a, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x17, 0x12, 0x06, 0xe8, 0x02, 0x00, 0xf3, 0x02, 0x01, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x17, 0x01, 0x12, 0x04, 0xe8, 0x02, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x17, 0x02, 0x00, 0x05, 0x12, 0x04, 0xea, 0x02, 0x02, 0x08, 0x0a, 0x3c, 0x0a, 0x04, 0x04, - 0x17, 0x02, 0x00, 0x12, 0x04, 0xea, 0x02, 0x02, 0x1a, 0x1a, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x55, 0x4c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x6c, 0x22, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, - 0x00, 0x01, 0x12, 0x04, 0xea, 0x02, 0x09, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, - 0x03, 0x12, 0x04, 0xea, 0x02, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x05, - 0x12, 0x04, 0xec, 0x02, 0x02, 0x07, 0x0a, 0x2e, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x01, 0x12, 0x04, - 0xec, 0x02, 0x02, 0x15, 0x1a, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x30, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x01, 0x12, - 0x04, 0xec, 0x02, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x03, 0x12, 0x04, - 0xec, 0x02, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x02, 0x05, 0x12, 0x04, 0xf0, - 0x02, 0x02, 0x08, 0x0a, 0xc8, 0x01, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x02, 0x12, 0x04, 0xf0, 0x02, - 0x02, 0x18, 0x1a, 0xb9, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x55, - 0x4c, 0x6f, 0x67, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x28, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x78, 0x22, 0x2c, 0x20, 0x22, 0x65, 0x73, 0x63, 0x5b, 0x30, - 0x5d, 0x2e, 0x76, 0x22, 0x29, 0x2e, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x6c, 0x6f, 0x67, 0x2d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x20, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x28, 0x22, 0x6c, 0x6f, 0x67, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x2c, 0x20, 0x22, 0x6c, 0x6f, 0x67, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x3c, 0x74, 0x61, 0x67, 0x3e, 0x22, 0x29, 0x2c, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x30, 0x2e, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x17, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf0, 0x02, 0x09, 0x13, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x17, 0x02, 0x02, 0x03, 0x12, 0x04, 0xf0, 0x02, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x17, 0x02, 0x03, 0x06, 0x12, 0x04, 0xf2, 0x02, 0x02, 0x23, 0x0a, 0x45, 0x0a, 0x04, 0x04, - 0x17, 0x02, 0x03, 0x12, 0x04, 0xf2, 0x02, 0x02, 0x37, 0x1a, 0x37, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x53, 0x69, 0x66, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, - 0x69, 0x73, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x01, 0x12, 0x04, 0xf2, 0x02, 0x24, - 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x03, 0x12, 0x04, 0xf2, 0x02, 0x35, 0x36, - 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x18, 0x12, 0x06, 0xf5, 0x02, 0x00, 0x88, 0x03, 0x01, 0x0a, 0x0b, - 0x0a, 0x03, 0x04, 0x18, 0x01, 0x12, 0x04, 0xf5, 0x02, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x18, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf6, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x18, - 0x02, 0x00, 0x12, 0x04, 0xf6, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, - 0x01, 0x12, 0x04, 0xf6, 0x02, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x03, - 0x12, 0x04, 0xf6, 0x02, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x05, 0x12, - 0x04, 0xf7, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x01, 0x12, 0x04, 0xf7, - 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf7, 0x02, - 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf7, 0x02, 0x14, - 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x02, 0x05, 0x12, 0x04, 0xf9, 0x02, 0x02, 0x08, - 0x0a, 0x55, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x02, 0x12, 0x04, 0xf9, 0x02, 0x02, 0x14, 0x1a, 0x47, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x75, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, - 0x61, 0x74, 0x61, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, - 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x69, 0x73, 0x20, 0x69, 0x67, - 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x02, 0x01, - 0x12, 0x04, 0xf9, 0x02, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x02, 0x03, 0x12, - 0x04, 0xf9, 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x03, 0x04, 0x12, 0x04, - 0xfd, 0x02, 0x02, 0x0a, 0x0a, 0xb3, 0x01, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x03, 0x12, 0x04, 0xfd, - 0x02, 0x02, 0x23, 0x1a, 0xa4, 0x01, 0x20, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x74, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x0a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x73, 0x3b, 0x20, 0x69, 0x66, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x0a, - 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, - 0x02, 0x03, 0x06, 0x12, 0x04, 0xfd, 0x02, 0x0b, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, - 0x03, 0x01, 0x12, 0x04, 0xfd, 0x02, 0x1a, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x03, - 0x03, 0x12, 0x04, 0xfd, 0x02, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x04, 0x04, - 0x12, 0x04, 0x81, 0x03, 0x02, 0x0a, 0x0a, 0xc6, 0x01, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x04, 0x12, - 0x04, 0x81, 0x03, 0x02, 0x3d, 0x1a, 0xb7, 0x01, 0x20, 0x4c, 0x6f, 0x67, 0x2d, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x20, 0x55, 0x54, 0x43, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, - 0x2c, 0x20, 0x69, 0x74, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x61, - 0x6b, 0x65, 0x73, 0x20, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, - 0x76, 0x65, 0x72, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x27, 0x73, 0x20, 0x47, - 0x50, 0x53, 0x20, 0x66, 0x69, 0x78, 0x3b, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x50, 0x53, 0x20, 0x66, 0x69, 0x78, 0x20, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x0a, 0x20, - 0x66, 0x61, 0x69, 0x6c, 0x73, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x04, 0x06, 0x12, 0x04, 0x81, 0x03, 0x0b, 0x24, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x18, 0x02, 0x04, 0x01, 0x12, 0x04, 0x81, 0x03, 0x25, 0x38, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x18, 0x02, 0x04, 0x03, 0x12, 0x04, 0x81, 0x03, 0x3b, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x18, 0x02, 0x05, 0x04, 0x12, 0x04, 0x83, 0x03, 0x02, 0x0a, 0x0a, 0x64, 0x0a, 0x04, 0x04, - 0x18, 0x02, 0x05, 0x12, 0x04, 0x83, 0x03, 0x02, 0x20, 0x1a, 0x56, 0x20, 0x49, 0x2f, 0x4d, 0x20, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x6b, 0x65, 0x79, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x73, 0x20, 0x72, - 0x75, 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x28, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x3c, 0x6b, 0x65, 0x79, - 0x3e, 0x29, 0x2e, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x05, 0x05, 0x12, 0x04, 0x83, 0x03, 0x0b, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x05, 0x01, 0x12, 0x04, 0x83, 0x03, 0x12, 0x1b, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x05, 0x03, 0x12, 0x04, 0x83, 0x03, 0x1e, 0x1f, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x18, 0x02, 0x06, 0x04, 0x12, 0x04, 0x85, 0x03, 0x02, 0x0a, 0x0a, 0x62, 0x0a, - 0x04, 0x04, 0x18, 0x02, 0x06, 0x12, 0x04, 0x85, 0x03, 0x02, 0x21, 0x1a, 0x54, 0x20, 0x50, 0x20, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x73, 0x20, 0x72, 0x75, 0x6e, - 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x28, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x64, 0x20, 0x61, 0x73, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x3c, 0x6e, 0x61, 0x6d, 0x65, - 0x3e, 0x29, 0x2e, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x06, 0x05, 0x12, 0x04, 0x85, 0x03, 0x0b, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x06, 0x01, 0x12, 0x04, 0x85, 0x03, 0x12, 0x1c, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x06, 0x03, 0x12, 0x04, 0x85, 0x03, 0x1f, 0x20, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x18, 0x02, 0x07, 0x06, 0x12, 0x04, 0x87, 0x03, 0x02, 0x16, 0x0a, 0x49, 0x0a, - 0x04, 0x04, 0x18, 0x02, 0x07, 0x12, 0x04, 0x87, 0x03, 0x02, 0x2e, 0x1a, 0x3b, 0x20, 0x52, 0x65, - 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x20, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x3b, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x07, - 0x01, 0x12, 0x04, 0x87, 0x03, 0x17, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x07, 0x03, - 0x12, 0x04, 0x87, 0x03, 0x2c, 0x2d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x19, 0x12, 0x06, 0x8a, 0x03, - 0x00, 0xa1, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x19, 0x01, 0x12, 0x04, 0x8a, 0x03, 0x08, - 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x05, 0x12, 0x04, 0x8d, 0x03, 0x02, 0x08, - 0x0a, 0xc7, 0x01, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x00, 0x12, 0x04, 0x8d, 0x03, 0x02, 0x16, 0x1a, - 0xb8, 0x01, 0x20, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x42, 0x6f, 0x74, - 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x20, - 0x49, 0x66, 0x20, 0x6e, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x73, 0x65, - 0x74, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x67, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, - 0x6e, 0x2e, 0x0a, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x08, 0x00, 0x12, 0x04, 0x92, 0x01, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x07, + 0x05, 0x12, 0x04, 0x97, 0x01, 0x02, 0x06, 0x0a, 0x8b, 0x02, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x07, + 0x12, 0x04, 0x97, 0x01, 0x02, 0x20, 0x1a, 0xfc, 0x01, 0x20, 0x49, 0x66, 0x20, 0x74, 0x72, 0x75, + 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x0a, + 0x20, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x20, 0x77, + 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x61, 0x73, + 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x0a, 0x20, + 0x65, 0x6d, 0x62, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x29, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x68, 0x65, + 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x0a, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x20, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x07, 0x01, 0x12, 0x04, + 0x97, 0x01, 0x07, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x07, 0x03, 0x12, 0x04, 0x97, + 0x01, 0x1d, 0x1f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x06, 0x9a, 0x01, 0x00, 0x9f, 0x01, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x04, 0x9a, 0x01, 0x08, 0x15, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, 0x04, 0x9c, 0x01, 0x02, 0x08, 0x0a, 0x41, 0x0a, + 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x04, 0x9c, 0x01, 0x02, 0x1b, 0x1a, 0x33, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x28, 0x31, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x29, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9c, 0x01, 0x09, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9c, 0x01, 0x19, 0x1a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x06, 0x12, 0x04, 0x9d, 0x01, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, 0x04, 0x9d, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x07, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9d, 0x01, 0x0d, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x01, 0x03, 0x12, 0x04, 0x9d, 0x01, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, + 0x02, 0x04, 0x12, 0x04, 0x9e, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x02, + 0x12, 0x04, 0x9e, 0x01, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x06, 0x12, + 0x04, 0x9e, 0x01, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x01, 0x12, 0x04, + 0x9e, 0x01, 0x25, 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9e, + 0x01, 0x3b, 0x3c, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x06, 0xa3, 0x01, 0x00, 0xac, 0x01, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, 0x04, 0xa3, 0x01, 0x05, 0x10, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, + 0x04, 0x05, 0x01, 0x02, 0x00, 0x12, 0x04, 0xa4, 0x01, 0x02, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x00, 0x02, 0x12, 0x04, 0xa4, 0x01, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xa4, 0x01, 0x20, 0x33, 0x0a, 0x0e, 0x0a, 0x06, 0x05, 0x01, 0x02, + 0x00, 0x03, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x21, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, + 0x01, 0x01, 0x12, 0x04, 0xa5, 0x01, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x01, + 0x12, 0x04, 0xa5, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x02, 0x12, + 0x04, 0xa5, 0x01, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x01, 0x12, 0x04, + 0xa6, 0x01, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x02, 0x12, 0x04, 0xa6, 0x01, + 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x02, 0x12, 0x04, 0xa6, 0x01, 0x17, + 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa7, 0x01, 0x02, 0x14, + 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x03, 0x12, 0x04, 0xa7, 0x01, 0x02, 0x19, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x02, 0x12, 0x04, 0xa7, 0x01, 0x17, 0x18, 0x0a, 0x0d, 0x0a, + 0x05, 0x05, 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa8, 0x01, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x04, + 0x05, 0x01, 0x02, 0x04, 0x12, 0x04, 0xa8, 0x01, 0x02, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, + 0x02, 0x04, 0x02, 0x12, 0x04, 0xa8, 0x01, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, + 0x05, 0x01, 0x12, 0x04, 0xa9, 0x01, 0x02, 0x2e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x05, + 0x12, 0x04, 0xa9, 0x01, 0x02, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x05, 0x02, 0x12, + 0x04, 0xa9, 0x01, 0x31, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x06, 0x01, 0x12, 0x04, + 0xaa, 0x01, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x06, 0x12, 0x04, 0xaa, 0x01, + 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x06, 0x02, 0x12, 0x04, 0xaa, 0x01, 0x17, + 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x07, 0x01, 0x12, 0x04, 0xab, 0x01, 0x02, 0x14, + 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x07, 0x12, 0x04, 0xab, 0x01, 0x02, 0x19, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x01, 0x02, 0x07, 0x02, 0x12, 0x04, 0xab, 0x01, 0x17, 0x18, 0x0a, 0x0c, 0x0a, + 0x02, 0x04, 0x08, 0x12, 0x06, 0xae, 0x01, 0x00, 0xb1, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x08, 0x01, 0x12, 0x04, 0xae, 0x01, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, + 0x05, 0x12, 0x04, 0xaf, 0x01, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, + 0x04, 0xaf, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xaf, 0x01, 0x08, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, 0x12, 0x04, 0xaf, + 0x01, 0x0f, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x06, 0x12, 0x04, 0xb0, 0x01, + 0x02, 0x0d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x04, 0xb0, 0x01, 0x02, 0x17, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb0, 0x01, 0x0e, 0x12, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb0, 0x01, 0x15, 0x16, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x09, 0x12, 0x06, 0xb3, 0x01, 0x00, 0xb8, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x09, 0x01, 0x12, 0x04, 0xb3, 0x01, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, + 0x00, 0x06, 0x12, 0x04, 0xb4, 0x01, 0x02, 0x0b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, + 0x12, 0x04, 0xb4, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xb4, 0x01, 0x0c, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xb4, 0x01, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x06, 0x12, 0x04, 0xb5, + 0x01, 0x02, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x01, 0x12, 0x04, 0xb5, 0x01, 0x02, + 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb5, 0x01, 0x10, 0x1e, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb5, 0x01, 0x21, 0x22, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb6, 0x01, 0x02, 0x0c, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x09, 0x02, 0x02, 0x12, 0x04, 0xb6, 0x01, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x09, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb6, 0x01, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x09, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb6, 0x01, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, + 0x02, 0x03, 0x06, 0x12, 0x04, 0xb7, 0x01, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, + 0x03, 0x12, 0x04, 0xb7, 0x01, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x01, + 0x12, 0x04, 0xb7, 0x01, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x03, 0x12, + 0x04, 0xb7, 0x01, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0a, 0x12, 0x06, 0xba, 0x01, 0x00, + 0xbe, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0a, 0x01, 0x12, 0x04, 0xba, 0x01, 0x08, 0x12, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x05, 0x12, 0x04, 0xbb, 0x01, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, 0xbb, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0a, 0x02, 0x00, 0x01, 0x12, 0x04, 0xbb, 0x01, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0a, 0x02, 0x00, 0x03, 0x12, 0x04, 0xbb, 0x01, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0a, 0x02, 0x01, 0x05, 0x12, 0x04, 0xbc, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, + 0x02, 0x01, 0x12, 0x04, 0xbc, 0x01, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xbc, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x03, + 0x12, 0x04, 0xbc, 0x01, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x05, 0x12, + 0x04, 0xbd, 0x01, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x02, 0x12, 0x04, 0xbd, + 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x01, 0x12, 0x04, 0xbd, 0x01, + 0x07, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x03, 0x12, 0x04, 0xbd, 0x01, 0x16, + 0x17, 0x0a, 0x9a, 0x01, 0x0a, 0x02, 0x05, 0x02, 0x12, 0x06, 0xc2, 0x01, 0x00, 0xc8, 0x01, 0x01, + 0x1a, 0x8b, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x74, 0x65, 0x6c, 0x6c, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x72, 0x65, 0x61, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x0a, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x74, 0x69, + 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2c, 0x20, 0x77, 0x61, 0x76, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x20, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x69, + 0x6d, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x0b, + 0x0a, 0x03, 0x05, 0x02, 0x01, 0x12, 0x04, 0xc2, 0x01, 0x05, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x02, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc3, 0x01, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x02, + 0x02, 0x00, 0x12, 0x04, 0xc3, 0x01, 0x02, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x00, + 0x02, 0x12, 0x04, 0xc3, 0x01, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xc3, 0x01, 0x27, 0x3a, 0x0a, 0x0e, 0x0a, 0x06, 0x05, 0x02, 0x02, 0x00, 0x03, 0x01, + 0x12, 0x04, 0xc3, 0x01, 0x28, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xc5, 0x01, 0x02, 0x24, 0x0a, 0x5b, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc5, + 0x01, 0x02, 0x29, 0x1a, 0x4d, 0x20, 0x46, 0x61, 0x69, 0x6c, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x69, + 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x01, 0x02, 0x12, 0x04, 0xc5, 0x01, 0x27, + 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc7, 0x01, 0x02, 0x23, + 0x0a, 0x40, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x02, 0x12, 0x04, 0xc7, 0x01, 0x02, 0x28, 0x1a, 0x32, + 0x20, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x73, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x74, 0x69, + 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x02, 0x02, 0x12, 0x04, 0xc7, 0x01, 0x26, + 0x27, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x03, 0x12, 0x06, 0xca, 0x01, 0x00, 0xcf, 0x01, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x05, 0x03, 0x01, 0x12, 0x04, 0xca, 0x01, 0x05, 0x19, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x03, 0x02, 0x00, 0x01, 0x12, 0x04, 0xcc, 0x01, 0x02, 0x24, 0x0a, 0x38, 0x0a, 0x04, 0x05, + 0x03, 0x02, 0x00, 0x12, 0x04, 0xcc, 0x01, 0x02, 0x29, 0x1a, 0x2a, 0x20, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x03, 0x02, 0x00, 0x02, 0x12, 0x04, + 0xcc, 0x01, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x03, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcd, + 0x01, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x03, 0x02, 0x01, 0x12, 0x04, 0xcd, 0x01, 0x02, + 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x03, 0x02, 0x01, 0x02, 0x12, 0x04, 0xcd, 0x01, 0x20, 0x21, + 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x03, 0x02, 0x02, 0x01, 0x12, 0x04, 0xce, 0x01, 0x02, 0x22, 0x0a, + 0x0c, 0x0a, 0x04, 0x05, 0x03, 0x02, 0x02, 0x12, 0x04, 0xce, 0x01, 0x02, 0x27, 0x0a, 0x0d, 0x0a, + 0x05, 0x05, 0x03, 0x02, 0x02, 0x02, 0x12, 0x04, 0xce, 0x01, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x0b, 0x12, 0x06, 0xd1, 0x01, 0x00, 0xe5, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0b, + 0x01, 0x12, 0x04, 0xd1, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x05, + 0x12, 0x04, 0xd3, 0x01, 0x02, 0x08, 0x0a, 0x41, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x00, 0x12, 0x04, + 0xd3, 0x01, 0x02, 0x18, 0x1a, 0x33, 0x20, 0x54, 0x68, 0x65, 0x20, 0x54, 0x44, 0x4d, 0x53, 0x20, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, + 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, + 0x00, 0x01, 0x12, 0x04, 0xd3, 0x01, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, + 0x03, 0x12, 0x04, 0xd3, 0x01, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x05, + 0x12, 0x04, 0xd6, 0x01, 0x02, 0x08, 0x0a, 0x43, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x01, 0x12, 0x04, + 0xd6, 0x01, 0x02, 0x1a, 0x1a, 0x35, 0x20, 0x54, 0x68, 0x65, 0x20, 0x54, 0x44, 0x4d, 0x53, 0x20, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd6, 0x01, 0x09, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, + 0x02, 0x01, 0x03, 0x12, 0x04, 0xd6, 0x01, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, + 0x02, 0x06, 0x12, 0x04, 0xd9, 0x01, 0x02, 0x23, 0x0a, 0x28, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x02, + 0x12, 0x04, 0xd9, 0x01, 0x02, 0x37, 0x1a, 0x1a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x53, 0x69, 0x66, + 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x02, 0x01, 0x12, 0x04, 0xd9, 0x01, 0x24, + 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x02, 0x03, 0x12, 0x04, 0xd9, 0x01, 0x35, 0x36, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x03, 0x04, 0x12, 0x04, 0xdd, 0x01, 0x02, 0x0a, 0x0a, + 0x92, 0x01, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x03, 0x12, 0x04, 0xdd, 0x01, 0x02, 0x28, 0x1a, 0x83, + 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x77, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, + 0x65, 0x20, 0x69, 0x74, 0x27, 0x73, 0x20, 0x61, 0x20, 0x77, 0x61, 0x76, 0x65, 0x66, 0x6f, 0x72, + 0x6d, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x77, + 0x61, 0x76, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x03, 0x05, 0x12, 0x04, 0xdd, + 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x03, 0x01, 0x12, 0x04, 0xdd, 0x01, + 0x12, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x03, 0x03, 0x12, 0x04, 0xdd, 0x01, 0x26, + 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x04, 0x04, 0x12, 0x04, 0xe0, 0x01, 0x02, 0x0a, + 0x0a, 0x61, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x04, 0x12, 0x04, 0xe0, 0x01, 0x02, 0x1b, 0x1a, 0x53, + 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x61, 0x77, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x54, 0x72, 0x75, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x20, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x04, 0x05, 0x12, 0x04, 0xe0, 0x01, + 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x04, 0x01, 0x12, 0x04, 0xe0, 0x01, 0x10, + 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x04, 0x03, 0x12, 0x04, 0xe0, 0x01, 0x19, 0x1a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x05, 0x04, 0x12, 0x04, 0xe4, 0x01, 0x02, 0x0a, 0x0a, + 0x79, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x05, 0x12, 0x04, 0xe4, 0x01, 0x02, 0x36, 0x1a, 0x6b, 0x20, + 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x69, 0x6d, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x2e, 0x0a, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, + 0x02, 0x05, 0x06, 0x12, 0x04, 0xe4, 0x01, 0x0b, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, + 0x05, 0x01, 0x12, 0x04, 0xe4, 0x01, 0x20, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x05, + 0x03, 0x12, 0x04, 0xe4, 0x01, 0x34, 0x35, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0c, 0x12, 0x06, 0xe7, + 0x01, 0x00, 0x86, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0c, 0x01, 0x12, 0x04, 0xe7, 0x01, + 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x05, 0x12, 0x04, 0xe8, 0x01, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x00, 0x12, 0x04, 0xe8, 0x01, 0x02, 0x18, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe8, 0x01, 0x09, 0x13, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe8, 0x01, 0x16, 0x17, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0c, 0x02, 0x01, 0x05, 0x12, 0x04, 0xe9, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x0c, 0x02, 0x01, 0x12, 0x04, 0xe9, 0x01, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, + 0x02, 0x01, 0x01, 0x12, 0x04, 0xe9, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, + 0x01, 0x03, 0x12, 0x04, 0xe9, 0x01, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x02, + 0x06, 0x12, 0x04, 0xed, 0x01, 0x02, 0x1b, 0x0a, 0xb4, 0x01, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x02, + 0x12, 0x04, 0xed, 0x01, 0x02, 0x34, 0x1a, 0xa5, 0x01, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x0a, 0x20, 0x55, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x69, 0x66, + 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x77, 0x61, 0x76, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x77, 0x66, 0x5f, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, + 0x20, 0x77, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x28, + 0x56, 0x65, 0x72, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20, 0x67, 0x75, 0x69, + 0x6c, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x02, 0x01, 0x12, 0x04, 0xed, 0x01, 0x1c, 0x2f, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0c, 0x02, 0x02, 0x03, 0x12, 0x04, 0xed, 0x01, 0x32, 0x33, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0c, 0x02, 0x03, 0x04, 0x12, 0x04, 0xf1, 0x01, 0x02, 0x0a, 0x0a, 0x74, 0x0a, 0x04, 0x04, + 0x0c, 0x02, 0x03, 0x12, 0x04, 0xf1, 0x01, 0x02, 0x34, 0x1a, 0x66, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x68, 0x61, 0x73, 0x20, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, + 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x70, 0x61, 0x73, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x05, 0x12, 0x04, 0xf1, 0x01, 0x0b, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x01, 0x12, 0x04, 0xf1, 0x01, 0x12, 0x1b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x03, 0x12, 0x04, 0xf1, 0x01, 0x1e, 0x1f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x08, 0x12, 0x04, 0xf1, 0x01, 0x20, 0x33, 0x0a, 0x0e, 0x0a, + 0x06, 0x04, 0x0c, 0x02, 0x03, 0x08, 0x03, 0x12, 0x04, 0xf1, 0x01, 0x21, 0x32, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0c, 0x02, 0x04, 0x05, 0x12, 0x04, 0xf4, 0x01, 0x02, 0x08, 0x0a, 0x55, 0x0a, 0x04, + 0x04, 0x0c, 0x02, 0x04, 0x12, 0x04, 0xf4, 0x01, 0x02, 0x14, 0x1a, 0x47, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, + 0x74, 0x6f, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x60, 0x72, 0x75, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x69, 0x73, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x04, 0x01, 0x12, 0x04, 0xf4, 0x01, + 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x04, 0x03, 0x12, 0x04, 0xf4, 0x01, 0x12, + 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x05, 0x04, 0x12, 0x04, 0xf8, 0x01, 0x02, 0x0a, + 0x0a, 0x87, 0x01, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x05, 0x12, 0x04, 0xf8, 0x01, 0x02, 0x23, 0x1a, + 0x79, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x65, 0x6e, 0x74, + 0x72, 0x69, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x20, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x67, 0x65, + 0x73, 0x74, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, + 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x61, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x20, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, + 0x02, 0x05, 0x06, 0x12, 0x04, 0xf8, 0x01, 0x0b, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, + 0x05, 0x01, 0x12, 0x04, 0xf8, 0x01, 0x1a, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x05, + 0x03, 0x12, 0x04, 0xf8, 0x01, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x06, 0x06, + 0x12, 0x04, 0xfb, 0x01, 0x02, 0x14, 0x0a, 0x51, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x06, 0x12, 0x04, + 0xfb, 0x01, 0x02, 0x29, 0x1a, 0x43, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6c, 0x6c, 0x62, + 0x61, 0x63, 0x6b, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, + 0x06, 0x01, 0x12, 0x04, 0xfb, 0x01, 0x15, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x06, + 0x03, 0x12, 0x04, 0xfb, 0x01, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x07, 0x04, + 0x12, 0x04, 0xfe, 0x01, 0x02, 0x0a, 0x0a, 0x50, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x07, 0x12, 0x04, + 0xfe, 0x01, 0x02, 0x26, 0x1a, 0x42, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x54, 0x44, 0x4d, 0x53, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x07, + 0x06, 0x12, 0x04, 0xfe, 0x01, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x07, 0x01, + 0x12, 0x04, 0xfe, 0x01, 0x16, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x07, 0x03, 0x12, + 0x04, 0xfe, 0x01, 0x24, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x08, 0x04, 0x12, 0x04, + 0x81, 0x02, 0x02, 0x0a, 0x0a, 0x53, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x08, 0x12, 0x04, 0x81, 0x02, + 0x02, 0x3d, 0x1a, 0x45, 0x20, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x6e, 0x6f, + 0x6e, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, + 0x08, 0x06, 0x12, 0x04, 0x81, 0x02, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x08, + 0x01, 0x12, 0x04, 0x81, 0x02, 0x25, 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x08, 0x03, + 0x12, 0x04, 0x81, 0x02, 0x3b, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x09, 0x05, 0x12, + 0x04, 0x85, 0x02, 0x02, 0x06, 0x0a, 0x7d, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x09, 0x12, 0x04, 0x85, + 0x02, 0x02, 0x23, 0x1a, 0x6f, 0x20, 0x49, 0x66, 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x54, 0x44, 0x4d, 0x53, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x20, 0x69, 0x73, 0x20, 0x73, + 0x65, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x09, 0x01, 0x12, 0x04, 0x85, + 0x02, 0x07, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x09, 0x03, 0x12, 0x04, 0x85, 0x02, + 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x06, 0x88, 0x02, 0x00, 0x8c, 0x02, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0d, 0x01, 0x12, 0x04, 0x88, 0x02, 0x08, 0x19, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0d, 0x02, 0x00, 0x05, 0x12, 0x04, 0x89, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x0d, 0x02, 0x00, 0x12, 0x04, 0x89, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x89, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x89, 0x02, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x01, + 0x06, 0x12, 0x04, 0x8a, 0x02, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x01, 0x12, + 0x04, 0x8a, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x8a, 0x02, 0x0d, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8a, + 0x02, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, 0x04, 0x12, 0x04, 0x8b, 0x02, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x02, 0x12, 0x04, 0x8b, 0x02, 0x02, 0x3d, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, 0x06, 0x12, 0x04, 0x8b, 0x02, 0x0b, 0x24, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, 0x01, 0x12, 0x04, 0x8b, 0x02, 0x25, 0x38, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, 0x03, 0x12, 0x04, 0x8b, 0x02, 0x3b, 0x3c, 0x0a, 0x0c, 0x0a, + 0x02, 0x04, 0x0e, 0x12, 0x06, 0x8e, 0x02, 0x00, 0x91, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x0e, 0x01, 0x12, 0x04, 0x8e, 0x02, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, + 0x05, 0x12, 0x04, 0x8f, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x00, 0x12, + 0x04, 0x8f, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x01, 0x12, 0x04, + 0x8f, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x03, 0x12, 0x04, 0x8f, + 0x02, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x06, 0x12, 0x04, 0x90, 0x02, + 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x01, 0x12, 0x04, 0x90, 0x02, 0x02, 0x37, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x01, 0x12, 0x04, 0x90, 0x02, 0x24, 0x32, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x03, 0x12, 0x04, 0x90, 0x02, 0x35, 0x36, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x0f, 0x12, 0x06, 0x93, 0x02, 0x00, 0x96, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x0f, 0x01, 0x12, 0x04, 0x93, 0x02, 0x08, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, + 0x00, 0x05, 0x12, 0x04, 0x94, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x00, + 0x12, 0x04, 0x94, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x01, 0x12, + 0x04, 0x94, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x03, 0x12, 0x04, + 0x94, 0x02, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x06, 0x12, 0x04, 0x95, + 0x02, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x01, 0x12, 0x04, 0x95, 0x02, 0x02, + 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x01, 0x12, 0x04, 0x95, 0x02, 0x24, 0x31, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x03, 0x12, 0x04, 0x95, 0x02, 0x34, 0x35, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x10, 0x12, 0x06, 0x98, 0x02, 0x00, 0xa0, 0x02, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x10, 0x01, 0x12, 0x04, 0x98, 0x02, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, + 0x02, 0x00, 0x06, 0x12, 0x04, 0x99, 0x02, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, + 0x00, 0x12, 0x04, 0x99, 0x02, 0x02, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x01, + 0x12, 0x04, 0x99, 0x02, 0x14, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x03, 0x12, + 0x04, 0x99, 0x02, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x04, 0x12, 0x04, + 0x9a, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x01, 0x12, 0x04, 0x9a, 0x02, + 0x02, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x06, 0x12, 0x04, 0x9a, 0x02, 0x0b, + 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9a, 0x02, 0x1d, 0x29, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x03, 0x12, 0x04, 0x9a, 0x02, 0x2c, 0x2d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x05, 0x12, 0x04, 0x9f, 0x02, 0x02, 0x06, 0x0a, 0xa4, + 0x02, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x02, 0x12, 0x04, 0x9f, 0x02, 0x02, 0x1f, 0x1a, 0x95, 0x02, + 0x20, 0x49, 0x66, 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, + 0x6d, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x0a, 0x20, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x27, 0x73, + 0x20, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x28, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x20, 0x77, + 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x77, 0x61, 0x73, + 0x0a, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x65, 0x6d, 0x62, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x29, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x20, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x01, 0x12, 0x04, + 0x9f, 0x02, 0x07, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9f, + 0x02, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x11, 0x12, 0x06, 0xa2, 0x02, 0x00, 0xa5, 0x02, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x11, 0x01, 0x12, 0x04, 0xa2, 0x02, 0x08, 0x34, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa3, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x11, 0x02, 0x00, 0x12, 0x04, 0xa3, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x11, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa3, 0x02, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xa3, 0x02, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, + 0x01, 0x05, 0x12, 0x04, 0xa4, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x01, + 0x12, 0x04, 0xa4, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xa4, 0x02, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x03, 0x12, 0x04, + 0xa4, 0x02, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x12, 0x12, 0x06, 0xa7, 0x02, 0x00, 0xaa, + 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x12, 0x01, 0x12, 0x04, 0xa7, 0x02, 0x08, 0x35, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa8, 0x02, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x12, 0x02, 0x00, 0x12, 0x04, 0xa8, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x12, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa8, 0x02, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x12, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa8, 0x02, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, + 0x02, 0x01, 0x06, 0x12, 0x04, 0xa9, 0x02, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, + 0x01, 0x12, 0x04, 0xa9, 0x02, 0x02, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xa9, 0x02, 0x24, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xa9, 0x02, 0x2e, 0x2f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x13, 0x12, 0x06, 0xac, 0x02, 0x00, + 0xb7, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x13, 0x01, 0x12, 0x04, 0xac, 0x02, 0x08, 0x28, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x06, 0x12, 0x04, 0xae, 0x02, 0x02, 0x13, 0x0a, + 0x2f, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x00, 0x12, 0x04, 0xae, 0x02, 0x02, 0x24, 0x1a, 0x21, 0x20, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x01, 0x12, 0x04, 0xae, 0x02, 0x14, 0x1f, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x03, 0x12, 0x04, 0xae, 0x02, 0x22, 0x23, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x04, 0x12, 0x04, 0xb0, 0x02, 0x02, 0x0a, 0x0a, 0x21, 0x0a, + 0x04, 0x04, 0x13, 0x02, 0x01, 0x12, 0x04, 0xb0, 0x02, 0x02, 0x25, 0x1a, 0x13, 0x20, 0x44, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x06, 0x12, 0x04, 0xb0, 0x02, 0x0b, 0x18, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb0, 0x02, 0x19, 0x20, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb0, 0x02, 0x23, 0x24, 0x0a, 0x0e, 0x0a, + 0x04, 0x04, 0x13, 0x08, 0x00, 0x12, 0x06, 0xb1, 0x02, 0x02, 0xb6, 0x02, 0x03, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x13, 0x08, 0x00, 0x01, 0x12, 0x04, 0xb1, 0x02, 0x08, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x13, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb3, 0x02, 0x04, 0x31, 0x0a, 0x36, 0x0a, 0x04, 0x04, + 0x13, 0x02, 0x02, 0x12, 0x04, 0xb3, 0x02, 0x04, 0x45, 0x1a, 0x28, 0x20, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x70, 0x65, 0x72, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb3, 0x02, + 0x32, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb3, 0x02, 0x43, + 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x06, 0x12, 0x04, 0xb5, 0x02, 0x04, 0x30, + 0x0a, 0x35, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x03, 0x12, 0x04, 0xb5, 0x02, 0x04, 0x43, 0x1a, 0x27, + 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x70, + 0x65, 0x72, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x01, + 0x12, 0x04, 0xb5, 0x02, 0x31, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x03, 0x12, + 0x04, 0xb5, 0x02, 0x41, 0x42, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x04, 0x12, 0x06, 0xb9, 0x02, 0x00, + 0xc3, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x04, 0x01, 0x12, 0x04, 0xb9, 0x02, 0x05, 0x22, + 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, 0x00, 0x01, 0x12, 0x04, 0xba, 0x02, 0x02, 0x2f, 0x0a, + 0x0c, 0x0a, 0x04, 0x05, 0x04, 0x02, 0x00, 0x12, 0x04, 0xba, 0x02, 0x02, 0x48, 0x0a, 0x0d, 0x0a, + 0x05, 0x05, 0x04, 0x02, 0x00, 0x02, 0x12, 0x04, 0xba, 0x02, 0x32, 0x33, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x04, 0x02, 0x00, 0x03, 0x12, 0x04, 0xba, 0x02, 0x34, 0x47, 0x0a, 0x0e, 0x0a, 0x06, 0x05, + 0x04, 0x02, 0x00, 0x03, 0x01, 0x12, 0x04, 0xba, 0x02, 0x35, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x04, 0x02, 0x01, 0x01, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x2a, 0x0a, 0x3c, 0x0a, 0x04, 0x05, 0x04, + 0x02, 0x01, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x2f, 0x1a, 0x2e, 0x20, 0x49, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x6e, 0x67, 0x65, 0x73, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, 0x01, + 0x02, 0x12, 0x04, 0xbc, 0x02, 0x2d, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, 0x02, 0x01, + 0x12, 0x04, 0xbe, 0x02, 0x02, 0x28, 0x0a, 0x4a, 0x0a, 0x04, 0x05, 0x04, 0x02, 0x02, 0x12, 0x04, + 0xbe, 0x02, 0x02, 0x2d, 0x1a, 0x3c, 0x20, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x61, 0x73, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, 0x02, 0x02, 0x12, 0x04, 0xbe, 0x02, 0x2b, + 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, 0x03, 0x01, 0x12, 0x04, 0xc0, 0x02, 0x02, 0x2a, + 0x0a, 0x3a, 0x0a, 0x04, 0x05, 0x04, 0x02, 0x03, 0x12, 0x04, 0xc0, 0x02, 0x02, 0x2f, 0x1a, 0x2c, + 0x20, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x4a, 0x53, + 0x4f, 0x4e, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x04, 0x02, 0x03, 0x02, 0x12, 0x04, 0xc0, 0x02, 0x2d, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x04, 0x02, 0x04, 0x01, 0x12, 0x04, 0xc2, 0x02, 0x02, 0x29, 0x0a, 0x39, 0x0a, 0x04, 0x05, 0x04, + 0x02, 0x04, 0x12, 0x04, 0xc2, 0x02, 0x02, 0x2e, 0x1a, 0x2b, 0x20, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, + 0x61, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x20, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x04, 0x02, 0x04, 0x02, 0x12, 0x04, + 0xc2, 0x02, 0x2c, 0x2d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x14, 0x12, 0x06, 0xc5, 0x02, 0x00, 0xd2, + 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x14, 0x01, 0x12, 0x04, 0xc5, 0x02, 0x08, 0x15, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x14, 0x02, 0x00, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x14, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc6, 0x02, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x14, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc6, 0x02, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, + 0x02, 0x01, 0x05, 0x12, 0x04, 0xc7, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, + 0x01, 0x12, 0x04, 0xc7, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xc7, 0x02, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xc7, 0x02, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, 0x05, 0x12, 0x04, + 0xc9, 0x02, 0x02, 0x08, 0x0a, 0x55, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x02, 0x12, 0x04, 0xc9, 0x02, + 0x02, 0x14, 0x1a, 0x47, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x73, + 0x65, 0x74, 0x2c, 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x69, + 0x73, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x14, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc9, 0x02, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, + 0x02, 0x02, 0x03, 0x12, 0x04, 0xc9, 0x02, 0x12, 0x13, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x14, 0x08, + 0x00, 0x12, 0x06, 0xca, 0x02, 0x02, 0xcd, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x08, + 0x00, 0x01, 0x12, 0x04, 0xca, 0x02, 0x08, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, + 0x06, 0x12, 0x04, 0xcb, 0x02, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x03, 0x12, + 0x04, 0xcb, 0x02, 0x04, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x01, 0x12, 0x04, + 0xcb, 0x02, 0x1d, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x03, 0x12, 0x04, 0xcb, + 0x02, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x04, 0x06, 0x12, 0x04, 0xcc, 0x02, + 0x04, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x04, 0x12, 0x04, 0xcc, 0x02, 0x04, 0x40, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x04, 0x01, 0x12, 0x04, 0xcc, 0x02, 0x25, 0x3b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x04, 0x03, 0x12, 0x04, 0xcc, 0x02, 0x3e, 0x3f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x05, 0x12, 0x04, 0xce, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x14, 0x02, 0x05, 0x12, 0x04, 0xce, 0x02, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x14, 0x02, 0x05, 0x01, 0x12, 0x04, 0xce, 0x02, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, + 0x02, 0x05, 0x03, 0x12, 0x04, 0xce, 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, + 0x06, 0x05, 0x12, 0x04, 0xcf, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x06, + 0x12, 0x04, 0xcf, 0x02, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x06, 0x01, 0x12, + 0x04, 0xcf, 0x02, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x06, 0x03, 0x12, 0x04, + 0xcf, 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x07, 0x06, 0x12, 0x04, 0xd1, + 0x02, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x07, 0x12, 0x04, 0xd1, 0x02, 0x02, + 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x07, 0x01, 0x12, 0x04, 0xd1, 0x02, 0x20, 0x39, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x07, 0x03, 0x12, 0x04, 0xd1, 0x02, 0x3c, 0x3d, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x15, 0x12, 0x06, 0xd4, 0x02, 0x00, 0xdd, 0x02, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x15, 0x01, 0x12, 0x04, 0xd4, 0x02, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, + 0x02, 0x00, 0x05, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, + 0x00, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xd5, 0x02, 0x09, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xd5, 0x02, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x05, 0x12, 0x04, + 0xd6, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x01, 0x12, 0x04, 0xd6, 0x02, + 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd6, 0x02, 0x09, + 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd6, 0x02, 0x16, 0x17, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x05, 0x12, 0x04, 0xd7, 0x02, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x02, 0x12, 0x04, 0xd7, 0x02, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x15, 0x02, 0x02, 0x01, 0x12, 0x04, 0xd7, 0x02, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x15, 0x02, 0x02, 0x03, 0x12, 0x04, 0xd7, 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x15, 0x02, 0x03, 0x05, 0x12, 0x04, 0xd8, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, + 0x02, 0x03, 0x12, 0x04, 0xd8, 0x02, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x03, + 0x01, 0x12, 0x04, 0xd8, 0x02, 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x03, 0x03, + 0x12, 0x04, 0xd8, 0x02, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x04, 0x06, 0x12, + 0x04, 0xd9, 0x02, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x04, 0x12, 0x04, 0xd9, + 0x02, 0x02, 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x04, 0x01, 0x12, 0x04, 0xd9, 0x02, + 0x24, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x04, 0x03, 0x12, 0x04, 0xd9, 0x02, 0x35, + 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x05, 0x04, 0x12, 0x04, 0xdb, 0x02, 0x02, 0x0a, + 0x0a, 0x49, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x05, 0x12, 0x04, 0xdb, 0x02, 0x02, 0x21, 0x1a, 0x3b, + 0x20, 0x46, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x15, 0x02, 0x05, 0x05, 0x12, 0x04, 0xdb, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, + 0x02, 0x05, 0x01, 0x12, 0x04, 0xdb, 0x02, 0x12, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, + 0x05, 0x03, 0x12, 0x04, 0xdb, 0x02, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x06, + 0x04, 0x12, 0x04, 0xdc, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x06, 0x12, + 0x04, 0xdc, 0x02, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x06, 0x05, 0x12, 0x04, + 0xdc, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x06, 0x01, 0x12, 0x04, 0xdc, + 0x02, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x06, 0x03, 0x12, 0x04, 0xdc, 0x02, + 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x16, 0x12, 0x06, 0xdf, 0x02, 0x00, 0xe7, 0x02, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x16, 0x01, 0x12, 0x04, 0xdf, 0x02, 0x08, 0x12, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x16, 0x02, 0x00, 0x05, 0x12, 0x04, 0xe0, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x16, 0x02, 0x00, 0x12, 0x04, 0xe0, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xe0, 0x02, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xe0, 0x02, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, + 0x05, 0x12, 0x04, 0xe1, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x01, 0x12, + 0x04, 0xe1, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x01, 0x12, 0x04, + 0xe1, 0x02, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe1, + 0x02, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x05, 0x12, 0x04, 0xe3, 0x02, + 0x02, 0x08, 0x0a, 0x55, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x02, 0x12, 0x04, 0xe3, 0x02, 0x02, 0x14, + 0x1a, 0x47, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, + 0x2c, 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x69, 0x73, 0x20, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, + 0x02, 0x01, 0x12, 0x04, 0xe3, 0x02, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, + 0x03, 0x12, 0x04, 0xe3, 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x03, 0x04, + 0x12, 0x04, 0xe4, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x03, 0x12, 0x04, + 0xe4, 0x02, 0x02, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x03, 0x06, 0x12, 0x04, 0xe4, + 0x02, 0x0b, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x03, 0x01, 0x12, 0x04, 0xe4, 0x02, + 0x1a, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x03, 0x03, 0x12, 0x04, 0xe4, 0x02, 0x21, + 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x06, 0x12, 0x04, 0xe5, 0x02, 0x02, 0x0c, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x04, 0x12, 0x04, 0xe5, 0x02, 0x02, 0x1d, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x01, 0x12, 0x04, 0xe5, 0x02, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x16, 0x02, 0x04, 0x03, 0x12, 0x04, 0xe5, 0x02, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x16, 0x02, 0x05, 0x04, 0x12, 0x04, 0xe6, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x16, 0x02, 0x05, 0x12, 0x04, 0xe6, 0x02, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, + 0x05, 0x06, 0x12, 0x04, 0xe6, 0x02, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, + 0x01, 0x12, 0x04, 0xe6, 0x02, 0x25, 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, 0x03, + 0x12, 0x04, 0xe6, 0x02, 0x3b, 0x3c, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x05, 0x12, 0x06, 0xe9, 0x02, + 0x00, 0xf0, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x05, 0x01, 0x12, 0x04, 0xe9, 0x02, 0x05, + 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x00, 0x01, 0x12, 0x04, 0xeb, 0x02, 0x02, 0x25, + 0x0a, 0x41, 0x0a, 0x04, 0x05, 0x05, 0x02, 0x00, 0x12, 0x04, 0xeb, 0x02, 0x02, 0x2a, 0x1a, 0x33, + 0x20, 0x54, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x55, 0x4c, 0x4f, 0x47, + 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x50, 0x4f, 0x4c, + 0x49, 0x43, 0x59, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x5f, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x00, 0x02, 0x12, 0x04, 0xeb, 0x02, + 0x28, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x01, 0x01, 0x12, 0x04, 0xed, 0x02, 0x02, + 0x27, 0x0a, 0x3f, 0x0a, 0x04, 0x05, 0x05, 0x02, 0x01, 0x12, 0x04, 0xed, 0x02, 0x02, 0x2c, 0x1a, + 0x31, 0x20, 0x46, 0x61, 0x69, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x01, 0x02, 0x12, 0x04, 0xed, 0x02, 0x2a, + 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x02, 0x01, 0x12, 0x04, 0xef, 0x02, 0x02, 0x26, + 0x0a, 0x3f, 0x0a, 0x04, 0x05, 0x05, 0x02, 0x02, 0x12, 0x04, 0xef, 0x02, 0x02, 0x2b, 0x1a, 0x31, + 0x20, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x70, 0x61, 0x72, + 0x73, 0x65, 0x64, 0x3b, 0x20, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x20, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x05, 0x02, 0x02, 0x02, 0x12, 0x04, 0xef, 0x02, 0x29, 0x2a, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x17, 0x12, 0x06, 0xf2, 0x02, 0x00, 0xfd, 0x02, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x17, 0x01, 0x12, 0x04, 0xf2, 0x02, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x17, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf4, 0x02, 0x02, 0x08, 0x0a, 0x3c, 0x0a, 0x04, 0x04, 0x17, + 0x02, 0x00, 0x12, 0x04, 0xf4, 0x02, 0x02, 0x1a, 0x1a, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x55, + 0x4c, 0x6f, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x6c, 0x22, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xf4, 0x02, 0x09, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xf4, 0x02, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xf6, 0x02, 0x02, 0x07, 0x0a, 0x2e, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x01, 0x12, 0x04, 0xf6, + 0x02, 0x02, 0x15, 0x1a, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, + 0x20, 0x30, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x01, 0x12, 0x04, + 0xf6, 0x02, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf6, + 0x02, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x02, 0x05, 0x12, 0x04, 0xfa, 0x02, + 0x02, 0x08, 0x0a, 0xc8, 0x01, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x02, 0x12, 0x04, 0xfa, 0x02, 0x02, + 0x18, 0x1a, 0xb9, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x55, 0x4c, + 0x6f, 0x67, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x28, 0x65, + 0x2e, 0x67, 0x2e, 0x20, 0x22, 0x78, 0x22, 0x2c, 0x20, 0x22, 0x65, 0x73, 0x63, 0x5b, 0x30, 0x5d, + 0x2e, 0x76, 0x22, 0x29, 0x2e, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x6c, 0x6f, 0x67, 0x2d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x20, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x28, 0x22, 0x6c, 0x6f, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x22, 0x2c, 0x20, 0x22, 0x6c, 0x6f, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x5f, 0x3c, 0x74, 0x61, 0x67, 0x3e, 0x22, 0x29, 0x2c, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x30, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x17, 0x02, 0x02, 0x01, 0x12, 0x04, 0xfa, 0x02, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x17, 0x02, 0x02, 0x03, 0x12, 0x04, 0xfa, 0x02, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x17, 0x02, 0x03, 0x06, 0x12, 0x04, 0xfc, 0x02, 0x02, 0x23, 0x0a, 0x45, 0x0a, 0x04, 0x04, 0x17, + 0x02, 0x03, 0x12, 0x04, 0xfc, 0x02, 0x02, 0x37, 0x1a, 0x37, 0x20, 0x54, 0x68, 0x65, 0x20, 0x53, + 0x69, 0x66, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x69, + 0x73, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x01, 0x12, 0x04, 0xfc, 0x02, 0x24, 0x32, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x03, 0x12, 0x04, 0xfc, 0x02, 0x35, 0x36, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x18, 0x12, 0x06, 0xff, 0x02, 0x00, 0x92, 0x03, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x18, 0x01, 0x12, 0x04, 0xff, 0x02, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, + 0x02, 0x00, 0x05, 0x12, 0x04, 0x80, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x18, 0x02, + 0x00, 0x12, 0x04, 0x80, 0x03, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x01, + 0x12, 0x04, 0x80, 0x03, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x03, 0x12, + 0x04, 0x80, 0x03, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x05, 0x12, 0x04, + 0x81, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x01, 0x12, 0x04, 0x81, 0x03, + 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x01, 0x12, 0x04, 0x81, 0x03, 0x09, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x03, 0x12, 0x04, 0x81, 0x03, 0x14, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x02, 0x05, 0x12, 0x04, 0x83, 0x03, 0x02, 0x08, 0x0a, + 0x55, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x02, 0x12, 0x04, 0x83, 0x03, 0x02, 0x14, 0x1a, 0x47, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x20, 0x74, 0x6f, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x60, + 0x72, 0x75, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x69, 0x73, 0x20, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x02, 0x01, 0x12, + 0x04, 0x83, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x02, 0x03, 0x12, 0x04, + 0x83, 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x03, 0x04, 0x12, 0x04, 0x87, + 0x03, 0x02, 0x0a, 0x0a, 0xb3, 0x01, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x03, 0x12, 0x04, 0x87, 0x03, + 0x02, 0x23, 0x1a, 0xa4, 0x01, 0x20, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x20, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x0a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x73, 0x3b, 0x20, 0x69, 0x66, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x0a, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, + 0x03, 0x06, 0x12, 0x04, 0x87, 0x03, 0x0b, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x03, + 0x01, 0x12, 0x04, 0x87, 0x03, 0x1a, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x03, 0x03, + 0x12, 0x04, 0x87, 0x03, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x04, 0x04, 0x12, + 0x04, 0x8b, 0x03, 0x02, 0x0a, 0x0a, 0xc6, 0x01, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x04, 0x12, 0x04, + 0x8b, 0x03, 0x02, 0x3d, 0x1a, 0xb7, 0x01, 0x20, 0x4c, 0x6f, 0x67, 0x2d, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x55, 0x54, 0x43, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x2c, + 0x20, 0x69, 0x74, 0x20, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x61, 0x6b, + 0x65, 0x73, 0x20, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x27, 0x73, 0x20, 0x47, 0x50, + 0x53, 0x20, 0x66, 0x69, 0x78, 0x3b, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x50, 0x53, 0x20, 0x66, 0x69, 0x78, 0x20, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x0a, 0x20, 0x66, + 0x61, 0x69, 0x6c, 0x73, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x18, 0x02, 0x04, 0x06, 0x12, 0x04, 0x8b, 0x03, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x18, 0x02, 0x04, 0x01, 0x12, 0x04, 0x8b, 0x03, 0x25, 0x38, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x18, 0x02, 0x04, 0x03, 0x12, 0x04, 0x8b, 0x03, 0x3b, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x18, 0x02, 0x05, 0x04, 0x12, 0x04, 0x8d, 0x03, 0x02, 0x0a, 0x0a, 0x64, 0x0a, 0x04, 0x04, 0x18, + 0x02, 0x05, 0x12, 0x04, 0x8d, 0x03, 0x02, 0x20, 0x1a, 0x56, 0x20, 0x49, 0x2f, 0x4d, 0x20, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x6b, 0x65, 0x79, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x73, 0x20, 0x72, 0x75, + 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x28, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x3c, 0x6b, 0x65, 0x79, 0x3e, + 0x29, 0x2e, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x05, 0x05, 0x12, 0x04, 0x8d, 0x03, 0x0b, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x05, 0x01, 0x12, 0x04, 0x8d, 0x03, 0x12, 0x1b, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x18, 0x02, 0x05, 0x03, 0x12, 0x04, 0x8d, 0x03, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x18, 0x02, 0x06, 0x04, 0x12, 0x04, 0x8f, 0x03, 0x02, 0x0a, 0x0a, 0x62, 0x0a, 0x04, + 0x04, 0x18, 0x02, 0x06, 0x12, 0x04, 0x8f, 0x03, 0x02, 0x21, 0x1a, 0x54, 0x20, 0x50, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x20, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x28, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x3c, 0x6e, 0x61, 0x6d, 0x65, 0x3e, + 0x29, 0x2e, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x06, 0x05, 0x12, 0x04, 0x8f, 0x03, 0x0b, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x06, 0x01, 0x12, 0x04, 0x8f, 0x03, 0x12, 0x1c, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x18, 0x02, 0x06, 0x03, 0x12, 0x04, 0x8f, 0x03, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x18, 0x02, 0x07, 0x06, 0x12, 0x04, 0x91, 0x03, 0x02, 0x16, 0x0a, 0x49, 0x0a, 0x04, + 0x04, 0x18, 0x02, 0x07, 0x12, 0x04, 0x91, 0x03, 0x02, 0x2e, 0x1a, 0x3b, 0x20, 0x52, 0x65, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x20, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x3b, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x07, 0x01, + 0x12, 0x04, 0x91, 0x03, 0x17, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x07, 0x03, 0x12, + 0x04, 0x91, 0x03, 0x2c, 0x2d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x19, 0x12, 0x06, 0x94, 0x03, 0x00, + 0xab, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x19, 0x01, 0x12, 0x04, 0x94, 0x03, 0x08, 0x13, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x05, 0x12, 0x04, 0x97, 0x03, 0x02, 0x08, 0x0a, + 0xc7, 0x01, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x00, 0x12, 0x04, 0x97, 0x03, 0x02, 0x16, 0x1a, 0xb8, + 0x01, 0x20, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x42, 0x6f, 0x74, 0x68, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x6e, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x73, 0x65, 0x74, + 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, + 0x2e, 0x0a, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x69, 0x73, 0x20, + 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, + 0x00, 0x01, 0x12, 0x04, 0x97, 0x03, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, + 0x03, 0x12, 0x04, 0x97, 0x03, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x05, + 0x12, 0x04, 0x98, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x01, 0x12, 0x04, + 0x98, 0x03, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x01, 0x12, 0x04, 0x98, + 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x03, 0x12, 0x04, 0x98, 0x03, + 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x05, 0x12, 0x04, 0x9c, 0x03, 0x02, + 0x08, 0x0a, 0x73, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x02, 0x12, 0x04, 0x9c, 0x03, 0x02, 0x18, 0x1a, + 0x65, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x73, 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x69, 0x73, - 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, - 0x02, 0x00, 0x01, 0x12, 0x04, 0x8d, 0x03, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, - 0x00, 0x03, 0x12, 0x04, 0x8d, 0x03, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, - 0x05, 0x12, 0x04, 0x8e, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x01, 0x12, - 0x04, 0x8e, 0x03, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x01, 0x12, 0x04, - 0x8e, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8e, - 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x05, 0x12, 0x04, 0x92, 0x03, - 0x02, 0x08, 0x0a, 0x73, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x02, 0x12, 0x04, 0x92, 0x03, 0x02, 0x18, - 0x1a, 0x65, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x01, - 0x12, 0x04, 0x92, 0x03, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x03, 0x12, - 0x04, 0x92, 0x03, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x03, 0x06, 0x12, 0x04, - 0x96, 0x03, 0x02, 0x0b, 0x0a, 0xc5, 0x01, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x03, 0x12, 0x04, 0x96, - 0x03, 0x02, 0x23, 0x1a, 0xb6, 0x01, 0x20, 0x50, 0x65, 0x72, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6d, - 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x69, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2e, 0x0a, 0x20, 0x41, 0x20, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x72, - 0x69, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x20, 0x69, 0x74, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x19, 0x02, 0x03, 0x01, 0x12, 0x04, 0x96, 0x03, 0x0c, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x19, 0x02, 0x03, 0x03, 0x12, 0x04, 0x96, 0x03, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, - 0x02, 0x04, 0x06, 0x12, 0x04, 0x97, 0x03, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, - 0x04, 0x12, 0x04, 0x97, 0x03, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x04, 0x01, - 0x12, 0x04, 0x97, 0x03, 0x0d, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x04, 0x03, 0x12, - 0x04, 0x97, 0x03, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x05, 0x06, 0x12, 0x04, - 0x9a, 0x03, 0x02, 0x0f, 0x0a, 0xa2, 0x01, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x05, 0x12, 0x04, 0x9a, - 0x03, 0x02, 0x2b, 0x1a, 0x93, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, - 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x0a, 0x20, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x20, 0x69, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, - 0x05, 0x01, 0x12, 0x04, 0x9a, 0x03, 0x10, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x05, - 0x03, 0x12, 0x04, 0x9a, 0x03, 0x29, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x06, 0x06, - 0x12, 0x04, 0x9b, 0x03, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x06, 0x12, 0x04, - 0x9b, 0x03, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x06, 0x01, 0x12, 0x04, 0x9b, - 0x03, 0x0d, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x06, 0x03, 0x12, 0x04, 0x9b, 0x03, - 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x07, 0x06, 0x12, 0x04, 0x9c, 0x03, 0x02, - 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x07, 0x12, 0x04, 0x9c, 0x03, 0x02, 0x25, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x07, 0x01, 0x12, 0x04, 0x9c, 0x03, 0x0d, 0x20, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x19, 0x02, 0x07, 0x03, 0x12, 0x04, 0x9c, 0x03, 0x23, 0x24, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x19, 0x02, 0x08, 0x06, 0x12, 0x04, 0xa0, 0x03, 0x02, 0x1e, 0x0a, 0x9e, 0x01, 0x0a, - 0x04, 0x04, 0x19, 0x02, 0x08, 0x12, 0x04, 0xa0, 0x03, 0x02, 0x30, 0x1a, 0x8f, 0x01, 0x20, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x20, - 0x4b, 0x65, 0x79, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x70, - 0x61, 0x74, 0x68, 0x20, 0x61, 0x73, 0x20, 0x69, 0x74, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x2e, 0x0a, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x3b, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x19, 0x02, 0x08, 0x01, 0x12, 0x04, 0xa0, 0x03, 0x1f, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x19, 0x02, 0x08, 0x03, 0x12, 0x04, 0xa0, 0x03, 0x2e, 0x2f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, - 0x1a, 0x12, 0x06, 0xa3, 0x03, 0x00, 0xb2, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1a, 0x01, - 0x12, 0x04, 0xa3, 0x03, 0x08, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x06, 0x12, - 0x04, 0xa5, 0x03, 0x02, 0x0d, 0x0a, 0x4d, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x00, 0x12, 0x04, 0xa5, - 0x03, 0x02, 0x17, 0x1a, 0x3f, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x20, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x74, 0x6f, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa5, - 0x03, 0x0e, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa5, 0x03, - 0x15, 0x16, 0x0a, 0x9e, 0x01, 0x0a, 0x04, 0x04, 0x1a, 0x08, 0x00, 0x12, 0x06, 0xa9, 0x03, 0x02, - 0xb1, 0x03, 0x03, 0x1a, 0x8d, 0x01, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, - 0x70, 0x65, 0x72, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x2e, - 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x20, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x2a, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, - 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x08, 0x00, 0x01, 0x12, 0x04, 0xa9, 0x03, - 0x08, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x06, 0x12, 0x04, 0xaa, 0x03, 0x04, - 0x0d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x01, 0x12, 0x04, 0xaa, 0x03, 0x04, 0x1d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x01, 0x12, 0x04, 0xaa, 0x03, 0x0e, 0x18, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xaa, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x1a, 0x02, 0x02, 0x06, 0x12, 0x04, 0xab, 0x03, 0x04, 0x0e, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x1a, 0x02, 0x02, 0x12, 0x04, 0xab, 0x03, 0x04, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, - 0x02, 0x02, 0x01, 0x12, 0x04, 0xab, 0x03, 0x0f, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, - 0x02, 0x03, 0x12, 0x04, 0xab, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x03, - 0x06, 0x12, 0x04, 0xae, 0x03, 0x04, 0x11, 0x0a, 0x9a, 0x01, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x03, - 0x12, 0x04, 0xae, 0x03, 0x04, 0x25, 0x1a, 0x8b, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x70, 0x61, - 0x72, 0x71, 0x75, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x6f, 0x65, - 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x0a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x03, 0x01, 0x12, 0x04, 0xae, - 0x03, 0x12, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x03, 0x03, 0x12, 0x04, 0xae, 0x03, - 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x04, 0x06, 0x12, 0x04, 0xaf, 0x03, 0x04, - 0x0e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x04, 0x12, 0x04, 0xaf, 0x03, 0x04, 0x1f, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x04, 0x01, 0x12, 0x04, 0xaf, 0x03, 0x0f, 0x1a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x04, 0x03, 0x12, 0x04, 0xaf, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x1a, 0x02, 0x05, 0x06, 0x12, 0x04, 0xb0, 0x03, 0x04, 0x0e, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x1a, 0x02, 0x05, 0x12, 0x04, 0xb0, 0x03, 0x04, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, - 0x02, 0x05, 0x01, 0x12, 0x04, 0xb0, 0x03, 0x0f, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, - 0x05, 0x03, 0x12, 0x04, 0xb0, 0x03, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x06, 0x12, 0x06, - 0xb4, 0x03, 0x00, 0xba, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x06, 0x01, 0x12, 0x04, 0xb4, - 0x03, 0x05, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb5, 0x03, - 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x06, 0x02, 0x00, 0x12, 0x04, 0xb5, 0x03, 0x02, 0x39, - 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x00, 0x02, 0x12, 0x04, 0xb5, 0x03, 0x23, 0x24, 0x0a, - 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb5, 0x03, 0x25, 0x38, 0x0a, 0x0e, - 0x0a, 0x06, 0x05, 0x06, 0x02, 0x00, 0x03, 0x01, 0x12, 0x04, 0xb5, 0x03, 0x26, 0x37, 0x0a, 0x0d, - 0x0a, 0x05, 0x05, 0x06, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb6, 0x03, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, - 0x04, 0x05, 0x06, 0x02, 0x01, 0x12, 0x04, 0xb6, 0x03, 0x02, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x06, 0x02, 0x01, 0x02, 0x12, 0x04, 0xb6, 0x03, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, - 0x02, 0x02, 0x01, 0x12, 0x04, 0xb7, 0x03, 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x06, 0x02, - 0x02, 0x12, 0x04, 0xb7, 0x03, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x02, 0x02, - 0x12, 0x04, 0xb7, 0x03, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x03, 0x01, 0x12, - 0x04, 0xb8, 0x03, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x06, 0x02, 0x03, 0x12, 0x04, 0xb8, - 0x03, 0x02, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x03, 0x02, 0x12, 0x04, 0xb8, 0x03, - 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x04, 0x01, 0x12, 0x04, 0xb9, 0x03, 0x02, - 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x06, 0x02, 0x04, 0x12, 0x04, 0xb9, 0x03, 0x02, 0x20, 0x0a, - 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x04, 0x02, 0x12, 0x04, 0xb9, 0x03, 0x1e, 0x1f, 0x0a, 0x0c, - 0x0a, 0x02, 0x04, 0x1b, 0x12, 0x06, 0xbc, 0x03, 0x00, 0xd4, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, - 0x04, 0x1b, 0x01, 0x12, 0x04, 0xbc, 0x03, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, - 0x00, 0x05, 0x12, 0x04, 0xbd, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x00, - 0x12, 0x04, 0xbd, 0x03, 0x02, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x01, 0x12, - 0x04, 0xbd, 0x03, 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x03, 0x12, 0x04, - 0xbd, 0x03, 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x08, 0x12, 0x04, 0xbd, - 0x03, 0x1c, 0x44, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xbd, 0x03, 0x1d, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x05, 0x12, 0x04, - 0xbe, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x01, 0x12, 0x04, 0xbe, 0x03, - 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xbe, 0x03, 0x09, - 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xbe, 0x03, 0x16, 0x17, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x02, 0x06, 0x12, 0x04, 0xbf, 0x03, 0x02, 0x12, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x02, 0x12, 0x04, 0xbf, 0x03, 0x02, 0x47, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x1b, 0x02, 0x02, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x13, 0x19, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1b, 0x02, 0x02, 0x03, 0x12, 0x04, 0xbf, 0x03, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1b, 0x02, 0x02, 0x08, 0x12, 0x04, 0xbf, 0x03, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, - 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbf, 0x03, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1b, 0x02, 0x03, 0x05, 0x12, 0x04, 0xc0, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x1b, 0x02, 0x03, 0x12, 0x04, 0xc0, 0x03, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, - 0x03, 0x01, 0x12, 0x04, 0xc0, 0x03, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x03, - 0x03, 0x12, 0x04, 0xc0, 0x03, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x04, 0x06, - 0x12, 0x04, 0xc1, 0x03, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x04, 0x12, 0x04, - 0xc1, 0x03, 0x02, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x04, 0x01, 0x12, 0x04, 0xc1, - 0x03, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x04, 0x03, 0x12, 0x04, 0xc1, 0x03, - 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x04, 0x08, 0x12, 0x04, 0xc1, 0x03, 0x2d, - 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc1, - 0x03, 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x05, 0x06, 0x12, 0x04, 0xc2, 0x03, - 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x05, 0x12, 0x04, 0xc2, 0x03, 0x02, 0x57, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x05, 0x01, 0x12, 0x04, 0xc2, 0x03, 0x1c, 0x29, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x05, 0x03, 0x12, 0x04, 0xc2, 0x03, 0x2c, 0x2d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x05, 0x08, 0x12, 0x04, 0xc2, 0x03, 0x2e, 0x56, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x1b, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc2, 0x03, 0x2f, 0x55, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x06, 0x06, 0x12, 0x04, 0xc3, 0x03, 0x02, 0x0b, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x06, 0x12, 0x04, 0xc3, 0x03, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1b, 0x02, 0x06, 0x01, 0x12, 0x04, 0xc3, 0x03, 0x0c, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1b, 0x02, 0x06, 0x03, 0x12, 0x04, 0xc3, 0x03, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, - 0x02, 0x06, 0x08, 0x12, 0x04, 0xc3, 0x03, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, - 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc3, 0x03, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1b, 0x02, 0x07, 0x06, 0x12, 0x04, 0xc4, 0x03, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, - 0x02, 0x07, 0x12, 0x04, 0xc4, 0x03, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x07, - 0x01, 0x12, 0x04, 0xc4, 0x03, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x07, 0x03, - 0x12, 0x04, 0xc4, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x07, 0x08, 0x12, - 0x04, 0xc4, 0x03, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x07, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xc4, 0x03, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x08, 0x06, - 0x12, 0x04, 0xc5, 0x03, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x08, 0x12, 0x04, - 0xc5, 0x03, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x08, 0x01, 0x12, 0x04, 0xc5, - 0x03, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x08, 0x03, 0x12, 0x04, 0xc5, 0x03, - 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x08, 0x08, 0x12, 0x04, 0xc5, 0x03, 0x1e, - 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc5, - 0x03, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x09, 0x06, 0x12, 0x04, 0xc6, 0x03, - 0x02, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x09, 0x12, 0x04, 0xc6, 0x03, 0x02, 0x4d, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x09, 0x01, 0x12, 0x04, 0xc6, 0x03, 0x10, 0x1e, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x09, 0x03, 0x12, 0x04, 0xc6, 0x03, 0x21, 0x23, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x09, 0x08, 0x12, 0x04, 0xc6, 0x03, 0x24, 0x4c, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x1b, 0x02, 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc6, 0x03, 0x25, 0x4b, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0a, 0x06, 0x12, 0x04, 0xc7, 0x03, 0x02, 0x0c, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x0a, 0x12, 0x04, 0xc7, 0x03, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1b, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xc7, 0x03, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1b, 0x02, 0x0a, 0x03, 0x12, 0x04, 0xc7, 0x03, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, - 0x02, 0x0a, 0x08, 0x12, 0x04, 0xc7, 0x03, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, - 0x0a, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc7, 0x03, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1b, 0x02, 0x0b, 0x06, 0x12, 0x04, 0xc8, 0x03, 0x02, 0x0d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, - 0x02, 0x0b, 0x12, 0x04, 0xc8, 0x03, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0b, - 0x01, 0x12, 0x04, 0xc8, 0x03, 0x0e, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0b, 0x03, - 0x12, 0x04, 0xc8, 0x03, 0x1d, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0b, 0x08, 0x12, - 0x04, 0xc8, 0x03, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x0b, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xc8, 0x03, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0c, 0x06, - 0x12, 0x04, 0xc9, 0x03, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x0c, 0x12, 0x04, - 0xc9, 0x03, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xc9, - 0x03, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0c, 0x03, 0x12, 0x04, 0xc9, 0x03, - 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0c, 0x08, 0x12, 0x04, 0xc9, 0x03, 0x1e, - 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x0c, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc9, - 0x03, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0d, 0x04, 0x12, 0x04, 0xcc, 0x03, - 0x02, 0x0a, 0x0a, 0x65, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x0d, 0x12, 0x04, 0xcc, 0x03, 0x02, 0x47, - 0x1a, 0x57, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x64, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x6e, 0x67, - 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x6e, - 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, - 0x0d, 0x05, 0x12, 0x04, 0xcc, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0d, - 0x01, 0x12, 0x04, 0xcc, 0x03, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0d, 0x03, - 0x12, 0x04, 0xcc, 0x03, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0d, 0x08, 0x12, - 0x04, 0xcc, 0x03, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x0d, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xcc, 0x03, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0e, 0x04, - 0x12, 0x04, 0xcf, 0x03, 0x02, 0x0a, 0x0a, 0x6b, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x0e, 0x12, 0x04, - 0xcf, 0x03, 0x02, 0x4a, 0x1a, 0x5d, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x20, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, - 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0e, 0x05, 0x12, 0x04, 0xcf, 0x03, - 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0e, 0x01, 0x12, 0x04, 0xcf, 0x03, 0x12, - 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0e, 0x03, 0x12, 0x04, 0xcf, 0x03, 0x1e, 0x20, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0e, 0x08, 0x12, 0x04, 0xcf, 0x03, 0x21, 0x49, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x0e, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcf, 0x03, 0x22, - 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0f, 0x04, 0x12, 0x04, 0xd1, 0x03, 0x02, 0x0a, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x0f, 0x12, 0x04, 0xd1, 0x03, 0x02, 0x49, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0f, 0x05, 0x12, 0x04, 0xd1, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x1b, 0x02, 0x0f, 0x01, 0x12, 0x04, 0xd1, 0x03, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1b, 0x02, 0x0f, 0x03, 0x12, 0x04, 0xd1, 0x03, 0x1d, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1b, 0x02, 0x0f, 0x08, 0x12, 0x04, 0xd1, 0x03, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, - 0x02, 0x0f, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd1, 0x03, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1b, 0x02, 0x10, 0x04, 0x12, 0x04, 0xd2, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x1b, 0x02, 0x10, 0x12, 0x04, 0xd2, 0x03, 0x02, 0x63, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, - 0x10, 0x06, 0x12, 0x04, 0xd2, 0x03, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x10, - 0x01, 0x12, 0x04, 0xd2, 0x03, 0x25, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x10, 0x03, - 0x12, 0x04, 0xd2, 0x03, 0x37, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x10, 0x08, 0x12, - 0x04, 0xd2, 0x03, 0x3a, 0x62, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x10, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xd2, 0x03, 0x3b, 0x61, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x11, 0x04, - 0x12, 0x04, 0xd3, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x11, 0x12, 0x04, - 0xd3, 0x03, 0x02, 0x62, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x11, 0x06, 0x12, 0x04, 0xd3, - 0x03, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x11, 0x01, 0x12, 0x04, 0xd3, 0x03, - 0x25, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x11, 0x03, 0x12, 0x04, 0xd3, 0x03, 0x36, - 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x11, 0x08, 0x12, 0x04, 0xd3, 0x03, 0x39, 0x61, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x11, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd3, 0x03, - 0x3a, 0x60, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1c, 0x12, 0x06, 0xd6, 0x03, 0x00, 0xed, 0x03, 0x01, - 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1c, 0x01, 0x12, 0x04, 0xd6, 0x03, 0x08, 0x1e, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x1c, 0x02, 0x00, 0x05, 0x12, 0x04, 0xda, 0x03, 0x02, 0x08, 0x0a, 0xf8, 0x01, 0x0a, - 0x04, 0x04, 0x1c, 0x02, 0x00, 0x12, 0x04, 0xda, 0x03, 0x02, 0x40, 0x1a, 0xe9, 0x01, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x20, 0x6d, - 0x6f, 0x73, 0x74, 0x20, 0x35, 0x30, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x0a, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, - 0x63, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x01, - 0x12, 0x04, 0xda, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x03, 0x12, - 0x04, 0xda, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x08, 0x12, 0x04, - 0xda, 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1c, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0xda, 0x03, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, 0x05, 0x12, - 0x04, 0xe0, 0x03, 0x02, 0x08, 0x0a, 0x80, 0x02, 0x0a, 0x04, 0x04, 0x1c, 0x02, 0x01, 0x12, 0x04, - 0xe0, 0x03, 0x02, 0x41, 0x1a, 0xf1, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, - 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x60, - 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, - 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x60, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x20, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, - 0x01, 0x12, 0x04, 0xe0, 0x03, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, 0x03, - 0x12, 0x04, 0xe0, 0x03, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, 0x08, 0x12, - 0x04, 0xe0, 0x03, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1c, 0x02, 0x01, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xe0, 0x03, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x02, 0x05, - 0x12, 0x04, 0xe5, 0x03, 0x02, 0x08, 0x0a, 0xd7, 0x02, 0x0a, 0x04, 0x04, 0x1c, 0x02, 0x02, 0x12, - 0x04, 0xe5, 0x03, 0x02, 0x3d, 0x1a, 0xc8, 0x02, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, - 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, - 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, - 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x60, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x72, - 0x6c, 0x60, 0x2c, 0x20, 0x60, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x60, 0x2e, 0x0a, 0x20, 0x46, - 0x6f, 0x72, 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, - 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, - 0x6e, 0x67, 0x64, 0x65, 0x66, 0x2e, 0x6d, 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x02, 0x01, 0x12, 0x04, 0xe5, 0x03, 0x09, 0x0f, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x02, 0x03, 0x12, 0x04, 0xe5, 0x03, 0x12, 0x13, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x02, 0x08, 0x12, 0x04, 0xe5, 0x03, 0x14, 0x3c, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x1c, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe5, 0x03, 0x15, 0x3b, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x03, 0x05, 0x12, 0x04, 0xec, 0x03, 0x02, 0x08, 0x0a, 0xad, - 0x03, 0x0a, 0x04, 0x04, 0x1c, 0x02, 0x03, 0x12, 0x04, 0xec, 0x03, 0x02, 0x3f, 0x1a, 0x9e, 0x03, - 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x64, 0x61, 0x74, 0x61, - 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, - 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, - 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x22, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, - 0x5b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x5d, 0x2c, 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, - 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x73, 0x63, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x6c, 0x64, 0x65, - 0x73, 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, - 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x5d, 0x28, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x70, 0x2e, - 0x64, 0x65, 0x76, 0x2f, 0x31, 0x33, 0x32, 0x23, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x29, 0x0a, 0x20, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x2c, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x03, 0x01, 0x12, 0x04, 0xec, 0x03, 0x09, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x1c, 0x02, 0x03, 0x03, 0x12, 0x04, 0xec, 0x03, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1c, 0x02, 0x03, 0x08, 0x12, 0x04, 0xec, 0x03, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x1c, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xec, 0x03, 0x17, 0x3d, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x1d, 0x12, 0x06, 0xef, 0x03, 0x00, 0xf2, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x1d, 0x01, 0x12, 0x04, 0xef, 0x03, 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, - 0x04, 0x12, 0x04, 0xf0, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x00, 0x12, - 0x04, 0xf0, 0x03, 0x02, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x06, 0x12, 0x04, - 0xf0, 0x03, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf0, - 0x03, 0x16, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf0, 0x03, - 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x05, 0x12, 0x04, 0xf1, 0x03, 0x02, - 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x01, 0x12, 0x04, 0xf1, 0x03, 0x02, 0x1d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf1, 0x03, 0x09, 0x18, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf1, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x1e, 0x12, 0x06, 0xf4, 0x03, 0x00, 0xf8, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x1e, 0x01, 0x12, 0x04, 0xf4, 0x03, 0x08, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, - 0x05, 0x12, 0x04, 0xf7, 0x03, 0x02, 0x08, 0x0a, 0xc2, 0x01, 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x00, - 0x12, 0x04, 0xf7, 0x03, 0x02, 0x45, 0x1a, 0xb3, 0x01, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x0a, - 0x20, 0x59, 0x6f, 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, - 0x74, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x22, 0x75, 0x72, 0x6c, 0x22, 0x20, 0x62, 0x61, - 0x73, 0x65, 0x64, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x28, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x6c, - 0x29, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf7, 0x03, 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf7, 0x03, 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, - 0x02, 0x00, 0x08, 0x12, 0x04, 0xf7, 0x03, 0x1c, 0x44, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1e, 0x02, - 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf7, 0x03, 0x1d, 0x43, 0x0a, 0x0a, 0x0a, 0x02, 0x04, - 0x1f, 0x12, 0x04, 0xfa, 0x03, 0x00, 0x22, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1f, 0x01, 0x12, 0x04, - 0xfa, 0x03, 0x08, 0x1f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x66, 0x69, 0x67, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x01, 0x12, + 0x04, 0x9c, 0x03, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x03, 0x12, 0x04, + 0x9c, 0x03, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x03, 0x06, 0x12, 0x04, 0xa0, + 0x03, 0x02, 0x0b, 0x0a, 0xc5, 0x01, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x03, 0x12, 0x04, 0xa0, 0x03, + 0x02, 0x23, 0x1a, 0xb6, 0x01, 0x20, 0x50, 0x65, 0x72, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6d, 0x61, + 0x79, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x69, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2e, 0x0a, 0x20, 0x41, 0x20, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x20, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x19, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa0, 0x03, 0x0c, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, + 0x02, 0x03, 0x03, 0x12, 0x04, 0xa0, 0x03, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, + 0x04, 0x06, 0x12, 0x04, 0xa1, 0x03, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x04, + 0x12, 0x04, 0xa1, 0x03, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x04, 0x01, 0x12, + 0x04, 0xa1, 0x03, 0x0d, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x04, 0x03, 0x12, 0x04, + 0xa1, 0x03, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x05, 0x06, 0x12, 0x04, 0xa4, + 0x03, 0x02, 0x0f, 0x0a, 0xa2, 0x01, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x05, 0x12, 0x04, 0xa4, 0x03, + 0x02, 0x2b, 0x1a, 0x93, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x70, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, + 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x0a, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x05, + 0x01, 0x12, 0x04, 0xa4, 0x03, 0x10, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x05, 0x03, + 0x12, 0x04, 0xa4, 0x03, 0x29, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x06, 0x06, 0x12, + 0x04, 0xa5, 0x03, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x06, 0x12, 0x04, 0xa5, + 0x03, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x06, 0x01, 0x12, 0x04, 0xa5, 0x03, + 0x0d, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x06, 0x03, 0x12, 0x04, 0xa5, 0x03, 0x23, + 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x07, 0x06, 0x12, 0x04, 0xa6, 0x03, 0x02, 0x0c, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x07, 0x12, 0x04, 0xa6, 0x03, 0x02, 0x25, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x19, 0x02, 0x07, 0x01, 0x12, 0x04, 0xa6, 0x03, 0x0d, 0x20, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x19, 0x02, 0x07, 0x03, 0x12, 0x04, 0xa6, 0x03, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x19, 0x02, 0x08, 0x06, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x1e, 0x0a, 0x9e, 0x01, 0x0a, 0x04, + 0x04, 0x19, 0x02, 0x08, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x30, 0x1a, 0x8f, 0x01, 0x20, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x20, 0x4b, + 0x65, 0x79, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x61, 0x73, 0x20, 0x69, 0x74, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x2e, 0x0a, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x20, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x3b, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x19, 0x02, 0x08, 0x01, 0x12, 0x04, 0xaa, 0x03, 0x1f, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x19, 0x02, 0x08, 0x03, 0x12, 0x04, 0xaa, 0x03, 0x2e, 0x2f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1a, + 0x12, 0x06, 0xad, 0x03, 0x00, 0xbc, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1a, 0x01, 0x12, + 0x04, 0xad, 0x03, 0x08, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x06, 0x12, 0x04, + 0xaf, 0x03, 0x02, 0x0d, 0x0a, 0x4d, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x00, 0x12, 0x04, 0xaf, 0x03, + 0x02, 0x17, 0x1a, 0x3f, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x20, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x01, 0x12, 0x04, 0xaf, 0x03, + 0x0e, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x03, 0x12, 0x04, 0xaf, 0x03, 0x15, + 0x16, 0x0a, 0x9e, 0x01, 0x0a, 0x04, 0x04, 0x1a, 0x08, 0x00, 0x12, 0x06, 0xb3, 0x03, 0x02, 0xbb, + 0x03, 0x03, 0x1a, 0x8d, 0x01, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x70, + 0x65, 0x72, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x2e, 0x20, + 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x2a, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x08, 0x00, 0x01, 0x12, 0x04, 0xb3, 0x03, 0x08, + 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x06, 0x12, 0x04, 0xb4, 0x03, 0x04, 0x0d, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x01, 0x12, 0x04, 0xb4, 0x03, 0x04, 0x1d, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb4, 0x03, 0x0e, 0x18, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb4, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1a, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb5, 0x03, 0x04, 0x0e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x1a, 0x02, 0x02, 0x12, 0x04, 0xb5, 0x03, 0x04, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, + 0x02, 0x01, 0x12, 0x04, 0xb5, 0x03, 0x0f, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x02, + 0x03, 0x12, 0x04, 0xb5, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x03, 0x06, + 0x12, 0x04, 0xb8, 0x03, 0x04, 0x11, 0x0a, 0x9a, 0x01, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x03, 0x12, + 0x04, 0xb8, 0x03, 0x04, 0x25, 0x1a, 0x8b, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, + 0x71, 0x75, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x6f, 0x65, 0x73, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x79, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x0a, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x03, 0x01, 0x12, 0x04, 0xb8, 0x03, + 0x12, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x03, 0x03, 0x12, 0x04, 0xb8, 0x03, 0x23, + 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x04, 0x06, 0x12, 0x04, 0xb9, 0x03, 0x04, 0x0e, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x04, 0x12, 0x04, 0xb9, 0x03, 0x04, 0x1f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x04, 0x01, 0x12, 0x04, 0xb9, 0x03, 0x0f, 0x1a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1a, 0x02, 0x04, 0x03, 0x12, 0x04, 0xb9, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1a, 0x02, 0x05, 0x06, 0x12, 0x04, 0xba, 0x03, 0x04, 0x0e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x1a, 0x02, 0x05, 0x12, 0x04, 0xba, 0x03, 0x04, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, + 0x05, 0x01, 0x12, 0x04, 0xba, 0x03, 0x0f, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x05, + 0x03, 0x12, 0x04, 0xba, 0x03, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x06, 0x12, 0x06, 0xbe, + 0x03, 0x00, 0xc4, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x06, 0x01, 0x12, 0x04, 0xbe, 0x03, + 0x05, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x00, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x02, + 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x06, 0x02, 0x00, 0x12, 0x04, 0xbf, 0x03, 0x02, 0x39, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x00, 0x02, 0x12, 0x04, 0xbf, 0x03, 0x23, 0x24, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x06, 0x02, 0x00, 0x03, 0x12, 0x04, 0xbf, 0x03, 0x25, 0x38, 0x0a, 0x0e, 0x0a, + 0x06, 0x05, 0x06, 0x02, 0x00, 0x03, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x26, 0x37, 0x0a, 0x0d, 0x0a, + 0x05, 0x05, 0x06, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc0, 0x03, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, + 0x05, 0x06, 0x02, 0x01, 0x12, 0x04, 0xc0, 0x03, 0x02, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, + 0x02, 0x01, 0x02, 0x12, 0x04, 0xc0, 0x03, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, + 0x02, 0x01, 0x12, 0x04, 0xc1, 0x03, 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x06, 0x02, 0x02, + 0x12, 0x04, 0xc1, 0x03, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x02, 0x02, 0x12, + 0x04, 0xc1, 0x03, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x03, 0x01, 0x12, 0x04, + 0xc2, 0x03, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x06, 0x02, 0x03, 0x12, 0x04, 0xc2, 0x03, + 0x02, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x03, 0x02, 0x12, 0x04, 0xc2, 0x03, 0x21, + 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x06, 0x02, 0x04, 0x01, 0x12, 0x04, 0xc3, 0x03, 0x02, 0x1b, + 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x06, 0x02, 0x04, 0x12, 0x04, 0xc3, 0x03, 0x02, 0x20, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x06, 0x02, 0x04, 0x02, 0x12, 0x04, 0xc3, 0x03, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, + 0x02, 0x04, 0x1b, 0x12, 0x06, 0xc6, 0x03, 0x00, 0xde, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x1b, 0x01, 0x12, 0x04, 0xc6, 0x03, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, + 0x05, 0x12, 0x04, 0xc7, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x00, 0x12, + 0x04, 0xc7, 0x03, 0x02, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xc7, 0x03, 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc7, + 0x03, 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc7, 0x03, + 0x1c, 0x44, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xc7, 0x03, 0x1d, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc8, + 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x01, 0x12, 0x04, 0xc8, 0x03, 0x02, + 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc8, 0x03, 0x09, 0x13, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc8, 0x03, 0x16, 0x17, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x02, 0x06, 0x12, 0x04, 0xc9, 0x03, 0x02, 0x12, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x02, 0x12, 0x04, 0xc9, 0x03, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1b, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc9, 0x03, 0x13, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x02, 0x02, 0x03, 0x12, 0x04, 0xc9, 0x03, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x02, 0x08, 0x12, 0x04, 0xc9, 0x03, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, + 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc9, 0x03, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x02, 0x03, 0x05, 0x12, 0x04, 0xca, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, + 0x02, 0x03, 0x12, 0x04, 0xca, 0x03, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x03, + 0x01, 0x12, 0x04, 0xca, 0x03, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x03, 0x03, + 0x12, 0x04, 0xca, 0x03, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x04, 0x06, 0x12, + 0x04, 0xcb, 0x03, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x04, 0x12, 0x04, 0xcb, + 0x03, 0x02, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x04, 0x01, 0x12, 0x04, 0xcb, 0x03, + 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x04, 0x03, 0x12, 0x04, 0xcb, 0x03, 0x2b, + 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x04, 0x08, 0x12, 0x04, 0xcb, 0x03, 0x2d, 0x55, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcb, 0x03, + 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x05, 0x06, 0x12, 0x04, 0xcc, 0x03, 0x02, + 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x05, 0x12, 0x04, 0xcc, 0x03, 0x02, 0x57, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x05, 0x01, 0x12, 0x04, 0xcc, 0x03, 0x1c, 0x29, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x05, 0x03, 0x12, 0x04, 0xcc, 0x03, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1b, 0x02, 0x05, 0x08, 0x12, 0x04, 0xcc, 0x03, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x1b, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcc, 0x03, 0x2f, 0x55, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x06, 0x06, 0x12, 0x04, 0xcd, 0x03, 0x02, 0x0b, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x1b, 0x02, 0x06, 0x12, 0x04, 0xcd, 0x03, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x02, 0x06, 0x01, 0x12, 0x04, 0xcd, 0x03, 0x0c, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x06, 0x03, 0x12, 0x04, 0xcd, 0x03, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, + 0x06, 0x08, 0x12, 0x04, 0xcd, 0x03, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x06, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcd, 0x03, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x07, 0x06, 0x12, 0x04, 0xce, 0x03, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, + 0x07, 0x12, 0x04, 0xce, 0x03, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x07, 0x01, + 0x12, 0x04, 0xce, 0x03, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x07, 0x03, 0x12, + 0x04, 0xce, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x07, 0x08, 0x12, 0x04, + 0xce, 0x03, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xce, 0x03, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x08, 0x06, 0x12, + 0x04, 0xcf, 0x03, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x08, 0x12, 0x04, 0xcf, + 0x03, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x08, 0x01, 0x12, 0x04, 0xcf, 0x03, + 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x08, 0x03, 0x12, 0x04, 0xcf, 0x03, 0x1b, + 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x08, 0x08, 0x12, 0x04, 0xcf, 0x03, 0x1e, 0x46, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcf, 0x03, + 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x09, 0x06, 0x12, 0x04, 0xd0, 0x03, 0x02, + 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x09, 0x12, 0x04, 0xd0, 0x03, 0x02, 0x4d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x09, 0x01, 0x12, 0x04, 0xd0, 0x03, 0x10, 0x1e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x09, 0x03, 0x12, 0x04, 0xd0, 0x03, 0x21, 0x23, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1b, 0x02, 0x09, 0x08, 0x12, 0x04, 0xd0, 0x03, 0x24, 0x4c, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x1b, 0x02, 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd0, 0x03, 0x25, 0x4b, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0a, 0x06, 0x12, 0x04, 0xd1, 0x03, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x1b, 0x02, 0x0a, 0x12, 0x04, 0xd1, 0x03, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xd1, 0x03, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x0a, 0x03, 0x12, 0x04, 0xd1, 0x03, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, + 0x0a, 0x08, 0x12, 0x04, 0xd1, 0x03, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x0a, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd1, 0x03, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x0b, 0x06, 0x12, 0x04, 0xd2, 0x03, 0x02, 0x0d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, + 0x0b, 0x12, 0x04, 0xd2, 0x03, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0b, 0x01, + 0x12, 0x04, 0xd2, 0x03, 0x0e, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0b, 0x03, 0x12, + 0x04, 0xd2, 0x03, 0x1d, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0b, 0x08, 0x12, 0x04, + 0xd2, 0x03, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x0b, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xd2, 0x03, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0c, 0x06, 0x12, + 0x04, 0xd3, 0x03, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x0c, 0x12, 0x04, 0xd3, + 0x03, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xd3, 0x03, + 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0c, 0x03, 0x12, 0x04, 0xd3, 0x03, 0x1b, + 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0c, 0x08, 0x12, 0x04, 0xd3, 0x03, 0x1e, 0x46, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x0c, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd3, 0x03, + 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0d, 0x04, 0x12, 0x04, 0xd6, 0x03, 0x02, + 0x0a, 0x0a, 0x65, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x0d, 0x12, 0x04, 0xd6, 0x03, 0x02, 0x47, 0x1a, + 0x57, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x6e, 0x67, 0x65, + 0x73, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x6e, 0x63, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0d, + 0x05, 0x12, 0x04, 0xd6, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0d, 0x01, + 0x12, 0x04, 0xd6, 0x03, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0d, 0x03, 0x12, + 0x04, 0xd6, 0x03, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0d, 0x08, 0x12, 0x04, + 0xd6, 0x03, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x0d, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xd6, 0x03, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0e, 0x04, 0x12, + 0x04, 0xd9, 0x03, 0x02, 0x0a, 0x0a, 0x6b, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x0e, 0x12, 0x04, 0xd9, + 0x03, 0x02, 0x4a, 0x1a, 0x5d, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x20, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0e, 0x05, 0x12, 0x04, 0xd9, 0x03, 0x0b, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0e, 0x01, 0x12, 0x04, 0xd9, 0x03, 0x12, 0x1b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0e, 0x03, 0x12, 0x04, 0xd9, 0x03, 0x1e, 0x20, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0e, 0x08, 0x12, 0x04, 0xd9, 0x03, 0x21, 0x49, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x0e, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd9, 0x03, 0x22, 0x48, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x0f, 0x04, 0x12, 0x04, 0xdb, 0x03, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x0f, 0x12, 0x04, 0xdb, 0x03, 0x02, 0x49, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1b, 0x02, 0x0f, 0x05, 0x12, 0x04, 0xdb, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1b, 0x02, 0x0f, 0x01, 0x12, 0x04, 0xdb, 0x03, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x02, 0x0f, 0x03, 0x12, 0x04, 0xdb, 0x03, 0x1d, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x0f, 0x08, 0x12, 0x04, 0xdb, 0x03, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, + 0x0f, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdb, 0x03, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x02, 0x10, 0x04, 0x12, 0x04, 0xdc, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, + 0x02, 0x10, 0x12, 0x04, 0xdc, 0x03, 0x02, 0x63, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x10, + 0x06, 0x12, 0x04, 0xdc, 0x03, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x10, 0x01, + 0x12, 0x04, 0xdc, 0x03, 0x25, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x10, 0x03, 0x12, + 0x04, 0xdc, 0x03, 0x37, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x10, 0x08, 0x12, 0x04, + 0xdc, 0x03, 0x3a, 0x62, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x10, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xdc, 0x03, 0x3b, 0x61, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x11, 0x04, 0x12, + 0x04, 0xdd, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x11, 0x12, 0x04, 0xdd, + 0x03, 0x02, 0x62, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x11, 0x06, 0x12, 0x04, 0xdd, 0x03, + 0x0b, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x11, 0x01, 0x12, 0x04, 0xdd, 0x03, 0x25, + 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x11, 0x03, 0x12, 0x04, 0xdd, 0x03, 0x36, 0x38, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x11, 0x08, 0x12, 0x04, 0xdd, 0x03, 0x39, 0x61, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x11, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdd, 0x03, 0x3a, + 0x60, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1c, 0x12, 0x06, 0xe0, 0x03, 0x00, 0xf7, 0x03, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x1c, 0x01, 0x12, 0x04, 0xe0, 0x03, 0x08, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1c, 0x02, 0x00, 0x05, 0x12, 0x04, 0xe4, 0x03, 0x02, 0x08, 0x0a, 0xf8, 0x01, 0x0a, 0x04, + 0x04, 0x1c, 0x02, 0x00, 0x12, 0x04, 0xe4, 0x03, 0x02, 0x40, 0x1a, 0xe9, 0x01, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, + 0x73, 0x74, 0x20, 0x35, 0x30, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x0a, 0x20, 0x31, 0x30, + 0x30, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xe4, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xe4, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x08, 0x12, 0x04, 0xe4, + 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1c, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xe4, 0x03, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, 0x05, 0x12, 0x04, + 0xea, 0x03, 0x02, 0x08, 0x0a, 0x80, 0x02, 0x0a, 0x04, 0x04, 0x1c, 0x02, 0x01, 0x12, 0x04, 0xea, + 0x03, 0x02, 0x41, 0x1a, 0xf1, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, + 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x60, 0x20, + 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, + 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x60, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x20, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xea, 0x03, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xea, 0x03, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, 0x08, 0x12, 0x04, + 0xea, 0x03, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1c, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xea, 0x03, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x02, 0x05, 0x12, + 0x04, 0xef, 0x03, 0x02, 0x08, 0x0a, 0xe1, 0x02, 0x0a, 0x04, 0x04, 0x1c, 0x02, 0x02, 0x12, 0x04, + 0xef, 0x03, 0x02, 0x3d, 0x1a, 0xd2, 0x02, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, + 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, + 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x60, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x6c, + 0x60, 0x2c, 0x20, 0x60, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x75, + 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x72, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x20, 0x67, 0x75, 0x69, + 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, + 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x64, 0x65, 0x66, 0x2e, 0x6d, + 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, + 0x02, 0x01, 0x12, 0x04, 0xef, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x02, + 0x03, 0x12, 0x04, 0xef, 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x02, 0x08, + 0x12, 0x04, 0xef, 0x03, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1c, 0x02, 0x02, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xef, 0x03, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x03, + 0x05, 0x12, 0x04, 0xf6, 0x03, 0x02, 0x08, 0x0a, 0xad, 0x03, 0x0a, 0x04, 0x04, 0x1c, 0x02, 0x03, + 0x12, 0x04, 0xf6, 0x03, 0x02, 0x3f, 0x1a, 0x9e, 0x03, 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, 0x6f, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x64, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, + 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x22, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x5d, + 0x2c, 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, + 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x28, 0x6f, 0x6c, 0x64, 0x65, 0x73, 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x5b, + 0x74, 0x68, 0x69, 0x73, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x70, 0x2e, 0x64, 0x65, 0x76, 0x2f, 0x31, 0x33, 0x32, + 0x23, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x20, 0x45, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x2c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x03, 0x01, + 0x12, 0x04, 0xf6, 0x03, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x03, 0x03, 0x12, + 0x04, 0xf6, 0x03, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x03, 0x08, 0x12, 0x04, + 0xf6, 0x03, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1c, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xf6, 0x03, 0x17, 0x3d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1d, 0x12, 0x06, 0xf9, 0x03, + 0x00, 0xfc, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1d, 0x01, 0x12, 0x04, 0xf9, 0x03, 0x08, + 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x04, 0x12, 0x04, 0xfa, 0x03, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x00, 0x12, 0x04, 0xfa, 0x03, 0x02, 0x27, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x06, 0x12, 0x04, 0xfa, 0x03, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1d, 0x02, 0x00, 0x01, 0x12, 0x04, 0xfa, 0x03, 0x16, 0x22, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1d, 0x02, 0x00, 0x03, 0x12, 0x04, 0xfa, 0x03, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1d, 0x02, 0x01, 0x05, 0x12, 0x04, 0xfb, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1d, + 0x02, 0x01, 0x12, 0x04, 0xfb, 0x03, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xfb, 0x03, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x03, + 0x12, 0x04, 0xfb, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1e, 0x12, 0x06, 0xfe, 0x03, + 0x00, 0x82, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1e, 0x01, 0x12, 0x04, 0xfe, 0x03, 0x08, + 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x05, 0x12, 0x04, 0x81, 0x04, 0x02, 0x08, + 0x0a, 0xc2, 0x01, 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x00, 0x12, 0x04, 0x81, 0x04, 0x02, 0x45, 0x1a, + 0xb3, 0x01, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x64, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x0a, 0x20, 0x59, 0x6f, 0x75, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x74, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x20, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x20, 0x22, 0x75, 0x72, 0x6c, 0x22, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x20, 0x28, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x6c, 0x29, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x01, 0x12, 0x04, + 0x81, 0x04, 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x03, 0x12, 0x04, 0x81, + 0x04, 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x08, 0x12, 0x04, 0x81, 0x04, + 0x1c, 0x44, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1e, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x81, 0x04, 0x1d, 0x43, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x1f, 0x12, 0x04, 0x84, 0x04, 0x00, 0x22, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1f, 0x01, 0x12, 0x04, 0x84, 0x04, 0x08, 0x1f, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, ]; include!("sift.data_imports.v2.tonic.rs"); include!("sift.data_imports.v2.serde.rs"); diff --git a/rust/crates/sift_rs/src/gen/sift/data_imports/v2/sift.data_imports.v2.serde.rs b/rust/crates/sift_rs/src/gen/sift/data_imports/v2/sift.data_imports.v2.serde.rs index 395f4318fc..6e34fc98fa 100644 --- a/rust/crates/sift_rs/src/gen/sift/data_imports/v2/sift.data_imports.v2.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift/data_imports/v2/sift.data_imports.v2.serde.rs @@ -1185,6 +1185,9 @@ impl serde::Serialize for CsvConfig { if self.num_rows.is_some() { len += 1; } + if self.use_embedded_config { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.data_imports.v2.CsvConfig", len)?; if !self.asset_name.is_empty() { struct_ser.serialize_field("assetName", &self.asset_name)?; @@ -1209,6 +1212,9 @@ impl serde::Serialize for CsvConfig { #[allow(clippy::needless_borrows_for_generic_args)] struct_ser.serialize_field("numRows", ToString::to_string(&v).as_str())?; } + if self.use_embedded_config { + struct_ser.serialize_field("useEmbeddedConfig", &self.use_embedded_config)?; + } struct_ser.end() } } @@ -1233,6 +1239,8 @@ impl<'de> serde::Deserialize<'de> for CsvConfig { "dataColumns", "num_rows", "numRows", + "use_embedded_config", + "useEmbeddedConfig", ]; #[allow(clippy::enum_variant_names)] @@ -1244,6 +1252,7 @@ impl<'de> serde::Deserialize<'de> for CsvConfig { TimeColumn, DataColumns, NumRows, + UseEmbeddedConfig, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1272,6 +1281,7 @@ impl<'de> serde::Deserialize<'de> for CsvConfig { "timeColumn" | "time_column" => Ok(GeneratedField::TimeColumn), "dataColumns" | "data_columns" => Ok(GeneratedField::DataColumns), "numRows" | "num_rows" => Ok(GeneratedField::NumRows), + "useEmbeddedConfig" | "use_embedded_config" => Ok(GeneratedField::UseEmbeddedConfig), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1298,6 +1308,7 @@ impl<'de> serde::Deserialize<'de> for CsvConfig { let mut time_column__ = None; let mut data_columns__ = None; let mut num_rows__ = None; + let mut use_embedded_config__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::AssetName => { @@ -1349,6 +1360,12 @@ impl<'de> serde::Deserialize<'de> for CsvConfig { map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) ; } + GeneratedField::UseEmbeddedConfig => { + if use_embedded_config__.is_some() { + return Err(serde::de::Error::duplicate_field("useEmbeddedConfig")); + } + use_embedded_config__ = Some(map_.next_value()?); + } } } Ok(CsvConfig { @@ -1359,6 +1376,7 @@ impl<'de> serde::Deserialize<'de> for CsvConfig { time_column: time_column__, data_columns: data_columns__.unwrap_or_default(), num_rows: num_rows__, + use_embedded_config: use_embedded_config__.unwrap_or_default(), }) } } @@ -3695,6 +3713,9 @@ impl serde::Serialize for ParquetFlatDatasetConfig { if !self.data_columns.is_empty() { len += 1; } + if self.use_embedded_config { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.data_imports.v2.ParquetFlatDatasetConfig", len)?; if let Some(v) = self.time_column.as_ref() { struct_ser.serialize_field("timeColumn", v)?; @@ -3702,6 +3723,9 @@ impl serde::Serialize for ParquetFlatDatasetConfig { if !self.data_columns.is_empty() { struct_ser.serialize_field("dataColumns", &self.data_columns)?; } + if self.use_embedded_config { + struct_ser.serialize_field("useEmbeddedConfig", &self.use_embedded_config)?; + } struct_ser.end() } } @@ -3716,12 +3740,15 @@ impl<'de> serde::Deserialize<'de> for ParquetFlatDatasetConfig { "timeColumn", "data_columns", "dataColumns", + "use_embedded_config", + "useEmbeddedConfig", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { TimeColumn, DataColumns, + UseEmbeddedConfig, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -3745,6 +3772,7 @@ impl<'de> serde::Deserialize<'de> for ParquetFlatDatasetConfig { match value { "timeColumn" | "time_column" => Ok(GeneratedField::TimeColumn), "dataColumns" | "data_columns" => Ok(GeneratedField::DataColumns), + "useEmbeddedConfig" | "use_embedded_config" => Ok(GeneratedField::UseEmbeddedConfig), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -3766,6 +3794,7 @@ impl<'de> serde::Deserialize<'de> for ParquetFlatDatasetConfig { { let mut time_column__ = None; let mut data_columns__ = None; + let mut use_embedded_config__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::TimeColumn => { @@ -3780,11 +3809,18 @@ impl<'de> serde::Deserialize<'de> for ParquetFlatDatasetConfig { } data_columns__ = Some(map_.next_value()?); } + GeneratedField::UseEmbeddedConfig => { + if use_embedded_config__.is_some() { + return Err(serde::de::Error::duplicate_field("useEmbeddedConfig")); + } + use_embedded_config__ = Some(map_.next_value()?); + } } } Ok(ParquetFlatDatasetConfig { time_column: time_column__, data_columns: data_columns__.unwrap_or_default(), + use_embedded_config: use_embedded_config__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift/exports/v1/sift.exports.v1.rs b/rust/crates/sift_rs/src/gen/sift/exports/v1/sift.exports.v1.rs index 6fe89e777e..3a9bf2dec8 100644 --- a/rust/crates/sift_rs/src/gen/sift/exports/v1/sift.exports.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift/exports/v1/sift.exports.v1.rs @@ -73,6 +73,8 @@ pub struct ExportOptions { pub split_export_by_asset: bool, #[prost(bool, tag="5")] pub split_export_by_run: bool, + #[prost(bool, tag="6")] + pub embed_channel_configs: bool, } #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct ExportDataResponse { @@ -129,7 +131,7 @@ impl ExportOutputFormat { } /// Encoded file descriptor set for the `sift.exports.v1` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xff, 0x3a, 0x0a, 0x1d, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x0a, 0xe5, 0x3d, 0x0a, 0x1d, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, @@ -228,7 +230,7 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x22, - 0xf6, 0x01, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0xaa, 0x02, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x34, 0x0a, @@ -243,365 +245,387 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x72, 0x74, 0x42, 0x79, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x42, 0x79, 0x52, 0x75, 0x6e, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x22, 0x33, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x06, - 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, - 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, - 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x0f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x98, 0x01, 0x0a, 0x12, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, - 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x58, 0x50, 0x4f, 0x52, + 0x6f, 0x72, 0x74, 0x42, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6d, 0x62, 0x65, + 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x88, 0x01, 0x0a, + 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0c, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, + 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x33, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, + 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x98, + 0x01, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x45, + 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, + 0x4d, 0x41, 0x54, 0x5f, 0x43, 0x53, 0x56, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x58, 0x50, + 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, + 0x54, 0x5f, 0x53, 0x55, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, - 0x43, 0x53, 0x56, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x53, 0x55, - 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4f, 0x55, - 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x51, - 0x55, 0x45, 0x54, 0x10, 0x03, 0x32, 0xf4, 0x02, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, 0x69, 0x66, + 0x50, 0x41, 0x52, 0x51, 0x55, 0x45, 0x54, 0x10, 0x03, 0x32, 0xf4, 0x02, 0x0a, 0x0d, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x0a, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x36, 0x92, 0x41, 0x1a, 0x12, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x1a, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x13, 0x3a, 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0xd2, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x92, 0x41, 0x40, - 0x12, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, - 0x1a, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x20, 0x6a, 0x6f, 0x62, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2d, 0x75, 0x72, 0x6c, 0x42, 0x97, 0x01, 0x92, - 0x41, 0x13, 0x12, 0x11, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x53, 0x45, 0x58, - 0xaa, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, - 0x56, 0x31, 0xca, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x11, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xf1, 0x24, 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x76, - 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, - 0x12, 0x03, 0x02, 0x00, 0x18, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x04, 0x00, 0x26, - 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, - 0x02, 0x12, 0x03, 0x06, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x03, 0x12, 0x03, 0x07, 0x00, - 0x38, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, 0x08, 0x00, 0x3f, 0x0a, 0x09, 0x0a, 0x01, - 0x08, 0x12, 0x04, 0x0a, 0x00, 0x0c, 0x02, 0x0a, 0x0b, 0x0a, 0x03, 0x08, 0x92, 0x08, 0x12, 0x04, - 0x0a, 0x07, 0x0c, 0x01, 0x0a, 0x0c, 0x0a, 0x05, 0x08, 0x92, 0x08, 0x02, 0x01, 0x12, 0x03, 0x0b, - 0x09, 0x21, 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x0e, 0x00, 0x21, 0x01, 0x0a, 0x0a, - 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x0e, 0x08, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, - 0x02, 0x00, 0x12, 0x04, 0x0f, 0x02, 0x18, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, - 0x01, 0x12, 0x03, 0x0f, 0x06, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, - 0x03, 0x0f, 0x11, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0f, - 0x2d, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x10, 0x04, 0x13, - 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, - 0x10, 0x0b, 0x13, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, - 0x22, 0x04, 0x12, 0x03, 0x11, 0x06, 0x1c, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, - 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x12, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x00, 0x04, 0x12, 0x04, 0x14, 0x04, 0x17, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, - 0x00, 0x04, 0x92, 0x08, 0x12, 0x04, 0x14, 0x0b, 0x17, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, - 0x02, 0x00, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x15, 0x06, 0x1b, 0x0a, 0x0f, 0x0a, 0x08, 0x06, - 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x16, 0x06, 0x21, 0x0a, 0x0c, 0x0a, 0x04, - 0x06, 0x00, 0x02, 0x01, 0x12, 0x04, 0x1a, 0x02, 0x20, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x01, 0x01, 0x12, 0x03, 0x1a, 0x06, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, - 0x02, 0x12, 0x03, 0x1a, 0x15, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, - 0x03, 0x1a, 0x35, 0x4b, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x1b, - 0x04, 0x4d, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, - 0x03, 0x1b, 0x0b, 0x4c, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, - 0x22, 0x02, 0x12, 0x03, 0x1b, 0x20, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, - 0x12, 0x04, 0x1c, 0x04, 0x1f, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, - 0x08, 0x12, 0x04, 0x1c, 0x0b, 0x1f, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, - 0x92, 0x08, 0x02, 0x12, 0x03, 0x1d, 0x06, 0x1f, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, - 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x1e, 0x06, 0x43, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, - 0x04, 0x23, 0x00, 0x33, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x23, 0x08, - 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x08, 0x00, 0x12, 0x04, 0x24, 0x02, 0x2d, 0x03, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x08, 0x00, 0x01, 0x12, 0x03, 0x24, 0x08, 0x16, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x26, 0x04, 0x0d, 0x0a, 0x6b, 0x0a, 0x04, 0x04, - 0x00, 0x02, 0x00, 0x12, 0x03, 0x26, 0x04, 0x1d, 0x1a, 0x5e, 0x20, 0x49, 0x66, 0x20, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2c, 0x20, 0x63, + 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x36, 0x92, 0x41, 0x1a, 0x12, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x1a, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x3a, 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0xd2, 0x01, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x26, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x6f, 0x92, 0x41, 0x40, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x55, 0x72, 0x6c, 0x1a, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x20, + 0x6a, 0x6f, 0x62, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2d, 0x75, 0x72, 0x6c, + 0x42, 0x97, 0x01, 0x92, 0x41, 0x13, 0x12, 0x11, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, + 0x03, 0x53, 0x45, 0x58, 0xaa, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xa3, 0x27, 0x0a, 0x06, 0x12, + 0x04, 0x00, 0x00, 0x7a, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, + 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x18, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, + 0x03, 0x04, 0x00, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, 0x29, 0x0a, + 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x06, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x03, + 0x12, 0x03, 0x07, 0x00, 0x38, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, 0x08, 0x00, 0x3f, + 0x0a, 0x09, 0x0a, 0x01, 0x08, 0x12, 0x04, 0x0a, 0x00, 0x0c, 0x02, 0x0a, 0x0b, 0x0a, 0x03, 0x08, + 0x92, 0x08, 0x12, 0x04, 0x0a, 0x07, 0x0c, 0x01, 0x0a, 0x0c, 0x0a, 0x05, 0x08, 0x92, 0x08, 0x02, + 0x01, 0x12, 0x03, 0x0b, 0x09, 0x21, 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x0e, 0x00, + 0x21, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x0e, 0x08, 0x15, 0x0a, 0x0c, + 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x04, 0x0f, 0x02, 0x18, 0x03, 0x0a, 0x0c, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0f, 0x06, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x00, 0x02, 0x12, 0x03, 0x0f, 0x11, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, + 0x03, 0x12, 0x03, 0x0f, 0x2d, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, + 0x04, 0x10, 0x04, 0x13, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, + 0xbc, 0x22, 0x12, 0x04, 0x10, 0x0b, 0x13, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, + 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x11, 0x06, 0x1c, 0x0a, 0x11, 0x0a, 0x0a, 0x06, + 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x12, 0x06, 0x0f, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x14, 0x04, 0x17, 0x06, 0x0a, 0x0f, 0x0a, + 0x07, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x12, 0x04, 0x14, 0x0b, 0x17, 0x05, 0x0a, 0x0f, + 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x15, 0x06, 0x1b, 0x0a, + 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x16, 0x06, 0x21, + 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x04, 0x1a, 0x02, 0x20, 0x03, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x1a, 0x06, 0x14, 0x0a, 0x0c, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x1a, 0x15, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x01, 0x03, 0x12, 0x03, 0x1a, 0x35, 0x4b, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, + 0x04, 0x12, 0x03, 0x1b, 0x04, 0x4d, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, + 0xca, 0xbc, 0x22, 0x12, 0x03, 0x1b, 0x0b, 0x4c, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, + 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x1b, 0x20, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x1c, 0x04, 0x1f, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, + 0x02, 0x01, 0x04, 0x92, 0x08, 0x12, 0x04, 0x1c, 0x0b, 0x1f, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, + 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x1d, 0x06, 0x1f, 0x0a, 0x0f, 0x0a, 0x08, + 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x1e, 0x06, 0x43, 0x0a, 0x0a, 0x0a, + 0x02, 0x04, 0x00, 0x12, 0x04, 0x23, 0x00, 0x33, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, + 0x12, 0x03, 0x23, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x08, 0x00, 0x12, 0x04, 0x24, + 0x02, 0x2d, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x08, 0x00, 0x01, 0x12, 0x03, 0x24, 0x08, + 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x26, 0x04, 0x0d, 0x0a, + 0x6b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x26, 0x04, 0x1d, 0x1a, 0x5e, 0x20, 0x49, + 0x66, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x2c, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x73, 0x20, 0x6f, + 0x72, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x73, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x26, 0x0e, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x26, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, + 0x06, 0x12, 0x03, 0x29, 0x04, 0x14, 0x0a, 0xef, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, + 0x03, 0x29, 0x04, 0x2d, 0x1a, 0xe1, 0x01, 0x20, 0x52, 0x75, 0x6e, 0x73, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x74, 0x69, 0x6d, + 0x65, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x73, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x20, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x6c, 0x79, + 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x65, 0x6c, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x70, - 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, - 0x01, 0x12, 0x03, 0x26, 0x0e, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, - 0x03, 0x26, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x06, 0x12, 0x03, 0x29, - 0x04, 0x14, 0x0a, 0xef, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x29, 0x04, 0x2d, - 0x1a, 0xe1, 0x01, 0x20, 0x52, 0x75, 0x6e, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x63, 0x6f, 0x70, - 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x75, 0x72, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, - 0x20, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x70, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x29, - 0x15, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x29, 0x2b, 0x2c, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x06, 0x12, 0x03, 0x2c, 0x04, 0x16, 0x0a, 0xa1, - 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x2c, 0x04, 0x31, 0x1a, 0x93, 0x01, 0x20, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, - 0x70, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x63, 0x6f, 0x70, 0x65, - 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x2c, 0x17, 0x2c, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x2c, 0x2f, 0x30, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x04, 0x12, 0x03, 0x2e, 0x02, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, - 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x2e, 0x02, 0x4b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x03, 0x05, 0x12, 0x03, 0x2e, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, - 0x12, 0x03, 0x2e, 0x12, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, - 0x2e, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x08, 0x12, 0x03, 0x2e, 0x22, - 0x4a, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x2e, - 0x23, 0x49, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x04, 0x12, 0x03, 0x2f, 0x02, 0x0a, - 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x2f, 0x02, 0x6b, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x04, 0x06, 0x12, 0x03, 0x2f, 0x0b, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x2f, 0x23, 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x04, 0x03, 0x12, 0x03, 0x2f, 0x40, 0x41, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x08, - 0x12, 0x03, 0x2f, 0x42, 0x6a, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x04, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x03, 0x2f, 0x43, 0x69, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x06, 0x12, - 0x03, 0x31, 0x02, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x31, 0x02, - 0x50, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x31, 0x15, 0x22, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x31, 0x25, 0x26, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x05, 0x08, 0x12, 0x03, 0x31, 0x27, 0x4f, 0x0a, 0x0f, 0x0a, 0x08, 0x04, - 0x00, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x31, 0x28, 0x4e, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x06, 0x06, 0x12, 0x03, 0x32, 0x02, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, - 0x02, 0x06, 0x12, 0x03, 0x32, 0x02, 0x4c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, - 0x12, 0x03, 0x32, 0x10, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, - 0x32, 0x21, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x08, 0x12, 0x03, 0x32, 0x23, - 0x4b, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x32, - 0x24, 0x4a, 0x0a, 0x0a, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x35, 0x00, 0x3a, 0x01, 0x0a, 0x0a, - 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x35, 0x05, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, - 0x02, 0x00, 0x01, 0x12, 0x03, 0x36, 0x02, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, - 0x12, 0x03, 0x36, 0x02, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, - 0x36, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x37, 0x02, - 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x37, 0x02, 0x1f, 0x0a, 0x0c, - 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x37, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, - 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x38, 0x02, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, - 0x02, 0x02, 0x12, 0x03, 0x38, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, - 0x12, 0x03, 0x38, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, - 0x39, 0x02, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x39, 0x02, 0x23, - 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x39, 0x21, 0x22, 0x0a, 0x0a, - 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x3c, 0x00, 0x3f, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, - 0x01, 0x12, 0x03, 0x3c, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, - 0x03, 0x3d, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x3d, 0x02, - 0x54, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x3d, 0x1c, 0x26, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x3d, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x00, 0x08, 0x12, 0x03, 0x3d, 0x2b, 0x53, 0x0a, 0x0f, 0x0a, 0x08, 0x04, - 0x01, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x3d, 0x2c, 0x52, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x01, 0x02, 0x01, 0x06, 0x12, 0x03, 0x3e, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, - 0x02, 0x01, 0x12, 0x03, 0x3e, 0x02, 0x53, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, - 0x12, 0x03, 0x3e, 0x1c, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, - 0x3e, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, 0x3e, 0x2a, - 0x52, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x3e, - 0x2b, 0x51, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x41, 0x00, 0x45, 0x01, 0x0a, 0x0a, - 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x41, 0x08, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, - 0x02, 0x00, 0x04, 0x12, 0x03, 0x42, 0x02, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, - 0x12, 0x03, 0x42, 0x02, 0x47, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x05, 0x12, 0x03, - 0x42, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x42, 0x12, - 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x42, 0x1c, 0x1d, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, 0x03, 0x42, 0x1e, 0x46, 0x0a, 0x0f, 0x0a, - 0x08, 0x04, 0x02, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x42, 0x1f, 0x45, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x06, 0x12, 0x03, 0x43, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, - 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x43, 0x02, 0x54, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, - 0x01, 0x01, 0x12, 0x03, 0x43, 0x1c, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, - 0x12, 0x03, 0x43, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, - 0x43, 0x2b, 0x53, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x03, 0x43, 0x2c, 0x52, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x06, 0x12, 0x03, 0x44, - 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x03, 0x44, 0x02, 0x53, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x03, 0x44, 0x1c, 0x25, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x03, 0x44, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x02, 0x08, 0x12, 0x03, 0x44, 0x2a, 0x52, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x02, - 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x44, 0x2b, 0x51, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, - 0x12, 0x04, 0x47, 0x00, 0x4b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x47, - 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x04, 0x12, 0x03, 0x48, 0x02, 0x0a, - 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x48, 0x02, 0x49, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x03, 0x02, 0x00, 0x05, 0x12, 0x03, 0x48, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x48, 0x12, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, - 0x00, 0x03, 0x12, 0x03, 0x48, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x08, - 0x12, 0x03, 0x48, 0x20, 0x48, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x03, 0x02, 0x00, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x03, 0x48, 0x21, 0x47, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x06, 0x12, - 0x03, 0x49, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, 0x12, 0x03, 0x49, 0x02, - 0x54, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x03, 0x49, 0x1c, 0x26, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, 0x12, 0x03, 0x49, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x03, 0x02, 0x01, 0x08, 0x12, 0x03, 0x49, 0x2b, 0x53, 0x0a, 0x0f, 0x0a, 0x08, 0x04, - 0x03, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x49, 0x2c, 0x52, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x03, 0x02, 0x02, 0x06, 0x12, 0x03, 0x4a, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, - 0x02, 0x02, 0x12, 0x03, 0x4a, 0x02, 0x53, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x01, - 0x12, 0x03, 0x4a, 0x1c, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x03, 0x12, 0x03, - 0x4a, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x08, 0x12, 0x03, 0x4a, 0x2a, - 0x52, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x03, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x4a, - 0x2b, 0x51, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x4d, 0x00, 0x52, 0x01, 0x0a, 0x0a, - 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x4d, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, - 0x02, 0x00, 0x05, 0x12, 0x03, 0x4e, 0x02, 0x08, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x00, - 0x12, 0x03, 0x4e, 0x02, 0x3b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x01, 0x12, 0x03, - 0x4e, 0x09, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4e, 0x10, - 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x08, 0x12, 0x03, 0x4e, 0x12, 0x3a, 0x0a, - 0x0f, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x4e, 0x13, 0x39, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x05, 0x12, 0x03, 0x4f, 0x02, 0x08, 0x0a, 0x0b, - 0x0a, 0x04, 0x04, 0x04, 0x02, 0x01, 0x12, 0x03, 0x4f, 0x02, 0x41, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x04, 0x02, 0x01, 0x01, 0x12, 0x03, 0x4f, 0x09, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, - 0x01, 0x03, 0x12, 0x03, 0x4f, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x08, - 0x12, 0x03, 0x4f, 0x18, 0x40, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x01, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x03, 0x4f, 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, - 0x03, 0x50, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x02, 0x12, 0x04, 0x50, 0x02, - 0x91, 0x01, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x06, 0x12, 0x03, 0x50, 0x0b, 0x50, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x50, 0x51, 0x63, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x50, 0x66, 0x67, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x04, 0x02, 0x02, 0x08, 0x12, 0x04, 0x50, 0x68, 0x90, 0x01, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x04, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x50, 0x69, 0x8f, 0x01, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x04, 0x02, 0x03, 0x04, 0x12, 0x03, 0x51, 0x02, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, - 0x04, 0x02, 0x03, 0x12, 0x03, 0x51, 0x02, 0x45, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, - 0x05, 0x12, 0x03, 0x51, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x01, 0x12, - 0x03, 0x51, 0x12, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x03, 0x12, 0x03, 0x51, - 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x08, 0x12, 0x03, 0x51, 0x1c, 0x44, - 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x51, 0x1d, - 0x43, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x05, 0x12, 0x04, 0x54, 0x00, 0x5f, 0x01, 0x0a, 0x0a, 0x0a, - 0x03, 0x04, 0x05, 0x01, 0x12, 0x03, 0x54, 0x08, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, - 0x00, 0x05, 0x12, 0x03, 0x56, 0x02, 0x06, 0x0a, 0x69, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, - 0x03, 0x56, 0x02, 0x1d, 0x1a, 0x5c, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x20, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x6b, 0x65, - 0x79, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x03, 0x56, 0x07, 0x18, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, 0x56, 0x1b, 0x1c, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x05, 0x12, 0x03, 0x58, 0x02, 0x06, 0x0a, 0x7c, 0x0a, 0x04, - 0x04, 0x05, 0x02, 0x01, 0x12, 0x03, 0x58, 0x02, 0x22, 0x1a, 0x6f, 0x20, 0x57, 0x68, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x79, 0x20, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x62, 0x79, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, - 0x02, 0x01, 0x01, 0x12, 0x03, 0x58, 0x07, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, - 0x03, 0x12, 0x03, 0x58, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x05, 0x12, - 0x03, 0x5a, 0x02, 0x06, 0x0a, 0x8a, 0x01, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x02, 0x12, 0x03, 0x5a, - 0x02, 0x18, 0x1a, 0x7d, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, - 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x20, 0x65, 0x2e, - 0x67, 0x2e, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, - 0x69, 0x6e, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x75, 0x6e, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, 0x03, 0x5a, 0x07, 0x13, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x03, 0x12, 0x03, 0x5a, 0x16, 0x17, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x05, 0x02, 0x03, 0x05, 0x12, 0x03, 0x5c, 0x02, 0x06, 0x0a, 0x3a, 0x0a, 0x04, 0x04, - 0x05, 0x02, 0x03, 0x12, 0x03, 0x5c, 0x02, 0x21, 0x1a, 0x2d, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x74, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x01, - 0x12, 0x03, 0x5c, 0x07, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x03, 0x12, 0x03, - 0x5c, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x04, 0x05, 0x12, 0x03, 0x5e, 0x02, - 0x06, 0x0a, 0x38, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x04, 0x12, 0x03, 0x5e, 0x02, 0x1f, 0x1a, 0x2b, - 0x20, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x75, 0x6e, 0x20, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, + 0x01, 0x12, 0x03, 0x29, 0x15, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, + 0x03, 0x29, 0x2b, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x06, 0x12, 0x03, 0x2c, + 0x04, 0x16, 0x0a, 0xa1, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x2c, 0x04, 0x31, + 0x1a, 0x93, 0x01, 0x20, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x20, 0x49, 0x66, + 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x73, 0x20, 0x6f, 0x72, 0x20, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x73, + 0x63, 0x6f, 0x70, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, + 0x03, 0x2c, 0x17, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x2c, + 0x2f, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x04, 0x12, 0x03, 0x2e, 0x02, 0x0a, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x2e, 0x02, 0x4b, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x2e, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x2e, 0x12, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x03, 0x03, 0x12, 0x03, 0x2e, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x08, + 0x12, 0x03, 0x2e, 0x22, 0x4a, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x03, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x03, 0x2e, 0x23, 0x49, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x04, 0x12, + 0x03, 0x2f, 0x02, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x2f, 0x02, + 0x6b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x06, 0x12, 0x03, 0x2f, 0x0b, 0x22, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x2f, 0x23, 0x3d, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x2f, 0x40, 0x41, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x04, 0x08, 0x12, 0x03, 0x2f, 0x42, 0x6a, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, + 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x2f, 0x43, 0x69, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x05, 0x06, 0x12, 0x03, 0x31, 0x02, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, + 0x12, 0x03, 0x31, 0x02, 0x50, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, + 0x31, 0x15, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x31, 0x25, + 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x08, 0x12, 0x03, 0x31, 0x27, 0x4f, 0x0a, + 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x31, 0x28, 0x4e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x06, 0x12, 0x03, 0x32, 0x02, 0x0f, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x32, 0x02, 0x4c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x32, 0x10, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x06, 0x03, 0x12, 0x03, 0x32, 0x21, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x08, + 0x12, 0x03, 0x32, 0x23, 0x4b, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x06, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x03, 0x32, 0x24, 0x4a, 0x0a, 0x0a, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x35, 0x00, + 0x3a, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x35, 0x05, 0x17, 0x0a, 0x0c, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x36, 0x02, 0x22, 0x0a, 0x0b, 0x0a, 0x04, + 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x36, 0x02, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x00, 0x02, 0x12, 0x03, 0x36, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, + 0x12, 0x03, 0x37, 0x02, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x37, + 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x37, 0x1d, 0x1e, + 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x38, 0x02, 0x1a, 0x0a, 0x0b, + 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x03, 0x38, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x38, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x39, 0x02, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, + 0x03, 0x39, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x39, + 0x21, 0x22, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x3c, 0x00, 0x3f, 0x01, 0x0a, 0x0a, + 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x3c, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x00, 0x06, 0x12, 0x03, 0x3d, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, + 0x12, 0x03, 0x3d, 0x02, 0x54, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x3d, 0x1c, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x3d, 0x29, + 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x08, 0x12, 0x03, 0x3d, 0x2b, 0x53, 0x0a, + 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x3d, 0x2c, 0x52, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x06, 0x12, 0x03, 0x3e, 0x02, 0x1b, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x3e, 0x02, 0x53, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x3e, 0x1c, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x01, 0x03, 0x12, 0x03, 0x3e, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, + 0x12, 0x03, 0x3e, 0x2a, 0x52, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x01, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x03, 0x3e, 0x2b, 0x51, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x41, 0x00, + 0x45, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x41, 0x08, 0x18, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x04, 0x12, 0x03, 0x42, 0x02, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x42, 0x02, 0x47, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x00, 0x05, 0x12, 0x03, 0x42, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, + 0x12, 0x03, 0x42, 0x12, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, + 0x42, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, 0x03, 0x42, 0x1e, + 0x46, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x42, + 0x1f, 0x45, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x06, 0x12, 0x03, 0x43, 0x02, 0x1b, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x43, 0x02, 0x54, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x43, 0x1c, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x43, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x01, 0x08, 0x12, 0x03, 0x43, 0x2b, 0x53, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x01, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x03, 0x43, 0x2c, 0x52, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, + 0x06, 0x12, 0x03, 0x44, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x03, + 0x44, 0x02, 0x53, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x03, 0x44, 0x1c, + 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x03, 0x44, 0x28, 0x29, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x08, 0x12, 0x03, 0x44, 0x2a, 0x52, 0x0a, 0x0f, 0x0a, + 0x08, 0x04, 0x02, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x44, 0x2b, 0x51, 0x0a, 0x0a, + 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x47, 0x00, 0x4b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, + 0x01, 0x12, 0x03, 0x47, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x04, 0x12, + 0x03, 0x48, 0x02, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x48, 0x02, + 0x49, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x05, 0x12, 0x03, 0x48, 0x0b, 0x11, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x48, 0x12, 0x1b, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x48, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x00, 0x08, 0x12, 0x03, 0x48, 0x20, 0x48, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x03, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x48, 0x21, 0x47, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x01, 0x06, 0x12, 0x03, 0x49, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, + 0x12, 0x03, 0x49, 0x02, 0x54, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x03, + 0x49, 0x1c, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, 0x12, 0x03, 0x49, 0x29, + 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x08, 0x12, 0x03, 0x49, 0x2b, 0x53, 0x0a, + 0x0f, 0x0a, 0x08, 0x04, 0x03, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x49, 0x2c, 0x52, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x06, 0x12, 0x03, 0x4a, 0x02, 0x1b, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x03, 0x02, 0x02, 0x12, 0x03, 0x4a, 0x02, 0x53, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x02, 0x01, 0x12, 0x03, 0x4a, 0x1c, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x02, 0x03, 0x12, 0x03, 0x4a, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x08, + 0x12, 0x03, 0x4a, 0x2a, 0x52, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x03, 0x02, 0x02, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x03, 0x4a, 0x2b, 0x51, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x4d, 0x00, + 0x52, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x4d, 0x08, 0x1f, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x05, 0x12, 0x03, 0x4e, 0x02, 0x08, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x04, 0x02, 0x00, 0x12, 0x03, 0x4e, 0x02, 0x3b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x00, 0x01, 0x12, 0x03, 0x4e, 0x09, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, + 0x12, 0x03, 0x4e, 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x08, 0x12, 0x03, + 0x4e, 0x12, 0x3a, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x03, 0x4e, 0x13, 0x39, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x05, 0x12, 0x03, 0x4f, + 0x02, 0x08, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x01, 0x12, 0x03, 0x4f, 0x02, 0x41, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x01, 0x12, 0x03, 0x4f, 0x09, 0x13, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x04, 0x02, 0x01, 0x03, 0x12, 0x03, 0x4f, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x04, 0x02, 0x01, 0x08, 0x12, 0x03, 0x4f, 0x18, 0x40, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x04, 0x02, + 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x4f, 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x02, 0x04, 0x12, 0x03, 0x50, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x02, + 0x12, 0x04, 0x50, 0x02, 0x91, 0x01, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x06, 0x12, + 0x03, 0x50, 0x0b, 0x50, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x50, + 0x51, 0x63, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x50, 0x66, 0x67, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x08, 0x12, 0x04, 0x50, 0x68, 0x90, 0x01, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x50, 0x69, 0x8f, + 0x01, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x04, 0x12, 0x03, 0x51, 0x02, 0x0a, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x03, 0x12, 0x03, 0x51, 0x02, 0x45, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x04, 0x02, 0x03, 0x05, 0x12, 0x03, 0x51, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x03, 0x01, 0x12, 0x03, 0x51, 0x12, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, + 0x03, 0x12, 0x03, 0x51, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x08, 0x12, + 0x03, 0x51, 0x1c, 0x44, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x03, 0x51, 0x1d, 0x43, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x05, 0x12, 0x04, 0x54, 0x00, 0x63, + 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x03, 0x54, 0x08, 0x15, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x05, 0x02, 0x00, 0x05, 0x12, 0x03, 0x56, 0x02, 0x06, 0x0a, 0x69, 0x0a, 0x04, 0x04, + 0x05, 0x02, 0x00, 0x12, 0x03, 0x56, 0x02, 0x1d, 0x1a, 0x5c, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x20, 0x6b, 0x65, 0x79, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, + 0x03, 0x56, 0x07, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, 0x56, + 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x05, 0x12, 0x03, 0x58, 0x02, 0x06, + 0x0a, 0x7c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x01, 0x12, 0x03, 0x58, 0x02, 0x22, 0x1a, 0x6f, 0x20, + 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, + 0x69, 0x66, 0x79, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x72, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x66, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x01, 0x12, 0x03, 0x58, 0x07, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x05, 0x02, 0x01, 0x03, 0x12, 0x03, 0x58, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, + 0x02, 0x02, 0x05, 0x12, 0x03, 0x5a, 0x02, 0x06, 0x0a, 0x8a, 0x01, 0x0a, 0x04, 0x04, 0x05, 0x02, + 0x02, 0x12, 0x03, 0x5a, 0x02, 0x18, 0x1a, 0x7d, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, + 0x2e, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, + 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, 0x03, + 0x5a, 0x07, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x03, 0x12, 0x03, 0x5a, 0x16, + 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x05, 0x12, 0x03, 0x5c, 0x02, 0x06, 0x0a, + 0x3a, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x03, 0x12, 0x03, 0x5c, 0x02, 0x21, 0x1a, 0x2d, 0x20, 0x53, + 0x70, 0x6c, 0x69, 0x74, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6f, 0x77, 0x6e, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x05, 0x02, 0x04, 0x01, 0x12, 0x03, 0x5e, 0x07, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, - 0x04, 0x03, 0x12, 0x03, 0x5e, 0x1d, 0x1e, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x04, 0x61, - 0x00, 0x6b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x03, 0x61, 0x08, 0x1a, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, 0x03, 0x64, 0x02, 0x08, 0x0a, 0xb2, 0x01, - 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x03, 0x64, 0x02, 0x44, 0x1a, 0xa4, 0x01, 0x20, 0x50, - 0x72, 0x65, 0x2d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x6f, 0x66, - 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x7a, 0x69, 0x70, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x20, 0x69, 0x66, 0x0a, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x20, 0x6a, 0x6f, 0x62, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x60, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x60, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x03, 0x64, 0x09, 0x16, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x03, 0x64, 0x19, 0x1a, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x08, 0x12, 0x03, 0x64, 0x1b, 0x43, 0x0a, 0x0f, 0x0a, 0x08, - 0x04, 0x06, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x64, 0x1c, 0x42, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x06, 0x02, 0x01, 0x05, 0x12, 0x03, 0x67, 0x02, 0x08, 0x0a, 0x6a, 0x0a, 0x04, 0x04, - 0x06, 0x02, 0x01, 0x12, 0x03, 0x67, 0x02, 0x3d, 0x1a, 0x5d, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x6c, - 0x79, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x20, 0x6a, 0x6f, 0x62, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x01, - 0x12, 0x03, 0x67, 0x09, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x03, 0x12, 0x03, - 0x67, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x08, 0x12, 0x03, 0x67, 0x14, - 0x3c, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x06, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x67, - 0x15, 0x3b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x05, 0x12, 0x03, 0x6a, 0x02, 0x08, - 0x0a, 0x7b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, 0x03, 0x6a, 0x02, 0x46, 0x1a, 0x6e, 0x20, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x72, 0x20, - 0x34, 0x30, 0x33, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x29, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x03, 0x6a, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x06, 0x02, 0x02, 0x03, 0x12, 0x03, 0x6a, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, - 0x02, 0x08, 0x12, 0x03, 0x6a, 0x1d, 0x45, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x06, 0x02, 0x02, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x03, 0x6a, 0x1e, 0x44, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x04, - 0x6d, 0x00, 0x6f, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x03, 0x6d, 0x08, 0x1d, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, 0x03, 0x6e, 0x02, 0x08, 0x0a, 0x0b, - 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x03, 0x6e, 0x02, 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x07, 0x02, 0x00, 0x01, 0x12, 0x03, 0x6e, 0x09, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, - 0x00, 0x03, 0x12, 0x03, 0x6e, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x08, - 0x12, 0x03, 0x6e, 0x14, 0x3c, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x07, 0x02, 0x00, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x03, 0x6e, 0x15, 0x3b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x04, 0x71, 0x00, - 0x76, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x03, 0x71, 0x08, 0x1e, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x03, 0x72, 0x02, 0x08, 0x0a, 0x0b, 0x0a, 0x04, - 0x04, 0x08, 0x02, 0x00, 0x12, 0x03, 0x72, 0x02, 0x44, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, - 0x00, 0x01, 0x12, 0x03, 0x72, 0x09, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, - 0x12, 0x03, 0x72, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x08, 0x12, 0x03, - 0x72, 0x1b, 0x43, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x03, 0x72, 0x1c, 0x42, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x05, 0x12, 0x03, 0x75, - 0x02, 0x08, 0x0a, 0x5b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x03, 0x75, 0x02, 0x46, 0x1a, - 0x4e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x69, 0x6e, 0x20, - 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x03, 0x75, 0x09, 0x18, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x03, 0x75, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x08, 0x02, 0x01, 0x08, 0x12, 0x03, 0x75, 0x1d, 0x45, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x08, 0x02, - 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x75, 0x1e, 0x44, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x05, 0x02, 0x03, 0x01, 0x12, 0x03, 0x5c, 0x07, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, + 0x03, 0x03, 0x12, 0x03, 0x5c, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x04, 0x05, + 0x12, 0x03, 0x5e, 0x02, 0x06, 0x0a, 0x38, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x04, 0x12, 0x03, 0x5e, + 0x02, 0x1f, 0x1a, 0x2b, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, + 0x72, 0x75, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x6f, + 0x77, 0x6e, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x04, 0x01, 0x12, 0x03, 0x5e, 0x07, 0x1a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x05, 0x02, 0x04, 0x03, 0x12, 0x03, 0x5e, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x05, 0x02, 0x05, 0x05, 0x12, 0x03, 0x62, 0x02, 0x06, 0x0a, 0x85, 0x02, 0x0a, 0x04, 0x04, 0x05, + 0x02, 0x05, 0x12, 0x03, 0x62, 0x02, 0x21, 0x1a, 0xf7, 0x01, 0x20, 0x45, 0x6d, 0x62, 0x65, 0x64, + 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x2d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x53, 0x56, + 0x2c, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x72, 0x6f, + 0x77, 0x0a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6d, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x72, 0x6f, 0x77, 0x3b, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x50, 0x61, 0x72, 0x71, 0x75, 0x65, 0x74, 0x2c, 0x20, 0x61, 0x73, 0x20, 0x70, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x0a, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x22, 0x73, 0x69, 0x66, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x49, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x55, + 0x4e, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x05, 0x01, 0x12, 0x03, 0x62, 0x07, 0x1c, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x05, 0x03, 0x12, 0x03, 0x62, 0x1f, 0x20, 0x0a, 0x0a, 0x0a, + 0x02, 0x04, 0x06, 0x12, 0x04, 0x65, 0x00, 0x6f, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x06, 0x01, + 0x12, 0x03, 0x65, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, 0x03, + 0x68, 0x02, 0x08, 0x0a, 0xb2, 0x01, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x03, 0x68, 0x02, + 0x44, 0x1a, 0xa4, 0x01, 0x20, 0x50, 0x72, 0x65, 0x2d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, + 0x55, 0x52, 0x4c, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x7a, 0x69, 0x70, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x20, + 0x69, 0x66, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x69, 0x73, 0x20, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x6a, 0x6f, 0x62, 0x2c, 0x20, 0x69, 0x6e, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, 0x60, 0x6a, 0x6f, 0x62, + 0x5f, 0x69, 0x64, 0x60, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6e, 0x6f, 0x6e, + 0x2d, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, + 0x01, 0x12, 0x03, 0x68, 0x09, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, + 0x03, 0x68, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x08, 0x12, 0x03, 0x68, + 0x1b, 0x43, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x06, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, + 0x68, 0x1c, 0x42, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x05, 0x12, 0x03, 0x6b, 0x02, + 0x08, 0x0a, 0x6a, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x03, 0x6b, 0x02, 0x3d, 0x1a, 0x5d, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6e, 0x6f, + 0x6e, 0x2d, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, + 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x6a, 0x6f, 0x62, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x01, 0x01, 0x12, 0x03, 0x6b, 0x09, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x01, 0x03, 0x12, 0x03, 0x6b, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, + 0x01, 0x08, 0x12, 0x03, 0x6b, 0x14, 0x3c, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x06, 0x02, 0x01, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x03, 0x6b, 0x15, 0x3b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, + 0x05, 0x12, 0x03, 0x6e, 0x02, 0x08, 0x0a, 0x7b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, 0x03, + 0x6e, 0x02, 0x46, 0x1a, 0x6e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x20, 0x69, 0x6e, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x34, 0x30, 0x33, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x29, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x03, 0x6e, 0x09, + 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x03, 0x6e, 0x1b, 0x1c, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x08, 0x12, 0x03, 0x6e, 0x1d, 0x45, 0x0a, 0x0f, 0x0a, + 0x08, 0x04, 0x06, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x6e, 0x1e, 0x44, 0x0a, 0x0a, + 0x0a, 0x02, 0x04, 0x07, 0x12, 0x04, 0x71, 0x00, 0x73, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x07, + 0x01, 0x12, 0x03, 0x71, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, + 0x03, 0x72, 0x02, 0x08, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x03, 0x72, 0x02, + 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x01, 0x12, 0x03, 0x72, 0x09, 0x0f, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x03, 0x12, 0x03, 0x72, 0x12, 0x13, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x07, 0x02, 0x00, 0x08, 0x12, 0x03, 0x72, 0x14, 0x3c, 0x0a, 0x0f, 0x0a, 0x08, 0x04, + 0x07, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x72, 0x15, 0x3b, 0x0a, 0x0a, 0x0a, 0x02, + 0x04, 0x08, 0x12, 0x04, 0x75, 0x00, 0x7a, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, + 0x03, 0x75, 0x08, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x03, 0x76, + 0x02, 0x08, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x03, 0x76, 0x02, 0x44, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x03, 0x76, 0x09, 0x16, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, 0x12, 0x03, 0x76, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x00, 0x08, 0x12, 0x03, 0x76, 0x1b, 0x43, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x08, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x76, 0x1c, 0x42, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x01, 0x05, 0x12, 0x03, 0x79, 0x02, 0x08, 0x0a, 0x5b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, + 0x12, 0x03, 0x79, 0x02, 0x46, 0x1a, 0x4e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x03, + 0x79, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x03, 0x79, 0x1b, + 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x08, 0x12, 0x03, 0x79, 0x1d, 0x45, 0x0a, + 0x0f, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x79, 0x1e, 0x44, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, ]; include!("sift.exports.v1.tonic.rs"); include!("sift.exports.v1.serde.rs"); diff --git a/rust/crates/sift_rs/src/gen/sift/exports/v1/sift.exports.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift/exports/v1/sift.exports.v1.serde.rs index 1417f2979c..55fcf49c7c 100644 --- a/rust/crates/sift_rs/src/gen/sift/exports/v1/sift.exports.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift/exports/v1/sift.exports.v1.serde.rs @@ -620,6 +620,9 @@ impl serde::Serialize for ExportOptions { if self.split_export_by_run { len += 1; } + if self.embed_channel_configs { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.exports.v1.ExportOptions", len)?; if self.use_legacy_format { struct_ser.serialize_field("useLegacyFormat", &self.use_legacy_format)?; @@ -636,6 +639,9 @@ impl serde::Serialize for ExportOptions { if self.split_export_by_run { struct_ser.serialize_field("splitExportByRun", &self.split_export_by_run)?; } + if self.embed_channel_configs { + struct_ser.serialize_field("embedChannelConfigs", &self.embed_channel_configs)?; + } struct_ser.end() } } @@ -656,6 +662,8 @@ impl<'de> serde::Deserialize<'de> for ExportOptions { "splitExportByAsset", "split_export_by_run", "splitExportByRun", + "embed_channel_configs", + "embedChannelConfigs", ]; #[allow(clippy::enum_variant_names)] @@ -665,6 +673,7 @@ impl<'de> serde::Deserialize<'de> for ExportOptions { CombineRuns, SplitExportByAsset, SplitExportByRun, + EmbedChannelConfigs, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -691,6 +700,7 @@ impl<'de> serde::Deserialize<'de> for ExportOptions { "combineRuns" | "combine_runs" => Ok(GeneratedField::CombineRuns), "splitExportByAsset" | "split_export_by_asset" => Ok(GeneratedField::SplitExportByAsset), "splitExportByRun" | "split_export_by_run" => Ok(GeneratedField::SplitExportByRun), + "embedChannelConfigs" | "embed_channel_configs" => Ok(GeneratedField::EmbedChannelConfigs), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -715,6 +725,7 @@ impl<'de> serde::Deserialize<'de> for ExportOptions { let mut combine_runs__ = None; let mut split_export_by_asset__ = None; let mut split_export_by_run__ = None; + let mut embed_channel_configs__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::UseLegacyFormat => { @@ -747,6 +758,12 @@ impl<'de> serde::Deserialize<'de> for ExportOptions { } split_export_by_run__ = Some(map_.next_value()?); } + GeneratedField::EmbedChannelConfigs => { + if embed_channel_configs__.is_some() { + return Err(serde::de::Error::duplicate_field("embedChannelConfigs")); + } + embed_channel_configs__ = Some(map_.next_value()?); + } } } Ok(ExportOptions { @@ -755,6 +772,7 @@ impl<'de> serde::Deserialize<'de> for ExportOptions { combine_runs: combine_runs__.unwrap_or_default(), split_export_by_asset: split_export_by_asset__.unwrap_or_default(), split_export_by_run: split_export_by_run__.unwrap_or_default(), + embed_channel_configs: embed_channel_configs__.unwrap_or_default(), }) } } diff --git a/rust/crates/sift_rs/src/gen/sift/families/v1/sift.families.v1.rs b/rust/crates/sift_rs/src/gen/sift/families/v1/sift.families.v1.rs new file mode 100644 index 0000000000..7e13815719 --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift/families/v1/sift.families.v1.rs @@ -0,0 +1,4744 @@ +// @generated +// This file is @generated by prost-build. +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct Family { + #[prost(string, tag="1")] + pub family_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub client_key: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub current_version_id: ::prost::alloc::string::String, + #[prost(bool, tag="4")] + pub is_archived: bool, + #[prost(message, optional, tag="5")] + pub created_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="6")] + pub modified_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="7")] + pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(string, tag="8")] + pub created_by_user_id: ::prost::alloc::string::String, + #[prost(string, tag="9")] + pub modified_by_user_id: ::prost::alloc::string::String, + #[prost(string, tag="10")] + pub organization_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FamilyVersion { + #[prost(string, tag="1")] + pub family_version_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub family_id: ::prost::alloc::string::String, + #[prost(uint32, tag="3")] + pub version: u32, + #[prost(string, tag="4")] + pub name: ::prost::alloc::string::String, + #[prost(string, tag="5")] + pub description: ::prost::alloc::string::String, + #[prost(string, tag="6")] + pub run_query: ::prost::alloc::string::String, + #[prost(string, tag="7")] + pub user_notes: ::prost::alloc::string::String, + #[prost(string, tag="8")] + pub change_message: ::prost::alloc::string::String, + #[prost(message, repeated, tag="9")] + pub metadata: ::prost::alloc::vec::Vec, + #[prost(double, repeated, packed="false", tag="10")] + pub sigma_default_values: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag="11")] + pub created_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="12")] + pub modified_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(string, tag="13")] + pub created_by_user_id: ::prost::alloc::string::String, + #[prost(string, tag="14")] + pub modified_by_user_id: ::prost::alloc::string::String, + #[prost(string, tag="15")] + pub organization_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct FamilyRun { + #[prost(string, tag="1")] + pub family_run_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub family_version_id: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub run_id: ::prost::alloc::string::String, + #[prost(bool, tag="4")] + pub is_exclusion: bool, + #[prost(string, tag="5")] + pub rationale: ::prost::alloc::string::String, + #[prost(message, optional, tag="6")] + pub added_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(string, tag="7")] + pub added_by_user_id: ::prost::alloc::string::String, + #[prost(string, tag="8")] + pub added_in_version_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FamilyAlignment { + #[prost(string, tag="1")] + pub family_alignment_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub family_version_id: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub name: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub description: ::prost::alloc::string::String, + #[prost(message, repeated, tag="8")] + pub family_alignment_points: ::prost::alloc::vec::Vec, + #[prost(oneof="family_alignment::DefaultAlignment", tags="5, 6, 7")] + pub default_alignment: ::core::option::Option, +} +/// Nested message and enum types in `FamilyAlignment`. +pub mod family_alignment { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum DefaultAlignment { + #[prost(message, tag="5")] + Run(super::RunAlignment), + #[prost(message, tag="6")] + Annotation(super::DefaultAnnotationAlignment), + #[prost(message, tag="7")] + Timestamp(super::TimestampAlignment), + } +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct FamilyAlignmentPoint { + #[prost(string, tag="1")] + pub family_alignment_point_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub family_run_id: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub run_id: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub family_alignment_id: ::prost::alloc::string::String, + #[prost(oneof="family_alignment_point::Alignment", tags="5, 6, 7")] + pub alignment: ::core::option::Option, +} +/// Nested message and enum types in `FamilyAlignmentPoint`. +pub mod family_alignment_point { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum Alignment { + #[prost(message, tag="5")] + Run(super::RunAlignment), + #[prost(message, tag="6")] + Annotation(super::AnnotationAlignment), + #[prost(message, tag="7")] + Timestamp(super::TimestampAlignment), + } +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +pub struct RunAlignment { + #[prost(enumeration="TimeRangeBound", tag="1")] + pub bound: i32, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct DefaultAnnotationAlignment { + #[prost(string, tag="1")] + pub annotation_name: ::prost::alloc::string::String, + #[prost(enumeration="TimeRangeBound", tag="2")] + pub bound: i32, + #[prost(enumeration="AnnotationOccurrence", tag="3")] + pub occurrence: i32, + #[prost(int32, tag="4")] + pub occurrence_index: i32, +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +pub struct TimestampAlignment { + #[prost(message, optional, tag="1")] + pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct AnnotationAlignment { + #[prost(string, tag="1")] + pub annotation_id: ::prost::alloc::string::String, + #[prost(enumeration="TimeRangeBound", tag="2")] + pub bound: i32, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FamilyDetails { + #[prost(message, optional, tag="1")] + pub family: ::core::option::Option, + #[prost(message, optional, tag="2")] + pub family_version: ::core::option::Option, + #[prost(message, repeated, tag="3")] + pub family_runs: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="4")] + pub family_alignments: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="5")] + pub family_stats: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetFamilyRequest { + #[prost(oneof="get_family_request::FamilyIdentifier", tags="1, 2")] + pub family_identifier: ::core::option::Option, +} +/// Nested message and enum types in `GetFamilyRequest`. +pub mod get_family_request { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum FamilyIdentifier { + #[prost(string, tag="1")] + FamilyId(::prost::alloc::string::String), + #[prost(string, tag="2")] + ClientKey(::prost::alloc::string::String), + } +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetFamilyResponse { + #[prost(message, optional, tag="1")] + pub family: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetFamiliesRequest { + #[prost(string, repeated, tag="1")] + pub family_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(string, repeated, tag="2")] + pub client_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetFamiliesResponse { + #[prost(message, repeated, tag="1")] + pub families: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetFamilyVersionRequest { + #[prost(string, tag="1")] + pub family_version_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetFamilyVersionResponse { + #[prost(message, optional, tag="1")] + pub family: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ListFamiliesRequest { + #[prost(uint32, tag="1")] + pub page_size: u32, + #[prost(string, tag="2")] + pub page_token: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub filter: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub order_by: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListFamiliesResponse { + #[prost(message, repeated, tag="1")] + pub families: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListFamily { + #[prost(message, optional, tag="1")] + pub family: ::core::option::Option, + #[prost(message, optional, tag="2")] + pub family_version: ::core::option::Option, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreateFamilyRequest { + #[prost(message, optional, tag="1")] + pub family: ::core::option::Option, + #[prost(message, optional, tag="2")] + pub family_version: ::core::option::Option, + #[prost(message, repeated, tag="3")] + pub family_runs: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="4")] + pub family_alignments: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="5")] + pub family_stats: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreateFamilyResponse { + #[prost(string, tag="1")] + pub family_id: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub family: ::core::option::Option, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UpdateFamilyRequest { + #[prost(message, optional, tag="3")] + pub family: ::core::option::Option, + #[prost(message, optional, tag="4")] + pub update_mask: ::core::option::Option<::pbjson_types::FieldMask>, + #[prost(oneof="update_family_request::FamilyIdentifier", tags="1, 2")] + pub family_identifier: ::core::option::Option, +} +/// Nested message and enum types in `UpdateFamilyRequest`. +pub mod update_family_request { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum FamilyIdentifier { + #[prost(string, tag="1")] + FamilyId(::prost::alloc::string::String), + #[prost(string, tag="2")] + ClientKey(::prost::alloc::string::String), + } +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UpdateFamilyResponse { + #[prost(string, tag="1")] + pub family_version_id: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub family: ::core::option::Option, + #[prost(message, repeated, tag="3")] + pub family_stats: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ListFamilyVersionsRequest { + #[prost(uint32, tag="1")] + pub page_size: u32, + #[prost(string, tag="2")] + pub filter: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub page_token: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub order_by: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListFamilyVersionsResponse { + #[prost(message, repeated, tag="1")] + pub family_versions: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ListFamilyMembersRequest { + #[prost(string, tag="1")] + pub family_version_id: ::prost::alloc::string::String, + #[prost(uint32, tag="2")] + pub page_size: u32, + #[prost(string, tag="3")] + pub filter: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub page_token: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListFamilyMembersResponse { + #[prost(message, repeated, tag="1")] + pub family_runs: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ListFamilyAlignmentsRequest { + #[prost(string, tag="1")] + pub family_version_id: ::prost::alloc::string::String, + #[prost(uint32, tag="2")] + pub page_size: u32, + #[prost(string, tag="3")] + pub filter: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub page_token: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListFamilyAlignmentsResponse { + #[prost(message, repeated, tag="1")] + pub family_alignments: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ListFamilyAlignmentPointsRequest { + #[prost(string, tag="1")] + pub family_alignment_id: ::prost::alloc::string::String, + #[prost(uint32, tag="2")] + pub page_size: u32, + #[prost(string, tag="3")] + pub filter: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub page_token: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListFamilyAlignmentPointsResponse { + #[prost(message, repeated, tag="1")] + pub family_alignment_points: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ImportFamilyRequest { + #[prost(string, tag="1")] + pub family_yaml: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ImportFamilyResponse { + #[prost(string, tag="1")] + pub family_id: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub family: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ImportUpdateFamilyRequest { + #[prost(string, tag="3")] + pub family_yaml: ::prost::alloc::string::String, + #[prost(message, optional, tag="5")] + pub update_mask: ::core::option::Option<::pbjson_types::FieldMask>, + #[prost(oneof="import_update_family_request::FamilyIdentifier", tags="1, 2")] + pub family_identifier: ::core::option::Option, +} +/// Nested message and enum types in `ImportUpdateFamilyRequest`. +pub mod import_update_family_request { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum FamilyIdentifier { + #[prost(string, tag="1")] + FamilyId(::prost::alloc::string::String), + #[prost(string, tag="2")] + ClientKey(::prost::alloc::string::String), + } +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ImportUpdateFamilyResponse { + #[prost(string, tag="1")] + pub family_version_id: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub family: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ExportFamilyRequest { + #[prost(oneof="export_family_request::FamilyIdentifier", tags="1, 2, 3")] + pub family_identifier: ::core::option::Option, +} +/// Nested message and enum types in `ExportFamilyRequest`. +pub mod export_family_request { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum FamilyIdentifier { + #[prost(string, tag="1")] + FamilyId(::prost::alloc::string::String), + #[prost(string, tag="2")] + ClientKey(::prost::alloc::string::String), + #[prost(string, tag="3")] + FamilyVersionId(::prost::alloc::string::String), + } +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ExportFamilyResponse { + #[prost(string, tag="1")] + pub exported_family: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ValidateFamilyNameRequest { + #[prost(string, tag="1")] + pub family_name: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ValidateFamilyNameResponse { + #[prost(oneof="validate_family_name_response::Result", tags="1, 2")] + pub result: ::core::option::Option, +} +/// Nested message and enum types in `ValidateFamilyNameResponse`. +pub mod validate_family_name_response { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum Result { + #[prost(bool, tag="1")] + Success(bool), + #[prost(string, tag="2")] + ErrorMessage(::prost::alloc::string::String), + } +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ValidateFamilyClientKeyRequest { + #[prost(string, tag="1")] + pub client_key: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ValidateFamilyClientKeyResponse { + #[prost(oneof="validate_family_client_key_response::Result", tags="1, 2")] + pub result: ::core::option::Option, +} +/// Nested message and enum types in `ValidateFamilyClientKeyResponse`. +pub mod validate_family_client_key_response { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum Result { + #[prost(bool, tag="1")] + Success(bool), + #[prost(string, tag="2")] + ErrorMessage(::prost::alloc::string::String), + } +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FamilyStat { + #[prost(string, tag="1")] + pub family_stat_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub family_version_id: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub name: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub description: ::prost::alloc::string::String, + #[prost(double, tag="5")] + pub sample_rate: f64, + #[prost(string, repeated, tag="6")] + pub default_channel_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(message, optional, tag="7")] + pub created_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="8")] + pub modified_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(string, tag="9")] + pub created_by_user_id: ::prost::alloc::string::String, + #[prost(string, tag="10")] + pub modified_by_user_id: ::prost::alloc::string::String, + #[prost(string, tag="11")] + pub organization_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct FamilyStatExpression { + #[prost(string, tag="1")] + pub family_stat_expression_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub family_stat_id: ::prost::alloc::string::String, + #[prost(oneof="family_stat_expression::Expression", tags="3, 4, 5, 6, 7, 8, 9, 10")] + pub expression: ::core::option::Option, +} +/// Nested message and enum types in `FamilyStatExpression`. +pub mod family_stat_expression { + #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum Expression { + #[prost(message, tag="3")] + Avg(::pbjson_types::Empty), + #[prost(message, tag="4")] + Median(::pbjson_types::Empty), + #[prost(message, tag="5")] + Min(::pbjson_types::Empty), + #[prost(message, tag="6")] + Max(::pbjson_types::Empty), + #[prost(message, tag="7")] + Stdev(::pbjson_types::Empty), + #[prost(message, tag="8")] + Sum(::pbjson_types::Empty), + #[prost(message, tag="9")] + InputCount(::pbjson_types::Empty), + #[prost(message, tag="10")] + Sigma(::pbjson_types::Empty), + } +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct FamilyStatChannel { + #[prost(string, tag="1")] + pub family_stat_channel_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub family_stat_id: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub channel_id: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub alignment_point_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct WindowType { + #[prost(string, tag="1")] + pub family_alignment_id: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub duration: ::core::option::Option<::pbjson_types::Duration>, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct FamilyStatRange { + #[prost(string, tag="1")] + pub family_stat_range_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub family_stat_id: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub family_alignment_id: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub name: ::prost::alloc::string::String, + #[prost(message, optional, tag="5")] + pub window_start: ::core::option::Option, + #[prost(message, optional, tag="6")] + pub window_end: ::core::option::Option, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FamilyStatDetails { + #[prost(message, optional, tag="1")] + pub family_stat: ::core::option::Option, + #[prost(message, repeated, tag="2")] + pub family_stat_expressions: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="3")] + pub family_stat_channels: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="4")] + pub family_stat_ranges: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetFamilyStatRequest { + #[prost(string, tag="1")] + pub family_stat_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetFamilyStatResponse { + #[prost(message, optional, tag="1")] + pub family_stat_details: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetFamilyStatsRequest { + #[prost(string, tag="1")] + pub family_version_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetFamilyStatsResponse { + #[prost(message, repeated, tag="1")] + pub family_stats_details: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreateFamilyStatRangesRequest { + #[prost(string, repeated, tag="1")] + pub family_stat_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(message, repeated, tag="2")] + pub family_stat_ranges: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CreateFamilyStatRangesResponse { + #[prost(string, tag="1")] + pub family_version_id: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub family: ::core::option::Option, + #[prost(message, repeated, tag="3")] + pub family_stats: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetFamilyRuleDependenciesRequest { + #[prost(string, tag="1")] + pub family_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetFamilyRuleDependenciesResponse { + #[prost(message, repeated, tag="1")] + pub rule_dependencies: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct FamilyRuleDependency { + #[prost(string, tag="1")] + pub rule_id: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub name: ::prost::alloc::string::String, + #[prost(message, optional, tag="3")] + pub stat_reference: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct AbstractWindowType { + #[prost(string, tag="1")] + pub family_alignment_name: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub duration: ::core::option::Option<::pbjson_types::Duration>, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GenerateFamilyStatRangeNameRequest { + #[prost(string, tag="1")] + pub family_alignment_name: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub window_start: ::core::option::Option, + #[prost(message, optional, tag="3")] + pub window_end: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GenerateFamilyStatRangeNameResponse { + #[prost(string, tag="1")] + pub name: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetFamilyCandidateRunsRequest { + #[prost(string, tag="1")] + pub family_version_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetFamilyCandidateRunsResponse { + #[prost(string, tag="1")] + pub run_query: ::prost::alloc::string::String, + #[prost(string, repeated, tag="2")] + pub candidate_run_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetFamilyCandidateRunCountRequest { + #[prost(string, tag="1")] + pub family_version_id: ::prost::alloc::string::String, +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetFamilyCandidateRunCountResponse { + #[prost(uint32, tag="1")] + pub count: u32, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ListFamilyCandidateRunsRequest { + #[prost(uint32, tag="1")] + pub page_size: u32, + #[prost(string, tag="2")] + pub page_token: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub filter: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub order_by: ::prost::alloc::string::String, + #[prost(string, tag="5")] + pub family_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ListFamilyCandidateRunsResponse { + #[prost(message, repeated, tag="1")] + pub runs: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub next_page_token: ::prost::alloc::string::String, +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +pub struct GetFamilyCandidateRunFilterFieldsRequest { +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetFamilyCandidateRunFilterFieldsResponse { + #[prost(message, repeated, tag="1")] + pub filter_fields: ::prost::alloc::vec::Vec, +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum TimeRangeBound { + Unspecified = 0, + Start = 1, + End = 2, +} +impl TimeRangeBound { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Self::Unspecified => "TIME_RANGE_BOUND_UNSPECIFIED", + Self::Start => "TIME_RANGE_BOUND_START", + Self::End => "TIME_RANGE_BOUND_END", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TIME_RANGE_BOUND_UNSPECIFIED" => Some(Self::Unspecified), + "TIME_RANGE_BOUND_START" => Some(Self::Start), + "TIME_RANGE_BOUND_END" => Some(Self::End), + _ => None, + } + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum AnnotationOccurrence { + Unspecified = 0, + First = 1, + Last = 2, + Every = 3, + Nth = 4, +} +impl AnnotationOccurrence { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Self::Unspecified => "ANNOTATION_OCCURRENCE_UNSPECIFIED", + Self::First => "ANNOTATION_OCCURRENCE_FIRST", + Self::Last => "ANNOTATION_OCCURRENCE_LAST", + Self::Every => "ANNOTATION_OCCURRENCE_EVERY", + Self::Nth => "ANNOTATION_OCCURRENCE_NTH", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "ANNOTATION_OCCURRENCE_UNSPECIFIED" => Some(Self::Unspecified), + "ANNOTATION_OCCURRENCE_FIRST" => Some(Self::First), + "ANNOTATION_OCCURRENCE_LAST" => Some(Self::Last), + "ANNOTATION_OCCURRENCE_EVERY" => Some(Self::Every), + "ANNOTATION_OCCURRENCE_NTH" => Some(Self::Nth), + _ => None, + } + } +} +/// Encoded file descriptor set for the `sift.families.v1` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0xe5, 0xf2, 0x03, 0x0a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, + 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x69, 0x66, 0x74, + 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6e, 0x73, + 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa3, + 0x04, 0x0a, 0x06, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x23, 0x0a, 0x09, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x22, + 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, + 0x65, 0x79, 0x12, 0x34, 0x0a, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, + 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x45, + 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x47, + 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x13, + 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xe5, 0x05, 0x0a, 0x0d, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x09, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x72, 0x75, 0x6e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x22, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x14, 0x73, 0x69, 0x67, 0x6d, + 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x73, 0x69, 0x67, + 0x6d, 0x61, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x45, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x33, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0f, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xfd, 0x02, 0x0a, + 0x09, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x2a, 0x0a, 0x0d, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x63, + 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, + 0x0a, 0x09, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x64, 0x64, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x10, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x79, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, + 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x65, 0x64, 0x42, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x61, 0x64, 0x64, 0x65, + 0x64, 0x49, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xfe, 0x03, 0x0a, + 0x0f, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x33, 0x0a, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x03, 0x72, 0x75, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x4e, 0x0a, + 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x63, 0x0a, 0x17, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x15, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xa6, 0x03, + 0x0a, 0x14, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x19, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6e, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x36, + 0x0a, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0b, 0x0a, 0x09, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x4b, 0x0a, 0x0c, 0x52, 0x75, 0x6e, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x22, 0x84, 0x02, 0x0a, 0x1a, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0e, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x3b, 0x0a, 0x05, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4b, 0x0a, + 0x0a, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x6f, 0x63, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6f, 0x63, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x53, 0x0a, 0x12, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, + 0x7c, 0x0a, 0x13, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x3b, 0x0a, 0x05, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xf8, 0x02, + 0x0a, 0x0d, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, + 0x35, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x4b, 0x0a, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x72, 0x75, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x67, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x42, 0x13, 0x0a, 0x11, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x5e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x73, 0x12, 0x24, + 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4b, 0x65, 0x79, 0x73, 0x22, 0x57, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x22, 0x4a, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x22, 0x98, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, + 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, + 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x82, + 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0x96, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x12, 0x38, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x06, 0xe0, 0x41, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x4e, 0x0a, 0x0e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xfe, 0x02, 0x0a, + 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x4b, 0x0a, 0x0e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x11, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x4b, 0x0a, 0x0c, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x76, 0x0a, + 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0xea, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x3c, 0x0a, + 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x13, 0x0a, + 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x22, 0xd2, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x06, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x4b, 0x0a, 0x0c, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x98, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x72, 0x75, 0x6e, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0xb1, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa0, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, + 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xba, 0x01, 0x0a, 0x20, 0x4c, 0x69, + 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, + 0x0a, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb5, 0x01, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x17, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x15, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3b, + 0x0a, 0x13, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x59, 0x61, 0x6d, 0x6c, 0x22, 0x76, 0x0a, 0x14, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x22, 0xd8, 0x01, 0x0a, 0x19, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, + 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, + 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x79, 0x61, 0x6d, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x59, 0x61, 0x6d, 0x6c, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x13, 0x0a, 0x11, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x8b, + 0x01, 0x0a, 0x1a, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, + 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3c, + 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x98, 0x01, 0x0a, + 0x13, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x14, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2c, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x41, 0x0a, + 0x19, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x69, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, + 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0d, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x44, 0x0a, 0x1e, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, + 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, + 0x79, 0x22, 0x6e, 0x0a, 0x1f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x25, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x22, 0xba, 0x04, 0x0a, 0x0a, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x12, 0x2c, 0x0a, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0c, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x49, 0x64, 0x12, 0x32, + 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x73, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, 0x41, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x33, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, + 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x97, + 0x04, 0x0a, 0x14, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x19, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x16, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x03, 0x61, 0x76, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, + 0x03, 0x61, 0x76, 0x67, 0x12, 0x30, 0x0a, 0x06, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x06, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x12, 0x2a, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x03, 0x6d, + 0x69, 0x6e, 0x12, 0x2a, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x2e, + 0x0a, 0x05, 0x73, 0x74, 0x64, 0x65, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x64, 0x65, 0x76, 0x12, 0x2a, + 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x03, 0x73, 0x75, 0x6d, 0x12, 0x39, 0x0a, 0x0b, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x42, 0x0c, 0x0a, 0x0a, 0x65, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd5, 0x01, 0x0a, 0x11, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3b, + 0x0a, 0x16, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, + 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x31, 0x0a, + 0x12, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, + 0x22, 0x7d, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, + 0x0a, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0xfb, 0x02, 0x0a, 0x0f, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x14, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x13, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, + 0x41, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, + 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x64, 0x22, 0xee, 0x02, + 0x0a, 0x11, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x12, 0x63, 0x0a, 0x17, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x15, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5a, 0x0a, 0x14, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x54, 0x0a, 0x12, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x41, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x49, + 0x64, 0x22, 0x71, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x22, 0x48, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, + 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x74, + 0x0a, 0x16, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x14, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x12, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x49, 0x64, 0x73, 0x12, 0x54, 0x0a, 0x12, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xdc, 0x01, 0x0a, 0x1e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x11, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3c, 0x0a, + 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x4b, 0x0a, 0x0c, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x44, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, + 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x22, 0x7d, + 0x0a, 0x21, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x72, 0x75, 0x6c, + 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x22, 0x9d, 0x01, + 0x0a, 0x14, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, + 0x6c, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a, + 0x0e, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, + 0x73, 0x74, 0x61, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x89, 0x01, + 0x0a, 0x12, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x15, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf5, 0x01, 0x0a, 0x22, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x37, 0x0a, 0x15, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x45, 0x6e, + 0x64, 0x22, 0x3e, 0x0a, 0x23, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x50, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, + 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x22, 0x73, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x5f, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, + 0x75, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x54, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, + 0x11, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x3f, + 0x0a, 0x22, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xc5, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, + 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, + 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x22, 0x75, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x72, 0x75, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x04, 0x72, 0x75, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x2a, + 0x0a, 0x28, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x29, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0c, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2a, 0x6c, 0x0a, 0x0e, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x1c, 0x54, + 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, + 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, + 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x18, 0x0a, + 0x14, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x55, 0x4e, + 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x02, 0x2a, 0xc2, 0x01, 0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x29, 0x0a, 0x21, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, + 0x43, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x41, + 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x52, 0x52, + 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, + 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x52, + 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, + 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x52, + 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x52, 0x59, 0x10, 0x03, 0x12, 0x1d, 0x0a, + 0x19, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x43, 0x43, 0x55, + 0x52, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x4e, 0x54, 0x48, 0x10, 0x04, 0x32, 0xfd, 0x33, 0x0a, + 0x0d, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xe0, + 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x89, 0x01, 0x92, 0x41, 0x36, 0x12, 0x09, 0x47, 0x65, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, 0x29, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x5a, 0x2a, 0x12, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, + 0x65, 0x79, 0x7d, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, + 0x7d, 0x12, 0xc5, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, + 0x92, 0x41, 0x42, 0x12, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x1a, 0x33, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x6f, 0x66, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x12, 0xe0, 0x01, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x92, 0x41, 0x3d, 0x12, 0x10, 0x47, 0x65, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x29, 0x52, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa2, 0x01, 0x0a, + 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x25, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x92, 0x41, + 0x25, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, + 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x12, 0x98, 0x02, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xb8, 0x01, 0x92, 0x41, 0x5f, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, 0x4f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, + 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x60, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x3a, 0x01, 0x2a, 0x5a, + 0x2d, 0x3a, 0x01, 0x2a, 0x32, 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x32, 0x1c, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xc6, 0x02, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc8, 0x01, 0x92, 0x41, 0x80, + 0x01, 0x12, 0x16, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x1a, 0x66, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x2d, 0x72, 0x75, 0x6e, 0x73, 0x12, 0xd8, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x75, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xce, 0x01, 0x92, 0x41, 0x81, 0x01, 0x12, 0x1a, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x1a, 0x63, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x12, 0x41, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6e, 0x2d, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0xc9, 0x04, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xc8, 0x03, 0x92, 0x41, 0x9d, 0x03, 0x12, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, + 0x73, 0x1a, 0x81, 0x03, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6e, 0x64, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6e, 0x20, 0x43, 0x45, 0x4c, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x20, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x60, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, + 0x60, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x43, 0x45, 0x4c, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x20, 0x28, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x20, 0x72, + 0x75, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, 0x20, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x60, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x29, 0x2e, 0x20, 0x57, 0x68, 0x65, + 0x6e, 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x60, 0x20, 0x69, 0x73, + 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, + 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x27, 0x73, 0x20, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x20, 0x28, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x29, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x73, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x79, 0x65, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x61, + 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6e, 0x73, 0x12, 0x85, 0x03, 0x0a, + 0x21, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x12, 0x3a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe6, 0x01, 0x92, 0x41, + 0xae, 0x01, 0x12, 0x21, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x88, 0x01, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6e, 0x20, 0x43, 0x45, 0x4c, + 0x20, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x70, 0x6c, 0x75, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x60, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x60, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x29, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6e, 0x73, 0x3a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x12, 0xb6, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x92, 0x41, 0x3c, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x1a, 0x2c, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x65, 0x73, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0xca, 0x01, + 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x59, 0x92, 0x41, 0x35, 0x12, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, + 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xe9, 0x01, 0x0a, 0x11, 0x4c, + 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x12, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x92, 0x41, 0x3b, 0x12, 0x11, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x1a, 0x26, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, + 0x35, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x86, 0x02, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, + 0x01, 0x92, 0x41, 0x4b, 0x12, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x33, 0x4c, 0x69, 0x73, 0x74, + 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0xaa, 0x02, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x32, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa3, 0x01, 0x92, 0x41, 0x60, 0x12, 0x19, 0x4c, 0x69, + 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3a, 0x12, 0x38, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0xb3, 0x01, 0x0a, + 0x0c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x25, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x92, 0x41, + 0x2f, 0x12, 0x0c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, + 0x1f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x59, 0x41, 0x4d, 0x4c, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0xa2, 0x02, 0x0a, 0x12, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb0, 0x01, 0x92, 0x41, 0x3b, 0x12, 0x12, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, 0x25, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x59, 0x41, 0x4d, 0x4c, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x3a, 0x01, 0x2a, 0x5a, 0x3b, + 0x3a, 0x01, 0x2a, 0x32, 0x36, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x2f, 0x69, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x32, 0x2a, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x2d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xa3, 0x02, 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc3, 0x01, 0x92, 0x41, 0x29, 0x12, 0x0c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x1a, 0x19, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x59, 0x41, 0x4d, 0x4c, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x90, 0x01, 0x5a, 0x31, 0x12, + 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2f, 0x7b, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x5a, 0x36, 0x12, 0x34, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0xef, 0x01, + 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x7e, 0x92, 0x41, 0x4d, 0x12, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x37, 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x3a, 0x01, 0x2a, 0x22, 0x23, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x3a, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x82, 0x02, 0x0a, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x30, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x81, 0x01, 0x92, 0x41, 0x51, 0x12, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x1a, + 0x36, 0x55, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x61, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x73, + 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, + 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x3a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4b, 0x65, 0x79, 0x12, 0xc9, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x37, 0x12, 0x0d, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x1a, 0x26, 0x52, 0x65, 0x74, + 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, + 0x73, 0x74, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, + 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x7d, + 0x12, 0xe6, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x01, 0x92, 0x41, 0x4d, 0x12, 0x0e, 0x47, 0x65, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x1a, 0x3b, 0x52, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, + 0x28, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x95, 0x02, 0x0a, 0x16, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, 0x01, 0x92, 0x41, 0x67, 0x12, 0x16, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x1a, 0x4d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x73, 0x20, 0x28, 0x77, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x29, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x22, 0x22, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x12, 0xad, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, + 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, + 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, + 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x01, 0x92, 0x41, 0x6d, 0x12, 0x19, + 0x47, 0x65, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x50, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x66, + 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x30, 0x12, 0x2e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x72, 0x75, 0x6c, 0x65, 0x2d, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, + 0x73, 0x12, 0xc1, 0x02, 0x0a, 0x1b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x34, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb4, + 0x01, 0x92, 0x41, 0x88, 0x01, 0x12, 0x1b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x1a, 0x69, 0x44, 0x65, 0x72, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x22, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x2d, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x45, 0x92, 0x41, 0x42, 0x12, 0x40, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x42, 0x9c, 0x01, 0x92, + 0x41, 0x12, 0x12, 0x10, 0x0a, 0x0e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x53, 0x46, + 0x58, 0xaa, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xe2, 0xd5, 0x02, 0x0a, + 0x07, 0x12, 0x05, 0x00, 0x00, 0x93, 0x08, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, + 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x19, 0x0a, 0x09, 0x0a, 0x02, + 0x03, 0x00, 0x12, 0x03, 0x04, 0x00, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, + 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x06, 0x00, 0x28, 0x0a, 0x09, 0x0a, + 0x02, 0x03, 0x03, 0x12, 0x03, 0x07, 0x00, 0x25, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, + 0x08, 0x00, 0x2a, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x05, 0x12, 0x03, 0x09, 0x00, 0x29, 0x0a, 0x09, + 0x0a, 0x02, 0x03, 0x06, 0x12, 0x03, 0x0a, 0x00, 0x38, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x07, 0x12, + 0x03, 0x0b, 0x00, 0x2b, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x08, 0x12, 0x03, 0x0c, 0x00, 0x29, 0x0a, + 0x09, 0x0a, 0x02, 0x03, 0x09, 0x12, 0x03, 0x0d, 0x00, 0x23, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x0a, + 0x12, 0x03, 0x0e, 0x00, 0x21, 0x0a, 0x09, 0x0a, 0x01, 0x08, 0x12, 0x04, 0x10, 0x00, 0x12, 0x02, + 0x0a, 0x0b, 0x0a, 0x03, 0x08, 0x92, 0x08, 0x12, 0x04, 0x10, 0x07, 0x12, 0x01, 0x0a, 0x0c, 0x0a, + 0x05, 0x08, 0x92, 0x08, 0x02, 0x01, 0x12, 0x03, 0x11, 0x09, 0x20, 0x0a, 0x0b, 0x0a, 0x02, 0x06, + 0x00, 0x12, 0x05, 0x14, 0x00, 0xfd, 0x01, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, + 0x03, 0x14, 0x08, 0x15, 0x0a, 0x0b, 0x0a, 0x03, 0x06, 0x00, 0x03, 0x12, 0x04, 0x15, 0x02, 0x97, + 0x01, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x03, 0x92, 0x08, 0x12, 0x04, 0x15, 0x09, 0x96, 0x01, + 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x03, 0x92, 0x08, 0x02, 0x12, 0x04, 0x15, 0x46, 0x95, 0x01, + 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x04, 0x17, 0x02, 0x20, 0x03, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x17, 0x06, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x17, 0x10, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x17, 0x2b, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, + 0x04, 0x12, 0x04, 0x18, 0x04, 0x1b, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x00, 0x04, + 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x18, 0x0b, 0x1b, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, + 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x19, 0x06, 0x29, 0x0a, 0x12, 0x0a, + 0x0b, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x12, 0x03, 0x1a, 0x06, + 0x4c, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x1c, 0x04, 0x1f, 0x06, + 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x12, 0x04, 0x1c, 0x0b, 0x1f, + 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x1d, + 0x06, 0x1a, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, + 0x1e, 0x06, 0x3e, 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x04, 0x22, 0x02, 0x2b, + 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x22, 0x06, 0x11, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x22, 0x12, 0x24, 0x0a, 0x0c, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x22, 0x2f, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x23, 0x04, 0x26, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, + 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x23, 0x0b, 0x26, 0x05, 0x0a, 0x11, 0x0a, + 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x24, 0x06, 0x27, + 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, + 0x25, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x27, 0x04, + 0x2a, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x12, 0x04, 0x27, + 0x0b, 0x2a, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x02, 0x12, + 0x03, 0x28, 0x06, 0x1c, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x03, + 0x12, 0x03, 0x29, 0x06, 0x48, 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x02, 0x12, 0x04, 0x2d, + 0x02, 0x33, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x2d, 0x06, + 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x2d, 0x17, 0x2e, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x2d, 0x39, 0x51, 0x0a, 0x0c, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x2e, 0x04, 0x56, 0x0a, 0x10, 0x0a, 0x09, 0x06, + 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x2e, 0x0b, 0x55, 0x0a, 0x11, 0x0a, + 0x0a, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x2e, 0x20, 0x54, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, 0x2f, 0x04, 0x32, 0x06, 0x0a, + 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x12, 0x04, 0x2f, 0x0b, 0x32, 0x05, + 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x30, 0x06, + 0x21, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x31, + 0x06, 0x3e, 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x03, 0x12, 0x04, 0x35, 0x02, 0x3e, 0x03, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x35, 0x06, 0x12, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x35, 0x13, 0x26, 0x0a, 0x0c, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x35, 0x31, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x03, 0x04, 0x12, 0x04, 0x36, 0x04, 0x39, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, + 0x03, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x36, 0x0b, 0x39, 0x05, 0x0a, 0x11, 0x0a, 0x0a, + 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x37, 0x06, 0x1e, 0x0a, + 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x38, + 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x04, 0x12, 0x04, 0x3a, 0x04, 0x3d, + 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x03, 0x04, 0x92, 0x08, 0x12, 0x04, 0x3a, 0x0b, + 0x3d, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x03, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, + 0x3b, 0x06, 0x1d, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x03, 0x04, 0x92, 0x08, 0x03, 0x12, + 0x03, 0x3c, 0x06, 0x2a, 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x04, 0x12, 0x04, 0x40, 0x02, + 0x4d, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x40, 0x06, 0x12, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x02, 0x12, 0x03, 0x40, 0x13, 0x26, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x40, 0x31, 0x45, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x04, 0x04, 0x12, 0x04, 0x41, 0x04, 0x48, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, + 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x41, 0x0b, 0x48, 0x05, 0x0a, 0x11, + 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x06, 0x12, 0x03, 0x42, 0x06, + 0x2b, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, + 0x03, 0x43, 0x06, 0x0f, 0x0a, 0x13, 0x0a, 0x0b, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x0b, 0x00, 0x12, 0x04, 0x44, 0x06, 0x47, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x04, 0x04, 0x12, 0x04, 0x49, 0x04, 0x4c, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x04, + 0x04, 0x92, 0x08, 0x12, 0x04, 0x49, 0x0b, 0x4c, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, + 0x04, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x4a, 0x06, 0x1d, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, + 0x02, 0x04, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x4b, 0x06, 0x64, 0x0a, 0x0c, 0x0a, 0x04, 0x06, + 0x00, 0x02, 0x05, 0x12, 0x04, 0x4f, 0x02, 0x55, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x05, 0x01, 0x12, 0x03, 0x4f, 0x06, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x02, + 0x12, 0x03, 0x4f, 0x1d, 0x3a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, + 0x4f, 0x45, 0x63, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x50, 0x04, + 0x65, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, + 0x50, 0x0b, 0x64, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, 0x22, + 0x02, 0x12, 0x03, 0x50, 0x20, 0x63, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x04, 0x12, + 0x04, 0x51, 0x04, 0x54, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x05, 0x04, 0x92, 0x08, + 0x12, 0x04, 0x51, 0x0b, 0x54, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x05, 0x04, 0x92, + 0x08, 0x02, 0x12, 0x03, 0x52, 0x06, 0x27, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x05, 0x04, + 0x92, 0x08, 0x03, 0x12, 0x03, 0x53, 0x06, 0x7b, 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x06, + 0x12, 0x04, 0x57, 0x02, 0x5d, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x01, 0x12, + 0x03, 0x57, 0x06, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x57, + 0x21, 0x42, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x57, 0x4d, 0x6f, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x04, 0x12, 0x03, 0x58, 0x04, 0x6a, 0x0a, 0x10, + 0x0a, 0x09, 0x06, 0x00, 0x02, 0x06, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x58, 0x0b, 0x69, + 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x06, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, + 0x58, 0x20, 0x68, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x04, 0x12, 0x04, 0x59, 0x04, + 0x5c, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x12, 0x04, 0x59, + 0x0b, 0x5c, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x02, 0x12, + 0x03, 0x5a, 0x06, 0x2b, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x03, + 0x12, 0x03, 0x5b, 0x06, 0x78, 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x07, 0x12, 0x04, 0x5f, + 0x02, 0x65, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x5f, 0x06, + 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, 0x5f, 0x1e, 0x3c, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x5f, 0x47, 0x66, 0x0a, 0x0c, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x07, 0x04, 0x12, 0x03, 0x60, 0x04, 0x48, 0x0a, 0x10, 0x0a, 0x09, 0x06, + 0x00, 0x02, 0x07, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x60, 0x0b, 0x47, 0x0a, 0x11, 0x0a, + 0x0a, 0x06, 0x00, 0x02, 0x07, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x60, 0x20, 0x46, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x04, 0x12, 0x04, 0x61, 0x04, 0x64, 0x06, 0x0a, + 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x07, 0x04, 0x92, 0x08, 0x12, 0x04, 0x61, 0x0b, 0x64, 0x05, + 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x07, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x62, 0x06, + 0x28, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x07, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x63, + 0x06, 0x96, 0x03, 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x08, 0x12, 0x04, 0x67, 0x02, 0x6d, + 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x67, 0x06, 0x27, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x02, 0x12, 0x03, 0x67, 0x28, 0x50, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x08, 0x03, 0x12, 0x04, 0x67, 0x5b, 0x84, 0x01, 0x0a, 0x0c, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x08, 0x04, 0x12, 0x03, 0x68, 0x04, 0x55, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, + 0x02, 0x08, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x68, 0x0b, 0x54, 0x0a, 0x11, 0x0a, 0x0a, + 0x06, 0x00, 0x02, 0x08, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x68, 0x20, 0x53, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x04, 0x12, 0x04, 0x69, 0x04, 0x6c, 0x06, 0x0a, 0x0f, + 0x0a, 0x07, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x12, 0x04, 0x69, 0x0b, 0x6c, 0x05, 0x0a, + 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x6a, 0x06, 0x32, + 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x6b, 0x06, + 0x9d, 0x01, 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x09, 0x12, 0x04, 0x6f, 0x02, 0x75, 0x03, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x6f, 0x06, 0x12, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x09, 0x02, 0x12, 0x03, 0x6f, 0x13, 0x26, 0x0a, 0x0c, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x09, 0x03, 0x12, 0x03, 0x6f, 0x31, 0x45, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x09, 0x04, 0x12, 0x03, 0x70, 0x04, 0x39, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x09, + 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x70, 0x0b, 0x38, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, + 0x02, 0x09, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x70, 0x20, 0x37, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x09, 0x04, 0x12, 0x04, 0x71, 0x04, 0x74, 0x06, 0x0a, 0x0f, 0x0a, 0x07, + 0x06, 0x00, 0x02, 0x09, 0x04, 0x92, 0x08, 0x12, 0x04, 0x71, 0x0b, 0x74, 0x05, 0x0a, 0x0f, 0x0a, + 0x08, 0x06, 0x00, 0x02, 0x09, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x72, 0x06, 0x1d, 0x0a, 0x0f, + 0x0a, 0x08, 0x06, 0x00, 0x02, 0x09, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x73, 0x06, 0x41, 0x0a, + 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0a, 0x12, 0x04, 0x77, 0x02, 0x7d, 0x03, 0x0a, 0x0c, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x77, 0x06, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x0a, 0x02, 0x12, 0x03, 0x77, 0x19, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x0a, 0x03, 0x12, 0x03, 0x77, 0x3d, 0x57, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0a, 0x04, + 0x12, 0x03, 0x78, 0x04, 0x42, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0a, 0x04, 0xb0, 0xca, + 0xbc, 0x22, 0x12, 0x03, 0x78, 0x0b, 0x41, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0a, 0x04, + 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x78, 0x20, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x0a, 0x04, 0x12, 0x04, 0x79, 0x04, 0x7c, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, + 0x0a, 0x04, 0x92, 0x08, 0x12, 0x04, 0x79, 0x0b, 0x7c, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, + 0x02, 0x0a, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x7a, 0x06, 0x23, 0x0a, 0x0f, 0x0a, 0x08, 0x06, + 0x00, 0x02, 0x0a, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x7b, 0x06, 0x34, 0x0a, 0x0d, 0x0a, 0x04, + 0x06, 0x00, 0x02, 0x0b, 0x12, 0x05, 0x7f, 0x02, 0x85, 0x01, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x7f, 0x06, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x0b, 0x02, 0x12, 0x03, 0x7f, 0x18, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x03, + 0x12, 0x03, 0x7f, 0x3b, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x04, + 0x80, 0x01, 0x04, 0x5e, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0b, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x12, 0x04, 0x80, 0x01, 0x0b, 0x5d, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0b, 0x04, + 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x04, 0x80, 0x01, 0x20, 0x5c, 0x0a, 0x0f, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x0b, 0x04, 0x12, 0x06, 0x81, 0x01, 0x04, 0x84, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, + 0x06, 0x00, 0x02, 0x0b, 0x04, 0x92, 0x08, 0x12, 0x06, 0x81, 0x01, 0x0b, 0x84, 0x01, 0x05, 0x0a, + 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0x82, 0x01, 0x06, + 0x22, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x83, + 0x01, 0x06, 0x3b, 0x0a, 0x0e, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0c, 0x12, 0x06, 0x87, 0x01, 0x02, + 0x8d, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x04, 0x87, 0x01, + 0x06, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x02, 0x12, 0x04, 0x87, 0x01, 0x1b, + 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x03, 0x12, 0x04, 0x87, 0x01, 0x41, 0x5d, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x04, 0x88, 0x01, 0x04, 0x61, 0x0a, + 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0c, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x88, 0x01, + 0x0b, 0x60, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0c, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, + 0x12, 0x04, 0x88, 0x01, 0x20, 0x5f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x12, + 0x06, 0x89, 0x01, 0x04, 0x8c, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0c, 0x04, + 0x92, 0x08, 0x12, 0x06, 0x89, 0x01, 0x0b, 0x8c, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, + 0x02, 0x0c, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0x8a, 0x01, 0x06, 0x25, 0x0a, 0x10, 0x0a, 0x08, + 0x06, 0x00, 0x02, 0x0c, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x8b, 0x01, 0x06, 0x48, 0x0a, 0x0e, + 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0d, 0x12, 0x06, 0x8f, 0x01, 0x02, 0x95, 0x01, 0x03, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x04, 0x8f, 0x01, 0x06, 0x1f, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x0d, 0x02, 0x12, 0x04, 0x8f, 0x01, 0x20, 0x40, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x0d, 0x03, 0x12, 0x04, 0x8f, 0x01, 0x4b, 0x6c, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x0d, 0x04, 0x12, 0x04, 0x90, 0x01, 0x04, 0x61, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, + 0x02, 0x0d, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x90, 0x01, 0x0b, 0x60, 0x0a, 0x12, 0x0a, + 0x0a, 0x06, 0x00, 0x02, 0x0d, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x04, 0x90, 0x01, 0x20, + 0x5f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x12, 0x06, 0x91, 0x01, 0x04, 0x94, + 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x92, 0x08, 0x12, 0x06, 0x91, + 0x01, 0x0b, 0x94, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x92, 0x08, + 0x02, 0x12, 0x04, 0x92, 0x01, 0x06, 0x2a, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0d, 0x04, + 0x92, 0x08, 0x03, 0x12, 0x04, 0x93, 0x01, 0x06, 0x58, 0x0a, 0x0e, 0x0a, 0x04, 0x06, 0x00, 0x02, + 0x0e, 0x12, 0x06, 0x97, 0x01, 0x02, 0xa0, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x0e, 0x01, 0x12, 0x04, 0x97, 0x01, 0x06, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, + 0x02, 0x12, 0x04, 0x97, 0x01, 0x13, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x03, + 0x12, 0x04, 0x97, 0x01, 0x31, 0x45, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x12, + 0x06, 0x98, 0x01, 0x04, 0x9b, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0e, 0x04, + 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0x98, 0x01, 0x0b, 0x9b, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, + 0x06, 0x00, 0x02, 0x0e, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0x99, 0x01, 0x06, 0x25, + 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0e, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, + 0x9a, 0x01, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x06, 0x9c, + 0x01, 0x04, 0x9f, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x92, 0x08, + 0x12, 0x06, 0x9c, 0x01, 0x0b, 0x9f, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0e, + 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0x9d, 0x01, 0x06, 0x1d, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, + 0x02, 0x0e, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x9e, 0x01, 0x06, 0x34, 0x0a, 0x0e, 0x0a, 0x04, + 0x06, 0x00, 0x02, 0x0f, 0x12, 0x06, 0xa2, 0x01, 0x02, 0xaf, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x0f, 0x01, 0x12, 0x04, 0xa2, 0x01, 0x06, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x0f, 0x02, 0x12, 0x04, 0xa2, 0x01, 0x19, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x0f, 0x03, 0x12, 0x04, 0xa2, 0x01, 0x3d, 0x57, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x0f, 0x04, 0x12, 0x06, 0xa3, 0x01, 0x04, 0xaa, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, + 0x02, 0x0f, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0xa3, 0x01, 0x0b, 0xaa, 0x01, 0x05, 0x0a, + 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0f, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x06, 0x12, 0x04, 0xa4, + 0x01, 0x06, 0x39, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0f, 0x04, 0xb0, 0xca, 0xbc, 0x22, + 0x07, 0x12, 0x04, 0xa5, 0x01, 0x06, 0x0f, 0x0a, 0x15, 0x0a, 0x0b, 0x06, 0x00, 0x02, 0x0f, 0x04, + 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x12, 0x06, 0xa6, 0x01, 0x06, 0xa9, 0x01, 0x07, 0x0a, 0x0f, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x12, 0x06, 0xab, 0x01, 0x04, 0xae, 0x01, 0x06, 0x0a, + 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x92, 0x08, 0x12, 0x06, 0xab, 0x01, 0x0b, 0xae, + 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, + 0xac, 0x01, 0x06, 0x23, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x92, 0x08, 0x03, + 0x12, 0x04, 0xad, 0x01, 0x06, 0x3a, 0x0a, 0x0e, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x10, 0x12, 0x06, + 0xb1, 0x01, 0x02, 0xbb, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x01, 0x12, + 0x04, 0xb1, 0x01, 0x06, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x02, 0x12, 0x04, + 0xb1, 0x01, 0x13, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x03, 0x12, 0x04, 0xb1, + 0x01, 0x31, 0x45, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x04, 0x12, 0x06, 0xb2, 0x01, + 0x04, 0xb6, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x10, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x12, 0x06, 0xb2, 0x01, 0x0b, 0xb6, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, + 0x10, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x04, 0xb3, 0x01, 0x06, 0x30, 0x0a, 0x13, 0x0a, + 0x0b, 0x06, 0x00, 0x02, 0x10, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x12, 0x04, 0xb4, 0x01, + 0x06, 0x53, 0x0a, 0x13, 0x0a, 0x0b, 0x06, 0x00, 0x02, 0x10, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, + 0x01, 0x12, 0x04, 0xb5, 0x01, 0x06, 0x58, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x04, + 0x12, 0x06, 0xb7, 0x01, 0x04, 0xba, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x10, + 0x04, 0x92, 0x08, 0x12, 0x06, 0xb7, 0x01, 0x0b, 0xba, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, + 0x00, 0x02, 0x10, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xb8, 0x01, 0x06, 0x1d, 0x0a, 0x10, 0x0a, + 0x08, 0x06, 0x00, 0x02, 0x10, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0xb9, 0x01, 0x06, 0x2e, 0x0a, + 0x0e, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x11, 0x12, 0x06, 0xbd, 0x01, 0x02, 0xc6, 0x01, 0x03, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x01, 0x12, 0x04, 0xbd, 0x01, 0x06, 0x18, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x02, 0x12, 0x04, 0xbd, 0x01, 0x19, 0x32, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x11, 0x03, 0x12, 0x04, 0xbd, 0x01, 0x3d, 0x57, 0x0a, 0x0f, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x11, 0x04, 0x12, 0x06, 0xbe, 0x01, 0x04, 0xc1, 0x01, 0x06, 0x0a, 0x13, 0x0a, + 0x09, 0x06, 0x00, 0x02, 0x11, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0xbe, 0x01, 0x0b, 0xc1, + 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x11, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, + 0x12, 0x04, 0xbf, 0x01, 0x06, 0x31, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x11, 0x04, 0xb0, + 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xc0, 0x01, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x11, 0x04, 0x12, 0x06, 0xc2, 0x01, 0x04, 0xc5, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, + 0x00, 0x02, 0x11, 0x04, 0x92, 0x08, 0x12, 0x06, 0xc2, 0x01, 0x0b, 0xc5, 0x01, 0x05, 0x0a, 0x10, + 0x0a, 0x08, 0x06, 0x00, 0x02, 0x11, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xc3, 0x01, 0x06, 0x23, + 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x11, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0xc4, 0x01, + 0x06, 0x4c, 0x0a, 0x0e, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x12, 0x12, 0x06, 0xc8, 0x01, 0x02, 0xd1, + 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x01, 0x12, 0x04, 0xc8, 0x01, 0x06, + 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x02, 0x12, 0x04, 0xc8, 0x01, 0x1e, 0x3c, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x03, 0x12, 0x04, 0xc8, 0x01, 0x47, 0x66, 0x0a, + 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x04, 0x12, 0x06, 0xc9, 0x01, 0x04, 0xcc, 0x01, 0x06, + 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x12, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0xc9, + 0x01, 0x0b, 0xcc, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x12, 0x04, 0xb0, 0xca, + 0xbc, 0x22, 0x04, 0x12, 0x04, 0xca, 0x01, 0x06, 0x30, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, + 0x12, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xcb, 0x01, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x12, 0x04, 0x12, 0x06, 0xcd, 0x01, 0x04, 0xd0, 0x01, 0x06, 0x0a, 0x11, + 0x0a, 0x07, 0x06, 0x00, 0x02, 0x12, 0x04, 0x92, 0x08, 0x12, 0x06, 0xcd, 0x01, 0x0b, 0xd0, 0x01, + 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x12, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xce, + 0x01, 0x06, 0x28, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x12, 0x04, 0x92, 0x08, 0x03, 0x12, + 0x04, 0xcf, 0x01, 0x06, 0x4b, 0x0a, 0x0e, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x13, 0x12, 0x06, 0xd3, + 0x01, 0x02, 0xd9, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, 0x01, 0x12, 0x04, + 0xd3, 0x01, 0x06, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, 0x02, 0x12, 0x04, 0xd3, + 0x01, 0x14, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, 0x03, 0x12, 0x04, 0xd3, 0x01, + 0x33, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, 0x04, 0x12, 0x04, 0xd4, 0x01, 0x04, + 0x4e, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x13, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, + 0xd4, 0x01, 0x0b, 0x4d, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x13, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x02, 0x12, 0x04, 0xd4, 0x01, 0x20, 0x4c, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, + 0x04, 0x12, 0x06, 0xd5, 0x01, 0x04, 0xd8, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, + 0x13, 0x04, 0x92, 0x08, 0x12, 0x06, 0xd5, 0x01, 0x0b, 0xd8, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, + 0x06, 0x00, 0x02, 0x13, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xd6, 0x01, 0x06, 0x1e, 0x0a, 0x10, + 0x0a, 0x08, 0x06, 0x00, 0x02, 0x13, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0xd7, 0x01, 0x06, 0x3b, + 0x0a, 0x0e, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x14, 0x12, 0x06, 0xdb, 0x01, 0x02, 0xe1, 0x01, 0x03, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x01, 0x12, 0x04, 0xdb, 0x01, 0x06, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x02, 0x12, 0x04, 0xdb, 0x01, 0x15, 0x2a, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x03, 0x12, 0x04, 0xdb, 0x01, 0x35, 0x4b, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x14, 0x04, 0x12, 0x04, 0xdc, 0x01, 0x04, 0x51, 0x0a, 0x11, 0x0a, 0x09, + 0x06, 0x00, 0x02, 0x14, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0xdc, 0x01, 0x0b, 0x50, 0x0a, + 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x14, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x04, 0xdc, + 0x01, 0x20, 0x4f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x04, 0x12, 0x06, 0xdd, 0x01, + 0x04, 0xe0, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x14, 0x04, 0x92, 0x08, 0x12, + 0x06, 0xdd, 0x01, 0x0b, 0xe0, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x14, 0x04, + 0x92, 0x08, 0x02, 0x12, 0x04, 0xde, 0x01, 0x06, 0x1f, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, + 0x14, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0xdf, 0x01, 0x06, 0x50, 0x0a, 0x0e, 0x0a, 0x04, 0x06, + 0x00, 0x02, 0x15, 0x12, 0x06, 0xe3, 0x01, 0x02, 0xec, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x15, 0x01, 0x12, 0x04, 0xe3, 0x01, 0x06, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x15, 0x02, 0x12, 0x04, 0xe3, 0x01, 0x1d, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x15, 0x03, 0x12, 0x04, 0xe3, 0x01, 0x45, 0x63, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x15, + 0x04, 0x12, 0x06, 0xe4, 0x01, 0x04, 0xe7, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, + 0x15, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0xe4, 0x01, 0x0b, 0xe7, 0x01, 0x05, 0x0a, 0x12, + 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x15, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xe5, 0x01, + 0x06, 0x30, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x15, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, + 0x12, 0x04, 0xe6, 0x01, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x15, 0x04, 0x12, + 0x06, 0xe8, 0x01, 0x04, 0xeb, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x15, 0x04, + 0x92, 0x08, 0x12, 0x06, 0xe8, 0x01, 0x0b, 0xeb, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, + 0x02, 0x15, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xe9, 0x01, 0x06, 0x27, 0x0a, 0x10, 0x0a, 0x08, + 0x06, 0x00, 0x02, 0x15, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0xea, 0x01, 0x06, 0x62, 0x0a, 0x0e, + 0x0a, 0x04, 0x06, 0x00, 0x02, 0x16, 0x12, 0x06, 0xee, 0x01, 0x02, 0xf4, 0x01, 0x03, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x16, 0x01, 0x12, 0x04, 0xee, 0x01, 0x06, 0x1f, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x16, 0x02, 0x12, 0x04, 0xee, 0x01, 0x20, 0x40, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x16, 0x03, 0x12, 0x04, 0xee, 0x01, 0x4b, 0x6c, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x16, 0x04, 0x12, 0x04, 0xef, 0x01, 0x04, 0x57, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, + 0x02, 0x16, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0xef, 0x01, 0x0b, 0x56, 0x0a, 0x12, 0x0a, + 0x0a, 0x06, 0x00, 0x02, 0x16, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x04, 0xef, 0x01, 0x20, + 0x55, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x16, 0x04, 0x12, 0x06, 0xf0, 0x01, 0x04, 0xf3, + 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x16, 0x04, 0x92, 0x08, 0x12, 0x06, 0xf0, + 0x01, 0x0b, 0xf3, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x16, 0x04, 0x92, 0x08, + 0x02, 0x12, 0x04, 0xf1, 0x01, 0x06, 0x2a, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x16, 0x04, + 0x92, 0x08, 0x03, 0x12, 0x04, 0xf2, 0x01, 0x06, 0x65, 0x0a, 0x0e, 0x0a, 0x04, 0x06, 0x00, 0x02, + 0x17, 0x12, 0x06, 0xf6, 0x01, 0x02, 0xfc, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x17, 0x01, 0x12, 0x04, 0xf6, 0x01, 0x06, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, + 0x02, 0x12, 0x04, 0xf6, 0x01, 0x22, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x03, + 0x12, 0x04, 0xf6, 0x01, 0x4f, 0x72, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x04, 0x12, + 0x04, 0xf7, 0x01, 0x04, 0x4a, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x17, 0x04, 0xb0, 0xca, + 0xbc, 0x22, 0x12, 0x04, 0xf7, 0x01, 0x0b, 0x49, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x17, + 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xf7, 0x01, 0x20, 0x48, 0x0a, 0x0f, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x17, 0x04, 0x12, 0x06, 0xf8, 0x01, 0x04, 0xfb, 0x01, 0x06, 0x0a, 0x11, 0x0a, + 0x07, 0x06, 0x00, 0x02, 0x17, 0x04, 0x92, 0x08, 0x12, 0x06, 0xf8, 0x01, 0x0b, 0xfb, 0x01, 0x05, + 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x17, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xf9, 0x01, + 0x06, 0x2c, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x17, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, + 0xfa, 0x01, 0x06, 0x7e, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x06, 0xff, 0x01, 0x00, 0x83, + 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x04, 0xff, 0x01, 0x05, 0x13, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0x80, 0x02, 0x02, 0x1e, 0x0a, 0x0c, + 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x04, 0x80, 0x02, 0x02, 0x37, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0x80, 0x02, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x00, 0x03, 0x12, 0x04, 0x80, 0x02, 0x23, 0x36, 0x0a, 0x0e, 0x0a, 0x06, 0x05, 0x00, + 0x02, 0x00, 0x03, 0x01, 0x12, 0x04, 0x80, 0x02, 0x24, 0x35, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x01, 0x01, 0x12, 0x04, 0x81, 0x02, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, + 0x01, 0x12, 0x04, 0x81, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, + 0x12, 0x04, 0x81, 0x02, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, + 0x04, 0x82, 0x02, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x04, 0x82, + 0x02, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0x82, 0x02, + 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x06, 0x85, 0x02, 0x00, 0x8b, 0x02, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, 0x04, 0x85, 0x02, 0x05, 0x19, 0x0a, 0x0d, 0x0a, + 0x05, 0x05, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0x86, 0x02, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x04, + 0x05, 0x01, 0x02, 0x00, 0x12, 0x04, 0x86, 0x02, 0x02, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, + 0x02, 0x00, 0x02, 0x12, 0x04, 0x86, 0x02, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x86, 0x02, 0x28, 0x3b, 0x0a, 0x0e, 0x0a, 0x06, 0x05, 0x01, 0x02, 0x00, + 0x03, 0x01, 0x12, 0x04, 0x86, 0x02, 0x29, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, + 0x01, 0x12, 0x04, 0x87, 0x02, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x01, 0x12, + 0x04, 0x87, 0x02, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x02, 0x12, 0x04, + 0x87, 0x02, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x01, 0x12, 0x04, 0x88, + 0x02, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x02, 0x12, 0x04, 0x88, 0x02, 0x02, + 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x02, 0x12, 0x04, 0x88, 0x02, 0x1f, 0x20, + 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0x89, 0x02, 0x02, 0x1d, 0x0a, + 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x03, 0x12, 0x04, 0x89, 0x02, 0x02, 0x22, 0x0a, 0x0d, 0x0a, + 0x05, 0x05, 0x01, 0x02, 0x03, 0x02, 0x12, 0x04, 0x89, 0x02, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0x8a, 0x02, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x05, + 0x01, 0x02, 0x04, 0x12, 0x04, 0x8a, 0x02, 0x02, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, + 0x04, 0x02, 0x12, 0x04, 0x8a, 0x02, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x06, + 0x8d, 0x02, 0x00, 0xb4, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x04, 0x8d, + 0x02, 0x08, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x04, 0x8e, 0x02, + 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x06, 0x8e, 0x02, 0x02, 0x91, + 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8e, 0x02, 0x09, + 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x04, 0x8e, 0x02, 0x15, 0x16, + 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x08, 0x12, 0x06, 0x8e, 0x02, 0x17, 0x91, 0x02, + 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8f, + 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x01, 0x12, + 0x04, 0x90, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x04, + 0x93, 0x02, 0x02, 0x08, 0x0a, 0x4e, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0x93, 0x02, + 0x02, 0x41, 0x1a, 0x40, 0x20, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x6b, 0x65, 0x79, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x64, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0x93, + 0x02, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x04, 0x93, 0x02, + 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x08, 0x12, 0x04, 0x93, 0x02, 0x18, + 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x93, + 0x02, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x04, 0x95, 0x02, + 0x02, 0x08, 0x0a, 0x3e, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x06, 0x95, 0x02, 0x02, 0x98, + 0x02, 0x04, 0x1a, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0x95, 0x02, 0x09, + 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x04, 0x95, 0x02, 0x1e, 0x1f, + 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x08, 0x12, 0x06, 0x95, 0x02, 0x20, 0x98, 0x02, + 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x96, + 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x01, 0x12, + 0x04, 0x97, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x04, + 0x9a, 0x02, 0x02, 0x06, 0x0a, 0x2f, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x04, 0x9a, 0x02, + 0x02, 0x40, 0x1a, 0x21, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x69, 0x73, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, + 0x9a, 0x02, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x04, 0x9a, + 0x02, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x08, 0x12, 0x04, 0x9a, 0x02, + 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x9a, 0x02, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x06, 0x12, 0x04, 0x9c, + 0x02, 0x02, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x06, 0x9c, 0x02, 0x02, + 0x9f, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0x9c, 0x02, + 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x04, 0x9c, 0x02, 0x2b, + 0x2c, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x08, 0x12, 0x06, 0x9c, 0x02, 0x2d, 0x9f, + 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x9d, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x01, + 0x12, 0x04, 0x9e, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x06, 0x12, + 0x04, 0xa0, 0x02, 0x02, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x06, 0xa0, + 0x02, 0x02, 0xa3, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, + 0xa0, 0x02, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x04, 0xa0, + 0x02, 0x2c, 0x2d, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x08, 0x12, 0x06, 0xa0, 0x02, + 0x2e, 0xa3, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xa1, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x05, 0x08, 0x9c, + 0x08, 0x01, 0x12, 0x04, 0xa2, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, + 0x06, 0x12, 0x04, 0xa4, 0x02, 0x02, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, + 0x06, 0xa4, 0x02, 0x02, 0xa7, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, + 0x12, 0x04, 0xa4, 0x02, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, + 0x04, 0xa4, 0x02, 0x2c, 0x2d, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x08, 0x12, 0x06, + 0xa4, 0x02, 0x2e, 0xa7, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x06, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xa5, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x06, + 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xa6, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x07, 0x05, 0x12, 0x04, 0xa8, 0x02, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x07, 0x12, 0x06, 0xa8, 0x02, 0x02, 0xab, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x07, 0x01, 0x12, 0x04, 0xa8, 0x02, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, + 0x03, 0x12, 0x04, 0xa8, 0x02, 0x1e, 0x1f, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x08, + 0x12, 0x06, 0xa8, 0x02, 0x20, 0xab, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x07, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa9, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, + 0x02, 0x07, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xaa, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x04, 0xac, 0x02, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x08, 0x12, 0x06, 0xac, 0x02, 0x02, 0xaf, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x08, 0x01, 0x12, 0x04, 0xac, 0x02, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x08, 0x03, 0x12, 0x04, 0xac, 0x02, 0x1f, 0x20, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x08, 0x08, 0x12, 0x06, 0xac, 0x02, 0x21, 0xaf, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, + 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xad, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x00, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xae, 0x02, 0x04, 0x2a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x05, 0x12, 0x04, 0xb0, 0x02, 0x02, 0x08, 0x0a, 0x0e, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x09, 0x12, 0x06, 0xb0, 0x02, 0x02, 0xb3, 0x02, 0x04, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x04, 0xb0, 0x02, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x09, 0x03, 0x12, 0x04, 0xb0, 0x02, 0x1b, 0x1d, 0x0a, 0x0f, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x09, 0x08, 0x12, 0x06, 0xb0, 0x02, 0x1e, 0xb3, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x00, 0x02, 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb1, 0x02, 0x04, 0x2d, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x00, 0x02, 0x09, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xb2, 0x02, 0x04, 0x2a, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x06, 0xb6, 0x02, 0x00, 0xee, 0x02, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x04, 0xb6, 0x02, 0x08, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb7, 0x02, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x01, + 0x02, 0x00, 0x12, 0x06, 0xb7, 0x02, 0x02, 0xba, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xb7, 0x02, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xb7, 0x02, 0x1d, 0x1e, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, + 0x08, 0x12, 0x06, 0xb7, 0x02, 0x1f, 0xba, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb8, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x01, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xb9, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x04, 0xbb, 0x02, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, + 0x04, 0x01, 0x02, 0x01, 0x12, 0x06, 0xbb, 0x02, 0x02, 0xbe, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x04, 0xbb, 0x02, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x01, 0x03, 0x12, 0x04, 0xbb, 0x02, 0x15, 0x16, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x01, 0x08, 0x12, 0x06, 0xbb, 0x02, 0x17, 0xbe, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x01, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbc, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x01, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xbd, 0x02, 0x04, 0x2a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x05, 0x12, 0x04, 0xbf, 0x02, 0x02, 0x08, 0x0a, 0x0e, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x06, 0xbf, 0x02, 0x02, 0xc2, 0x02, 0x04, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x04, 0xbf, 0x02, 0x09, 0x10, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x04, 0xbf, 0x02, 0x13, 0x14, 0x0a, 0x0f, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x02, 0x08, 0x12, 0x06, 0xbf, 0x02, 0x15, 0xc2, 0x02, 0x03, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x01, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc0, 0x02, 0x04, 0x2d, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xc1, 0x02, 0x04, + 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x05, 0x12, 0x04, 0xc4, 0x02, 0x02, 0x08, + 0x0a, 0x6e, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x04, 0xc4, 0x02, 0x02, 0x3b, 0x1a, 0x60, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, + 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0xc4, 0x02, 0x09, 0x0d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x04, 0xc4, 0x02, 0x10, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x08, 0x12, 0x04, 0xc4, 0x02, 0x12, 0x3a, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x01, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc4, 0x02, 0x13, 0x39, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x05, 0x12, 0x04, 0xc5, 0x02, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x04, 0x12, 0x04, 0xc5, 0x02, 0x02, 0x42, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0xc5, 0x02, 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x04, 0x03, 0x12, 0x04, 0xc5, 0x02, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x04, 0x08, 0x12, 0x04, 0xc5, 0x02, 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, + 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc5, 0x02, 0x1a, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x05, 0x05, 0x12, 0x04, 0xc9, 0x02, 0x02, 0x08, 0x0a, 0x85, 0x02, 0x0a, 0x04, 0x04, + 0x01, 0x02, 0x05, 0x12, 0x04, 0xc9, 0x02, 0x02, 0x40, 0x1a, 0xf6, 0x01, 0x20, 0x41, 0x6e, 0x20, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x20, 0x61, 0x20, 0x43, 0x45, 0x4c, 0x20, 0x65, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x20, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x20, 0x69, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2c, 0x0a, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, + 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x79, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2c, 0x0a, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6e, 0x73, 0x60, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x01, 0x12, 0x04, 0xc9, 0x02, 0x09, + 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, 0x04, 0xc9, 0x02, 0x15, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x08, 0x12, 0x04, 0xc9, 0x02, 0x17, 0x3f, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc9, 0x02, 0x18, + 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x05, 0x12, 0x04, 0xcc, 0x02, 0x02, 0x08, + 0x0a, 0x51, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x06, 0x12, 0x04, 0xcc, 0x02, 0x02, 0x41, 0x1a, 0x43, + 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, 0x04, 0xcc, 0x02, + 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x04, 0xcc, 0x02, 0x16, + 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x08, 0x12, 0x04, 0xcc, 0x02, 0x18, 0x40, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcc, 0x02, + 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x05, 0x12, 0x04, 0xcf, 0x02, 0x02, + 0x08, 0x0a, 0x64, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x06, 0xcf, 0x02, 0x02, 0xd2, 0x02, + 0x04, 0x1a, 0x54, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x69, 0x6e, 0x67, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x6d, 0x61, 0x64, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x01, + 0x12, 0x04, 0xcf, 0x02, 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x03, 0x12, + 0x04, 0xcf, 0x02, 0x1a, 0x1b, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x08, 0x12, 0x06, + 0xcf, 0x02, 0x1c, 0xd2, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x07, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xd0, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x07, + 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xd1, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x08, 0x04, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x0a, 0x0a, 0x3c, 0x0a, 0x04, 0x04, 0x01, 0x02, + 0x08, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x60, 0x1a, 0x2e, 0x20, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x06, + 0x12, 0x04, 0xd4, 0x02, 0x0b, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, + 0x04, 0xd4, 0x02, 0x2a, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x04, + 0xd4, 0x02, 0x35, 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x08, 0x12, 0x04, 0xd4, + 0x02, 0x37, 0x5f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xd4, 0x02, 0x38, 0x5e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x04, 0x12, 0x04, + 0xd8, 0x02, 0x02, 0x0a, 0x0a, 0x9c, 0x01, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x09, 0x12, 0x04, 0xd8, + 0x02, 0x02, 0x55, 0x1a, 0x8d, 0x01, 0x20, 0x55, 0x73, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x20, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, + 0x72, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x5b, + 0x31, 0x2c, 0x20, 0x32, 0x2c, 0x20, 0x33, 0x5d, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x5b, + 0x2d, 0x31, 0x2c, 0x20, 0x31, 0x2c, 0x20, 0x2d, 0x32, 0x2c, 0x20, 0x32, 0x2c, 0x20, 0x2d, 0x33, + 0x2c, 0x20, 0x33, 0x5d, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x05, 0x12, 0x04, 0xd8, 0x02, + 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x01, 0x12, 0x04, 0xd8, 0x02, 0x12, + 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x03, 0x12, 0x04, 0xd8, 0x02, 0x29, 0x2b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x08, 0x12, 0x04, 0xd8, 0x02, 0x2c, 0x54, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd8, 0x02, 0x2d, + 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x06, 0x12, 0x04, 0xda, 0x02, 0x02, 0x1b, + 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0a, 0x12, 0x06, 0xda, 0x02, 0x02, 0xdd, 0x02, 0x04, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xda, 0x02, 0x1c, 0x28, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x03, 0x12, 0x04, 0xda, 0x02, 0x2b, 0x2d, 0x0a, 0x0f, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x08, 0x12, 0x06, 0xda, 0x02, 0x2e, 0xdd, 0x02, 0x03, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdb, 0x02, 0x04, + 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xdc, + 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x06, 0x12, 0x04, 0xde, 0x02, + 0x02, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0b, 0x12, 0x06, 0xde, 0x02, 0x02, 0xe1, + 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xde, 0x02, 0x1c, + 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x03, 0x12, 0x04, 0xde, 0x02, 0x2c, 0x2e, + 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x08, 0x12, 0x06, 0xde, 0x02, 0x2f, 0xe1, 0x02, + 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0b, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdf, + 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0b, 0x08, 0x9c, 0x08, 0x01, 0x12, + 0x04, 0xe0, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x05, 0x12, 0x04, + 0xe2, 0x02, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0c, 0x12, 0x06, 0xe2, 0x02, + 0x02, 0xe5, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xe2, + 0x02, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x03, 0x12, 0x04, 0xe2, 0x02, + 0x1e, 0x20, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x08, 0x12, 0x06, 0xe2, 0x02, 0x21, + 0xe5, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0c, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xe3, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0c, 0x08, 0x9c, 0x08, + 0x01, 0x12, 0x04, 0xe4, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x05, + 0x12, 0x04, 0xe6, 0x02, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0d, 0x12, 0x06, + 0xe6, 0x02, 0x02, 0xe9, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x01, 0x12, + 0x04, 0xe6, 0x02, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x03, 0x12, 0x04, + 0xe6, 0x02, 0x1f, 0x21, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x08, 0x12, 0x06, 0xe6, + 0x02, 0x22, 0xe9, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0d, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xe7, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0d, 0x08, + 0x9c, 0x08, 0x01, 0x12, 0x04, 0xe8, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x0e, 0x05, 0x12, 0x04, 0xea, 0x02, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0e, + 0x12, 0x06, 0xea, 0x02, 0x02, 0xed, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, + 0x01, 0x12, 0x04, 0xea, 0x02, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x03, + 0x12, 0x04, 0xea, 0x02, 0x1b, 0x1d, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x08, 0x12, + 0x06, 0xea, 0x02, 0x1e, 0xed, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0e, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xeb, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, + 0x0e, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xec, 0x02, 0x04, 0x2a, 0x0a, 0x69, 0x0a, 0x02, 0x04, + 0x02, 0x12, 0x06, 0xf1, 0x02, 0x00, 0x8f, 0x03, 0x01, 0x1a, 0x5b, 0x20, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x52, 0x75, 0x6e, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, + 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6f, 0x72, + 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x04, 0xf1, + 0x02, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf2, 0x02, + 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x06, 0xf2, 0x02, 0x02, 0xf5, + 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf2, 0x02, 0x09, + 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf2, 0x02, 0x19, 0x1a, + 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, 0x06, 0xf2, 0x02, 0x1b, 0xf5, 0x02, + 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf3, + 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x01, 0x12, + 0x04, 0xf4, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, 0x04, + 0xf6, 0x02, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x06, 0xf6, 0x02, + 0x02, 0xf9, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf6, + 0x02, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf6, 0x02, + 0x1d, 0x1e, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x06, 0xf6, 0x02, 0x1f, + 0xf9, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xf7, 0x02, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x01, 0x08, 0x9c, 0x08, + 0x01, 0x12, 0x04, 0xf8, 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x05, + 0x12, 0x04, 0xfa, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x04, + 0xfa, 0x02, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x04, 0xfa, + 0x02, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x04, 0xfa, 0x02, + 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x08, 0x12, 0x04, 0xfa, 0x02, 0x14, + 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfa, + 0x02, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x05, 0x12, 0x04, 0xfc, 0x02, + 0x02, 0x06, 0x0a, 0x80, 0x01, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x04, 0xfc, 0x02, 0x02, + 0x41, 0x1a, 0x72, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x75, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, + 0x20, 0x49, 0x66, 0x20, 0x60, 0x74, 0x72, 0x75, 0x65, 0x60, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x75, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x6c, 0x79, + 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x77, 0x69, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x01, 0x12, 0x04, + 0xfc, 0x02, 0x07, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x03, 0x12, 0x04, 0xfc, + 0x02, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x08, 0x12, 0x04, 0xfc, 0x02, + 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xfc, 0x02, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x05, 0x12, 0x04, 0xfe, + 0x02, 0x02, 0x08, 0x0a, 0x3e, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x04, 0xfe, 0x02, 0x02, + 0x40, 0x1a, 0x30, 0x20, 0x55, 0x73, 0x65, 0x72, 0x20, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x04, 0xfe, 0x02, + 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x04, 0xfe, 0x02, 0x15, + 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x08, 0x12, 0x04, 0xfe, 0x02, 0x17, 0x3f, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfe, 0x02, + 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x06, 0x12, 0x04, 0x81, 0x03, 0x02, + 0x1b, 0x0a, 0x4d, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x06, 0x81, 0x03, 0x02, 0x84, 0x03, + 0x04, 0x1a, 0x3d, 0x20, 0x44, 0x61, 0x74, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x77, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x04, 0x81, 0x03, 0x1c, 0x26, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x04, 0x81, 0x03, 0x29, 0x2a, 0x0a, 0x0f, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x08, 0x12, 0x06, 0x81, 0x03, 0x2b, 0x84, 0x03, 0x03, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x82, 0x03, 0x04, + 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0x83, + 0x03, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x05, 0x12, 0x04, 0x86, 0x03, + 0x02, 0x08, 0x0a, 0x57, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x06, 0x12, 0x06, 0x86, 0x03, 0x02, 0x89, + 0x03, 0x04, 0x1a, 0x47, 0x20, 0x55, 0x73, 0x65, 0x72, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x77, 0x68, 0x6f, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x06, 0x01, 0x12, 0x04, 0x86, 0x03, 0x09, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x06, 0x03, 0x12, 0x04, 0x86, 0x03, 0x1c, 0x1d, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x06, 0x08, 0x12, 0x06, 0x86, 0x03, 0x1e, 0x89, 0x03, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, + 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x87, 0x03, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x02, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0x88, 0x03, 0x04, 0x2a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x05, 0x12, 0x04, 0x8b, 0x03, 0x02, 0x08, 0x0a, 0x66, 0x0a, + 0x04, 0x04, 0x02, 0x02, 0x07, 0x12, 0x06, 0x8b, 0x03, 0x02, 0x8e, 0x03, 0x04, 0x1a, 0x56, 0x20, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x77, 0x61, 0x73, 0x20, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x01, 0x12, 0x04, + 0x8b, 0x03, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x03, 0x12, 0x04, 0x8b, + 0x03, 0x1f, 0x20, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x08, 0x12, 0x06, 0x8b, 0x03, + 0x21, 0x8e, 0x03, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0x8c, 0x03, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x07, 0x08, 0x9c, + 0x08, 0x01, 0x12, 0x04, 0x8d, 0x03, 0x04, 0x2a, 0x0a, 0x75, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x06, + 0x92, 0x03, 0x00, 0xa9, 0x03, 0x01, 0x1a, 0x67, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2d, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x2e, 0x0a, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x04, 0x92, 0x03, 0x08, 0x17, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x00, 0x05, 0x12, 0x04, 0x99, 0x03, 0x02, 0x08, 0x0a, 0xee, 0x03, 0x0a, 0x04, + 0x04, 0x03, 0x02, 0x00, 0x12, 0x04, 0x99, 0x03, 0x02, 0x4a, 0x1a, 0xdf, 0x03, 0x20, 0x57, 0x68, + 0x65, 0x6e, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x20, 0x63, 0x61, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x74, + 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x49, 0x44, 0x0a, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, + 0x69, 0x73, 0x0a, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x49, 0x44, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, + 0x75, 0x61, 0x6c, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2e, 0x0a, 0x20, 0x49, 0x6e, 0x20, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x04, 0x99, 0x03, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x00, 0x03, 0x12, 0x04, 0x99, 0x03, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x00, 0x08, 0x12, 0x04, 0x99, 0x03, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x03, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x99, 0x03, 0x22, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x01, 0x05, 0x12, 0x04, 0x9a, 0x03, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x03, + 0x02, 0x01, 0x12, 0x06, 0x9a, 0x03, 0x02, 0x9d, 0x03, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x01, 0x01, 0x12, 0x04, 0x9a, 0x03, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x01, 0x03, 0x12, 0x04, 0x9a, 0x03, 0x1d, 0x1e, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, + 0x08, 0x12, 0x06, 0x9a, 0x03, 0x1f, 0x9d, 0x03, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x03, 0x02, + 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9b, 0x03, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x03, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0x9c, 0x03, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x02, 0x05, 0x12, 0x04, 0x9f, 0x03, 0x02, 0x08, 0x0a, 0x4c, 0x0a, 0x04, + 0x04, 0x03, 0x02, 0x02, 0x12, 0x04, 0x9f, 0x03, 0x02, 0x3b, 0x1a, 0x3e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x02, 0x01, 0x12, 0x04, 0x9f, 0x03, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x02, 0x03, 0x12, 0x04, 0x9f, 0x03, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, + 0x08, 0x12, 0x04, 0x9f, 0x03, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x03, 0x02, 0x02, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9f, 0x03, 0x13, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x03, 0x05, 0x12, 0x04, 0xa0, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x03, + 0x12, 0x04, 0xa0, 0x03, 0x02, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x03, 0x01, 0x12, + 0x04, 0xa0, 0x03, 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x03, 0x03, 0x12, 0x04, + 0xa0, 0x03, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x03, 0x08, 0x12, 0x04, 0xa0, + 0x03, 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x03, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xa0, 0x03, 0x1a, 0x40, 0x0a, 0x7d, 0x0a, 0x04, 0x04, 0x03, 0x08, 0x00, 0x12, 0x06, 0xa2, + 0x03, 0x02, 0xa6, 0x03, 0x03, 0x1a, 0x6d, 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x6f, 0x6f, 0x6b, 0x20, 0x75, 0x70, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, 0x77, + 0x68, 0x65, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, + 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x08, 0x00, 0x01, 0x12, 0x04, 0xa2, + 0x03, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x04, 0x06, 0x12, 0x04, 0xa3, 0x03, + 0x04, 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x04, 0x12, 0x04, 0xa3, 0x03, 0x04, 0x19, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa3, 0x03, 0x11, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x04, 0x03, 0x12, 0x04, 0xa3, 0x03, 0x17, 0x18, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x05, 0x06, 0x12, 0x04, 0xa4, 0x03, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x03, 0x02, 0x05, 0x12, 0x04, 0xa4, 0x03, 0x04, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x05, 0x01, 0x12, 0x04, 0xa4, 0x03, 0x1f, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x05, 0x03, 0x12, 0x04, 0xa4, 0x03, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x06, 0x06, 0x12, 0x04, 0xa5, 0x03, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x06, + 0x12, 0x04, 0xa5, 0x03, 0x04, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x06, 0x01, 0x12, + 0x04, 0xa5, 0x03, 0x17, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x06, 0x03, 0x12, 0x04, + 0xa5, 0x03, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x07, 0x04, 0x12, 0x04, 0xa8, + 0x03, 0x02, 0x0a, 0x0a, 0xa7, 0x01, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x07, 0x12, 0x04, 0xa8, 0x03, + 0x02, 0x65, 0x1a, 0x98, 0x01, 0x20, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x07, 0x06, 0x12, 0x04, 0xa8, 0x03, 0x0b, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x07, 0x01, 0x12, 0x04, 0xa8, 0x03, 0x20, 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x07, 0x03, 0x12, 0x04, 0xa8, 0x03, 0x3a, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x07, 0x08, 0x12, 0x04, 0xa8, 0x03, 0x3c, 0x64, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x03, 0x02, + 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa8, 0x03, 0x3d, 0x63, 0x0a, 0x69, 0x0a, 0x02, 0x04, + 0x04, 0x12, 0x06, 0xac, 0x03, 0x00, 0xc4, 0x03, 0x01, 0x1a, 0x5b, 0x20, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x20, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x74, 0x69, + 0x6d, 0x65, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x04, 0xac, + 0x03, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb4, 0x03, + 0x02, 0x08, 0x0a, 0xc4, 0x04, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x00, 0x12, 0x04, 0xb4, 0x03, 0x02, + 0x50, 0x1a, 0xb5, 0x04, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, + 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x20, 0x49, 0x44, 0x0a, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x20, 0x69, 0x73, 0x0a, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2e, + 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2e, 0x0a, 0x20, 0x49, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, + 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2e, + 0x0a, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x00, 0x01, 0x12, 0x04, 0xb4, 0x03, 0x09, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, + 0x03, 0x12, 0x04, 0xb4, 0x03, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x08, + 0x12, 0x04, 0xb4, 0x03, 0x27, 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x00, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xb4, 0x03, 0x28, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, + 0x05, 0x12, 0x04, 0xb5, 0x03, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x01, 0x12, + 0x06, 0xb5, 0x03, 0x02, 0xb8, 0x03, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xb5, 0x03, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xb5, 0x03, 0x19, 0x1a, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x08, 0x12, 0x06, + 0xb5, 0x03, 0x1b, 0xb8, 0x03, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x01, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xb6, 0x03, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x01, + 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xb7, 0x03, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x02, 0x05, 0x12, 0x04, 0xb9, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x04, 0x02, + 0x02, 0x12, 0x04, 0xb9, 0x03, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x01, + 0x12, 0x04, 0xb9, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, + 0x04, 0xb9, 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x08, 0x12, 0x04, + 0xb9, 0x03, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xb9, 0x03, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x05, 0x12, + 0x04, 0xba, 0x03, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x03, 0x12, 0x06, 0xba, + 0x03, 0x02, 0xbd, 0x03, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x01, 0x12, 0x04, + 0xba, 0x03, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x03, 0x12, 0x04, 0xba, + 0x03, 0x1f, 0x20, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x08, 0x12, 0x06, 0xba, 0x03, + 0x21, 0xbd, 0x03, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xbb, 0x03, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x03, 0x08, 0x9c, + 0x08, 0x01, 0x12, 0x04, 0xbc, 0x03, 0x04, 0x2a, 0x0a, 0x44, 0x0a, 0x04, 0x04, 0x04, 0x08, 0x00, + 0x12, 0x06, 0xbf, 0x03, 0x02, 0xc3, 0x03, 0x03, 0x1a, 0x34, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x04, 0x08, 0x00, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x08, 0x11, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x04, 0x02, 0x04, 0x06, 0x12, 0x04, 0xc0, 0x03, 0x04, 0x10, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x04, 0x02, 0x04, 0x12, 0x04, 0xc0, 0x03, 0x04, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x04, 0x01, 0x12, 0x04, 0xc0, 0x03, 0x11, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x04, 0x03, 0x12, 0x04, 0xc0, 0x03, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, + 0x06, 0x12, 0x04, 0xc1, 0x03, 0x04, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x05, 0x12, + 0x04, 0xc1, 0x03, 0x04, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x01, 0x12, 0x04, + 0xc1, 0x03, 0x18, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x03, 0x12, 0x04, 0xc1, + 0x03, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x06, 0x12, 0x04, 0xc2, 0x03, + 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x06, 0x12, 0x04, 0xc2, 0x03, 0x04, 0x25, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x01, 0x12, 0x04, 0xc2, 0x03, 0x17, 0x20, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x03, 0x12, 0x04, 0xc2, 0x03, 0x23, 0x24, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x05, 0x12, 0x06, 0xc6, 0x03, 0x00, 0xc8, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x05, 0x01, 0x12, 0x04, 0xc6, 0x03, 0x08, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, + 0x00, 0x06, 0x12, 0x04, 0xc7, 0x03, 0x02, 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, + 0x12, 0x04, 0xc7, 0x03, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xc7, 0x03, 0x11, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xc7, 0x03, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc7, + 0x03, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xc7, 0x03, 0x1c, 0x42, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x06, 0xca, 0x03, 0x00, + 0xd0, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x04, 0xca, 0x03, 0x08, 0x22, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, 0x04, 0xcb, 0x03, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x04, 0xcb, 0x03, 0x02, 0x46, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x04, 0xcb, 0x03, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x04, 0xcb, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x00, 0x08, 0x12, 0x04, 0xcb, 0x03, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x06, + 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcb, 0x03, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x01, 0x06, 0x12, 0x04, 0xcc, 0x03, 0x02, 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x06, 0x02, 0x01, 0x12, 0x04, 0xcc, 0x03, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, + 0x01, 0x01, 0x12, 0x04, 0xcc, 0x03, 0x11, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, + 0x03, 0x12, 0x04, 0xcc, 0x03, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x08, + 0x12, 0x04, 0xcc, 0x03, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x06, 0x02, 0x01, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xcc, 0x03, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, + 0x06, 0x12, 0x04, 0xcd, 0x03, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, + 0x04, 0xcd, 0x03, 0x02, 0x4f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x04, + 0xcd, 0x03, 0x17, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x04, 0xcd, + 0x03, 0x24, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x08, 0x12, 0x04, 0xcd, 0x03, + 0x26, 0x4e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x06, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xcd, 0x03, 0x27, 0x4d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x05, 0x12, 0x04, 0xcf, + 0x03, 0x02, 0x07, 0x0a, 0x8a, 0x01, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x03, 0x12, 0x04, 0xcf, 0x03, + 0x02, 0x46, 0x1a, 0x7c, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x22, 0x6e, 0x74, 0x68, 0x22, 0x2e, 0x20, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x20, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, + 0x67, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x01, 0x12, 0x04, 0xcf, 0x03, 0x08, 0x18, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x03, 0x12, 0x04, 0xcf, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x08, 0x12, 0x04, 0xcf, 0x03, 0x1d, 0x45, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x06, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcf, 0x03, 0x1e, 0x44, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x06, 0xd2, 0x03, 0x00, 0xd4, 0x03, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x07, 0x01, 0x12, 0x04, 0xd2, 0x03, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x00, 0x06, 0x12, 0x04, 0xd3, 0x03, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x07, 0x02, + 0x00, 0x12, 0x04, 0xd3, 0x03, 0x02, 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xd3, 0x03, 0x1c, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xd3, 0x03, 0x28, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x08, 0x12, 0x04, + 0xd3, 0x03, 0x2a, 0x52, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x07, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xd3, 0x03, 0x2b, 0x51, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x06, 0xd6, 0x03, + 0x00, 0xd9, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x04, 0xd6, 0x03, 0x08, + 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd7, 0x03, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x04, 0xd7, 0x03, 0x02, 0x44, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd7, 0x03, 0x09, 0x16, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd7, 0x03, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd7, 0x03, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x08, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd7, 0x03, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x01, 0x06, 0x12, 0x04, 0xd8, 0x03, 0x02, 0x10, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x08, 0x02, 0x01, 0x12, 0x04, 0xd8, 0x03, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x01, 0x01, 0x12, 0x04, 0xd8, 0x03, 0x11, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x01, 0x03, 0x12, 0x04, 0xd8, 0x03, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, + 0x08, 0x12, 0x04, 0xd8, 0x03, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x01, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd8, 0x03, 0x1c, 0x42, 0x0a, 0x71, 0x0a, 0x02, 0x04, 0x09, 0x12, + 0x06, 0xdd, 0x03, 0x00, 0xe7, 0x03, 0x01, 0x32, 0x63, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x09, 0x01, 0x12, 0x04, 0xdd, 0x03, 0x08, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, + 0x00, 0x06, 0x12, 0x04, 0xde, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, + 0x12, 0x04, 0xde, 0x03, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xde, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xde, 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x08, 0x12, 0x04, 0xde, + 0x03, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xde, 0x03, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x06, 0x12, 0x04, + 0xe0, 0x03, 0x02, 0x0f, 0x0a, 0x7f, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x01, 0x12, 0x04, 0xe0, 0x03, + 0x02, 0x4c, 0x1a, 0x71, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, + 0x20, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x6e, 0x6c, + 0x65, 0x73, 0x73, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x01, 0x12, 0x04, + 0xe0, 0x03, 0x10, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe0, + 0x03, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x08, 0x12, 0x04, 0xe0, 0x03, + 0x23, 0x4b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xe0, 0x03, 0x24, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x04, 0x12, 0x04, 0xe2, + 0x03, 0x02, 0x0a, 0x0a, 0x45, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x02, 0x12, 0x04, 0xe2, 0x03, 0x02, + 0x4e, 0x1a, 0x37, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, + 0x02, 0x02, 0x06, 0x12, 0x04, 0xe2, 0x03, 0x0b, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, + 0x02, 0x01, 0x12, 0x04, 0xe2, 0x03, 0x15, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, + 0x03, 0x12, 0x04, 0xe2, 0x03, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x08, + 0x12, 0x04, 0xe2, 0x03, 0x25, 0x4d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x02, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xe2, 0x03, 0x26, 0x4c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, + 0x04, 0x12, 0x04, 0xe4, 0x03, 0x02, 0x0a, 0x0a, 0x41, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x03, 0x12, + 0x04, 0xe4, 0x03, 0x02, 0x5a, 0x1a, 0x33, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, + 0x02, 0x03, 0x06, 0x12, 0x04, 0xe4, 0x03, 0x0b, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, + 0x03, 0x01, 0x12, 0x04, 0xe4, 0x03, 0x1b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, + 0x03, 0x12, 0x04, 0xe4, 0x03, 0x2f, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x08, + 0x12, 0x04, 0xe4, 0x03, 0x31, 0x59, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x03, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xe4, 0x03, 0x32, 0x58, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x04, + 0x04, 0x12, 0x04, 0xe6, 0x03, 0x02, 0x0a, 0x0a, 0x43, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x04, 0x12, + 0x04, 0xe6, 0x03, 0x02, 0x57, 0x1a, 0x35, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x09, 0x02, 0x04, 0x06, 0x12, 0x04, 0xe6, 0x03, 0x0b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x09, 0x02, 0x04, 0x01, 0x12, 0x04, 0xe6, 0x03, 0x1d, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, + 0x02, 0x04, 0x03, 0x12, 0x04, 0xe6, 0x03, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, + 0x04, 0x08, 0x12, 0x04, 0xe6, 0x03, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x04, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe6, 0x03, 0x2f, 0x55, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0a, + 0x12, 0x06, 0xe9, 0x03, 0x00, 0xee, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0a, 0x01, 0x12, + 0x04, 0xe9, 0x03, 0x08, 0x18, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0a, 0x08, 0x00, 0x12, 0x06, 0xea, + 0x03, 0x02, 0xed, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x08, 0x00, 0x01, 0x12, 0x04, + 0xea, 0x03, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x05, 0x12, 0x04, 0xeb, + 0x03, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, 0xeb, 0x03, 0x04, + 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x01, 0x12, 0x04, 0xeb, 0x03, 0x0b, 0x14, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x03, 0x12, 0x04, 0xeb, 0x03, 0x17, 0x18, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x05, 0x12, 0x04, 0xec, 0x03, 0x04, 0x0a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x01, 0x12, 0x04, 0xec, 0x03, 0x04, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0a, 0x02, 0x01, 0x01, 0x12, 0x04, 0xec, 0x03, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xec, 0x03, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0b, + 0x12, 0x06, 0xf0, 0x03, 0x00, 0xf2, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0b, 0x01, 0x12, + 0x04, 0xf0, 0x03, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x06, 0x12, 0x04, + 0xf1, 0x03, 0x02, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x00, 0x12, 0x04, 0xf1, 0x03, + 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf1, 0x03, 0x10, + 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf1, 0x03, 0x19, 0x1a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x08, 0x12, 0x04, 0xf1, 0x03, 0x1b, 0x43, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x0b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf1, 0x03, 0x1c, + 0x42, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0c, 0x12, 0x06, 0xf4, 0x03, 0x00, 0xf7, 0x03, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x0c, 0x01, 0x12, 0x04, 0xf4, 0x03, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0c, 0x02, 0x00, 0x04, 0x12, 0x04, 0xf5, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x0c, 0x02, 0x00, 0x12, 0x04, 0xf5, 0x03, 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, + 0x00, 0x05, 0x12, 0x04, 0xf5, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xf5, 0x03, 0x12, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xf5, 0x03, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x08, 0x12, + 0x04, 0xf5, 0x03, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0c, 0x02, 0x00, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xf5, 0x03, 0x22, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x04, + 0x12, 0x04, 0xf6, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x01, 0x12, 0x04, + 0xf6, 0x03, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x05, 0x12, 0x04, 0xf6, + 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf6, 0x03, + 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf6, 0x03, 0x20, + 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x08, 0x12, 0x04, 0xf6, 0x03, 0x22, 0x4a, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0c, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf6, 0x03, + 0x23, 0x49, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x06, 0xf9, 0x03, 0x00, 0xfb, 0x03, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0d, 0x01, 0x12, 0x04, 0xf9, 0x03, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0d, 0x02, 0x00, 0x04, 0x12, 0x04, 0xfa, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x0d, 0x02, 0x00, 0x12, 0x04, 0xfa, 0x03, 0x02, 0x4f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, + 0x02, 0x00, 0x06, 0x12, 0x04, 0xfa, 0x03, 0x0b, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, + 0x00, 0x01, 0x12, 0x04, 0xfa, 0x03, 0x19, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, + 0x03, 0x12, 0x04, 0xfa, 0x03, 0x24, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x08, + 0x12, 0x04, 0xfa, 0x03, 0x26, 0x4e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0d, 0x02, 0x00, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xfa, 0x03, 0x27, 0x4d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0e, 0x12, 0x06, + 0xfd, 0x03, 0x00, 0xff, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0e, 0x01, 0x12, 0x04, 0xfd, + 0x03, 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xfe, 0x03, + 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x00, 0x12, 0x04, 0xfe, 0x03, 0x02, 0x48, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xfe, 0x03, 0x09, 0x1a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xfe, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x08, 0x12, 0x04, 0xfe, 0x03, 0x1f, 0x47, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x0e, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfe, 0x03, 0x20, 0x46, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x0f, 0x12, 0x06, 0x81, 0x04, 0x00, 0x83, 0x04, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x0f, 0x01, 0x12, 0x04, 0x81, 0x04, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, + 0x02, 0x00, 0x06, 0x12, 0x04, 0x82, 0x04, 0x02, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, + 0x00, 0x12, 0x04, 0x82, 0x04, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x01, + 0x12, 0x04, 0x82, 0x04, 0x10, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x03, 0x12, + 0x04, 0x82, 0x04, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x08, 0x12, 0x04, + 0x82, 0x04, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0x82, 0x04, 0x1c, 0x42, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x10, 0x12, 0x06, 0x85, 0x04, + 0x00, 0x9a, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x10, 0x01, 0x12, 0x04, 0x85, 0x04, 0x08, + 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x05, 0x12, 0x04, 0x88, 0x04, 0x02, 0x08, + 0x0a, 0xd1, 0x01, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x00, 0x12, 0x04, 0x88, 0x04, 0x02, 0x40, 0x1a, + 0xc2, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, + 0x69, 0x66, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x20, + 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x35, 0x30, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, + 0x30, 0x30, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x01, 0x12, 0x04, 0x88, + 0x04, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x03, 0x12, 0x04, 0x88, 0x04, + 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x08, 0x12, 0x04, 0x88, 0x04, 0x17, + 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x10, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, + 0x04, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x05, 0x12, 0x04, 0x8d, 0x04, + 0x02, 0x08, 0x0a, 0xef, 0x01, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x01, 0x12, 0x04, 0x8d, 0x04, 0x02, + 0x41, 0x1a, 0xe0, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, + 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, + 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x73, + 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x20, + 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x60, + 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8d, + 0x04, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8d, 0x04, + 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x08, 0x12, 0x04, 0x8d, 0x04, 0x18, + 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x10, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8d, + 0x04, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x05, 0x12, 0x04, 0x92, 0x04, + 0x02, 0x08, 0x0a, 0xcb, 0x04, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x02, 0x12, 0x04, 0x92, 0x04, 0x02, + 0x3d, 0x1a, 0xbc, 0x04, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, + 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x3a, + 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x60, 0x2c, 0x20, 0x60, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, + 0x60, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x60, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, + 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x6e, 0x61, + 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x60, 0x2c, + 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x73, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x73, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, + 0x2c, 0x20, 0x60, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x60, 0x2e, 0x0a, 0x20, 0x46, + 0x6f, 0x72, 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, + 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, + 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, + 0x6e, 0x67, 0x64, 0x65, 0x66, 0x2e, 0x6d, 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, + 0x64, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x01, 0x12, 0x04, 0x92, 0x04, 0x09, 0x0f, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x03, 0x12, 0x04, 0x92, 0x04, 0x12, 0x13, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x08, 0x12, 0x04, 0x92, 0x04, 0x14, 0x3c, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x10, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x92, 0x04, 0x15, 0x3b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x03, 0x05, 0x12, 0x04, 0x99, 0x04, 0x02, 0x08, 0x0a, 0x9c, + 0x03, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x03, 0x12, 0x04, 0x99, 0x04, 0x02, 0x3f, 0x1a, 0x8d, 0x03, + 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, + 0x61, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x2e, 0x65, 0x2e, + 0x20, 0x22, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5b, 0x20, 0x64, 0x65, + 0x73, 0x63, 0x5d, 0x2c, 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x3a, 0x20, 0x60, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2e, 0x0a, 0x20, + 0x49, 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, + 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, + 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, + 0x2f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x70, 0x2e, 0x64, 0x65, 0x76, + 0x2f, 0x31, 0x33, 0x32, 0x23, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x20, + 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x22, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x10, 0x02, 0x03, 0x01, 0x12, 0x04, 0x99, 0x04, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x10, 0x02, 0x03, 0x03, 0x12, 0x04, 0x99, 0x04, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x10, 0x02, 0x03, 0x08, 0x12, 0x04, 0x99, 0x04, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x10, + 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x99, 0x04, 0x17, 0x3d, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x11, 0x12, 0x06, 0x9c, 0x04, 0x00, 0xa1, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x11, + 0x01, 0x12, 0x04, 0x9c, 0x04, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x04, + 0x12, 0x04, 0x9d, 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x00, 0x12, 0x04, + 0x9d, 0x04, 0x02, 0x4c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x06, 0x12, 0x04, 0x9d, + 0x04, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9d, 0x04, + 0x16, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9d, 0x04, 0x21, + 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x08, 0x12, 0x04, 0x9d, 0x04, 0x23, 0x4b, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x11, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9d, 0x04, + 0x24, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa0, 0x04, 0x02, + 0x08, 0x0a, 0x8f, 0x01, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x01, 0x12, 0x04, 0xa0, 0x04, 0x02, 0x46, + 0x1a, 0x80, 0x01, 0x20, 0x41, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x61, + 0x73, 0x20, 0x60, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x60, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, + 0x65, 0x78, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x73, 0x20, 0x6f, 0x6d, 0x69, 0x74, 0x74, + 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, + 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, + 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa0, 0x04, + 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa0, 0x04, 0x1b, + 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x08, 0x12, 0x04, 0xa0, 0x04, 0x1d, 0x45, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x11, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa0, 0x04, + 0x1e, 0x44, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x12, 0x12, 0x06, 0xa3, 0x04, 0x00, 0xad, 0x04, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x12, 0x01, 0x12, 0x04, 0xa3, 0x04, 0x08, 0x12, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x12, 0x02, 0x00, 0x06, 0x12, 0x04, 0xa4, 0x04, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, + 0x04, 0x12, 0x02, 0x00, 0x12, 0x06, 0xa4, 0x04, 0x02, 0xa7, 0x04, 0x04, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x12, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa4, 0x04, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x12, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa4, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x12, + 0x02, 0x00, 0x08, 0x12, 0x06, 0xa4, 0x04, 0x14, 0xa7, 0x04, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x12, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa5, 0x04, 0x04, 0x2d, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x12, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xa6, 0x04, 0x04, 0x2a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x06, 0x12, 0x04, 0xa9, 0x04, 0x02, 0x0f, 0x0a, 0x47, + 0x0a, 0x04, 0x04, 0x12, 0x02, 0x01, 0x12, 0x06, 0xa9, 0x04, 0x02, 0xac, 0x04, 0x04, 0x1a, 0x37, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, + 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xa9, 0x04, 0x10, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xa9, 0x04, 0x21, 0x22, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x08, 0x12, 0x06, + 0xa9, 0x04, 0x23, 0xac, 0x04, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, 0x01, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xaa, 0x04, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, 0x01, + 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xab, 0x04, 0x04, 0x2a, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x13, + 0x12, 0x06, 0xaf, 0x04, 0x00, 0xba, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x13, 0x01, 0x12, + 0x04, 0xaf, 0x04, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x06, 0x12, 0x04, + 0xb1, 0x04, 0x02, 0x08, 0x0a, 0x77, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x00, 0x12, 0x04, 0xb1, 0x04, + 0x02, 0x3d, 0x1a, 0x69, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, + 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, + 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x20, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x13, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb1, 0x04, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x13, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb1, 0x04, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x13, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb1, 0x04, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x13, + 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb1, 0x04, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x13, 0x02, 0x01, 0x06, 0x12, 0x04, 0xb3, 0x04, 0x02, 0x0f, 0x0a, 0x85, 0x01, 0x0a, 0x04, + 0x04, 0x13, 0x02, 0x01, 0x12, 0x04, 0xb3, 0x04, 0x02, 0x4c, 0x1a, 0x77, 0x20, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x69, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, + 0x61, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, + 0x65, 0x74, 0x63, 0x2e, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb3, 0x04, + 0x10, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb3, 0x04, 0x21, + 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x08, 0x12, 0x04, 0xb3, 0x04, 0x23, 0x4b, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x13, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb3, 0x04, + 0x24, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x04, 0x12, 0x04, 0xb5, 0x04, 0x02, + 0x0a, 0x0a, 0x56, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x02, 0x12, 0x04, 0xb5, 0x04, 0x02, 0x4e, 0x1a, + 0x48, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x2e, 0x20, 0x41, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x6f, 0x6e, + 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, + 0x02, 0x06, 0x12, 0x04, 0xb5, 0x04, 0x0b, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, + 0x01, 0x12, 0x04, 0xb5, 0x04, 0x15, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x03, + 0x12, 0x04, 0xb5, 0x04, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x08, 0x12, + 0x04, 0xb5, 0x04, 0x25, 0x4d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x13, 0x02, 0x02, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xb5, 0x04, 0x26, 0x4c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x04, + 0x12, 0x04, 0xb7, 0x04, 0x02, 0x0a, 0x0a, 0x7b, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x03, 0x12, 0x04, + 0xb7, 0x04, 0x02, 0x5a, 0x1a, 0x6d, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x20, 0x49, 0x66, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x61, + 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x06, 0x12, 0x04, 0xb7, 0x04, + 0x0b, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x01, 0x12, 0x04, 0xb7, 0x04, 0x1b, + 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x03, 0x12, 0x04, 0xb7, 0x04, 0x2f, 0x30, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x08, 0x12, 0x04, 0xb7, 0x04, 0x31, 0x59, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x13, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb7, 0x04, 0x32, + 0x58, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x04, 0x04, 0x12, 0x04, 0xb9, 0x04, 0x02, 0x0a, + 0x0a, 0x6c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x04, 0x12, 0x04, 0xb9, 0x04, 0x02, 0x57, 0x1a, 0x5e, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x13, 0x02, 0x04, 0x06, 0x12, 0x04, 0xb9, 0x04, 0x0b, 0x1c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x13, 0x02, 0x04, 0x01, 0x12, 0x04, 0xb9, 0x04, 0x1d, 0x29, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x13, 0x02, 0x04, 0x03, 0x12, 0x04, 0xb9, 0x04, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x13, 0x02, 0x04, 0x08, 0x12, 0x04, 0xb9, 0x04, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x13, + 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb9, 0x04, 0x2f, 0x55, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x14, 0x12, 0x06, 0xbc, 0x04, 0x00, 0xbf, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x14, + 0x01, 0x12, 0x04, 0xbc, 0x04, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x05, + 0x12, 0x04, 0xbd, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x00, 0x12, 0x04, + 0xbd, 0x04, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x01, 0x12, 0x04, 0xbd, + 0x04, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x03, 0x12, 0x04, 0xbd, 0x04, + 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x08, 0x12, 0x04, 0xbd, 0x04, 0x17, + 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbd, + 0x04, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x06, 0x12, 0x04, 0xbe, 0x04, + 0x02, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x01, 0x12, 0x04, 0xbe, 0x04, 0x02, 0x44, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x01, 0x12, 0x04, 0xbe, 0x04, 0x10, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x03, 0x12, 0x04, 0xbe, 0x04, 0x19, 0x1a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x08, 0x12, 0x04, 0xbe, 0x04, 0x1b, 0x43, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x14, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbe, 0x04, 0x1c, 0x42, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x15, 0x12, 0x06, 0xc1, 0x04, 0x00, 0xd1, 0x04, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x15, 0x01, 0x12, 0x04, 0xc1, 0x04, 0x08, 0x1b, 0x0a, 0x5e, 0x0a, 0x04, 0x04, 0x15, + 0x08, 0x00, 0x12, 0x06, 0xc3, 0x04, 0x02, 0xc6, 0x04, 0x03, 0x1a, 0x4e, 0x20, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, + 0x08, 0x00, 0x01, 0x12, 0x04, 0xc3, 0x04, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, + 0x00, 0x05, 0x12, 0x04, 0xc4, 0x04, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x00, + 0x12, 0x04, 0xc4, 0x04, 0x04, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xc4, 0x04, 0x0b, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xc4, 0x04, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc5, + 0x04, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x01, 0x12, 0x04, 0xc5, 0x04, 0x04, + 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc5, 0x04, 0x0b, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc5, 0x04, 0x18, 0x19, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x06, 0x12, 0x04, 0xc9, 0x04, 0x02, 0x0f, 0x0a, 0x65, + 0x0a, 0x04, 0x04, 0x15, 0x02, 0x02, 0x12, 0x04, 0xc9, 0x04, 0x02, 0x44, 0x1a, 0x57, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x01, 0x12, 0x04, + 0xc9, 0x04, 0x10, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x03, 0x12, 0x04, 0xc9, + 0x04, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x08, 0x12, 0x04, 0xc9, 0x04, + 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x15, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xc9, 0x04, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x03, 0x06, 0x12, 0x04, 0xd0, + 0x04, 0x02, 0x1b, 0x0a, 0xeb, 0x04, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x03, 0x12, 0x04, 0xd0, 0x04, + 0x02, 0x55, 0x1a, 0xa6, 0x02, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, 0x57, 0x68, 0x65, 0x6e, + 0x65, 0x76, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, + 0x69, 0x73, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, + 0x77, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x20, 0x65, 0x6e, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x61, 0x74, + 0x65, 0x2e, 0x0a, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x20, 0x63, + 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x73, 0x65, 0x74, 0x2e, 0x20, 0x49, 0x74, 0x20, + 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x76, 0x69, 0x61, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x0a, 0x32, 0xb3, 0x02, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x61, 0x72, 0x65, 0x0a, 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x72, 0x75, 0x6e, 0x5f, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x60, 0x2c, 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x60, 0x2c, + 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x60, 0x2c, 0x20, 0x60, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x64, 0x60, 0x2c, 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x60, 0x2c, 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x60, 0x2c, 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x60, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x03, 0x01, 0x12, 0x04, 0xd0, 0x04, 0x1c, 0x27, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x03, 0x03, 0x12, 0x04, 0xd0, 0x04, 0x2a, 0x2b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x03, 0x08, 0x12, 0x04, 0xd0, 0x04, 0x2c, 0x54, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x15, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd0, 0x04, 0x2d, 0x53, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x16, 0x12, 0x06, 0xd3, 0x04, 0x00, 0xd7, 0x04, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x16, 0x01, 0x12, 0x04, 0xd3, 0x04, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x16, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd4, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, + 0x02, 0x00, 0x12, 0x04, 0xd4, 0x04, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xd4, 0x04, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xd4, 0x04, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x00, 0x08, 0x12, + 0x04, 0xd4, 0x04, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x16, 0x02, 0x00, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xd4, 0x04, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x06, + 0x12, 0x04, 0xd5, 0x04, 0x02, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x01, 0x12, 0x04, + 0xd5, 0x04, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd5, + 0x04, 0x10, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd5, 0x04, + 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x08, 0x12, 0x04, 0xd5, 0x04, 0x1b, + 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x16, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd5, + 0x04, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x04, 0x12, 0x04, 0xd6, 0x04, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x02, 0x12, 0x04, 0xd6, 0x04, 0x02, 0x57, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x06, 0x12, 0x04, 0xd6, 0x04, 0x0b, 0x1c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x01, 0x12, 0x04, 0xd6, 0x04, 0x1d, 0x29, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x03, 0x12, 0x04, 0xd6, 0x04, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x16, 0x02, 0x02, 0x08, 0x12, 0x04, 0xd6, 0x04, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x16, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd6, 0x04, 0x2f, 0x55, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x17, 0x12, 0x06, 0xd9, 0x04, 0x00, 0xee, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x17, 0x01, 0x12, 0x04, 0xd9, 0x04, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, + 0x00, 0x05, 0x12, 0x04, 0xdc, 0x04, 0x02, 0x08, 0x0a, 0xdc, 0x01, 0x0a, 0x04, 0x04, 0x17, 0x02, + 0x00, 0x12, 0x04, 0xdc, 0x04, 0x02, 0x40, 0x1a, 0xcd, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x69, + 0x66, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x35, 0x30, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x32, 0x30, 0x30, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xdc, 0x04, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xdc, 0x04, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x08, 0x12, 0x04, + 0xdc, 0x04, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x17, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xdc, 0x04, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xe1, 0x04, 0x02, 0x08, 0x0a, 0xe6, 0x04, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x01, 0x12, 0x04, + 0xe1, 0x04, 0x02, 0x3d, 0x1a, 0xd7, 0x04, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, + 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, + 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, + 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, + 0x72, 0x65, 0x3a, 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x60, 0x2c, + 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, + 0x20, 0x60, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, + 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x60, 0x2c, 0x20, 0x60, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x69, 0x73, 0x5f, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, + 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x60, 0x2c, 0x20, 0x60, 0x72, + 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x60, 0x2c, + 0x20, 0x60, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x60, 0x2c, 0x20, 0x60, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, + 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, + 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, 0x62, + 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, 0x67, + 0x64, 0x65, 0x66, 0x2e, 0x6d, 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2d, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe1, 0x04, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x17, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe1, 0x04, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x17, 0x02, 0x01, 0x08, 0x12, 0x04, 0xe1, 0x04, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x17, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe1, 0x04, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x17, 0x02, 0x02, 0x05, 0x12, 0x04, 0xe6, 0x04, 0x02, 0x08, 0x0a, 0xfb, 0x01, 0x0a, + 0x04, 0x04, 0x17, 0x02, 0x02, 0x12, 0x04, 0xe6, 0x04, 0x02, 0x41, 0x1a, 0xec, 0x01, 0x20, 0x41, + 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, + 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x73, + 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x20, + 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x60, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, + 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, + 0x02, 0x02, 0x01, 0x12, 0x04, 0xe6, 0x04, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, + 0x02, 0x03, 0x12, 0x04, 0xe6, 0x04, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x02, + 0x08, 0x12, 0x04, 0xe6, 0x04, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x17, 0x02, 0x02, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe6, 0x04, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, + 0x03, 0x05, 0x12, 0x04, 0xed, 0x04, 0x02, 0x08, 0x0a, 0x9a, 0x03, 0x0a, 0x04, 0x04, 0x17, 0x02, + 0x03, 0x12, 0x04, 0xed, 0x04, 0x02, 0x3f, 0x1a, 0x8b, 0x03, 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, + 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, 0x65, 0x70, 0x61, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x2e, 0x65, + 0x2e, 0x20, 0x22, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5b, 0x20, 0x64, + 0x65, 0x73, 0x63, 0x5d, 0x2c, 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x3a, 0x20, 0x60, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, + 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x60, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x65, + 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x0a, + 0x20, 0x46, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, + 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x61, 0x69, 0x70, 0x2e, 0x64, 0x65, 0x76, 0x2f, 0x31, 0x33, 0x32, 0x23, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x20, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, + 0x20, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x64, + 0x65, 0x73, 0x63, 0x22, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x01, 0x12, 0x04, + 0xed, 0x04, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x03, 0x12, 0x04, 0xed, + 0x04, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x08, 0x12, 0x04, 0xed, 0x04, + 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x17, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xed, 0x04, 0x17, 0x3d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x18, 0x12, 0x06, 0xf0, 0x04, 0x00, 0xf5, + 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x18, 0x01, 0x12, 0x04, 0xf0, 0x04, 0x08, 0x22, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x04, 0x12, 0x04, 0xf1, 0x04, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x18, 0x02, 0x00, 0x12, 0x04, 0xf1, 0x04, 0x02, 0x56, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x18, 0x02, 0x00, 0x06, 0x12, 0x04, 0xf1, 0x04, 0x0b, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x18, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf1, 0x04, 0x19, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xf1, 0x04, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, + 0x00, 0x08, 0x12, 0x04, 0xf1, 0x04, 0x2d, 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x18, 0x02, 0x00, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf1, 0x04, 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, + 0x02, 0x01, 0x05, 0x12, 0x04, 0xf4, 0x04, 0x02, 0x08, 0x0a, 0x8f, 0x01, 0x0a, 0x04, 0x04, 0x18, + 0x02, 0x01, 0x12, 0x04, 0xf4, 0x04, 0x02, 0x46, 0x1a, 0x80, 0x01, 0x20, 0x41, 0x20, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x73, 0x20, 0x60, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, + 0x2e, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, + 0x69, 0x73, 0x20, 0x6f, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x72, + 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x18, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf4, 0x04, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, + 0x02, 0x01, 0x03, 0x12, 0x04, 0xf4, 0x04, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, + 0x01, 0x08, 0x12, 0x04, 0xf4, 0x04, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x18, 0x02, 0x01, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf4, 0x04, 0x1e, 0x44, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x19, + 0x12, 0x06, 0xf7, 0x04, 0x00, 0x89, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x19, 0x01, 0x12, + 0x04, 0xf7, 0x04, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x05, 0x12, 0x04, + 0xf9, 0x04, 0x02, 0x08, 0x0a, 0x55, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x00, 0x12, 0x04, 0xf9, 0x04, + 0x02, 0x48, 0x1a, 0x47, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x19, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf9, 0x04, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xf9, 0x04, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, + 0x00, 0x08, 0x12, 0x04, 0xf9, 0x04, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x19, 0x02, 0x00, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf9, 0x04, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, + 0x02, 0x01, 0x05, 0x12, 0x04, 0xfd, 0x04, 0x02, 0x08, 0x0a, 0xdc, 0x01, 0x0a, 0x04, 0x04, 0x19, + 0x02, 0x01, 0x12, 0x04, 0xfd, 0x04, 0x02, 0x40, 0x1a, 0xcd, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, + 0x66, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x69, + 0x66, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x30, 0x30, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x35, 0x30, 0x30, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xfd, 0x04, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x03, + 0x12, 0x04, 0xfd, 0x04, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x08, 0x12, + 0x04, 0xfd, 0x04, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x19, 0x02, 0x01, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xfd, 0x04, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x05, + 0x12, 0x04, 0x83, 0x05, 0x02, 0x08, 0x0a, 0xc6, 0x04, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x02, 0x12, + 0x04, 0x83, 0x05, 0x02, 0x3d, 0x1a, 0xb7, 0x04, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, + 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, + 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, + 0x61, 0x72, 0x65, 0x3a, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, + 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x65, 0x60, + 0x2c, 0x20, 0x60, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, + 0x60, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x52, 0x75, 0x6e, 0x3a, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x60, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x65, 0x6e, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x60, 0x2e, 0x0a, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, + 0x2c, 0x20, 0x60, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, + 0x20, 0x60, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x0a, 0x20, 0x46, 0x6f, + 0x72, 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, + 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, + 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, + 0x67, 0x64, 0x65, 0x66, 0x2e, 0x6d, 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x01, 0x12, 0x04, 0x83, 0x05, 0x09, 0x0f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x03, 0x12, 0x04, 0x83, 0x05, 0x12, 0x13, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x19, 0x02, 0x02, 0x08, 0x12, 0x04, 0x83, 0x05, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x19, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x83, 0x05, 0x15, 0x3b, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x19, 0x02, 0x03, 0x05, 0x12, 0x04, 0x88, 0x05, 0x02, 0x08, 0x0a, 0xf9, 0x01, + 0x0a, 0x04, 0x04, 0x19, 0x02, 0x03, 0x12, 0x04, 0x88, 0x05, 0x02, 0x41, 0x1a, 0xea, 0x01, 0x20, + 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, + 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x73, + 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x20, + 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, + 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x60, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, + 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, + 0x03, 0x01, 0x12, 0x04, 0x88, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x03, + 0x03, 0x12, 0x04, 0x88, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x03, 0x08, + 0x12, 0x04, 0x88, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x19, 0x02, 0x03, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0x88, 0x05, 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1a, 0x12, 0x06, + 0x8b, 0x05, 0x00, 0x90, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1a, 0x01, 0x12, 0x04, 0x8b, + 0x05, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x04, 0x12, 0x04, 0x8c, 0x05, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x00, 0x12, 0x04, 0x8c, 0x05, 0x02, 0x4e, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x06, 0x12, 0x04, 0x8c, 0x05, 0x0b, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8c, 0x05, 0x15, 0x20, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x03, 0x12, 0x04, 0x8c, 0x05, 0x23, 0x24, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1a, 0x02, 0x00, 0x08, 0x12, 0x04, 0x8c, 0x05, 0x25, 0x4d, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x1a, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8c, 0x05, 0x26, 0x4c, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x05, 0x12, 0x04, 0x8f, 0x05, 0x02, 0x08, 0x0a, 0x8f, 0x01, + 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x01, 0x12, 0x04, 0x8f, 0x05, 0x02, 0x46, 0x1a, 0x80, 0x01, 0x20, + 0x41, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, + 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x73, 0x20, 0x60, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x20, 0x69, 0x73, 0x20, 0x6f, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x2c, 0x20, + 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x75, 0x62, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8f, 0x05, 0x09, 0x18, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8f, 0x05, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1a, 0x02, 0x01, 0x08, 0x12, 0x04, 0x8f, 0x05, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x1a, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8f, 0x05, 0x1e, 0x44, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x1b, 0x12, 0x06, 0x92, 0x05, 0x00, 0xa3, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x1b, 0x01, 0x12, 0x04, 0x92, 0x05, 0x08, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, + 0x00, 0x05, 0x12, 0x04, 0x94, 0x05, 0x02, 0x08, 0x0a, 0x4c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x00, + 0x12, 0x04, 0x94, 0x05, 0x02, 0x48, 0x1a, 0x3e, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x01, 0x12, + 0x04, 0x94, 0x05, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x03, 0x12, 0x04, + 0x94, 0x05, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x08, 0x12, 0x04, 0x94, + 0x05, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0x94, 0x05, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x05, 0x12, 0x04, + 0x98, 0x05, 0x02, 0x08, 0x0a, 0xe4, 0x01, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x01, 0x12, 0x04, 0x98, + 0x05, 0x02, 0x40, 0x1a, 0xd5, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, + 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, + 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, + 0x65, 0x76, 0x65, 0x6e, 0x20, 0x69, 0x66, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x70, 0x61, + 0x67, 0x65, 0x73, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x30, 0x30, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x02, 0x01, 0x01, 0x12, 0x04, 0x98, 0x05, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x01, 0x03, 0x12, 0x04, 0x98, 0x05, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, + 0x01, 0x08, 0x12, 0x04, 0x98, 0x05, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x01, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x98, 0x05, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x02, 0x05, 0x12, 0x04, 0x9d, 0x05, 0x02, 0x08, 0x0a, 0xc5, 0x02, 0x0a, 0x04, 0x04, 0x1b, + 0x02, 0x02, 0x12, 0x04, 0x9d, 0x05, 0x02, 0x3d, 0x1a, 0xb6, 0x02, 0x20, 0x41, 0x20, 0x5b, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, + 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, + 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x3a, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, + 0x60, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2e, 0x0a, 0x20, + 0x46, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, + 0x77, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, + 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, + 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, + 0x61, 0x6e, 0x67, 0x64, 0x65, 0x66, 0x2e, 0x6d, 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9d, 0x05, 0x09, 0x0f, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9d, 0x05, 0x12, 0x13, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x02, 0x08, 0x12, 0x04, 0x9d, 0x05, 0x14, 0x3c, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9d, 0x05, 0x15, 0x3b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x03, 0x05, 0x12, 0x04, 0xa2, 0x05, 0x02, 0x08, 0x0a, + 0xff, 0x01, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x03, 0x12, 0x04, 0xa2, 0x05, 0x02, 0x41, 0x1a, 0xf0, + 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x60, 0x20, + 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x0a, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, + 0x61, 0x67, 0x65, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x60, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, + 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa2, 0x05, 0x09, 0x13, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa2, 0x05, 0x16, 0x17, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x03, 0x08, 0x12, 0x04, 0xa2, 0x05, 0x18, 0x40, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa2, 0x05, 0x19, 0x3f, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1c, 0x12, 0x06, 0xa5, 0x05, 0x00, 0xaa, 0x05, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x1c, 0x01, 0x12, 0x04, 0xa5, 0x05, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1c, 0x02, 0x00, 0x04, 0x12, 0x04, 0xa6, 0x05, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1c, + 0x02, 0x00, 0x12, 0x04, 0xa6, 0x05, 0x02, 0x5a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, + 0x06, 0x12, 0x04, 0xa6, 0x05, 0x0b, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xa6, 0x05, 0x1b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xa6, 0x05, 0x2f, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x08, 0x12, 0x04, + 0xa6, 0x05, 0x31, 0x59, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1c, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xa6, 0x05, 0x32, 0x58, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xa9, 0x05, 0x02, 0x08, 0x0a, 0x8f, 0x01, 0x0a, 0x04, 0x04, 0x1c, 0x02, 0x01, 0x12, 0x04, + 0xa9, 0x05, 0x02, 0x46, 0x1a, 0x80, 0x01, 0x20, 0x41, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, + 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, + 0x6e, 0x74, 0x20, 0x61, 0x73, 0x20, 0x60, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x20, 0x49, 0x66, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x73, 0x20, 0x6f, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xa9, 0x05, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xa9, 0x05, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x01, 0x08, 0x12, 0x04, + 0xa9, 0x05, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1c, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xa9, 0x05, 0x1e, 0x44, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1d, 0x12, 0x06, 0xac, 0x05, + 0x00, 0xbe, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1d, 0x01, 0x12, 0x04, 0xac, 0x05, 0x08, + 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x05, 0x12, 0x04, 0xae, 0x05, 0x02, 0x08, + 0x0a, 0x5d, 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x00, 0x12, 0x04, 0xae, 0x05, 0x02, 0x4a, 0x1a, 0x4f, + 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x01, 0x12, 0x04, 0xae, 0x05, 0x09, 0x1c, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x03, 0x12, 0x04, 0xae, 0x05, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1d, 0x02, 0x00, 0x08, 0x12, 0x04, 0xae, 0x05, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x1d, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xae, 0x05, 0x22, 0x48, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb2, 0x05, 0x02, 0x08, 0x0a, 0xea, 0x01, + 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x01, 0x12, 0x04, 0xb2, 0x05, 0x02, 0x40, 0x1a, 0xdb, 0x01, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x65, + 0x76, 0x65, 0x6e, 0x20, 0x69, 0x66, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x70, 0x61, 0x67, + 0x65, 0x73, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x32, 0x30, 0x30, 0x2e, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, + 0x02, 0x01, 0x01, 0x12, 0x04, 0xb2, 0x05, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, + 0x01, 0x03, 0x12, 0x04, 0xb2, 0x05, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, + 0x08, 0x12, 0x04, 0xb2, 0x05, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1d, 0x02, 0x01, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb2, 0x05, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, + 0x02, 0x05, 0x12, 0x04, 0xb8, 0x05, 0x02, 0x08, 0x0a, 0x82, 0x04, 0x0a, 0x04, 0x04, 0x1d, 0x02, + 0x02, 0x12, 0x04, 0xb8, 0x05, 0x02, 0x3d, 0x1a, 0xf3, 0x03, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, + 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, + 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, + 0x79, 0x20, 0x61, 0x72, 0x65, 0x3a, 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x72, + 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x52, + 0x75, 0x6e, 0x3a, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x60, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2e, + 0x0a, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, + 0x60, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x60, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, + 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, + 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, + 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x64, + 0x65, 0x66, 0x2e, 0x6d, 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2d, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1d, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb8, 0x05, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1d, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb8, 0x05, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1d, 0x02, 0x02, 0x08, 0x12, 0x04, 0xb8, 0x05, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1d, + 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb8, 0x05, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1d, 0x02, 0x03, 0x05, 0x12, 0x04, 0xbd, 0x05, 0x02, 0x08, 0x0a, 0x89, 0x02, 0x0a, 0x04, + 0x04, 0x1d, 0x02, 0x03, 0x12, 0x04, 0xbd, 0x05, 0x02, 0x41, 0x1a, 0xfa, 0x01, 0x20, 0x41, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, + 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x60, + 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x0a, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x60, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x03, 0x01, + 0x12, 0x04, 0xbd, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x03, 0x03, 0x12, + 0x04, 0xbd, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x03, 0x08, 0x12, 0x04, + 0xbd, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1d, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xbd, 0x05, 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1e, 0x12, 0x06, 0xc0, 0x05, + 0x00, 0xc5, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1e, 0x01, 0x12, 0x04, 0xc0, 0x05, 0x08, + 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x04, 0x12, 0x04, 0xc1, 0x05, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x00, 0x12, 0x04, 0xc1, 0x05, 0x02, 0x65, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc1, 0x05, 0x0b, 0x1f, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc1, 0x05, 0x20, 0x37, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc1, 0x05, 0x3a, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1e, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc1, 0x05, 0x3c, 0x64, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1e, + 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc1, 0x05, 0x3d, 0x63, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1e, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc4, 0x05, 0x02, 0x08, 0x0a, 0x8f, 0x01, 0x0a, 0x04, + 0x04, 0x1e, 0x02, 0x01, 0x12, 0x04, 0xc4, 0x05, 0x02, 0x46, 0x1a, 0x80, 0x01, 0x20, 0x41, 0x20, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6e, + 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x73, 0x20, 0x60, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x70, 0x61, + 0x67, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x20, 0x69, 0x73, 0x20, 0x6f, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, + 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1e, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc4, 0x05, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1e, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc4, 0x05, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1e, 0x02, 0x01, 0x08, 0x12, 0x04, 0xc4, 0x05, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1e, + 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc4, 0x05, 0x1e, 0x44, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x1f, 0x12, 0x06, 0xc7, 0x05, 0x00, 0xcb, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1f, + 0x01, 0x12, 0x04, 0xc7, 0x05, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x05, + 0x12, 0x04, 0xca, 0x05, 0x02, 0x08, 0x0a, 0x9a, 0x01, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x00, 0x12, + 0x04, 0xca, 0x05, 0x02, 0x42, 0x1a, 0x8b, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x2e, 0x20, 0x4d, + 0x75, 0x73, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x79, 0x61, 0x6d, 0x6c, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x0a, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x68, 0x61, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x01, 0x12, 0x04, 0xca, 0x05, + 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xca, 0x05, 0x17, + 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x08, 0x12, 0x04, 0xca, 0x05, 0x19, 0x41, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1f, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xca, 0x05, + 0x1a, 0x40, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x20, 0x12, 0x06, 0xcd, 0x05, 0x00, 0xd0, 0x05, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x20, 0x01, 0x12, 0x04, 0xcd, 0x05, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x20, 0x02, 0x00, 0x05, 0x12, 0x04, 0xce, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x20, 0x02, 0x00, 0x12, 0x04, 0xce, 0x05, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xce, 0x05, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xce, 0x05, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xce, 0x05, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x20, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xce, 0x05, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, + 0x01, 0x06, 0x12, 0x04, 0xcf, 0x05, 0x02, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x20, 0x02, 0x01, + 0x12, 0x04, 0xcf, 0x05, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xcf, 0x05, 0x10, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x01, 0x03, 0x12, 0x04, + 0xcf, 0x05, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x01, 0x08, 0x12, 0x04, 0xcf, + 0x05, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x20, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xcf, 0x05, 0x1c, 0x42, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x21, 0x12, 0x06, 0xd2, 0x05, 0x00, + 0xde, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x21, 0x01, 0x12, 0x04, 0xd2, 0x05, 0x08, 0x21, + 0x0a, 0x5e, 0x0a, 0x04, 0x04, 0x21, 0x08, 0x00, 0x12, 0x06, 0xd4, 0x05, 0x02, 0xd7, 0x05, 0x03, + 0x1a, 0x4e, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x20, + 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x20, 0x74, 0x6f, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x08, 0x00, 0x01, 0x12, 0x04, 0xd4, 0x05, 0x08, 0x19, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd5, 0x05, 0x04, 0x0a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x21, 0x02, 0x00, 0x12, 0x04, 0xd5, 0x05, 0x04, 0x19, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x21, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd5, 0x05, 0x0b, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x21, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd5, 0x05, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, + 0x02, 0x01, 0x05, 0x12, 0x04, 0xd6, 0x05, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x21, 0x02, + 0x01, 0x12, 0x04, 0xd6, 0x05, 0x04, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xd6, 0x05, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xd6, 0x05, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x02, 0x05, 0x12, 0x04, + 0xdb, 0x05, 0x02, 0x08, 0x0a, 0xef, 0x01, 0x0a, 0x04, 0x04, 0x21, 0x02, 0x02, 0x12, 0x04, 0xdb, + 0x05, 0x02, 0x42, 0x1a, 0xe0, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x2e, 0x20, 0x4d, 0x75, 0x73, + 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x79, 0x61, 0x6d, 0x6c, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x0a, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x68, 0x61, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x20, + 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x02, 0x01, 0x12, + 0x04, 0xdb, 0x05, 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x02, 0x03, 0x12, 0x04, + 0xdb, 0x05, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x02, 0x08, 0x12, 0x04, 0xdb, + 0x05, 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x21, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xdb, 0x05, 0x1a, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x03, 0x06, 0x12, 0x04, + 0xdd, 0x05, 0x02, 0x1b, 0x0a, 0x27, 0x0a, 0x04, 0x04, 0x21, 0x02, 0x03, 0x12, 0x04, 0xdd, 0x05, + 0x02, 0x55, 0x1a, 0x19, 0x20, 0x53, 0x65, 0x65, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x21, 0x02, 0x03, 0x01, 0x12, 0x04, 0xdd, 0x05, 0x1c, 0x27, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x21, 0x02, 0x03, 0x03, 0x12, 0x04, 0xdd, 0x05, 0x2a, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x21, 0x02, 0x03, 0x08, 0x12, 0x04, 0xdd, 0x05, 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x21, + 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdd, 0x05, 0x2d, 0x53, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x22, 0x12, 0x06, 0xe0, 0x05, 0x00, 0xe3, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x22, + 0x01, 0x12, 0x04, 0xe0, 0x05, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x05, + 0x12, 0x04, 0xe1, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x22, 0x02, 0x00, 0x12, 0x04, + 0xe1, 0x05, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe1, + 0x05, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe1, 0x05, + 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x08, 0x12, 0x04, 0xe1, 0x05, 0x1f, + 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x22, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe1, + 0x05, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x01, 0x06, 0x12, 0x04, 0xe2, 0x05, + 0x02, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x22, 0x02, 0x01, 0x12, 0x04, 0xe2, 0x05, 0x02, 0x44, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe2, 0x05, 0x10, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe2, 0x05, 0x19, 0x1a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x22, 0x02, 0x01, 0x08, 0x12, 0x04, 0xe2, 0x05, 0x1b, 0x43, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x22, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe2, 0x05, 0x1c, 0x42, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x23, 0x12, 0x06, 0xe5, 0x05, 0x00, 0xec, 0x05, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x23, 0x01, 0x12, 0x04, 0xe5, 0x05, 0x08, 0x1b, 0x0a, 0x7b, 0x0a, 0x04, 0x04, 0x23, + 0x08, 0x00, 0x12, 0x06, 0xe7, 0x05, 0x02, 0xeb, 0x05, 0x03, 0x1a, 0x6b, 0x20, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x2c, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x20, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x59, 0x41, 0x4d, 0x4c, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x08, 0x00, 0x01, + 0x12, 0x04, 0xe7, 0x05, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xe8, 0x05, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x23, 0x02, 0x00, 0x12, 0x04, 0xe8, + 0x05, 0x04, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe8, 0x05, + 0x0b, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe8, 0x05, 0x17, + 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x01, 0x05, 0x12, 0x04, 0xe9, 0x05, 0x04, 0x0a, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x23, 0x02, 0x01, 0x12, 0x04, 0xe9, 0x05, 0x04, 0x1a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x23, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe9, 0x05, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x23, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe9, 0x05, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x23, 0x02, 0x02, 0x05, 0x12, 0x04, 0xea, 0x05, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x23, 0x02, 0x02, 0x12, 0x04, 0xea, 0x05, 0x04, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, + 0x02, 0x01, 0x12, 0x04, 0xea, 0x05, 0x0b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x02, + 0x03, 0x12, 0x04, 0xea, 0x05, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x24, 0x12, 0x06, 0xee, + 0x05, 0x00, 0xf0, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x24, 0x01, 0x12, 0x04, 0xee, 0x05, + 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x05, 0x12, 0x04, 0xef, 0x05, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x00, 0x12, 0x04, 0xef, 0x05, 0x02, 0x46, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x01, 0x12, 0x04, 0xef, 0x05, 0x09, 0x18, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x03, 0x12, 0x04, 0xef, 0x05, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x24, 0x02, 0x00, 0x08, 0x12, 0x04, 0xef, 0x05, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x24, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xef, 0x05, 0x1e, 0x44, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x25, 0x12, 0x06, 0xf2, 0x05, 0x00, 0xf4, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x25, 0x01, 0x12, 0x04, 0xf2, 0x05, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, + 0x00, 0x05, 0x12, 0x04, 0xf3, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x25, 0x02, 0x00, + 0x12, 0x04, 0xf3, 0x05, 0x02, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xf3, 0x05, 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xf3, 0x05, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x08, 0x12, 0x04, 0xf3, + 0x05, 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x25, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xf3, 0x05, 0x1a, 0x40, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x26, 0x12, 0x06, 0xf6, 0x05, 0x00, + 0xfb, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x26, 0x01, 0x12, 0x04, 0xf6, 0x05, 0x08, 0x22, + 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x26, 0x08, 0x00, 0x12, 0x06, 0xf7, 0x05, 0x02, 0xfa, 0x05, 0x03, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x08, 0x00, 0x01, 0x12, 0x04, 0xf7, 0x05, 0x08, 0x0e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf8, 0x05, 0x04, 0x08, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x26, 0x02, 0x00, 0x12, 0x04, 0xf8, 0x05, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x26, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf8, 0x05, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x26, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf8, 0x05, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, + 0x02, 0x01, 0x05, 0x12, 0x04, 0xf9, 0x05, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x26, 0x02, + 0x01, 0x12, 0x04, 0xf9, 0x05, 0x04, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xf9, 0x05, 0x0b, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xf9, 0x05, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x27, 0x12, 0x06, 0xfd, 0x05, 0x00, + 0xff, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x27, 0x01, 0x12, 0x04, 0xfd, 0x05, 0x08, 0x26, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x00, 0x05, 0x12, 0x04, 0xfe, 0x05, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x27, 0x02, 0x00, 0x12, 0x04, 0xfe, 0x05, 0x02, 0x41, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x27, 0x02, 0x00, 0x01, 0x12, 0x04, 0xfe, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x27, 0x02, 0x00, 0x03, 0x12, 0x04, 0xfe, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x27, 0x02, 0x00, 0x08, 0x12, 0x04, 0xfe, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x27, + 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfe, 0x05, 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x28, 0x12, 0x06, 0x81, 0x06, 0x00, 0x86, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x28, + 0x01, 0x12, 0x04, 0x81, 0x06, 0x08, 0x27, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x28, 0x08, 0x00, 0x12, + 0x06, 0x82, 0x06, 0x02, 0x85, 0x06, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x08, 0x00, 0x01, + 0x12, 0x04, 0x82, 0x06, 0x08, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, 0x05, 0x12, + 0x04, 0x83, 0x06, 0x04, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x00, 0x12, 0x04, 0x83, + 0x06, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, 0x01, 0x12, 0x04, 0x83, 0x06, + 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, 0x03, 0x12, 0x04, 0x83, 0x06, 0x13, + 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x05, 0x12, 0x04, 0x84, 0x06, 0x04, 0x0a, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x01, 0x12, 0x04, 0x84, 0x06, 0x04, 0x1d, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x01, 0x12, 0x04, 0x84, 0x06, 0x0b, 0x18, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x28, 0x02, 0x01, 0x03, 0x12, 0x04, 0x84, 0x06, 0x1b, 0x1c, 0x0a, 0x4c, 0x0a, 0x02, + 0x04, 0x29, 0x12, 0x06, 0x8c, 0x06, 0x00, 0xb5, 0x06, 0x01, 0x32, 0x3e, 0x20, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x0a, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x0a, 0x20, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x29, + 0x01, 0x12, 0x04, 0x8c, 0x06, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x05, + 0x12, 0x04, 0x8d, 0x06, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x00, 0x12, 0x06, + 0x8d, 0x06, 0x02, 0x90, 0x06, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x01, 0x12, + 0x04, 0x8d, 0x06, 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x03, 0x12, 0x04, + 0x8d, 0x06, 0x1a, 0x1b, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x08, 0x12, 0x06, 0x8d, + 0x06, 0x1c, 0x90, 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x00, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0x8e, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x01, 0x12, 0x04, 0x8f, 0x06, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, + 0x01, 0x05, 0x12, 0x04, 0x92, 0x06, 0x02, 0x08, 0x0a, 0x3b, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x01, + 0x12, 0x06, 0x92, 0x06, 0x02, 0x95, 0x06, 0x04, 0x1a, 0x2b, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x64, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, + 0x74, 0x61, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x92, 0x06, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x03, 0x12, 0x04, 0x92, + 0x06, 0x1d, 0x1e, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x08, 0x12, 0x06, 0x92, 0x06, + 0x1f, 0x95, 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0x93, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x01, 0x08, 0x9c, + 0x08, 0x01, 0x12, 0x04, 0x94, 0x06, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, + 0x05, 0x12, 0x04, 0x97, 0x06, 0x02, 0x08, 0x0a, 0x2c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x02, 0x12, + 0x04, 0x97, 0x06, 0x02, 0x3b, 0x1a, 0x1e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, + 0x74, 0x61, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x01, 0x12, 0x04, + 0x97, 0x06, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x03, 0x12, 0x04, 0x97, + 0x06, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x08, 0x12, 0x04, 0x97, 0x06, + 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x97, 0x06, 0x13, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x03, 0x05, 0x12, 0x04, 0x99, + 0x06, 0x02, 0x08, 0x0a, 0x33, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x03, 0x12, 0x04, 0x99, 0x06, 0x02, + 0x42, 0x1a, 0x25, 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x03, + 0x01, 0x12, 0x04, 0x99, 0x06, 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x03, 0x03, + 0x12, 0x04, 0x99, 0x06, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x03, 0x08, 0x12, + 0x04, 0x99, 0x06, 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x03, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0x99, 0x06, 0x1a, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x05, + 0x12, 0x04, 0x9b, 0x06, 0x02, 0x08, 0x0a, 0x38, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x04, 0x12, 0x04, + 0x9b, 0x06, 0x02, 0x42, 0x1a, 0x2a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x20, 0x72, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x20, 0x28, 0x48, 0x7a, 0x29, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x01, 0x12, 0x04, 0x9b, 0x06, 0x09, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x03, 0x12, 0x04, 0x9b, 0x06, 0x17, 0x18, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x08, 0x12, 0x04, 0x9b, 0x06, 0x19, 0x41, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x29, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9b, 0x06, 0x1a, 0x40, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x04, 0x12, 0x04, 0xa0, 0x06, 0x02, 0x0a, 0x0a, 0xb5, + 0x02, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x05, 0x12, 0x04, 0xa0, 0x06, 0x02, 0x55, 0x1a, 0xa6, 0x02, + 0x20, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x2e, 0x0a, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2e, + 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, + 0x6c, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x0a, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x05, 0x12, + 0x04, 0xa0, 0x06, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x01, 0x12, 0x04, + 0xa0, 0x06, 0x12, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x03, 0x12, 0x04, 0xa0, + 0x06, 0x2a, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x08, 0x12, 0x04, 0xa0, 0x06, + 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xa0, 0x06, 0x2d, 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x06, 0x06, 0x12, 0x04, 0xa1, + 0x06, 0x02, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x06, 0x12, 0x06, 0xa1, 0x06, 0x02, + 0xa4, 0x06, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x06, 0x01, 0x12, 0x04, 0xa1, 0x06, + 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x06, 0x03, 0x12, 0x04, 0xa1, 0x06, 0x2b, + 0x2c, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x06, 0x08, 0x12, 0x06, 0xa1, 0x06, 0x2d, 0xa4, + 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xa2, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x01, + 0x12, 0x04, 0xa3, 0x06, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x07, 0x06, 0x12, + 0x04, 0xa5, 0x06, 0x02, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x07, 0x12, 0x06, 0xa5, + 0x06, 0x02, 0xa8, 0x06, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x07, 0x01, 0x12, 0x04, + 0xa5, 0x06, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x07, 0x03, 0x12, 0x04, 0xa5, + 0x06, 0x2c, 0x2d, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x07, 0x08, 0x12, 0x06, 0xa5, 0x06, + 0x2e, 0xa8, 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xa6, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x07, 0x08, 0x9c, + 0x08, 0x01, 0x12, 0x04, 0xa7, 0x06, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x08, + 0x05, 0x12, 0x04, 0xa9, 0x06, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x08, 0x12, + 0x06, 0xa9, 0x06, 0x02, 0xac, 0x06, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x08, 0x01, + 0x12, 0x04, 0xa9, 0x06, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x08, 0x03, 0x12, + 0x04, 0xa9, 0x06, 0x1e, 0x1f, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x08, 0x08, 0x12, 0x06, + 0xa9, 0x06, 0x20, 0xac, 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x08, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xaa, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x08, + 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xab, 0x06, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, + 0x02, 0x09, 0x05, 0x12, 0x04, 0xad, 0x06, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x29, 0x02, + 0x09, 0x12, 0x06, 0xad, 0x06, 0x02, 0xb0, 0x06, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, + 0x09, 0x01, 0x12, 0x04, 0xad, 0x06, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x09, + 0x03, 0x12, 0x04, 0xad, 0x06, 0x1f, 0x21, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x09, 0x08, + 0x12, 0x06, 0xad, 0x06, 0x22, 0xb0, 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x09, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xae, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, + 0x02, 0x09, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xaf, 0x06, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x29, 0x02, 0x0a, 0x05, 0x12, 0x04, 0xb1, 0x06, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, + 0x29, 0x02, 0x0a, 0x12, 0x06, 0xb1, 0x06, 0x02, 0xb4, 0x06, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x29, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xb1, 0x06, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, + 0x02, 0x0a, 0x03, 0x12, 0x04, 0xb1, 0x06, 0x1b, 0x1d, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x29, 0x02, + 0x0a, 0x08, 0x12, 0x06, 0xb1, 0x06, 0x1e, 0xb4, 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x29, + 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb2, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x29, 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xb3, 0x06, 0x04, 0x2a, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x2a, 0x12, 0x06, 0xb7, 0x06, 0x00, 0xce, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x2a, 0x01, 0x12, 0x04, 0xb7, 0x06, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, + 0x00, 0x05, 0x12, 0x04, 0xb8, 0x06, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x2a, 0x02, 0x00, + 0x12, 0x06, 0xb8, 0x06, 0x02, 0xbb, 0x06, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xb8, 0x06, 0x09, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xb8, 0x06, 0x25, 0x26, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x08, 0x12, + 0x06, 0xb8, 0x06, 0x27, 0xbb, 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2a, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb9, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2a, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xba, 0x06, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2a, 0x02, 0x01, 0x05, 0x12, 0x04, 0xbc, 0x06, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x2a, + 0x02, 0x01, 0x12, 0x06, 0xbc, 0x06, 0x02, 0xbf, 0x06, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, + 0x02, 0x01, 0x01, 0x12, 0x04, 0xbc, 0x06, 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, + 0x01, 0x03, 0x12, 0x04, 0xbc, 0x06, 0x1a, 0x1b, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x01, + 0x08, 0x12, 0x06, 0xbc, 0x06, 0x1c, 0xbf, 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2a, 0x02, + 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbd, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x2a, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xbe, 0x06, 0x04, 0x2a, 0x0a, 0xbf, 0x02, + 0x0a, 0x04, 0x04, 0x2a, 0x08, 0x00, 0x12, 0x06, 0xc4, 0x06, 0x02, 0xcd, 0x06, 0x03, 0x1a, 0xae, + 0x02, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x65, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, + 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c, + 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x41, 0x56, 0x47, 0x2c, 0x20, 0x4d, 0x45, 0x44, 0x49, + 0x41, 0x4e, 0x2c, 0x20, 0x4d, 0x49, 0x4e, 0x2c, 0x20, 0x4d, 0x41, 0x58, 0x2c, 0x20, 0x53, 0x54, + 0x44, 0x45, 0x56, 0x2c, 0x20, 0x53, 0x55, 0x4d, 0x2c, 0x20, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x2c, 0x20, 0x53, 0x49, 0x47, 0x4d, 0x41, 0x2e, 0x0a, 0x20, 0x53, + 0x49, 0x47, 0x4d, 0x41, 0x20, 0x69, 0x73, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x2d, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x3a, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x41, 0x56, 0x47, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x54, 0x44, 0x45, 0x56, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x0a, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x65, 0x69, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x08, 0x00, 0x01, 0x12, 0x04, 0xc4, 0x06, 0x08, 0x12, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x02, 0x06, 0x12, 0x04, 0xc5, 0x06, 0x04, 0x19, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x2a, 0x02, 0x02, 0x12, 0x04, 0xc5, 0x06, 0x04, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2a, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc5, 0x06, 0x1a, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, + 0x02, 0x02, 0x03, 0x12, 0x04, 0xc5, 0x06, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, + 0x03, 0x06, 0x12, 0x04, 0xc6, 0x06, 0x04, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, 0x02, 0x03, + 0x12, 0x04, 0xc6, 0x06, 0x04, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x03, 0x01, 0x12, + 0x04, 0xc6, 0x06, 0x1a, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x03, 0x03, 0x12, 0x04, + 0xc6, 0x06, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x04, 0x06, 0x12, 0x04, 0xc7, + 0x06, 0x04, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, 0x02, 0x04, 0x12, 0x04, 0xc7, 0x06, 0x04, + 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x04, 0x01, 0x12, 0x04, 0xc7, 0x06, 0x1a, 0x1d, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x04, 0x03, 0x12, 0x04, 0xc7, 0x06, 0x20, 0x21, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x05, 0x06, 0x12, 0x04, 0xc8, 0x06, 0x04, 0x19, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x2a, 0x02, 0x05, 0x12, 0x04, 0xc8, 0x06, 0x04, 0x22, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2a, 0x02, 0x05, 0x01, 0x12, 0x04, 0xc8, 0x06, 0x1a, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2a, 0x02, 0x05, 0x03, 0x12, 0x04, 0xc8, 0x06, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, + 0x02, 0x06, 0x06, 0x12, 0x04, 0xc9, 0x06, 0x04, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, 0x02, + 0x06, 0x12, 0x04, 0xc9, 0x06, 0x04, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x06, 0x01, + 0x12, 0x04, 0xc9, 0x06, 0x1a, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x06, 0x03, 0x12, + 0x04, 0xc9, 0x06, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x07, 0x06, 0x12, 0x04, + 0xca, 0x06, 0x04, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, 0x02, 0x07, 0x12, 0x04, 0xca, 0x06, + 0x04, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x07, 0x01, 0x12, 0x04, 0xca, 0x06, 0x1a, + 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x07, 0x03, 0x12, 0x04, 0xca, 0x06, 0x20, 0x21, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x08, 0x06, 0x12, 0x04, 0xcb, 0x06, 0x04, 0x19, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x2a, 0x02, 0x08, 0x12, 0x04, 0xcb, 0x06, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2a, 0x02, 0x08, 0x01, 0x12, 0x04, 0xcb, 0x06, 0x1a, 0x25, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2a, 0x02, 0x08, 0x03, 0x12, 0x04, 0xcb, 0x06, 0x28, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2a, 0x02, 0x09, 0x06, 0x12, 0x04, 0xcc, 0x06, 0x04, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, + 0x02, 0x09, 0x12, 0x04, 0xcc, 0x06, 0x04, 0x51, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x09, + 0x01, 0x12, 0x04, 0xcc, 0x06, 0x1a, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x09, 0x03, + 0x12, 0x04, 0xcc, 0x06, 0x22, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x09, 0x08, 0x12, + 0x04, 0xcc, 0x06, 0x25, 0x50, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2a, 0x02, 0x09, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xcc, 0x06, 0x26, 0x4f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2b, 0x12, 0x06, 0xd0, + 0x06, 0x00, 0xe1, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2b, 0x01, 0x12, 0x04, 0xd0, 0x06, + 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd1, 0x06, 0x02, + 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x00, 0x12, 0x06, 0xd1, 0x06, 0x02, 0xd4, 0x06, + 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd1, 0x06, 0x09, 0x1f, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd1, 0x06, 0x22, 0x23, 0x0a, + 0x0f, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x08, 0x12, 0x06, 0xd1, 0x06, 0x24, 0xd4, 0x06, 0x03, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd2, 0x06, + 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, + 0xd3, 0x06, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd5, + 0x06, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x01, 0x12, 0x06, 0xd5, 0x06, 0x02, + 0xd8, 0x06, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd5, 0x06, + 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd5, 0x06, 0x1a, + 0x1b, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x08, 0x12, 0x06, 0xd5, 0x06, 0x1c, 0xd8, + 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2b, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xd6, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2b, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x01, + 0x12, 0x04, 0xd7, 0x06, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x02, 0x05, 0x12, + 0x04, 0xda, 0x06, 0x02, 0x08, 0x0a, 0x88, 0x01, 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x02, 0x12, 0x04, + 0xda, 0x06, 0x02, 0x41, 0x1a, 0x7a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, + 0x61, 0x74, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x02, 0x01, 0x12, 0x04, 0xda, 0x06, 0x09, 0x13, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x02, 0x03, 0x12, 0x04, 0xda, 0x06, 0x16, 0x17, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x02, 0x08, 0x12, 0x04, 0xda, 0x06, 0x18, 0x40, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x2b, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xda, 0x06, 0x19, 0x3f, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x05, 0x12, 0x04, 0xe0, 0x06, 0x02, 0x08, 0x0a, 0xee, + 0x03, 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x03, 0x12, 0x04, 0xe0, 0x06, 0x02, 0x49, 0x1a, 0xdf, 0x03, + 0x20, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x2f, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, + 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x6e, + 0x65, 0x77, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, + 0x72, 0x79, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x73, + 0x6f, 0x6c, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, + 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2e, 0x0a, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x65, + 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x01, 0x12, 0x04, 0xe0, 0x06, 0x09, 0x1b, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x03, 0x12, 0x04, 0xe0, 0x06, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2b, 0x02, 0x03, 0x08, 0x12, 0x04, 0xe0, 0x06, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x2b, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe0, 0x06, 0x21, 0x47, 0x0a, 0x69, + 0x0a, 0x02, 0x04, 0x2c, 0x12, 0x06, 0xe4, 0x06, 0x00, 0xed, 0x06, 0x01, 0x1a, 0x5b, 0x20, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, + 0x62, 0x65, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x44, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2c, 0x01, + 0x12, 0x04, 0xe4, 0x06, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xea, 0x06, 0x02, 0x08, 0x0a, 0xf8, 0x02, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x00, 0x12, 0x04, + 0xea, 0x06, 0x02, 0x4a, 0x1a, 0xe9, 0x02, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x49, 0x44, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, + 0x72, 0x79, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x73, + 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x0a, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2e, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x27, + 0x73, 0x20, 0x54, 0x2d, 0x30, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x44, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xea, 0x06, 0x09, 0x1c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xea, 0x06, 0x1f, 0x20, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x00, 0x08, 0x12, 0x04, 0xea, 0x06, 0x21, 0x49, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x2c, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xea, 0x06, 0x22, 0x48, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x06, 0x12, 0x04, 0xec, 0x06, 0x02, 0x1a, 0x0a, 0x63, + 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x01, 0x12, 0x04, 0xec, 0x06, 0x02, 0x51, 0x1a, 0x55, 0x20, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x20, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x30, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x01, 0x12, 0x04, 0xec, 0x06, + 0x1b, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x03, 0x12, 0x04, 0xec, 0x06, 0x26, + 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x08, 0x12, 0x04, 0xec, 0x06, 0x28, 0x50, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2c, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xec, 0x06, + 0x29, 0x4f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2d, 0x12, 0x06, 0xef, 0x06, 0x00, 0x8b, 0x07, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2d, 0x01, 0x12, 0x04, 0xef, 0x06, 0x08, 0x17, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2d, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf0, 0x06, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, + 0x04, 0x2d, 0x02, 0x00, 0x12, 0x06, 0xf0, 0x06, 0x02, 0xf3, 0x06, 0x04, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2d, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf0, 0x06, 0x09, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2d, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf0, 0x06, 0x20, 0x21, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x2d, + 0x02, 0x00, 0x08, 0x12, 0x06, 0xf0, 0x06, 0x22, 0xf3, 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x2d, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf1, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x2d, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xf2, 0x06, 0x04, 0x2a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x05, 0x12, 0x04, 0xf4, 0x06, 0x02, 0x08, 0x0a, 0x0e, + 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x01, 0x12, 0x06, 0xf4, 0x06, 0x02, 0xf7, 0x06, 0x04, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf4, 0x06, 0x09, 0x17, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf4, 0x06, 0x1a, 0x1b, 0x0a, 0x0f, 0x0a, 0x05, + 0x04, 0x2d, 0x02, 0x01, 0x08, 0x12, 0x06, 0xf4, 0x06, 0x1c, 0xf7, 0x06, 0x03, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x2d, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf5, 0x06, 0x04, 0x2d, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x2d, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0xf6, 0x06, 0x04, + 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x02, 0x05, 0x12, 0x04, 0xfc, 0x06, 0x02, 0x08, + 0x0a, 0xdd, 0x02, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x02, 0x12, 0x04, 0xfc, 0x06, 0x02, 0x4a, 0x1a, + 0xce, 0x02, 0x20, 0x54, 0x2d, 0x30, 0x20, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0x49, 0x44, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x61, 0x74, 0x20, 0x63, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, + 0x6e, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, + 0x6e, 0x65, 0x77, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, + 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x44, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x02, 0x01, 0x12, 0x04, 0xfc, 0x06, 0x09, 0x1c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x02, 0x03, 0x12, 0x04, 0xfc, 0x06, 0x1f, 0x20, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x02, 0x08, 0x12, 0x04, 0xfc, 0x06, 0x21, 0x49, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x2d, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfc, 0x06, 0x22, 0x48, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x05, 0x12, 0x04, 0xfe, 0x06, 0x02, 0x08, 0x0a, 0x38, + 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x03, 0x12, 0x06, 0xfe, 0x06, 0x02, 0x81, 0x07, 0x04, 0x1a, 0x28, + 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, + 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, + 0x01, 0x12, 0x04, 0xfe, 0x06, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x03, + 0x12, 0x04, 0xfe, 0x06, 0x10, 0x11, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x08, 0x12, + 0x06, 0xfe, 0x06, 0x12, 0x81, 0x07, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2d, 0x02, 0x03, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xff, 0x06, 0x04, 0x2d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2d, 0x02, + 0x03, 0x08, 0x9c, 0x08, 0x01, 0x12, 0x04, 0x80, 0x07, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2d, 0x02, 0x04, 0x04, 0x12, 0x04, 0x85, 0x07, 0x02, 0x0a, 0x0a, 0xb4, 0x01, 0x0a, 0x04, 0x04, + 0x2d, 0x02, 0x04, 0x12, 0x04, 0x85, 0x07, 0x02, 0x50, 0x1a, 0xa5, 0x01, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, + 0x74, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x44, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x61, 0x20, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x54, 0x2d, 0x30, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x30, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x06, 0x12, 0x04, 0x85, 0x07, 0x0b, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x01, 0x12, 0x04, 0x85, 0x07, 0x16, 0x22, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x03, 0x12, 0x04, 0x85, 0x07, 0x25, 0x26, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x08, 0x12, 0x04, 0x85, 0x07, 0x27, 0x4f, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x2d, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x85, 0x07, 0x28, 0x4e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x05, 0x04, 0x12, 0x04, 0x8a, 0x07, 0x02, 0x0a, 0x0a, 0xfc, + 0x02, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x05, 0x12, 0x04, 0x8a, 0x07, 0x02, 0x4e, 0x1a, 0xed, 0x02, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x61, 0x74, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x44, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x61, 0x20, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x54, 0x2d, 0x30, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x30, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2e, + 0x20, 0x48, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x2e, + 0x0a, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x73, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x69, 0x66, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x5f, 0x65, 0x6e, 0x64, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x2e, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3c, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x65, + 0x6e, 0x64, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2d, 0x02, 0x05, 0x06, 0x12, 0x04, 0x8a, 0x07, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2d, 0x02, 0x05, 0x01, 0x12, 0x04, 0x8a, 0x07, 0x16, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2d, 0x02, 0x05, 0x03, 0x12, 0x04, 0x8a, 0x07, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, + 0x02, 0x05, 0x08, 0x12, 0x04, 0x8a, 0x07, 0x25, 0x4d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2d, 0x02, + 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8a, 0x07, 0x26, 0x4c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x2e, 0x12, 0x06, 0x8d, 0x07, 0x00, 0x92, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2e, 0x01, + 0x12, 0x04, 0x8d, 0x07, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x00, 0x06, 0x12, + 0x04, 0x8e, 0x07, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2e, 0x02, 0x00, 0x12, 0x04, 0x8e, + 0x07, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8e, 0x07, + 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x00, 0x03, 0x12, 0x04, 0x8e, 0x07, 0x1b, + 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x00, 0x08, 0x12, 0x04, 0x8e, 0x07, 0x1d, 0x45, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2e, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8e, 0x07, + 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x04, 0x12, 0x04, 0x8f, 0x07, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2e, 0x02, 0x01, 0x12, 0x04, 0x8f, 0x07, 0x02, 0x65, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x06, 0x12, 0x04, 0x8f, 0x07, 0x0b, 0x1f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8f, 0x07, 0x20, 0x37, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2e, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8f, 0x07, 0x3a, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2e, 0x02, 0x01, 0x08, 0x12, 0x04, 0x8f, 0x07, 0x3c, 0x64, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x2e, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8f, 0x07, 0x3d, 0x63, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2e, 0x02, 0x02, 0x04, 0x12, 0x04, 0x90, 0x07, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x2e, 0x02, 0x02, 0x12, 0x04, 0x90, 0x07, 0x02, 0x5f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, + 0x02, 0x02, 0x06, 0x12, 0x04, 0x90, 0x07, 0x0b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, + 0x02, 0x01, 0x12, 0x04, 0x90, 0x07, 0x1d, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x02, + 0x03, 0x12, 0x04, 0x90, 0x07, 0x34, 0x35, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x02, 0x08, + 0x12, 0x04, 0x90, 0x07, 0x36, 0x5e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2e, 0x02, 0x02, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0x90, 0x07, 0x37, 0x5d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x03, + 0x04, 0x12, 0x04, 0x91, 0x07, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2e, 0x02, 0x03, 0x12, + 0x04, 0x91, 0x07, 0x02, 0x5b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x03, 0x06, 0x12, 0x04, + 0x91, 0x07, 0x0b, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x03, 0x01, 0x12, 0x04, 0x91, + 0x07, 0x1b, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x03, 0x03, 0x12, 0x04, 0x91, 0x07, + 0x30, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x03, 0x08, 0x12, 0x04, 0x91, 0x07, 0x32, + 0x5a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2e, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x91, + 0x07, 0x33, 0x59, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2f, 0x12, 0x06, 0x94, 0x07, 0x00, 0x96, 0x07, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2f, 0x01, 0x12, 0x04, 0x94, 0x07, 0x08, 0x1c, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x05, 0x12, 0x04, 0x95, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x2f, 0x02, 0x00, 0x12, 0x04, 0x95, 0x07, 0x02, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2f, 0x02, 0x00, 0x01, 0x12, 0x04, 0x95, 0x07, 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, + 0x02, 0x00, 0x03, 0x12, 0x04, 0x95, 0x07, 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, + 0x00, 0x08, 0x12, 0x04, 0x95, 0x07, 0x1c, 0x44, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2f, 0x02, 0x00, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x95, 0x07, 0x1d, 0x43, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x30, + 0x12, 0x06, 0x98, 0x07, 0x00, 0x9a, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x30, 0x01, 0x12, + 0x04, 0x98, 0x07, 0x08, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x06, 0x12, 0x04, + 0x99, 0x07, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x30, 0x02, 0x00, 0x12, 0x04, 0x99, 0x07, + 0x02, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x01, 0x12, 0x04, 0x99, 0x07, 0x14, + 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x03, 0x12, 0x04, 0x99, 0x07, 0x2a, 0x2b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x08, 0x12, 0x04, 0x99, 0x07, 0x2c, 0x54, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x30, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x99, 0x07, 0x2d, + 0x53, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x31, 0x12, 0x06, 0x9c, 0x07, 0x00, 0x9e, 0x07, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x31, 0x01, 0x12, 0x04, 0x9c, 0x07, 0x08, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x31, 0x02, 0x00, 0x05, 0x12, 0x04, 0x9d, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x31, 0x02, 0x00, 0x12, 0x04, 0x9d, 0x07, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, + 0x00, 0x01, 0x12, 0x04, 0x9d, 0x07, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, + 0x03, 0x12, 0x04, 0x9d, 0x07, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x08, + 0x12, 0x04, 0x9d, 0x07, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x31, 0x02, 0x00, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0x9d, 0x07, 0x20, 0x46, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x32, 0x12, 0x06, + 0xa0, 0x07, 0x00, 0xa2, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x32, 0x01, 0x12, 0x04, 0xa0, + 0x07, 0x08, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x04, 0x12, 0x04, 0xa1, 0x07, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, 0x02, 0x00, 0x12, 0x04, 0xa1, 0x07, 0x02, 0x5f, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x06, 0x12, 0x04, 0xa1, 0x07, 0x0b, 0x1c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa1, 0x07, 0x1d, 0x31, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa1, 0x07, 0x34, 0x35, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x32, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa1, 0x07, 0x36, 0x5e, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x32, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa1, 0x07, 0x37, 0x5d, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x33, 0x12, 0x06, 0xa4, 0x07, 0x00, 0xa7, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x33, 0x01, 0x12, 0x04, 0xa4, 0x07, 0x08, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, + 0x00, 0x04, 0x12, 0x04, 0xa5, 0x07, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x00, + 0x12, 0x04, 0xa5, 0x07, 0x02, 0x4f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xa5, 0x07, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xa5, 0x07, 0x12, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa5, + 0x07, 0x24, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa5, 0x07, + 0x26, 0x4e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x33, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xa5, 0x07, 0x27, 0x4d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, 0x04, 0x12, 0x04, 0xa6, + 0x07, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x01, 0x12, 0x04, 0xa6, 0x07, 0x02, + 0x5b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, 0x06, 0x12, 0x04, 0xa6, 0x07, 0x0b, 0x1a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa6, 0x07, 0x1b, 0x2d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa6, 0x07, 0x30, 0x31, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, 0x08, 0x12, 0x04, 0xa6, 0x07, 0x32, 0x5a, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x33, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa6, 0x07, 0x33, 0x59, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x34, 0x12, 0x06, 0xa9, 0x07, 0x00, 0xad, 0x07, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x34, 0x01, 0x12, 0x04, 0xa9, 0x07, 0x08, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, + 0x02, 0x00, 0x05, 0x12, 0x04, 0xaa, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, + 0x00, 0x12, 0x04, 0xaa, 0x07, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xaa, 0x07, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xaa, 0x07, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x00, 0x08, 0x12, 0x04, + 0xaa, 0x07, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xaa, 0x07, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x06, 0x12, + 0x04, 0xab, 0x07, 0x02, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x01, 0x12, 0x04, 0xab, + 0x07, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x01, 0x12, 0x04, 0xab, 0x07, + 0x10, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x03, 0x12, 0x04, 0xab, 0x07, 0x19, + 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x08, 0x12, 0x04, 0xab, 0x07, 0x1b, 0x43, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xab, 0x07, + 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x04, 0x12, 0x04, 0xac, 0x07, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x02, 0x12, 0x04, 0xac, 0x07, 0x02, 0x57, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x06, 0x12, 0x04, 0xac, 0x07, 0x0b, 0x1c, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x01, 0x12, 0x04, 0xac, 0x07, 0x1d, 0x29, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x34, 0x02, 0x02, 0x03, 0x12, 0x04, 0xac, 0x07, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x34, 0x02, 0x02, 0x08, 0x12, 0x04, 0xac, 0x07, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x34, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xac, 0x07, 0x2f, 0x55, 0x0a, 0x0c, 0x0a, + 0x02, 0x04, 0x35, 0x12, 0x06, 0xaf, 0x07, 0x00, 0xb1, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x35, 0x01, 0x12, 0x04, 0xaf, 0x07, 0x08, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, 0x00, + 0x05, 0x12, 0x04, 0xb0, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x35, 0x02, 0x00, 0x12, + 0x04, 0xb0, 0x07, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xb0, 0x07, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb0, + 0x07, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb0, 0x07, + 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x35, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xb0, 0x07, 0x18, 0x3e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x36, 0x12, 0x06, 0xb3, 0x07, 0x00, 0xb5, + 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x36, 0x01, 0x12, 0x04, 0xb3, 0x07, 0x08, 0x29, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x36, 0x02, 0x00, 0x04, 0x12, 0x04, 0xb4, 0x07, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x36, 0x02, 0x00, 0x12, 0x04, 0xb4, 0x07, 0x02, 0x5f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x36, 0x02, 0x00, 0x06, 0x12, 0x04, 0xb4, 0x07, 0x0b, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x36, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb4, 0x07, 0x20, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x36, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xb4, 0x07, 0x34, 0x35, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x36, 0x02, + 0x00, 0x08, 0x12, 0x04, 0xb4, 0x07, 0x36, 0x5e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x36, 0x02, 0x00, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb4, 0x07, 0x37, 0x5d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x37, + 0x12, 0x06, 0xb7, 0x07, 0x00, 0xbb, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x37, 0x01, 0x12, + 0x04, 0xb7, 0x07, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x05, 0x12, 0x04, + 0xb8, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x37, 0x02, 0x00, 0x12, 0x04, 0xb8, 0x07, + 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb8, 0x07, 0x09, + 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb8, 0x07, 0x13, 0x14, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb8, 0x07, 0x15, 0x3d, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x37, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb8, 0x07, 0x16, + 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb9, 0x07, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x37, 0x02, 0x01, 0x12, 0x04, 0xb9, 0x07, 0x02, 0x3b, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x37, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb9, 0x07, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x37, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb9, 0x07, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x37, 0x02, 0x01, 0x08, 0x12, 0x04, 0xb9, 0x07, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x37, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb9, 0x07, 0x13, 0x39, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x37, 0x02, 0x02, 0x06, 0x12, 0x04, 0xba, 0x07, 0x02, 0x23, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x37, 0x02, 0x02, 0x12, 0x04, 0xba, 0x07, 0x02, 0x60, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, + 0x02, 0x02, 0x01, 0x12, 0x04, 0xba, 0x07, 0x24, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, + 0x02, 0x03, 0x12, 0x04, 0xba, 0x07, 0x35, 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x02, + 0x08, 0x12, 0x04, 0xba, 0x07, 0x37, 0x5f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x37, 0x02, 0x02, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xba, 0x07, 0x38, 0x5e, 0x0a, 0x65, 0x0a, 0x02, 0x04, 0x38, 0x12, + 0x06, 0xbe, 0x07, 0x00, 0xc2, 0x07, 0x01, 0x1a, 0x57, 0x20, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x20, 0x72, 0x65, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x20, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x44, 0x2e, 0x0a, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x38, 0x01, 0x12, 0x04, 0xbe, 0x07, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x38, 0x02, 0x00, 0x05, 0x12, 0x04, 0xbf, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x38, 0x02, 0x00, 0x12, 0x04, 0xbf, 0x07, 0x02, 0x4c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x38, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xbf, 0x07, 0x09, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x38, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xbf, 0x07, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x38, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xbf, 0x07, 0x23, 0x4b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x38, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbf, 0x07, 0x24, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x38, 0x02, + 0x01, 0x06, 0x12, 0x04, 0xc1, 0x07, 0x02, 0x1a, 0x0a, 0x63, 0x0a, 0x04, 0x04, 0x38, 0x02, 0x01, + 0x12, 0x04, 0xc1, 0x07, 0x02, 0x51, 0x1a, 0x55, 0x20, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x30, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x38, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc1, 0x07, 0x1b, 0x23, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x38, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc1, 0x07, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x38, 0x02, 0x01, 0x08, 0x12, 0x04, 0xc1, 0x07, 0x28, 0x50, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x38, + 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc1, 0x07, 0x29, 0x4f, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x39, 0x12, 0x06, 0xc3, 0x07, 0x00, 0xc7, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x39, + 0x01, 0x12, 0x04, 0xc3, 0x07, 0x08, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x05, + 0x12, 0x04, 0xc4, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x39, 0x02, 0x00, 0x12, 0x04, + 0xc4, 0x07, 0x02, 0x4c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc4, + 0x07, 0x09, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc4, 0x07, + 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc4, 0x07, 0x23, + 0x4b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x39, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc4, + 0x07, 0x24, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x01, 0x06, 0x12, 0x04, 0xc5, 0x07, + 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x39, 0x02, 0x01, 0x12, 0x04, 0xc5, 0x07, 0x02, 0x4f, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc5, 0x07, 0x15, 0x21, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc5, 0x07, 0x24, 0x25, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x39, 0x02, 0x01, 0x08, 0x12, 0x04, 0xc5, 0x07, 0x26, 0x4e, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x39, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc5, 0x07, 0x27, 0x4d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x02, 0x06, 0x12, 0x04, 0xc6, 0x07, 0x02, 0x14, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x39, 0x02, 0x02, 0x12, 0x04, 0xc6, 0x07, 0x02, 0x4d, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x39, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc6, 0x07, 0x15, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x39, 0x02, 0x02, 0x03, 0x12, 0x04, 0xc6, 0x07, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, + 0x02, 0x02, 0x08, 0x12, 0x04, 0xc6, 0x07, 0x24, 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x39, 0x02, + 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc6, 0x07, 0x25, 0x4b, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x3a, 0x12, 0x06, 0xc9, 0x07, 0x00, 0xcb, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3a, 0x01, + 0x12, 0x04, 0xc9, 0x07, 0x08, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xca, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3a, 0x02, 0x00, 0x12, 0x04, 0xca, + 0x07, 0x02, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x00, 0x01, 0x12, 0x04, 0xca, 0x07, + 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x00, 0x03, 0x12, 0x04, 0xca, 0x07, 0x10, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x00, 0x08, 0x12, 0x04, 0xca, 0x07, 0x12, 0x3a, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3a, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xca, 0x07, + 0x13, 0x39, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x3b, 0x12, 0x06, 0xcd, 0x07, 0x00, 0xcf, 0x07, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3b, 0x01, 0x12, 0x04, 0xcd, 0x07, 0x08, 0x25, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x3b, 0x02, 0x00, 0x05, 0x12, 0x04, 0xce, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x3b, 0x02, 0x00, 0x12, 0x04, 0xce, 0x07, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xce, 0x07, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xce, 0x07, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xce, 0x07, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3b, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xce, 0x07, 0x20, 0x46, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x3c, 0x12, + 0x06, 0xd1, 0x07, 0x00, 0xd4, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3c, 0x01, 0x12, 0x04, + 0xd1, 0x07, 0x08, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3c, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd2, + 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3c, 0x02, 0x00, 0x12, 0x04, 0xd2, 0x07, 0x02, + 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd2, 0x07, 0x09, 0x12, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd2, 0x07, 0x15, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x3c, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd2, 0x07, 0x17, 0x3f, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x3c, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd2, 0x07, 0x18, 0x3e, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3c, 0x02, 0x01, 0x04, 0x12, 0x04, 0xd3, 0x07, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x3c, 0x02, 0x01, 0x12, 0x04, 0xd3, 0x07, 0x02, 0x51, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x3c, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd3, 0x07, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x3c, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd3, 0x07, 0x12, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x3c, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd3, 0x07, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3c, + 0x02, 0x01, 0x08, 0x12, 0x04, 0xd3, 0x07, 0x28, 0x50, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3c, 0x02, + 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd3, 0x07, 0x29, 0x4f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x3d, 0x12, 0x06, 0xd6, 0x07, 0x00, 0xd8, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3d, 0x01, + 0x12, 0x04, 0xd6, 0x07, 0x08, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xd7, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3d, 0x02, 0x00, 0x12, 0x04, 0xd7, + 0x07, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd7, 0x07, + 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd7, 0x07, 0x1d, + 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd7, 0x07, 0x1f, 0x47, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3d, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd7, 0x07, + 0x20, 0x46, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x3e, 0x12, 0x06, 0xda, 0x07, 0x00, 0xdc, 0x07, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3e, 0x01, 0x12, 0x04, 0xda, 0x07, 0x08, 0x2a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x3e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xdb, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x3e, 0x02, 0x00, 0x12, 0x04, 0xdb, 0x07, 0x02, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xdb, 0x07, 0x09, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xdb, 0x07, 0x11, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xdb, 0x07, 0x13, 0x3b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3e, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdb, 0x07, 0x14, 0x3a, 0x0a, 0x8f, 0x05, 0x0a, 0x02, 0x04, 0x3f, + 0x12, 0x06, 0xea, 0x07, 0x00, 0x88, 0x08, 0x01, 0x1a, 0x80, 0x05, 0x20, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x60, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x60, 0x2e, + 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x43, 0x45, 0x4c, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x70, 0x6c, 0x75, 0x73, 0x20, 0x61, + 0x6e, 0x0a, 0x20, 0x60, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x60, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2e, + 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3b, 0x20, 0x70, 0x61, 0x73, 0x73, 0x0a, 0x20, 0x60, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x20, + 0x3d, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x2e, 0x0a, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x60, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x60, 0x20, 0x69, 0x73, 0x20, 0x73, 0x65, + 0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x61, + 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x0a, 0x20, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x27, 0x73, 0x20, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x20, 0x28, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x29, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x79, 0x65, 0x74, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x20, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, + 0x0a, 0x20, 0x75, 0x6e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x64, 0x72, 0x61, 0x66, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x68, 0x69, 0x70, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6f, 0x6d, 0x69, 0x74, + 0x20, 0x60, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x60, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x0a, 0x20, 0x6f, 0x77, + 0x6e, 0x20, 0x64, 0x72, 0x61, 0x66, 0x74, 0x2d, 0x61, 0x77, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x72, + 0x61, 0x66, 0x74, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x3f, 0x01, 0x12, 0x04, 0xea, 0x07, 0x08, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x00, + 0x05, 0x12, 0x04, 0xef, 0x07, 0x02, 0x08, 0x0a, 0xdf, 0x01, 0x0a, 0x04, 0x04, 0x3f, 0x02, 0x00, + 0x12, 0x04, 0xef, 0x07, 0x02, 0x40, 0x1a, 0xd0, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x72, 0x75, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x0a, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, + 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, + 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x35, 0x30, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, + 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, + 0x00, 0x01, 0x12, 0x04, 0xef, 0x07, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x00, + 0x03, 0x12, 0x04, 0xef, 0x07, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x00, 0x08, + 0x12, 0x04, 0xef, 0x07, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3f, 0x02, 0x00, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xef, 0x07, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x01, + 0x05, 0x12, 0x04, 0xf5, 0x07, 0x02, 0x08, 0x0a, 0xcf, 0x01, 0x0a, 0x04, 0x04, 0x3f, 0x02, 0x01, + 0x12, 0x04, 0xf5, 0x07, 0x02, 0x41, 0x1a, 0xc0, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, + 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, + 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, + 0x01, 0x01, 0x12, 0x04, 0xf5, 0x07, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x01, + 0x03, 0x12, 0x04, 0xf5, 0x07, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x01, 0x08, + 0x12, 0x04, 0xf5, 0x07, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3f, 0x02, 0x01, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xf5, 0x07, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x02, + 0x05, 0x12, 0x04, 0xfd, 0x07, 0x02, 0x08, 0x0a, 0xf3, 0x03, 0x0a, 0x04, 0x04, 0x3f, 0x02, 0x02, + 0x12, 0x04, 0xfd, 0x07, 0x02, 0x3d, 0x1a, 0xe4, 0x03, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, + 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, + 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x2e, 0x0a, 0x20, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x70, 0x6c, 0x75, 0x73, 0x20, 0x60, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2e, 0x0a, + 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x60, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2c, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x20, + 0x72, 0x75, 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x64, 0x20, 0x62, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x0a, 0x20, 0x53, + 0x65, 0x74, 0x20, 0x60, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x20, + 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x0a, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, 0x60, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x61, + 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x0a, 0x20, 0x28, + 0x6f, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x74, 0x6f, 0x70, 0x2d, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x29, + 0x2e, 0x20, 0x49, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x4f, 0x52, + 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x3f, 0x02, 0x02, 0x01, 0x12, 0x04, 0xfd, 0x07, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x3f, 0x02, 0x02, 0x03, 0x12, 0x04, 0xfd, 0x07, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x3f, 0x02, 0x02, 0x08, 0x12, 0x04, 0xfd, 0x07, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3f, + 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfd, 0x07, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x3f, 0x02, 0x03, 0x05, 0x12, 0x04, 0x82, 0x08, 0x02, 0x08, 0x0a, 0xc6, 0x02, 0x0a, 0x04, + 0x04, 0x3f, 0x02, 0x03, 0x12, 0x04, 0x82, 0x08, 0x02, 0x3f, 0x1a, 0xb7, 0x02, 0x20, 0x48, 0x6f, + 0x77, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x2e, 0x20, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x22, 0x46, 0x49, 0x45, 0x4c, 0x44, + 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x5d, 0x2c, 0x2e, 0x2e, 0x2e, + 0x22, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, + 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, + 0x6c, 0x65, 0x66, 0x74, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, + 0x69, 0x6e, 0x20, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x28, 0x6e, 0x65, 0x77, 0x65, 0x73, 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x03, 0x01, 0x12, 0x04, 0x82, + 0x08, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x03, 0x03, 0x12, 0x04, 0x82, 0x08, + 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x03, 0x08, 0x12, 0x04, 0x82, 0x08, 0x16, + 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3f, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x82, + 0x08, 0x17, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x04, 0x05, 0x12, 0x04, 0x87, 0x08, + 0x02, 0x08, 0x0a, 0xfc, 0x01, 0x0a, 0x04, 0x04, 0x3f, 0x02, 0x04, 0x12, 0x04, 0x87, 0x08, 0x02, + 0x40, 0x1a, 0xed, 0x01, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x49, 0x44, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, + 0x64, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x27, 0x73, 0x20, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x73, + 0x65, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x2e, 0x0a, 0x20, 0x4f, 0x6d, 0x69, 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, + 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x64, 0x72, 0x61, 0x66, 0x74, 0x20, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x04, 0x01, 0x12, 0x04, 0x87, 0x08, 0x09, 0x12, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x04, 0x03, 0x12, 0x04, 0x87, 0x08, 0x15, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x04, 0x08, 0x12, 0x04, 0x87, 0x08, 0x17, 0x3f, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x3f, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x87, 0x08, 0x18, 0x3e, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x40, 0x12, 0x06, 0x89, 0x08, 0x00, 0x8c, 0x08, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x40, 0x01, 0x12, 0x04, 0x89, 0x08, 0x08, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x40, 0x02, 0x00, 0x04, 0x12, 0x04, 0x8a, 0x08, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x40, + 0x02, 0x00, 0x12, 0x04, 0x8a, 0x08, 0x02, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x00, + 0x06, 0x12, 0x04, 0x8a, 0x08, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x00, 0x01, + 0x12, 0x04, 0x8a, 0x08, 0x1c, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x00, 0x03, 0x12, + 0x04, 0x8a, 0x08, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x00, 0x08, 0x12, 0x04, + 0x8a, 0x08, 0x25, 0x4d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x40, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0x8a, 0x08, 0x26, 0x4c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x01, 0x05, 0x12, + 0x04, 0x8b, 0x08, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x40, 0x02, 0x01, 0x12, 0x04, 0x8b, + 0x08, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8b, 0x08, + 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8b, 0x08, 0x1b, + 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x41, 0x12, 0x06, 0x8e, 0x08, 0x00, 0x8f, 0x08, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x41, 0x01, 0x12, 0x04, 0x8e, 0x08, 0x08, 0x30, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x42, 0x12, 0x06, 0x91, 0x08, 0x00, 0x93, 0x08, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x42, + 0x01, 0x12, 0x04, 0x91, 0x08, 0x08, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x00, 0x04, + 0x12, 0x04, 0x92, 0x08, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x42, 0x02, 0x00, 0x12, 0x04, + 0x92, 0x08, 0x02, 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x00, 0x06, 0x12, 0x04, 0x92, + 0x08, 0x0b, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x00, 0x01, 0x12, 0x04, 0x92, 0x08, + 0x26, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x00, 0x03, 0x12, 0x04, 0x92, 0x08, 0x36, + 0x37, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +]; +include!("sift.families.v1.tonic.rs"); +include!("sift.families.v1.serde.rs"); +// @@protoc_insertion_point(module) \ No newline at end of file diff --git a/rust/crates/sift_rs/src/gen/sift/families/v1/sift.families.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift/families/v1/sift.families.v1.serde.rs new file mode 100644 index 0000000000..92e4ba243e --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift/families/v1/sift.families.v1.serde.rs @@ -0,0 +1,8718 @@ +// @generated +impl serde::Serialize for AbstractWindowType { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_alignment_name.is_empty() { + len += 1; + } + if self.duration.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.AbstractWindowType", len)?; + if !self.family_alignment_name.is_empty() { + struct_ser.serialize_field("familyAlignmentName", &self.family_alignment_name)?; + } + if let Some(v) = self.duration.as_ref() { + struct_ser.serialize_field("duration", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for AbstractWindowType { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_alignment_name", + "familyAlignmentName", + "duration", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyAlignmentName, + Duration, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyAlignmentName" | "family_alignment_name" => Ok(GeneratedField::FamilyAlignmentName), + "duration" => Ok(GeneratedField::Duration), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AbstractWindowType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.AbstractWindowType") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_alignment_name__ = None; + let mut duration__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyAlignmentName => { + if family_alignment_name__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignmentName")); + } + family_alignment_name__ = Some(map_.next_value()?); + } + GeneratedField::Duration => { + if duration__.is_some() { + return Err(serde::de::Error::duplicate_field("duration")); + } + duration__ = map_.next_value()?; + } + } + } + Ok(AbstractWindowType { + family_alignment_name: family_alignment_name__.unwrap_or_default(), + duration: duration__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.AbstractWindowType", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for AnnotationAlignment { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.annotation_id.is_empty() { + len += 1; + } + if self.bound != 0 { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.AnnotationAlignment", len)?; + if !self.annotation_id.is_empty() { + struct_ser.serialize_field("annotationId", &self.annotation_id)?; + } + if self.bound != 0 { + let v = TimeRangeBound::try_from(self.bound) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.bound)))?; + struct_ser.serialize_field("bound", &v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for AnnotationAlignment { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "annotation_id", + "annotationId", + "bound", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + AnnotationId, + Bound, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "annotationId" | "annotation_id" => Ok(GeneratedField::AnnotationId), + "bound" => Ok(GeneratedField::Bound), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AnnotationAlignment; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.AnnotationAlignment") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut annotation_id__ = None; + let mut bound__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::AnnotationId => { + if annotation_id__.is_some() { + return Err(serde::de::Error::duplicate_field("annotationId")); + } + annotation_id__ = Some(map_.next_value()?); + } + GeneratedField::Bound => { + if bound__.is_some() { + return Err(serde::de::Error::duplicate_field("bound")); + } + bound__ = Some(map_.next_value::()? as i32); + } + } + } + Ok(AnnotationAlignment { + annotation_id: annotation_id__.unwrap_or_default(), + bound: bound__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.AnnotationAlignment", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for AnnotationOccurrence { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "ANNOTATION_OCCURRENCE_UNSPECIFIED", + Self::First => "ANNOTATION_OCCURRENCE_FIRST", + Self::Last => "ANNOTATION_OCCURRENCE_LAST", + Self::Every => "ANNOTATION_OCCURRENCE_EVERY", + Self::Nth => "ANNOTATION_OCCURRENCE_NTH", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for AnnotationOccurrence { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "ANNOTATION_OCCURRENCE_UNSPECIFIED", + "ANNOTATION_OCCURRENCE_FIRST", + "ANNOTATION_OCCURRENCE_LAST", + "ANNOTATION_OCCURRENCE_EVERY", + "ANNOTATION_OCCURRENCE_NTH", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AnnotationOccurrence; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "ANNOTATION_OCCURRENCE_UNSPECIFIED" => Ok(AnnotationOccurrence::Unspecified), + "ANNOTATION_OCCURRENCE_FIRST" => Ok(AnnotationOccurrence::First), + "ANNOTATION_OCCURRENCE_LAST" => Ok(AnnotationOccurrence::Last), + "ANNOTATION_OCCURRENCE_EVERY" => Ok(AnnotationOccurrence::Every), + "ANNOTATION_OCCURRENCE_NTH" => Ok(AnnotationOccurrence::Nth), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for CreateFamilyRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.family.is_some() { + len += 1; + } + if self.family_version.is_some() { + len += 1; + } + if !self.family_runs.is_empty() { + len += 1; + } + if !self.family_alignments.is_empty() { + len += 1; + } + if !self.family_stats.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.CreateFamilyRequest", len)?; + if let Some(v) = self.family.as_ref() { + struct_ser.serialize_field("family", v)?; + } + if let Some(v) = self.family_version.as_ref() { + struct_ser.serialize_field("familyVersion", v)?; + } + if !self.family_runs.is_empty() { + struct_ser.serialize_field("familyRuns", &self.family_runs)?; + } + if !self.family_alignments.is_empty() { + struct_ser.serialize_field("familyAlignments", &self.family_alignments)?; + } + if !self.family_stats.is_empty() { + struct_ser.serialize_field("familyStats", &self.family_stats)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreateFamilyRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family", + "family_version", + "familyVersion", + "family_runs", + "familyRuns", + "family_alignments", + "familyAlignments", + "family_stats", + "familyStats", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Family, + FamilyVersion, + FamilyRuns, + FamilyAlignments, + FamilyStats, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "family" => Ok(GeneratedField::Family), + "familyVersion" | "family_version" => Ok(GeneratedField::FamilyVersion), + "familyRuns" | "family_runs" => Ok(GeneratedField::FamilyRuns), + "familyAlignments" | "family_alignments" => Ok(GeneratedField::FamilyAlignments), + "familyStats" | "family_stats" => Ok(GeneratedField::FamilyStats), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreateFamilyRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.CreateFamilyRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family__ = None; + let mut family_version__ = None; + let mut family_runs__ = None; + let mut family_alignments__ = None; + let mut family_stats__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Family => { + if family__.is_some() { + return Err(serde::de::Error::duplicate_field("family")); + } + family__ = map_.next_value()?; + } + GeneratedField::FamilyVersion => { + if family_version__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersion")); + } + family_version__ = map_.next_value()?; + } + GeneratedField::FamilyRuns => { + if family_runs__.is_some() { + return Err(serde::de::Error::duplicate_field("familyRuns")); + } + family_runs__ = Some(map_.next_value()?); + } + GeneratedField::FamilyAlignments => { + if family_alignments__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignments")); + } + family_alignments__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStats => { + if family_stats__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStats")); + } + family_stats__ = Some(map_.next_value()?); + } + } + } + Ok(CreateFamilyRequest { + family: family__, + family_version: family_version__, + family_runs: family_runs__.unwrap_or_default(), + family_alignments: family_alignments__.unwrap_or_default(), + family_stats: family_stats__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.CreateFamilyRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for CreateFamilyResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_id.is_empty() { + len += 1; + } + if self.family.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.CreateFamilyResponse", len)?; + if !self.family_id.is_empty() { + struct_ser.serialize_field("familyId", &self.family_id)?; + } + if let Some(v) = self.family.as_ref() { + struct_ser.serialize_field("family", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreateFamilyResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_id", + "familyId", + "family", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyId, + Family, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + "family" => Ok(GeneratedField::Family), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreateFamilyResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.CreateFamilyResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_id__ = None; + let mut family__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyId => { + if family_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_id__ = Some(map_.next_value()?); + } + GeneratedField::Family => { + if family__.is_some() { + return Err(serde::de::Error::duplicate_field("family")); + } + family__ = map_.next_value()?; + } + } + } + Ok(CreateFamilyResponse { + family_id: family_id__.unwrap_or_default(), + family: family__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.CreateFamilyResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for CreateFamilyStatRangesRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_stat_ids.is_empty() { + len += 1; + } + if !self.family_stat_ranges.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.CreateFamilyStatRangesRequest", len)?; + if !self.family_stat_ids.is_empty() { + struct_ser.serialize_field("familyStatIds", &self.family_stat_ids)?; + } + if !self.family_stat_ranges.is_empty() { + struct_ser.serialize_field("familyStatRanges", &self.family_stat_ranges)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreateFamilyStatRangesRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_stat_ids", + "familyStatIds", + "family_stat_ranges", + "familyStatRanges", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyStatIds, + FamilyStatRanges, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyStatIds" | "family_stat_ids" => Ok(GeneratedField::FamilyStatIds), + "familyStatRanges" | "family_stat_ranges" => Ok(GeneratedField::FamilyStatRanges), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreateFamilyStatRangesRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.CreateFamilyStatRangesRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_stat_ids__ = None; + let mut family_stat_ranges__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyStatIds => { + if family_stat_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatIds")); + } + family_stat_ids__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStatRanges => { + if family_stat_ranges__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatRanges")); + } + family_stat_ranges__ = Some(map_.next_value()?); + } + } + } + Ok(CreateFamilyStatRangesRequest { + family_stat_ids: family_stat_ids__.unwrap_or_default(), + family_stat_ranges: family_stat_ranges__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.CreateFamilyStatRangesRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for CreateFamilyStatRangesResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_version_id.is_empty() { + len += 1; + } + if self.family.is_some() { + len += 1; + } + if !self.family_stats.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.CreateFamilyStatRangesResponse", len)?; + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + if let Some(v) = self.family.as_ref() { + struct_ser.serialize_field("family", v)?; + } + if !self.family_stats.is_empty() { + struct_ser.serialize_field("familyStats", &self.family_stats)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CreateFamilyStatRangesResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_version_id", + "familyVersionId", + "family", + "family_stats", + "familyStats", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyVersionId, + Family, + FamilyStats, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + "family" => Ok(GeneratedField::Family), + "familyStats" | "family_stats" => Ok(GeneratedField::FamilyStats), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CreateFamilyStatRangesResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.CreateFamilyStatRangesResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_version_id__ = None; + let mut family__ = None; + let mut family_stats__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + GeneratedField::Family => { + if family__.is_some() { + return Err(serde::de::Error::duplicate_field("family")); + } + family__ = map_.next_value()?; + } + GeneratedField::FamilyStats => { + if family_stats__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStats")); + } + family_stats__ = Some(map_.next_value()?); + } + } + } + Ok(CreateFamilyStatRangesResponse { + family_version_id: family_version_id__.unwrap_or_default(), + family: family__, + family_stats: family_stats__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.CreateFamilyStatRangesResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DefaultAnnotationAlignment { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.annotation_name.is_empty() { + len += 1; + } + if self.bound != 0 { + len += 1; + } + if self.occurrence != 0 { + len += 1; + } + if self.occurrence_index != 0 { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.DefaultAnnotationAlignment", len)?; + if !self.annotation_name.is_empty() { + struct_ser.serialize_field("annotationName", &self.annotation_name)?; + } + if self.bound != 0 { + let v = TimeRangeBound::try_from(self.bound) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.bound)))?; + struct_ser.serialize_field("bound", &v)?; + } + if self.occurrence != 0 { + let v = AnnotationOccurrence::try_from(self.occurrence) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.occurrence)))?; + struct_ser.serialize_field("occurrence", &v)?; + } + if self.occurrence_index != 0 { + struct_ser.serialize_field("occurrenceIndex", &self.occurrence_index)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DefaultAnnotationAlignment { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "annotation_name", + "annotationName", + "bound", + "occurrence", + "occurrence_index", + "occurrenceIndex", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + AnnotationName, + Bound, + Occurrence, + OccurrenceIndex, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "annotationName" | "annotation_name" => Ok(GeneratedField::AnnotationName), + "bound" => Ok(GeneratedField::Bound), + "occurrence" => Ok(GeneratedField::Occurrence), + "occurrenceIndex" | "occurrence_index" => Ok(GeneratedField::OccurrenceIndex), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DefaultAnnotationAlignment; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.DefaultAnnotationAlignment") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut annotation_name__ = None; + let mut bound__ = None; + let mut occurrence__ = None; + let mut occurrence_index__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::AnnotationName => { + if annotation_name__.is_some() { + return Err(serde::de::Error::duplicate_field("annotationName")); + } + annotation_name__ = Some(map_.next_value()?); + } + GeneratedField::Bound => { + if bound__.is_some() { + return Err(serde::de::Error::duplicate_field("bound")); + } + bound__ = Some(map_.next_value::()? as i32); + } + GeneratedField::Occurrence => { + if occurrence__.is_some() { + return Err(serde::de::Error::duplicate_field("occurrence")); + } + occurrence__ = Some(map_.next_value::()? as i32); + } + GeneratedField::OccurrenceIndex => { + if occurrence_index__.is_some() { + return Err(serde::de::Error::duplicate_field("occurrenceIndex")); + } + occurrence_index__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + } + } + Ok(DefaultAnnotationAlignment { + annotation_name: annotation_name__.unwrap_or_default(), + bound: bound__.unwrap_or_default(), + occurrence: occurrence__.unwrap_or_default(), + occurrence_index: occurrence_index__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.DefaultAnnotationAlignment", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ExportFamilyRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.family_identifier.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ExportFamilyRequest", len)?; + if let Some(v) = self.family_identifier.as_ref() { + match v { + export_family_request::FamilyIdentifier::FamilyId(v) => { + struct_ser.serialize_field("familyId", v)?; + } + export_family_request::FamilyIdentifier::ClientKey(v) => { + struct_ser.serialize_field("clientKey", v)?; + } + export_family_request::FamilyIdentifier::FamilyVersionId(v) => { + struct_ser.serialize_field("familyVersionId", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ExportFamilyRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_id", + "familyId", + "client_key", + "clientKey", + "family_version_id", + "familyVersionId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyId, + ClientKey, + FamilyVersionId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + "clientKey" | "client_key" => Ok(GeneratedField::ClientKey), + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ExportFamilyRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ExportFamilyRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_identifier__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyId => { + if family_identifier__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_identifier__ = map_.next_value::<::std::option::Option<_>>()?.map(export_family_request::FamilyIdentifier::FamilyId); + } + GeneratedField::ClientKey => { + if family_identifier__.is_some() { + return Err(serde::de::Error::duplicate_field("clientKey")); + } + family_identifier__ = map_.next_value::<::std::option::Option<_>>()?.map(export_family_request::FamilyIdentifier::ClientKey); + } + GeneratedField::FamilyVersionId => { + if family_identifier__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_identifier__ = map_.next_value::<::std::option::Option<_>>()?.map(export_family_request::FamilyIdentifier::FamilyVersionId); + } + } + } + Ok(ExportFamilyRequest { + family_identifier: family_identifier__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ExportFamilyRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ExportFamilyResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.exported_family.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ExportFamilyResponse", len)?; + if !self.exported_family.is_empty() { + struct_ser.serialize_field("exportedFamily", &self.exported_family)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ExportFamilyResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "exported_family", + "exportedFamily", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + ExportedFamily, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "exportedFamily" | "exported_family" => Ok(GeneratedField::ExportedFamily), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ExportFamilyResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ExportFamilyResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut exported_family__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::ExportedFamily => { + if exported_family__.is_some() { + return Err(serde::de::Error::duplicate_field("exportedFamily")); + } + exported_family__ = Some(map_.next_value()?); + } + } + } + Ok(ExportFamilyResponse { + exported_family: exported_family__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ExportFamilyResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Family { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_id.is_empty() { + len += 1; + } + if !self.client_key.is_empty() { + len += 1; + } + if !self.current_version_id.is_empty() { + len += 1; + } + if self.is_archived { + len += 1; + } + if self.created_date.is_some() { + len += 1; + } + if self.modified_date.is_some() { + len += 1; + } + if self.archived_date.is_some() { + len += 1; + } + if !self.created_by_user_id.is_empty() { + len += 1; + } + if !self.modified_by_user_id.is_empty() { + len += 1; + } + if !self.organization_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.Family", len)?; + if !self.family_id.is_empty() { + struct_ser.serialize_field("familyId", &self.family_id)?; + } + if !self.client_key.is_empty() { + struct_ser.serialize_field("clientKey", &self.client_key)?; + } + if !self.current_version_id.is_empty() { + struct_ser.serialize_field("currentVersionId", &self.current_version_id)?; + } + if self.is_archived { + struct_ser.serialize_field("isArchived", &self.is_archived)?; + } + if let Some(v) = self.created_date.as_ref() { + struct_ser.serialize_field("createdDate", v)?; + } + if let Some(v) = self.modified_date.as_ref() { + struct_ser.serialize_field("modifiedDate", v)?; + } + if let Some(v) = self.archived_date.as_ref() { + struct_ser.serialize_field("archivedDate", v)?; + } + if !self.created_by_user_id.is_empty() { + struct_ser.serialize_field("createdByUserId", &self.created_by_user_id)?; + } + if !self.modified_by_user_id.is_empty() { + struct_ser.serialize_field("modifiedByUserId", &self.modified_by_user_id)?; + } + if !self.organization_id.is_empty() { + struct_ser.serialize_field("organizationId", &self.organization_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Family { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_id", + "familyId", + "client_key", + "clientKey", + "current_version_id", + "currentVersionId", + "is_archived", + "isArchived", + "created_date", + "createdDate", + "modified_date", + "modifiedDate", + "archived_date", + "archivedDate", + "created_by_user_id", + "createdByUserId", + "modified_by_user_id", + "modifiedByUserId", + "organization_id", + "organizationId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyId, + ClientKey, + CurrentVersionId, + IsArchived, + CreatedDate, + ModifiedDate, + ArchivedDate, + CreatedByUserId, + ModifiedByUserId, + OrganizationId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + "clientKey" | "client_key" => Ok(GeneratedField::ClientKey), + "currentVersionId" | "current_version_id" => Ok(GeneratedField::CurrentVersionId), + "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), + "createdDate" | "created_date" => Ok(GeneratedField::CreatedDate), + "modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate), + "archivedDate" | "archived_date" => Ok(GeneratedField::ArchivedDate), + "createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId), + "modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId), + "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Family; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.Family") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_id__ = None; + let mut client_key__ = None; + let mut current_version_id__ = None; + let mut is_archived__ = None; + let mut created_date__ = None; + let mut modified_date__ = None; + let mut archived_date__ = None; + let mut created_by_user_id__ = None; + let mut modified_by_user_id__ = None; + let mut organization_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyId => { + if family_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_id__ = Some(map_.next_value()?); + } + GeneratedField::ClientKey => { + if client_key__.is_some() { + return Err(serde::de::Error::duplicate_field("clientKey")); + } + client_key__ = Some(map_.next_value()?); + } + GeneratedField::CurrentVersionId => { + if current_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("currentVersionId")); + } + current_version_id__ = Some(map_.next_value()?); + } + GeneratedField::IsArchived => { + if is_archived__.is_some() { + return Err(serde::de::Error::duplicate_field("isArchived")); + } + is_archived__ = Some(map_.next_value()?); + } + GeneratedField::CreatedDate => { + if created_date__.is_some() { + return Err(serde::de::Error::duplicate_field("createdDate")); + } + created_date__ = map_.next_value()?; + } + GeneratedField::ModifiedDate => { + if modified_date__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedDate")); + } + modified_date__ = map_.next_value()?; + } + GeneratedField::ArchivedDate => { + if archived_date__.is_some() { + return Err(serde::de::Error::duplicate_field("archivedDate")); + } + archived_date__ = map_.next_value()?; + } + GeneratedField::CreatedByUserId => { + if created_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("createdByUserId")); + } + created_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::ModifiedByUserId => { + if modified_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedByUserId")); + } + modified_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::OrganizationId => { + if organization_id__.is_some() { + return Err(serde::de::Error::duplicate_field("organizationId")); + } + organization_id__ = Some(map_.next_value()?); + } + } + } + Ok(Family { + family_id: family_id__.unwrap_or_default(), + client_key: client_key__.unwrap_or_default(), + current_version_id: current_version_id__.unwrap_or_default(), + is_archived: is_archived__.unwrap_or_default(), + created_date: created_date__, + modified_date: modified_date__, + archived_date: archived_date__, + created_by_user_id: created_by_user_id__.unwrap_or_default(), + modified_by_user_id: modified_by_user_id__.unwrap_or_default(), + organization_id: organization_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.Family", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FamilyAlignment { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_alignment_id.is_empty() { + len += 1; + } + if !self.family_version_id.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if !self.description.is_empty() { + len += 1; + } + if !self.family_alignment_points.is_empty() { + len += 1; + } + if self.default_alignment.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.FamilyAlignment", len)?; + if !self.family_alignment_id.is_empty() { + struct_ser.serialize_field("familyAlignmentId", &self.family_alignment_id)?; + } + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.description.is_empty() { + struct_ser.serialize_field("description", &self.description)?; + } + if !self.family_alignment_points.is_empty() { + struct_ser.serialize_field("familyAlignmentPoints", &self.family_alignment_points)?; + } + if let Some(v) = self.default_alignment.as_ref() { + match v { + family_alignment::DefaultAlignment::Run(v) => { + struct_ser.serialize_field("run", v)?; + } + family_alignment::DefaultAlignment::Annotation(v) => { + struct_ser.serialize_field("annotation", v)?; + } + family_alignment::DefaultAlignment::Timestamp(v) => { + struct_ser.serialize_field("timestamp", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyAlignment { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_alignment_id", + "familyAlignmentId", + "family_version_id", + "familyVersionId", + "name", + "description", + "family_alignment_points", + "familyAlignmentPoints", + "run", + "annotation", + "timestamp", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyAlignmentId, + FamilyVersionId, + Name, + Description, + FamilyAlignmentPoints, + Run, + Annotation, + Timestamp, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyAlignmentId" | "family_alignment_id" => Ok(GeneratedField::FamilyAlignmentId), + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + "name" => Ok(GeneratedField::Name), + "description" => Ok(GeneratedField::Description), + "familyAlignmentPoints" | "family_alignment_points" => Ok(GeneratedField::FamilyAlignmentPoints), + "run" => Ok(GeneratedField::Run), + "annotation" => Ok(GeneratedField::Annotation), + "timestamp" => Ok(GeneratedField::Timestamp), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyAlignment; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.FamilyAlignment") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_alignment_id__ = None; + let mut family_version_id__ = None; + let mut name__ = None; + let mut description__ = None; + let mut family_alignment_points__ = None; + let mut default_alignment__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyAlignmentId => { + if family_alignment_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignmentId")); + } + family_alignment_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::Description => { + if description__.is_some() { + return Err(serde::de::Error::duplicate_field("description")); + } + description__ = Some(map_.next_value()?); + } + GeneratedField::FamilyAlignmentPoints => { + if family_alignment_points__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignmentPoints")); + } + family_alignment_points__ = Some(map_.next_value()?); + } + GeneratedField::Run => { + if default_alignment__.is_some() { + return Err(serde::de::Error::duplicate_field("run")); + } + default_alignment__ = map_.next_value::<::std::option::Option<_>>()?.map(family_alignment::DefaultAlignment::Run) +; + } + GeneratedField::Annotation => { + if default_alignment__.is_some() { + return Err(serde::de::Error::duplicate_field("annotation")); + } + default_alignment__ = map_.next_value::<::std::option::Option<_>>()?.map(family_alignment::DefaultAlignment::Annotation) +; + } + GeneratedField::Timestamp => { + if default_alignment__.is_some() { + return Err(serde::de::Error::duplicate_field("timestamp")); + } + default_alignment__ = map_.next_value::<::std::option::Option<_>>()?.map(family_alignment::DefaultAlignment::Timestamp) +; + } + } + } + Ok(FamilyAlignment { + family_alignment_id: family_alignment_id__.unwrap_or_default(), + family_version_id: family_version_id__.unwrap_or_default(), + name: name__.unwrap_or_default(), + description: description__.unwrap_or_default(), + family_alignment_points: family_alignment_points__.unwrap_or_default(), + default_alignment: default_alignment__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.FamilyAlignment", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FamilyAlignmentPoint { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_alignment_point_id.is_empty() { + len += 1; + } + if !self.family_run_id.is_empty() { + len += 1; + } + if !self.run_id.is_empty() { + len += 1; + } + if !self.family_alignment_id.is_empty() { + len += 1; + } + if self.alignment.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.FamilyAlignmentPoint", len)?; + if !self.family_alignment_point_id.is_empty() { + struct_ser.serialize_field("familyAlignmentPointId", &self.family_alignment_point_id)?; + } + if !self.family_run_id.is_empty() { + struct_ser.serialize_field("familyRunId", &self.family_run_id)?; + } + if !self.run_id.is_empty() { + struct_ser.serialize_field("runId", &self.run_id)?; + } + if !self.family_alignment_id.is_empty() { + struct_ser.serialize_field("familyAlignmentId", &self.family_alignment_id)?; + } + if let Some(v) = self.alignment.as_ref() { + match v { + family_alignment_point::Alignment::Run(v) => { + struct_ser.serialize_field("run", v)?; + } + family_alignment_point::Alignment::Annotation(v) => { + struct_ser.serialize_field("annotation", v)?; + } + family_alignment_point::Alignment::Timestamp(v) => { + struct_ser.serialize_field("timestamp", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyAlignmentPoint { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_alignment_point_id", + "familyAlignmentPointId", + "family_run_id", + "familyRunId", + "run_id", + "runId", + "family_alignment_id", + "familyAlignmentId", + "run", + "annotation", + "timestamp", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyAlignmentPointId, + FamilyRunId, + RunId, + FamilyAlignmentId, + Run, + Annotation, + Timestamp, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyAlignmentPointId" | "family_alignment_point_id" => Ok(GeneratedField::FamilyAlignmentPointId), + "familyRunId" | "family_run_id" => Ok(GeneratedField::FamilyRunId), + "runId" | "run_id" => Ok(GeneratedField::RunId), + "familyAlignmentId" | "family_alignment_id" => Ok(GeneratedField::FamilyAlignmentId), + "run" => Ok(GeneratedField::Run), + "annotation" => Ok(GeneratedField::Annotation), + "timestamp" => Ok(GeneratedField::Timestamp), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyAlignmentPoint; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.FamilyAlignmentPoint") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_alignment_point_id__ = None; + let mut family_run_id__ = None; + let mut run_id__ = None; + let mut family_alignment_id__ = None; + let mut alignment__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyAlignmentPointId => { + if family_alignment_point_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignmentPointId")); + } + family_alignment_point_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyRunId => { + if family_run_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyRunId")); + } + family_run_id__ = Some(map_.next_value()?); + } + GeneratedField::RunId => { + if run_id__.is_some() { + return Err(serde::de::Error::duplicate_field("runId")); + } + run_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyAlignmentId => { + if family_alignment_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignmentId")); + } + family_alignment_id__ = Some(map_.next_value()?); + } + GeneratedField::Run => { + if alignment__.is_some() { + return Err(serde::de::Error::duplicate_field("run")); + } + alignment__ = map_.next_value::<::std::option::Option<_>>()?.map(family_alignment_point::Alignment::Run) +; + } + GeneratedField::Annotation => { + if alignment__.is_some() { + return Err(serde::de::Error::duplicate_field("annotation")); + } + alignment__ = map_.next_value::<::std::option::Option<_>>()?.map(family_alignment_point::Alignment::Annotation) +; + } + GeneratedField::Timestamp => { + if alignment__.is_some() { + return Err(serde::de::Error::duplicate_field("timestamp")); + } + alignment__ = map_.next_value::<::std::option::Option<_>>()?.map(family_alignment_point::Alignment::Timestamp) +; + } + } + } + Ok(FamilyAlignmentPoint { + family_alignment_point_id: family_alignment_point_id__.unwrap_or_default(), + family_run_id: family_run_id__.unwrap_or_default(), + run_id: run_id__.unwrap_or_default(), + family_alignment_id: family_alignment_id__.unwrap_or_default(), + alignment: alignment__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.FamilyAlignmentPoint", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FamilyDetails { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.family.is_some() { + len += 1; + } + if self.family_version.is_some() { + len += 1; + } + if !self.family_runs.is_empty() { + len += 1; + } + if !self.family_alignments.is_empty() { + len += 1; + } + if !self.family_stats.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.FamilyDetails", len)?; + if let Some(v) = self.family.as_ref() { + struct_ser.serialize_field("family", v)?; + } + if let Some(v) = self.family_version.as_ref() { + struct_ser.serialize_field("familyVersion", v)?; + } + if !self.family_runs.is_empty() { + struct_ser.serialize_field("familyRuns", &self.family_runs)?; + } + if !self.family_alignments.is_empty() { + struct_ser.serialize_field("familyAlignments", &self.family_alignments)?; + } + if !self.family_stats.is_empty() { + struct_ser.serialize_field("familyStats", &self.family_stats)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyDetails { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family", + "family_version", + "familyVersion", + "family_runs", + "familyRuns", + "family_alignments", + "familyAlignments", + "family_stats", + "familyStats", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Family, + FamilyVersion, + FamilyRuns, + FamilyAlignments, + FamilyStats, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "family" => Ok(GeneratedField::Family), + "familyVersion" | "family_version" => Ok(GeneratedField::FamilyVersion), + "familyRuns" | "family_runs" => Ok(GeneratedField::FamilyRuns), + "familyAlignments" | "family_alignments" => Ok(GeneratedField::FamilyAlignments), + "familyStats" | "family_stats" => Ok(GeneratedField::FamilyStats), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyDetails; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.FamilyDetails") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family__ = None; + let mut family_version__ = None; + let mut family_runs__ = None; + let mut family_alignments__ = None; + let mut family_stats__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Family => { + if family__.is_some() { + return Err(serde::de::Error::duplicate_field("family")); + } + family__ = map_.next_value()?; + } + GeneratedField::FamilyVersion => { + if family_version__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersion")); + } + family_version__ = map_.next_value()?; + } + GeneratedField::FamilyRuns => { + if family_runs__.is_some() { + return Err(serde::de::Error::duplicate_field("familyRuns")); + } + family_runs__ = Some(map_.next_value()?); + } + GeneratedField::FamilyAlignments => { + if family_alignments__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignments")); + } + family_alignments__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStats => { + if family_stats__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStats")); + } + family_stats__ = Some(map_.next_value()?); + } + } + } + Ok(FamilyDetails { + family: family__, + family_version: family_version__, + family_runs: family_runs__.unwrap_or_default(), + family_alignments: family_alignments__.unwrap_or_default(), + family_stats: family_stats__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.FamilyDetails", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FamilyRuleDependency { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.rule_id.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if self.stat_reference.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.FamilyRuleDependency", len)?; + if !self.rule_id.is_empty() { + struct_ser.serialize_field("ruleId", &self.rule_id)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if let Some(v) = self.stat_reference.as_ref() { + struct_ser.serialize_field("statReference", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyRuleDependency { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rule_id", + "ruleId", + "name", + "stat_reference", + "statReference", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RuleId, + Name, + StatReference, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "ruleId" | "rule_id" => Ok(GeneratedField::RuleId), + "name" => Ok(GeneratedField::Name), + "statReference" | "stat_reference" => Ok(GeneratedField::StatReference), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyRuleDependency; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.FamilyRuleDependency") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut rule_id__ = None; + let mut name__ = None; + let mut stat_reference__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::RuleId => { + if rule_id__.is_some() { + return Err(serde::de::Error::duplicate_field("ruleId")); + } + rule_id__ = Some(map_.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::StatReference => { + if stat_reference__.is_some() { + return Err(serde::de::Error::duplicate_field("statReference")); + } + stat_reference__ = map_.next_value()?; + } + } + } + Ok(FamilyRuleDependency { + rule_id: rule_id__.unwrap_or_default(), + name: name__.unwrap_or_default(), + stat_reference: stat_reference__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.FamilyRuleDependency", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FamilyRun { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_run_id.is_empty() { + len += 1; + } + if !self.family_version_id.is_empty() { + len += 1; + } + if !self.run_id.is_empty() { + len += 1; + } + if self.is_exclusion { + len += 1; + } + if !self.rationale.is_empty() { + len += 1; + } + if self.added_date.is_some() { + len += 1; + } + if !self.added_by_user_id.is_empty() { + len += 1; + } + if !self.added_in_version_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.FamilyRun", len)?; + if !self.family_run_id.is_empty() { + struct_ser.serialize_field("familyRunId", &self.family_run_id)?; + } + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + if !self.run_id.is_empty() { + struct_ser.serialize_field("runId", &self.run_id)?; + } + if self.is_exclusion { + struct_ser.serialize_field("isExclusion", &self.is_exclusion)?; + } + if !self.rationale.is_empty() { + struct_ser.serialize_field("rationale", &self.rationale)?; + } + if let Some(v) = self.added_date.as_ref() { + struct_ser.serialize_field("addedDate", v)?; + } + if !self.added_by_user_id.is_empty() { + struct_ser.serialize_field("addedByUserId", &self.added_by_user_id)?; + } + if !self.added_in_version_id.is_empty() { + struct_ser.serialize_field("addedInVersionId", &self.added_in_version_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyRun { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_run_id", + "familyRunId", + "family_version_id", + "familyVersionId", + "run_id", + "runId", + "is_exclusion", + "isExclusion", + "rationale", + "added_date", + "addedDate", + "added_by_user_id", + "addedByUserId", + "added_in_version_id", + "addedInVersionId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyRunId, + FamilyVersionId, + RunId, + IsExclusion, + Rationale, + AddedDate, + AddedByUserId, + AddedInVersionId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyRunId" | "family_run_id" => Ok(GeneratedField::FamilyRunId), + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + "runId" | "run_id" => Ok(GeneratedField::RunId), + "isExclusion" | "is_exclusion" => Ok(GeneratedField::IsExclusion), + "rationale" => Ok(GeneratedField::Rationale), + "addedDate" | "added_date" => Ok(GeneratedField::AddedDate), + "addedByUserId" | "added_by_user_id" => Ok(GeneratedField::AddedByUserId), + "addedInVersionId" | "added_in_version_id" => Ok(GeneratedField::AddedInVersionId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyRun; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.FamilyRun") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_run_id__ = None; + let mut family_version_id__ = None; + let mut run_id__ = None; + let mut is_exclusion__ = None; + let mut rationale__ = None; + let mut added_date__ = None; + let mut added_by_user_id__ = None; + let mut added_in_version_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyRunId => { + if family_run_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyRunId")); + } + family_run_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + GeneratedField::RunId => { + if run_id__.is_some() { + return Err(serde::de::Error::duplicate_field("runId")); + } + run_id__ = Some(map_.next_value()?); + } + GeneratedField::IsExclusion => { + if is_exclusion__.is_some() { + return Err(serde::de::Error::duplicate_field("isExclusion")); + } + is_exclusion__ = Some(map_.next_value()?); + } + GeneratedField::Rationale => { + if rationale__.is_some() { + return Err(serde::de::Error::duplicate_field("rationale")); + } + rationale__ = Some(map_.next_value()?); + } + GeneratedField::AddedDate => { + if added_date__.is_some() { + return Err(serde::de::Error::duplicate_field("addedDate")); + } + added_date__ = map_.next_value()?; + } + GeneratedField::AddedByUserId => { + if added_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("addedByUserId")); + } + added_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::AddedInVersionId => { + if added_in_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("addedInVersionId")); + } + added_in_version_id__ = Some(map_.next_value()?); + } + } + } + Ok(FamilyRun { + family_run_id: family_run_id__.unwrap_or_default(), + family_version_id: family_version_id__.unwrap_or_default(), + run_id: run_id__.unwrap_or_default(), + is_exclusion: is_exclusion__.unwrap_or_default(), + rationale: rationale__.unwrap_or_default(), + added_date: added_date__, + added_by_user_id: added_by_user_id__.unwrap_or_default(), + added_in_version_id: added_in_version_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.FamilyRun", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FamilyStat { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_stat_id.is_empty() { + len += 1; + } + if !self.family_version_id.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if !self.description.is_empty() { + len += 1; + } + if self.sample_rate != 0. { + len += 1; + } + if !self.default_channel_names.is_empty() { + len += 1; + } + if self.created_date.is_some() { + len += 1; + } + if self.modified_date.is_some() { + len += 1; + } + if !self.created_by_user_id.is_empty() { + len += 1; + } + if !self.modified_by_user_id.is_empty() { + len += 1; + } + if !self.organization_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.FamilyStat", len)?; + if !self.family_stat_id.is_empty() { + struct_ser.serialize_field("familyStatId", &self.family_stat_id)?; + } + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.description.is_empty() { + struct_ser.serialize_field("description", &self.description)?; + } + if self.sample_rate != 0. { + struct_ser.serialize_field("sampleRate", &self.sample_rate)?; + } + if !self.default_channel_names.is_empty() { + struct_ser.serialize_field("defaultChannelNames", &self.default_channel_names)?; + } + if let Some(v) = self.created_date.as_ref() { + struct_ser.serialize_field("createdDate", v)?; + } + if let Some(v) = self.modified_date.as_ref() { + struct_ser.serialize_field("modifiedDate", v)?; + } + if !self.created_by_user_id.is_empty() { + struct_ser.serialize_field("createdByUserId", &self.created_by_user_id)?; + } + if !self.modified_by_user_id.is_empty() { + struct_ser.serialize_field("modifiedByUserId", &self.modified_by_user_id)?; + } + if !self.organization_id.is_empty() { + struct_ser.serialize_field("organizationId", &self.organization_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyStat { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_stat_id", + "familyStatId", + "family_version_id", + "familyVersionId", + "name", + "description", + "sample_rate", + "sampleRate", + "default_channel_names", + "defaultChannelNames", + "created_date", + "createdDate", + "modified_date", + "modifiedDate", + "created_by_user_id", + "createdByUserId", + "modified_by_user_id", + "modifiedByUserId", + "organization_id", + "organizationId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyStatId, + FamilyVersionId, + Name, + Description, + SampleRate, + DefaultChannelNames, + CreatedDate, + ModifiedDate, + CreatedByUserId, + ModifiedByUserId, + OrganizationId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyStatId" | "family_stat_id" => Ok(GeneratedField::FamilyStatId), + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + "name" => Ok(GeneratedField::Name), + "description" => Ok(GeneratedField::Description), + "sampleRate" | "sample_rate" => Ok(GeneratedField::SampleRate), + "defaultChannelNames" | "default_channel_names" => Ok(GeneratedField::DefaultChannelNames), + "createdDate" | "created_date" => Ok(GeneratedField::CreatedDate), + "modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate), + "createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId), + "modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId), + "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyStat; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.FamilyStat") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_stat_id__ = None; + let mut family_version_id__ = None; + let mut name__ = None; + let mut description__ = None; + let mut sample_rate__ = None; + let mut default_channel_names__ = None; + let mut created_date__ = None; + let mut modified_date__ = None; + let mut created_by_user_id__ = None; + let mut modified_by_user_id__ = None; + let mut organization_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyStatId => { + if family_stat_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatId")); + } + family_stat_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::Description => { + if description__.is_some() { + return Err(serde::de::Error::duplicate_field("description")); + } + description__ = Some(map_.next_value()?); + } + GeneratedField::SampleRate => { + if sample_rate__.is_some() { + return Err(serde::de::Error::duplicate_field("sampleRate")); + } + sample_rate__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::DefaultChannelNames => { + if default_channel_names__.is_some() { + return Err(serde::de::Error::duplicate_field("defaultChannelNames")); + } + default_channel_names__ = Some(map_.next_value()?); + } + GeneratedField::CreatedDate => { + if created_date__.is_some() { + return Err(serde::de::Error::duplicate_field("createdDate")); + } + created_date__ = map_.next_value()?; + } + GeneratedField::ModifiedDate => { + if modified_date__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedDate")); + } + modified_date__ = map_.next_value()?; + } + GeneratedField::CreatedByUserId => { + if created_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("createdByUserId")); + } + created_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::ModifiedByUserId => { + if modified_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedByUserId")); + } + modified_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::OrganizationId => { + if organization_id__.is_some() { + return Err(serde::de::Error::duplicate_field("organizationId")); + } + organization_id__ = Some(map_.next_value()?); + } + } + } + Ok(FamilyStat { + family_stat_id: family_stat_id__.unwrap_or_default(), + family_version_id: family_version_id__.unwrap_or_default(), + name: name__.unwrap_or_default(), + description: description__.unwrap_or_default(), + sample_rate: sample_rate__.unwrap_or_default(), + default_channel_names: default_channel_names__.unwrap_or_default(), + created_date: created_date__, + modified_date: modified_date__, + created_by_user_id: created_by_user_id__.unwrap_or_default(), + modified_by_user_id: modified_by_user_id__.unwrap_or_default(), + organization_id: organization_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.FamilyStat", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FamilyStatChannel { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_stat_channel_id.is_empty() { + len += 1; + } + if !self.family_stat_id.is_empty() { + len += 1; + } + if !self.channel_id.is_empty() { + len += 1; + } + if !self.alignment_point_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.FamilyStatChannel", len)?; + if !self.family_stat_channel_id.is_empty() { + struct_ser.serialize_field("familyStatChannelId", &self.family_stat_channel_id)?; + } + if !self.family_stat_id.is_empty() { + struct_ser.serialize_field("familyStatId", &self.family_stat_id)?; + } + if !self.channel_id.is_empty() { + struct_ser.serialize_field("channelId", &self.channel_id)?; + } + if !self.alignment_point_id.is_empty() { + struct_ser.serialize_field("alignmentPointId", &self.alignment_point_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyStatChannel { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_stat_channel_id", + "familyStatChannelId", + "family_stat_id", + "familyStatId", + "channel_id", + "channelId", + "alignment_point_id", + "alignmentPointId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyStatChannelId, + FamilyStatId, + ChannelId, + AlignmentPointId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyStatChannelId" | "family_stat_channel_id" => Ok(GeneratedField::FamilyStatChannelId), + "familyStatId" | "family_stat_id" => Ok(GeneratedField::FamilyStatId), + "channelId" | "channel_id" => Ok(GeneratedField::ChannelId), + "alignmentPointId" | "alignment_point_id" => Ok(GeneratedField::AlignmentPointId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyStatChannel; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.FamilyStatChannel") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_stat_channel_id__ = None; + let mut family_stat_id__ = None; + let mut channel_id__ = None; + let mut alignment_point_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyStatChannelId => { + if family_stat_channel_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatChannelId")); + } + family_stat_channel_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStatId => { + if family_stat_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatId")); + } + family_stat_id__ = Some(map_.next_value()?); + } + GeneratedField::ChannelId => { + if channel_id__.is_some() { + return Err(serde::de::Error::duplicate_field("channelId")); + } + channel_id__ = Some(map_.next_value()?); + } + GeneratedField::AlignmentPointId => { + if alignment_point_id__.is_some() { + return Err(serde::de::Error::duplicate_field("alignmentPointId")); + } + alignment_point_id__ = Some(map_.next_value()?); + } + } + } + Ok(FamilyStatChannel { + family_stat_channel_id: family_stat_channel_id__.unwrap_or_default(), + family_stat_id: family_stat_id__.unwrap_or_default(), + channel_id: channel_id__.unwrap_or_default(), + alignment_point_id: alignment_point_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.FamilyStatChannel", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FamilyStatDetails { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.family_stat.is_some() { + len += 1; + } + if !self.family_stat_expressions.is_empty() { + len += 1; + } + if !self.family_stat_channels.is_empty() { + len += 1; + } + if !self.family_stat_ranges.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.FamilyStatDetails", len)?; + if let Some(v) = self.family_stat.as_ref() { + struct_ser.serialize_field("familyStat", v)?; + } + if !self.family_stat_expressions.is_empty() { + struct_ser.serialize_field("familyStatExpressions", &self.family_stat_expressions)?; + } + if !self.family_stat_channels.is_empty() { + struct_ser.serialize_field("familyStatChannels", &self.family_stat_channels)?; + } + if !self.family_stat_ranges.is_empty() { + struct_ser.serialize_field("familyStatRanges", &self.family_stat_ranges)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyStatDetails { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_stat", + "familyStat", + "family_stat_expressions", + "familyStatExpressions", + "family_stat_channels", + "familyStatChannels", + "family_stat_ranges", + "familyStatRanges", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyStat, + FamilyStatExpressions, + FamilyStatChannels, + FamilyStatRanges, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyStat" | "family_stat" => Ok(GeneratedField::FamilyStat), + "familyStatExpressions" | "family_stat_expressions" => Ok(GeneratedField::FamilyStatExpressions), + "familyStatChannels" | "family_stat_channels" => Ok(GeneratedField::FamilyStatChannels), + "familyStatRanges" | "family_stat_ranges" => Ok(GeneratedField::FamilyStatRanges), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyStatDetails; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.FamilyStatDetails") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_stat__ = None; + let mut family_stat_expressions__ = None; + let mut family_stat_channels__ = None; + let mut family_stat_ranges__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyStat => { + if family_stat__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStat")); + } + family_stat__ = map_.next_value()?; + } + GeneratedField::FamilyStatExpressions => { + if family_stat_expressions__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatExpressions")); + } + family_stat_expressions__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStatChannels => { + if family_stat_channels__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatChannels")); + } + family_stat_channels__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStatRanges => { + if family_stat_ranges__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatRanges")); + } + family_stat_ranges__ = Some(map_.next_value()?); + } + } + } + Ok(FamilyStatDetails { + family_stat: family_stat__, + family_stat_expressions: family_stat_expressions__.unwrap_or_default(), + family_stat_channels: family_stat_channels__.unwrap_or_default(), + family_stat_ranges: family_stat_ranges__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.FamilyStatDetails", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FamilyStatExpression { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_stat_expression_id.is_empty() { + len += 1; + } + if !self.family_stat_id.is_empty() { + len += 1; + } + if self.expression.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.FamilyStatExpression", len)?; + if !self.family_stat_expression_id.is_empty() { + struct_ser.serialize_field("familyStatExpressionId", &self.family_stat_expression_id)?; + } + if !self.family_stat_id.is_empty() { + struct_ser.serialize_field("familyStatId", &self.family_stat_id)?; + } + if let Some(v) = self.expression.as_ref() { + match v { + family_stat_expression::Expression::Avg(v) => { + struct_ser.serialize_field("avg", v)?; + } + family_stat_expression::Expression::Median(v) => { + struct_ser.serialize_field("median", v)?; + } + family_stat_expression::Expression::Min(v) => { + struct_ser.serialize_field("min", v)?; + } + family_stat_expression::Expression::Max(v) => { + struct_ser.serialize_field("max", v)?; + } + family_stat_expression::Expression::Stdev(v) => { + struct_ser.serialize_field("stdev", v)?; + } + family_stat_expression::Expression::Sum(v) => { + struct_ser.serialize_field("sum", v)?; + } + family_stat_expression::Expression::InputCount(v) => { + struct_ser.serialize_field("inputCount", v)?; + } + family_stat_expression::Expression::Sigma(v) => { + struct_ser.serialize_field("sigma", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyStatExpression { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_stat_expression_id", + "familyStatExpressionId", + "family_stat_id", + "familyStatId", + "avg", + "median", + "min", + "max", + "stdev", + "sum", + "input_count", + "inputCount", + "sigma", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyStatExpressionId, + FamilyStatId, + Avg, + Median, + Min, + Max, + Stdev, + Sum, + InputCount, + Sigma, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyStatExpressionId" | "family_stat_expression_id" => Ok(GeneratedField::FamilyStatExpressionId), + "familyStatId" | "family_stat_id" => Ok(GeneratedField::FamilyStatId), + "avg" => Ok(GeneratedField::Avg), + "median" => Ok(GeneratedField::Median), + "min" => Ok(GeneratedField::Min), + "max" => Ok(GeneratedField::Max), + "stdev" => Ok(GeneratedField::Stdev), + "sum" => Ok(GeneratedField::Sum), + "inputCount" | "input_count" => Ok(GeneratedField::InputCount), + "sigma" => Ok(GeneratedField::Sigma), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyStatExpression; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.FamilyStatExpression") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_stat_expression_id__ = None; + let mut family_stat_id__ = None; + let mut expression__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyStatExpressionId => { + if family_stat_expression_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatExpressionId")); + } + family_stat_expression_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStatId => { + if family_stat_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatId")); + } + family_stat_id__ = Some(map_.next_value()?); + } + GeneratedField::Avg => { + if expression__.is_some() { + return Err(serde::de::Error::duplicate_field("avg")); + } + expression__ = map_.next_value::<::std::option::Option<_>>()?.map(family_stat_expression::Expression::Avg) +; + } + GeneratedField::Median => { + if expression__.is_some() { + return Err(serde::de::Error::duplicate_field("median")); + } + expression__ = map_.next_value::<::std::option::Option<_>>()?.map(family_stat_expression::Expression::Median) +; + } + GeneratedField::Min => { + if expression__.is_some() { + return Err(serde::de::Error::duplicate_field("min")); + } + expression__ = map_.next_value::<::std::option::Option<_>>()?.map(family_stat_expression::Expression::Min) +; + } + GeneratedField::Max => { + if expression__.is_some() { + return Err(serde::de::Error::duplicate_field("max")); + } + expression__ = map_.next_value::<::std::option::Option<_>>()?.map(family_stat_expression::Expression::Max) +; + } + GeneratedField::Stdev => { + if expression__.is_some() { + return Err(serde::de::Error::duplicate_field("stdev")); + } + expression__ = map_.next_value::<::std::option::Option<_>>()?.map(family_stat_expression::Expression::Stdev) +; + } + GeneratedField::Sum => { + if expression__.is_some() { + return Err(serde::de::Error::duplicate_field("sum")); + } + expression__ = map_.next_value::<::std::option::Option<_>>()?.map(family_stat_expression::Expression::Sum) +; + } + GeneratedField::InputCount => { + if expression__.is_some() { + return Err(serde::de::Error::duplicate_field("inputCount")); + } + expression__ = map_.next_value::<::std::option::Option<_>>()?.map(family_stat_expression::Expression::InputCount) +; + } + GeneratedField::Sigma => { + if expression__.is_some() { + return Err(serde::de::Error::duplicate_field("sigma")); + } + expression__ = map_.next_value::<::std::option::Option<_>>()?.map(family_stat_expression::Expression::Sigma) +; + } + } + } + Ok(FamilyStatExpression { + family_stat_expression_id: family_stat_expression_id__.unwrap_or_default(), + family_stat_id: family_stat_id__.unwrap_or_default(), + expression: expression__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.FamilyStatExpression", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FamilyStatRange { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_stat_range_id.is_empty() { + len += 1; + } + if !self.family_stat_id.is_empty() { + len += 1; + } + if !self.family_alignment_id.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if self.window_start.is_some() { + len += 1; + } + if self.window_end.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.FamilyStatRange", len)?; + if !self.family_stat_range_id.is_empty() { + struct_ser.serialize_field("familyStatRangeId", &self.family_stat_range_id)?; + } + if !self.family_stat_id.is_empty() { + struct_ser.serialize_field("familyStatId", &self.family_stat_id)?; + } + if !self.family_alignment_id.is_empty() { + struct_ser.serialize_field("familyAlignmentId", &self.family_alignment_id)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if let Some(v) = self.window_start.as_ref() { + struct_ser.serialize_field("windowStart", v)?; + } + if let Some(v) = self.window_end.as_ref() { + struct_ser.serialize_field("windowEnd", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyStatRange { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_stat_range_id", + "familyStatRangeId", + "family_stat_id", + "familyStatId", + "family_alignment_id", + "familyAlignmentId", + "name", + "window_start", + "windowStart", + "window_end", + "windowEnd", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyStatRangeId, + FamilyStatId, + FamilyAlignmentId, + Name, + WindowStart, + WindowEnd, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyStatRangeId" | "family_stat_range_id" => Ok(GeneratedField::FamilyStatRangeId), + "familyStatId" | "family_stat_id" => Ok(GeneratedField::FamilyStatId), + "familyAlignmentId" | "family_alignment_id" => Ok(GeneratedField::FamilyAlignmentId), + "name" => Ok(GeneratedField::Name), + "windowStart" | "window_start" => Ok(GeneratedField::WindowStart), + "windowEnd" | "window_end" => Ok(GeneratedField::WindowEnd), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyStatRange; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.FamilyStatRange") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_stat_range_id__ = None; + let mut family_stat_id__ = None; + let mut family_alignment_id__ = None; + let mut name__ = None; + let mut window_start__ = None; + let mut window_end__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyStatRangeId => { + if family_stat_range_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatRangeId")); + } + family_stat_range_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStatId => { + if family_stat_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatId")); + } + family_stat_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyAlignmentId => { + if family_alignment_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignmentId")); + } + family_alignment_id__ = Some(map_.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::WindowStart => { + if window_start__.is_some() { + return Err(serde::de::Error::duplicate_field("windowStart")); + } + window_start__ = map_.next_value()?; + } + GeneratedField::WindowEnd => { + if window_end__.is_some() { + return Err(serde::de::Error::duplicate_field("windowEnd")); + } + window_end__ = map_.next_value()?; + } + } + } + Ok(FamilyStatRange { + family_stat_range_id: family_stat_range_id__.unwrap_or_default(), + family_stat_id: family_stat_id__.unwrap_or_default(), + family_alignment_id: family_alignment_id__.unwrap_or_default(), + name: name__.unwrap_or_default(), + window_start: window_start__, + window_end: window_end__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.FamilyStatRange", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FamilyVersion { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_version_id.is_empty() { + len += 1; + } + if !self.family_id.is_empty() { + len += 1; + } + if self.version != 0 { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if !self.description.is_empty() { + len += 1; + } + if !self.run_query.is_empty() { + len += 1; + } + if !self.user_notes.is_empty() { + len += 1; + } + if !self.change_message.is_empty() { + len += 1; + } + if !self.metadata.is_empty() { + len += 1; + } + if !self.sigma_default_values.is_empty() { + len += 1; + } + if self.created_date.is_some() { + len += 1; + } + if self.modified_date.is_some() { + len += 1; + } + if !self.created_by_user_id.is_empty() { + len += 1; + } + if !self.modified_by_user_id.is_empty() { + len += 1; + } + if !self.organization_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.FamilyVersion", len)?; + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + if !self.family_id.is_empty() { + struct_ser.serialize_field("familyId", &self.family_id)?; + } + if self.version != 0 { + struct_ser.serialize_field("version", &self.version)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.description.is_empty() { + struct_ser.serialize_field("description", &self.description)?; + } + if !self.run_query.is_empty() { + struct_ser.serialize_field("runQuery", &self.run_query)?; + } + if !self.user_notes.is_empty() { + struct_ser.serialize_field("userNotes", &self.user_notes)?; + } + if !self.change_message.is_empty() { + struct_ser.serialize_field("changeMessage", &self.change_message)?; + } + if !self.metadata.is_empty() { + struct_ser.serialize_field("metadata", &self.metadata)?; + } + if !self.sigma_default_values.is_empty() { + struct_ser.serialize_field("sigmaDefaultValues", &self.sigma_default_values)?; + } + if let Some(v) = self.created_date.as_ref() { + struct_ser.serialize_field("createdDate", v)?; + } + if let Some(v) = self.modified_date.as_ref() { + struct_ser.serialize_field("modifiedDate", v)?; + } + if !self.created_by_user_id.is_empty() { + struct_ser.serialize_field("createdByUserId", &self.created_by_user_id)?; + } + if !self.modified_by_user_id.is_empty() { + struct_ser.serialize_field("modifiedByUserId", &self.modified_by_user_id)?; + } + if !self.organization_id.is_empty() { + struct_ser.serialize_field("organizationId", &self.organization_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyVersion { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_version_id", + "familyVersionId", + "family_id", + "familyId", + "version", + "name", + "description", + "run_query", + "runQuery", + "user_notes", + "userNotes", + "change_message", + "changeMessage", + "metadata", + "sigma_default_values", + "sigmaDefaultValues", + "created_date", + "createdDate", + "modified_date", + "modifiedDate", + "created_by_user_id", + "createdByUserId", + "modified_by_user_id", + "modifiedByUserId", + "organization_id", + "organizationId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyVersionId, + FamilyId, + Version, + Name, + Description, + RunQuery, + UserNotes, + ChangeMessage, + Metadata, + SigmaDefaultValues, + CreatedDate, + ModifiedDate, + CreatedByUserId, + ModifiedByUserId, + OrganizationId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + "version" => Ok(GeneratedField::Version), + "name" => Ok(GeneratedField::Name), + "description" => Ok(GeneratedField::Description), + "runQuery" | "run_query" => Ok(GeneratedField::RunQuery), + "userNotes" | "user_notes" => Ok(GeneratedField::UserNotes), + "changeMessage" | "change_message" => Ok(GeneratedField::ChangeMessage), + "metadata" => Ok(GeneratedField::Metadata), + "sigmaDefaultValues" | "sigma_default_values" => Ok(GeneratedField::SigmaDefaultValues), + "createdDate" | "created_date" => Ok(GeneratedField::CreatedDate), + "modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate), + "createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId), + "modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId), + "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyVersion; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.FamilyVersion") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_version_id__ = None; + let mut family_id__ = None; + let mut version__ = None; + let mut name__ = None; + let mut description__ = None; + let mut run_query__ = None; + let mut user_notes__ = None; + let mut change_message__ = None; + let mut metadata__ = None; + let mut sigma_default_values__ = None; + let mut created_date__ = None; + let mut modified_date__ = None; + let mut created_by_user_id__ = None; + let mut modified_by_user_id__ = None; + let mut organization_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyId => { + if family_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_id__ = Some(map_.next_value()?); + } + GeneratedField::Version => { + if version__.is_some() { + return Err(serde::de::Error::duplicate_field("version")); + } + version__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + GeneratedField::Description => { + if description__.is_some() { + return Err(serde::de::Error::duplicate_field("description")); + } + description__ = Some(map_.next_value()?); + } + GeneratedField::RunQuery => { + if run_query__.is_some() { + return Err(serde::de::Error::duplicate_field("runQuery")); + } + run_query__ = Some(map_.next_value()?); + } + GeneratedField::UserNotes => { + if user_notes__.is_some() { + return Err(serde::de::Error::duplicate_field("userNotes")); + } + user_notes__ = Some(map_.next_value()?); + } + GeneratedField::ChangeMessage => { + if change_message__.is_some() { + return Err(serde::de::Error::duplicate_field("changeMessage")); + } + change_message__ = Some(map_.next_value()?); + } + GeneratedField::Metadata => { + if metadata__.is_some() { + return Err(serde::de::Error::duplicate_field("metadata")); + } + metadata__ = Some(map_.next_value()?); + } + GeneratedField::SigmaDefaultValues => { + if sigma_default_values__.is_some() { + return Err(serde::de::Error::duplicate_field("sigmaDefaultValues")); + } + sigma_default_values__ = + Some(map_.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::CreatedDate => { + if created_date__.is_some() { + return Err(serde::de::Error::duplicate_field("createdDate")); + } + created_date__ = map_.next_value()?; + } + GeneratedField::ModifiedDate => { + if modified_date__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedDate")); + } + modified_date__ = map_.next_value()?; + } + GeneratedField::CreatedByUserId => { + if created_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("createdByUserId")); + } + created_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::ModifiedByUserId => { + if modified_by_user_id__.is_some() { + return Err(serde::de::Error::duplicate_field("modifiedByUserId")); + } + modified_by_user_id__ = Some(map_.next_value()?); + } + GeneratedField::OrganizationId => { + if organization_id__.is_some() { + return Err(serde::de::Error::duplicate_field("organizationId")); + } + organization_id__ = Some(map_.next_value()?); + } + } + } + Ok(FamilyVersion { + family_version_id: family_version_id__.unwrap_or_default(), + family_id: family_id__.unwrap_or_default(), + version: version__.unwrap_or_default(), + name: name__.unwrap_or_default(), + description: description__.unwrap_or_default(), + run_query: run_query__.unwrap_or_default(), + user_notes: user_notes__.unwrap_or_default(), + change_message: change_message__.unwrap_or_default(), + metadata: metadata__.unwrap_or_default(), + sigma_default_values: sigma_default_values__.unwrap_or_default(), + created_date: created_date__, + modified_date: modified_date__, + created_by_user_id: created_by_user_id__.unwrap_or_default(), + modified_by_user_id: modified_by_user_id__.unwrap_or_default(), + organization_id: organization_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.FamilyVersion", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GenerateFamilyStatRangeNameRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_alignment_name.is_empty() { + len += 1; + } + if self.window_start.is_some() { + len += 1; + } + if self.window_end.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GenerateFamilyStatRangeNameRequest", len)?; + if !self.family_alignment_name.is_empty() { + struct_ser.serialize_field("familyAlignmentName", &self.family_alignment_name)?; + } + if let Some(v) = self.window_start.as_ref() { + struct_ser.serialize_field("windowStart", v)?; + } + if let Some(v) = self.window_end.as_ref() { + struct_ser.serialize_field("windowEnd", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GenerateFamilyStatRangeNameRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_alignment_name", + "familyAlignmentName", + "window_start", + "windowStart", + "window_end", + "windowEnd", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyAlignmentName, + WindowStart, + WindowEnd, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyAlignmentName" | "family_alignment_name" => Ok(GeneratedField::FamilyAlignmentName), + "windowStart" | "window_start" => Ok(GeneratedField::WindowStart), + "windowEnd" | "window_end" => Ok(GeneratedField::WindowEnd), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GenerateFamilyStatRangeNameRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GenerateFamilyStatRangeNameRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_alignment_name__ = None; + let mut window_start__ = None; + let mut window_end__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyAlignmentName => { + if family_alignment_name__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignmentName")); + } + family_alignment_name__ = Some(map_.next_value()?); + } + GeneratedField::WindowStart => { + if window_start__.is_some() { + return Err(serde::de::Error::duplicate_field("windowStart")); + } + window_start__ = map_.next_value()?; + } + GeneratedField::WindowEnd => { + if window_end__.is_some() { + return Err(serde::de::Error::duplicate_field("windowEnd")); + } + window_end__ = map_.next_value()?; + } + } + } + Ok(GenerateFamilyStatRangeNameRequest { + family_alignment_name: family_alignment_name__.unwrap_or_default(), + window_start: window_start__, + window_end: window_end__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GenerateFamilyStatRangeNameRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GenerateFamilyStatRangeNameResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.name.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GenerateFamilyStatRangeNameResponse", len)?; + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GenerateFamilyStatRangeNameResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "name", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Name, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "name" => Ok(GeneratedField::Name), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GenerateFamilyStatRangeNameResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GenerateFamilyStatRangeNameResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut name__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map_.next_value()?); + } + } + } + Ok(GenerateFamilyStatRangeNameResponse { + name: name__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GenerateFamilyStatRangeNameResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamiliesRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_ids.is_empty() { + len += 1; + } + if !self.client_keys.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamiliesRequest", len)?; + if !self.family_ids.is_empty() { + struct_ser.serialize_field("familyIds", &self.family_ids)?; + } + if !self.client_keys.is_empty() { + struct_ser.serialize_field("clientKeys", &self.client_keys)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamiliesRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_ids", + "familyIds", + "client_keys", + "clientKeys", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyIds, + ClientKeys, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyIds" | "family_ids" => Ok(GeneratedField::FamilyIds), + "clientKeys" | "client_keys" => Ok(GeneratedField::ClientKeys), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamiliesRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamiliesRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_ids__ = None; + let mut client_keys__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyIds => { + if family_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("familyIds")); + } + family_ids__ = Some(map_.next_value()?); + } + GeneratedField::ClientKeys => { + if client_keys__.is_some() { + return Err(serde::de::Error::duplicate_field("clientKeys")); + } + client_keys__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamiliesRequest { + family_ids: family_ids__.unwrap_or_default(), + client_keys: client_keys__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamiliesRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamiliesResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.families.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamiliesResponse", len)?; + if !self.families.is_empty() { + struct_ser.serialize_field("families", &self.families)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamiliesResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "families", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Families, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "families" => Ok(GeneratedField::Families), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamiliesResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamiliesResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut families__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Families => { + if families__.is_some() { + return Err(serde::de::Error::duplicate_field("families")); + } + families__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamiliesResponse { + families: families__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamiliesResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyCandidateRunCountRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_version_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyCandidateRunCountRequest", len)?; + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyCandidateRunCountRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_version_id", + "familyVersionId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyVersionId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyCandidateRunCountRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyCandidateRunCountRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_version_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamilyCandidateRunCountRequest { + family_version_id: family_version_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyCandidateRunCountRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyCandidateRunCountResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.count != 0 { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyCandidateRunCountResponse", len)?; + if self.count != 0 { + struct_ser.serialize_field("count", &self.count)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyCandidateRunCountResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "count", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Count, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "count" => Ok(GeneratedField::Count), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyCandidateRunCountResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyCandidateRunCountResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut count__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Count => { + if count__.is_some() { + return Err(serde::de::Error::duplicate_field("count")); + } + count__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + } + } + Ok(GetFamilyCandidateRunCountResponse { + count: count__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyCandidateRunCountResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyCandidateRunFilterFieldsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyCandidateRunFilterFieldsRequest", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyCandidateRunFilterFieldsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyCandidateRunFilterFieldsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyCandidateRunFilterFieldsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map_.next_key::()?.is_some() { + let _ = map_.next_value::()?; + } + Ok(GetFamilyCandidateRunFilterFieldsRequest { + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyCandidateRunFilterFieldsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyCandidateRunFilterFieldsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.filter_fields.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyCandidateRunFilterFieldsResponse", len)?; + if !self.filter_fields.is_empty() { + struct_ser.serialize_field("filterFields", &self.filter_fields)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyCandidateRunFilterFieldsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "filter_fields", + "filterFields", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FilterFields, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "filterFields" | "filter_fields" => Ok(GeneratedField::FilterFields), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyCandidateRunFilterFieldsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyCandidateRunFilterFieldsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut filter_fields__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FilterFields => { + if filter_fields__.is_some() { + return Err(serde::de::Error::duplicate_field("filterFields")); + } + filter_fields__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamilyCandidateRunFilterFieldsResponse { + filter_fields: filter_fields__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyCandidateRunFilterFieldsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyCandidateRunsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_version_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyCandidateRunsRequest", len)?; + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyCandidateRunsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_version_id", + "familyVersionId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyVersionId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyCandidateRunsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyCandidateRunsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_version_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamilyCandidateRunsRequest { + family_version_id: family_version_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyCandidateRunsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyCandidateRunsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.run_query.is_empty() { + len += 1; + } + if !self.candidate_run_ids.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyCandidateRunsResponse", len)?; + if !self.run_query.is_empty() { + struct_ser.serialize_field("runQuery", &self.run_query)?; + } + if !self.candidate_run_ids.is_empty() { + struct_ser.serialize_field("candidateRunIds", &self.candidate_run_ids)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyCandidateRunsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "run_query", + "runQuery", + "candidate_run_ids", + "candidateRunIds", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RunQuery, + CandidateRunIds, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "runQuery" | "run_query" => Ok(GeneratedField::RunQuery), + "candidateRunIds" | "candidate_run_ids" => Ok(GeneratedField::CandidateRunIds), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyCandidateRunsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyCandidateRunsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut run_query__ = None; + let mut candidate_run_ids__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::RunQuery => { + if run_query__.is_some() { + return Err(serde::de::Error::duplicate_field("runQuery")); + } + run_query__ = Some(map_.next_value()?); + } + GeneratedField::CandidateRunIds => { + if candidate_run_ids__.is_some() { + return Err(serde::de::Error::duplicate_field("candidateRunIds")); + } + candidate_run_ids__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamilyCandidateRunsResponse { + run_query: run_query__.unwrap_or_default(), + candidate_run_ids: candidate_run_ids__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyCandidateRunsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.family_identifier.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyRequest", len)?; + if let Some(v) = self.family_identifier.as_ref() { + match v { + get_family_request::FamilyIdentifier::FamilyId(v) => { + struct_ser.serialize_field("familyId", v)?; + } + get_family_request::FamilyIdentifier::ClientKey(v) => { + struct_ser.serialize_field("clientKey", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_id", + "familyId", + "client_key", + "clientKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyId, + ClientKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + "clientKey" | "client_key" => Ok(GeneratedField::ClientKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_identifier__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyId => { + if family_identifier__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_identifier__ = map_.next_value::<::std::option::Option<_>>()?.map(get_family_request::FamilyIdentifier::FamilyId); + } + GeneratedField::ClientKey => { + if family_identifier__.is_some() { + return Err(serde::de::Error::duplicate_field("clientKey")); + } + family_identifier__ = map_.next_value::<::std::option::Option<_>>()?.map(get_family_request::FamilyIdentifier::ClientKey); + } + } + } + Ok(GetFamilyRequest { + family_identifier: family_identifier__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.family.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyResponse", len)?; + if let Some(v) = self.family.as_ref() { + struct_ser.serialize_field("family", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Family, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "family" => Ok(GeneratedField::Family), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Family => { + if family__.is_some() { + return Err(serde::de::Error::duplicate_field("family")); + } + family__ = map_.next_value()?; + } + } + } + Ok(GetFamilyResponse { + family: family__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyRuleDependenciesRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyRuleDependenciesRequest", len)?; + if !self.family_id.is_empty() { + struct_ser.serialize_field("familyId", &self.family_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyRuleDependenciesRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_id", + "familyId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyRuleDependenciesRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyRuleDependenciesRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyId => { + if family_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_id__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamilyRuleDependenciesRequest { + family_id: family_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyRuleDependenciesRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyRuleDependenciesResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.rule_dependencies.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyRuleDependenciesResponse", len)?; + if !self.rule_dependencies.is_empty() { + struct_ser.serialize_field("ruleDependencies", &self.rule_dependencies)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyRuleDependenciesResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rule_dependencies", + "ruleDependencies", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RuleDependencies, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "ruleDependencies" | "rule_dependencies" => Ok(GeneratedField::RuleDependencies), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyRuleDependenciesResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyRuleDependenciesResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut rule_dependencies__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::RuleDependencies => { + if rule_dependencies__.is_some() { + return Err(serde::de::Error::duplicate_field("ruleDependencies")); + } + rule_dependencies__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamilyRuleDependenciesResponse { + rule_dependencies: rule_dependencies__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyRuleDependenciesResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyStatRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_stat_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyStatRequest", len)?; + if !self.family_stat_id.is_empty() { + struct_ser.serialize_field("familyStatId", &self.family_stat_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyStatRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_stat_id", + "familyStatId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyStatId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyStatId" | "family_stat_id" => Ok(GeneratedField::FamilyStatId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyStatRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyStatRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_stat_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyStatId => { + if family_stat_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatId")); + } + family_stat_id__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamilyStatRequest { + family_stat_id: family_stat_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyStatRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyStatResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.family_stat_details.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyStatResponse", len)?; + if let Some(v) = self.family_stat_details.as_ref() { + struct_ser.serialize_field("familyStatDetails", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyStatResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_stat_details", + "familyStatDetails", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyStatDetails, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyStatDetails" | "family_stat_details" => Ok(GeneratedField::FamilyStatDetails), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyStatResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyStatResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_stat_details__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyStatDetails => { + if family_stat_details__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatDetails")); + } + family_stat_details__ = map_.next_value()?; + } + } + } + Ok(GetFamilyStatResponse { + family_stat_details: family_stat_details__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyStatResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyStatsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_version_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyStatsRequest", len)?; + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyStatsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_version_id", + "familyVersionId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyVersionId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyStatsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyStatsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_version_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamilyStatsRequest { + family_version_id: family_version_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyStatsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyStatsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_stats_details.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyStatsResponse", len)?; + if !self.family_stats_details.is_empty() { + struct_ser.serialize_field("familyStatsDetails", &self.family_stats_details)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyStatsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_stats_details", + "familyStatsDetails", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyStatsDetails, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyStatsDetails" | "family_stats_details" => Ok(GeneratedField::FamilyStatsDetails), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyStatsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyStatsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_stats_details__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyStatsDetails => { + if family_stats_details__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatsDetails")); + } + family_stats_details__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamilyStatsResponse { + family_stats_details: family_stats_details__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyStatsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyVersionRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_version_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyVersionRequest", len)?; + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyVersionRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_version_id", + "familyVersionId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyVersionId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyVersionRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyVersionRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_version_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + } + } + Ok(GetFamilyVersionRequest { + family_version_id: family_version_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyVersionRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GetFamilyVersionResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.family.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.GetFamilyVersionResponse", len)?; + if let Some(v) = self.family.as_ref() { + struct_ser.serialize_field("family", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetFamilyVersionResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Family, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "family" => Ok(GeneratedField::Family), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetFamilyVersionResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.GetFamilyVersionResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Family => { + if family__.is_some() { + return Err(serde::de::Error::duplicate_field("family")); + } + family__ = map_.next_value()?; + } + } + } + Ok(GetFamilyVersionResponse { + family: family__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.GetFamilyVersionResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ImportFamilyRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_yaml.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ImportFamilyRequest", len)?; + if !self.family_yaml.is_empty() { + struct_ser.serialize_field("familyYaml", &self.family_yaml)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ImportFamilyRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_yaml", + "familyYaml", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyYaml, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyYaml" | "family_yaml" => Ok(GeneratedField::FamilyYaml), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ImportFamilyRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ImportFamilyRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_yaml__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyYaml => { + if family_yaml__.is_some() { + return Err(serde::de::Error::duplicate_field("familyYaml")); + } + family_yaml__ = Some(map_.next_value()?); + } + } + } + Ok(ImportFamilyRequest { + family_yaml: family_yaml__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ImportFamilyRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ImportFamilyResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_id.is_empty() { + len += 1; + } + if self.family.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ImportFamilyResponse", len)?; + if !self.family_id.is_empty() { + struct_ser.serialize_field("familyId", &self.family_id)?; + } + if let Some(v) = self.family.as_ref() { + struct_ser.serialize_field("family", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ImportFamilyResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_id", + "familyId", + "family", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyId, + Family, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + "family" => Ok(GeneratedField::Family), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ImportFamilyResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ImportFamilyResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_id__ = None; + let mut family__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyId => { + if family_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_id__ = Some(map_.next_value()?); + } + GeneratedField::Family => { + if family__.is_some() { + return Err(serde::de::Error::duplicate_field("family")); + } + family__ = map_.next_value()?; + } + } + } + Ok(ImportFamilyResponse { + family_id: family_id__.unwrap_or_default(), + family: family__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ImportFamilyResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ImportUpdateFamilyRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_yaml.is_empty() { + len += 1; + } + if self.update_mask.is_some() { + len += 1; + } + if self.family_identifier.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ImportUpdateFamilyRequest", len)?; + if !self.family_yaml.is_empty() { + struct_ser.serialize_field("familyYaml", &self.family_yaml)?; + } + if let Some(v) = self.update_mask.as_ref() { + struct_ser.serialize_field("updateMask", v)?; + } + if let Some(v) = self.family_identifier.as_ref() { + match v { + import_update_family_request::FamilyIdentifier::FamilyId(v) => { + struct_ser.serialize_field("familyId", v)?; + } + import_update_family_request::FamilyIdentifier::ClientKey(v) => { + struct_ser.serialize_field("clientKey", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ImportUpdateFamilyRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_yaml", + "familyYaml", + "update_mask", + "updateMask", + "family_id", + "familyId", + "client_key", + "clientKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyYaml, + UpdateMask, + FamilyId, + ClientKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyYaml" | "family_yaml" => Ok(GeneratedField::FamilyYaml), + "updateMask" | "update_mask" => Ok(GeneratedField::UpdateMask), + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + "clientKey" | "client_key" => Ok(GeneratedField::ClientKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ImportUpdateFamilyRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ImportUpdateFamilyRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_yaml__ = None; + let mut update_mask__ = None; + let mut family_identifier__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyYaml => { + if family_yaml__.is_some() { + return Err(serde::de::Error::duplicate_field("familyYaml")); + } + family_yaml__ = Some(map_.next_value()?); + } + GeneratedField::UpdateMask => { + if update_mask__.is_some() { + return Err(serde::de::Error::duplicate_field("updateMask")); + } + update_mask__ = map_.next_value()?; + } + GeneratedField::FamilyId => { + if family_identifier__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_identifier__ = map_.next_value::<::std::option::Option<_>>()?.map(import_update_family_request::FamilyIdentifier::FamilyId); + } + GeneratedField::ClientKey => { + if family_identifier__.is_some() { + return Err(serde::de::Error::duplicate_field("clientKey")); + } + family_identifier__ = map_.next_value::<::std::option::Option<_>>()?.map(import_update_family_request::FamilyIdentifier::ClientKey); + } + } + } + Ok(ImportUpdateFamilyRequest { + family_yaml: family_yaml__.unwrap_or_default(), + update_mask: update_mask__, + family_identifier: family_identifier__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ImportUpdateFamilyRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ImportUpdateFamilyResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_version_id.is_empty() { + len += 1; + } + if self.family.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ImportUpdateFamilyResponse", len)?; + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + if let Some(v) = self.family.as_ref() { + struct_ser.serialize_field("family", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ImportUpdateFamilyResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_version_id", + "familyVersionId", + "family", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyVersionId, + Family, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + "family" => Ok(GeneratedField::Family), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ImportUpdateFamilyResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ImportUpdateFamilyResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_version_id__ = None; + let mut family__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + GeneratedField::Family => { + if family__.is_some() { + return Err(serde::de::Error::duplicate_field("family")); + } + family__ = map_.next_value()?; + } + } + } + Ok(ImportUpdateFamilyResponse { + family_version_id: family_version_id__.unwrap_or_default(), + family: family__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ImportUpdateFamilyResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamiliesRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.page_size != 0 { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.order_by.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamiliesRequest", len)?; + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.order_by.is_empty() { + struct_ser.serialize_field("orderBy", &self.order_by)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamiliesRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "page_size", + "pageSize", + "page_token", + "pageToken", + "filter", + "order_by", + "orderBy", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PageSize, + PageToken, + Filter, + OrderBy, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + "filter" => Ok(GeneratedField::Filter), + "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamiliesRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamiliesRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut page_size__ = None; + let mut page_token__ = None; + let mut filter__ = None; + let mut order_by__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::OrderBy => { + if order_by__.is_some() { + return Err(serde::de::Error::duplicate_field("orderBy")); + } + order_by__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamiliesRequest { + page_size: page_size__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + order_by: order_by__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamiliesRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamiliesResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.families.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamiliesResponse", len)?; + if !self.families.is_empty() { + struct_ser.serialize_field("families", &self.families)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamiliesResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "families", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Families, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "families" => Ok(GeneratedField::Families), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamiliesResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamiliesResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut families__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Families => { + if families__.is_some() { + return Err(serde::de::Error::duplicate_field("families")); + } + families__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamiliesResponse { + families: families__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamiliesResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamily { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.family.is_some() { + len += 1; + } + if self.family_version.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamily", len)?; + if let Some(v) = self.family.as_ref() { + struct_ser.serialize_field("family", v)?; + } + if let Some(v) = self.family_version.as_ref() { + struct_ser.serialize_field("familyVersion", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamily { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family", + "family_version", + "familyVersion", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Family, + FamilyVersion, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "family" => Ok(GeneratedField::Family), + "familyVersion" | "family_version" => Ok(GeneratedField::FamilyVersion), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamily; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamily") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family__ = None; + let mut family_version__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Family => { + if family__.is_some() { + return Err(serde::de::Error::duplicate_field("family")); + } + family__ = map_.next_value()?; + } + GeneratedField::FamilyVersion => { + if family_version__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersion")); + } + family_version__ = map_.next_value()?; + } + } + } + Ok(ListFamily { + family: family__, + family_version: family_version__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamily", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamilyAlignmentPointsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_alignment_id.is_empty() { + len += 1; + } + if self.page_size != 0 { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamilyAlignmentPointsRequest", len)?; + if !self.family_alignment_id.is_empty() { + struct_ser.serialize_field("familyAlignmentId", &self.family_alignment_id)?; + } + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamilyAlignmentPointsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_alignment_id", + "familyAlignmentId", + "page_size", + "pageSize", + "filter", + "page_token", + "pageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyAlignmentId, + PageSize, + Filter, + PageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyAlignmentId" | "family_alignment_id" => Ok(GeneratedField::FamilyAlignmentId), + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "filter" => Ok(GeneratedField::Filter), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamilyAlignmentPointsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamilyAlignmentPointsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_alignment_id__ = None; + let mut page_size__ = None; + let mut filter__ = None; + let mut page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyAlignmentId => { + if family_alignment_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignmentId")); + } + family_alignment_id__ = Some(map_.next_value()?); + } + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamilyAlignmentPointsRequest { + family_alignment_id: family_alignment_id__.unwrap_or_default(), + page_size: page_size__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamilyAlignmentPointsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamilyAlignmentPointsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_alignment_points.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamilyAlignmentPointsResponse", len)?; + if !self.family_alignment_points.is_empty() { + struct_ser.serialize_field("familyAlignmentPoints", &self.family_alignment_points)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamilyAlignmentPointsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_alignment_points", + "familyAlignmentPoints", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyAlignmentPoints, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyAlignmentPoints" | "family_alignment_points" => Ok(GeneratedField::FamilyAlignmentPoints), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamilyAlignmentPointsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamilyAlignmentPointsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_alignment_points__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyAlignmentPoints => { + if family_alignment_points__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignmentPoints")); + } + family_alignment_points__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamilyAlignmentPointsResponse { + family_alignment_points: family_alignment_points__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamilyAlignmentPointsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamilyAlignmentsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_version_id.is_empty() { + len += 1; + } + if self.page_size != 0 { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamilyAlignmentsRequest", len)?; + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamilyAlignmentsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_version_id", + "familyVersionId", + "page_size", + "pageSize", + "filter", + "page_token", + "pageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyVersionId, + PageSize, + Filter, + PageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "filter" => Ok(GeneratedField::Filter), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamilyAlignmentsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamilyAlignmentsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_version_id__ = None; + let mut page_size__ = None; + let mut filter__ = None; + let mut page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamilyAlignmentsRequest { + family_version_id: family_version_id__.unwrap_or_default(), + page_size: page_size__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamilyAlignmentsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamilyAlignmentsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_alignments.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamilyAlignmentsResponse", len)?; + if !self.family_alignments.is_empty() { + struct_ser.serialize_field("familyAlignments", &self.family_alignments)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamilyAlignmentsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_alignments", + "familyAlignments", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyAlignments, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyAlignments" | "family_alignments" => Ok(GeneratedField::FamilyAlignments), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamilyAlignmentsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamilyAlignmentsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_alignments__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyAlignments => { + if family_alignments__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignments")); + } + family_alignments__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamilyAlignmentsResponse { + family_alignments: family_alignments__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamilyAlignmentsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamilyCandidateRunsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.page_size != 0 { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.order_by.is_empty() { + len += 1; + } + if !self.family_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamilyCandidateRunsRequest", len)?; + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.order_by.is_empty() { + struct_ser.serialize_field("orderBy", &self.order_by)?; + } + if !self.family_id.is_empty() { + struct_ser.serialize_field("familyId", &self.family_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamilyCandidateRunsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "page_size", + "pageSize", + "page_token", + "pageToken", + "filter", + "order_by", + "orderBy", + "family_id", + "familyId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PageSize, + PageToken, + Filter, + OrderBy, + FamilyId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + "filter" => Ok(GeneratedField::Filter), + "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamilyCandidateRunsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamilyCandidateRunsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut page_size__ = None; + let mut page_token__ = None; + let mut filter__ = None; + let mut order_by__ = None; + let mut family_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::OrderBy => { + if order_by__.is_some() { + return Err(serde::de::Error::duplicate_field("orderBy")); + } + order_by__ = Some(map_.next_value()?); + } + GeneratedField::FamilyId => { + if family_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_id__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamilyCandidateRunsRequest { + page_size: page_size__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + order_by: order_by__.unwrap_or_default(), + family_id: family_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamilyCandidateRunsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamilyCandidateRunsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.runs.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamilyCandidateRunsResponse", len)?; + if !self.runs.is_empty() { + struct_ser.serialize_field("runs", &self.runs)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamilyCandidateRunsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "runs", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Runs, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "runs" => Ok(GeneratedField::Runs), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamilyCandidateRunsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamilyCandidateRunsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut runs__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Runs => { + if runs__.is_some() { + return Err(serde::de::Error::duplicate_field("runs")); + } + runs__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamilyCandidateRunsResponse { + runs: runs__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamilyCandidateRunsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamilyMembersRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_version_id.is_empty() { + len += 1; + } + if self.page_size != 0 { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamilyMembersRequest", len)?; + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamilyMembersRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_version_id", + "familyVersionId", + "page_size", + "pageSize", + "filter", + "page_token", + "pageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyVersionId, + PageSize, + Filter, + PageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "filter" => Ok(GeneratedField::Filter), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamilyMembersRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamilyMembersRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_version_id__ = None; + let mut page_size__ = None; + let mut filter__ = None; + let mut page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamilyMembersRequest { + family_version_id: family_version_id__.unwrap_or_default(), + page_size: page_size__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamilyMembersRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamilyMembersResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_runs.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamilyMembersResponse", len)?; + if !self.family_runs.is_empty() { + struct_ser.serialize_field("familyRuns", &self.family_runs)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamilyMembersResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_runs", + "familyRuns", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyRuns, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyRuns" | "family_runs" => Ok(GeneratedField::FamilyRuns), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamilyMembersResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamilyMembersResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_runs__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyRuns => { + if family_runs__.is_some() { + return Err(serde::de::Error::duplicate_field("familyRuns")); + } + family_runs__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamilyMembersResponse { + family_runs: family_runs__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamilyMembersResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamilyVersionsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.page_size != 0 { + len += 1; + } + if !self.filter.is_empty() { + len += 1; + } + if !self.page_token.is_empty() { + len += 1; + } + if !self.order_by.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamilyVersionsRequest", len)?; + if self.page_size != 0 { + struct_ser.serialize_field("pageSize", &self.page_size)?; + } + if !self.filter.is_empty() { + struct_ser.serialize_field("filter", &self.filter)?; + } + if !self.page_token.is_empty() { + struct_ser.serialize_field("pageToken", &self.page_token)?; + } + if !self.order_by.is_empty() { + struct_ser.serialize_field("orderBy", &self.order_by)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamilyVersionsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "page_size", + "pageSize", + "filter", + "page_token", + "pageToken", + "order_by", + "orderBy", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PageSize, + Filter, + PageToken, + OrderBy, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "pageSize" | "page_size" => Ok(GeneratedField::PageSize), + "filter" => Ok(GeneratedField::Filter), + "pageToken" | "page_token" => Ok(GeneratedField::PageToken), + "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamilyVersionsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamilyVersionsRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut page_size__ = None; + let mut filter__ = None; + let mut page_token__ = None; + let mut order_by__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::PageSize => { + if page_size__.is_some() { + return Err(serde::de::Error::duplicate_field("pageSize")); + } + page_size__ = + Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Filter => { + if filter__.is_some() { + return Err(serde::de::Error::duplicate_field("filter")); + } + filter__ = Some(map_.next_value()?); + } + GeneratedField::PageToken => { + if page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("pageToken")); + } + page_token__ = Some(map_.next_value()?); + } + GeneratedField::OrderBy => { + if order_by__.is_some() { + return Err(serde::de::Error::duplicate_field("orderBy")); + } + order_by__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamilyVersionsRequest { + page_size: page_size__.unwrap_or_default(), + filter: filter__.unwrap_or_default(), + page_token: page_token__.unwrap_or_default(), + order_by: order_by__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamilyVersionsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ListFamilyVersionsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_versions.is_empty() { + len += 1; + } + if !self.next_page_token.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ListFamilyVersionsResponse", len)?; + if !self.family_versions.is_empty() { + struct_ser.serialize_field("familyVersions", &self.family_versions)?; + } + if !self.next_page_token.is_empty() { + struct_ser.serialize_field("nextPageToken", &self.next_page_token)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ListFamilyVersionsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_versions", + "familyVersions", + "next_page_token", + "nextPageToken", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyVersions, + NextPageToken, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyVersions" | "family_versions" => Ok(GeneratedField::FamilyVersions), + "nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ListFamilyVersionsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ListFamilyVersionsResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_versions__ = None; + let mut next_page_token__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyVersions => { + if family_versions__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersions")); + } + family_versions__ = Some(map_.next_value()?); + } + GeneratedField::NextPageToken => { + if next_page_token__.is_some() { + return Err(serde::de::Error::duplicate_field("nextPageToken")); + } + next_page_token__ = Some(map_.next_value()?); + } + } + } + Ok(ListFamilyVersionsResponse { + family_versions: family_versions__.unwrap_or_default(), + next_page_token: next_page_token__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ListFamilyVersionsResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for RunAlignment { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.bound != 0 { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.RunAlignment", len)?; + if self.bound != 0 { + let v = TimeRangeBound::try_from(self.bound) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.bound)))?; + struct_ser.serialize_field("bound", &v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for RunAlignment { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "bound", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Bound, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "bound" => Ok(GeneratedField::Bound), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = RunAlignment; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.RunAlignment") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut bound__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Bound => { + if bound__.is_some() { + return Err(serde::de::Error::duplicate_field("bound")); + } + bound__ = Some(map_.next_value::()? as i32); + } + } + } + Ok(RunAlignment { + bound: bound__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.RunAlignment", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for TimeRangeBound { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "TIME_RANGE_BOUND_UNSPECIFIED", + Self::Start => "TIME_RANGE_BOUND_START", + Self::End => "TIME_RANGE_BOUND_END", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for TimeRangeBound { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "TIME_RANGE_BOUND_UNSPECIFIED", + "TIME_RANGE_BOUND_START", + "TIME_RANGE_BOUND_END", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TimeRangeBound; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + i32::try_from(v) + .ok() + .and_then(|x| x.try_into().ok()) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "TIME_RANGE_BOUND_UNSPECIFIED" => Ok(TimeRangeBound::Unspecified), + "TIME_RANGE_BOUND_START" => Ok(TimeRangeBound::Start), + "TIME_RANGE_BOUND_END" => Ok(TimeRangeBound::End), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for TimestampAlignment { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.timestamp.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.TimestampAlignment", len)?; + if let Some(v) = self.timestamp.as_ref() { + struct_ser.serialize_field("timestamp", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for TimestampAlignment { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "timestamp", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Timestamp, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "timestamp" => Ok(GeneratedField::Timestamp), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TimestampAlignment; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.TimestampAlignment") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut timestamp__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Timestamp => { + if timestamp__.is_some() { + return Err(serde::de::Error::duplicate_field("timestamp")); + } + timestamp__ = map_.next_value()?; + } + } + } + Ok(TimestampAlignment { + timestamp: timestamp__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.TimestampAlignment", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for UpdateFamilyRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.family.is_some() { + len += 1; + } + if self.update_mask.is_some() { + len += 1; + } + if self.family_identifier.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.UpdateFamilyRequest", len)?; + if let Some(v) = self.family.as_ref() { + struct_ser.serialize_field("family", v)?; + } + if let Some(v) = self.update_mask.as_ref() { + struct_ser.serialize_field("updateMask", v)?; + } + if let Some(v) = self.family_identifier.as_ref() { + match v { + update_family_request::FamilyIdentifier::FamilyId(v) => { + struct_ser.serialize_field("familyId", v)?; + } + update_family_request::FamilyIdentifier::ClientKey(v) => { + struct_ser.serialize_field("clientKey", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UpdateFamilyRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family", + "update_mask", + "updateMask", + "family_id", + "familyId", + "client_key", + "clientKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Family, + UpdateMask, + FamilyId, + ClientKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "family" => Ok(GeneratedField::Family), + "updateMask" | "update_mask" => Ok(GeneratedField::UpdateMask), + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + "clientKey" | "client_key" => Ok(GeneratedField::ClientKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UpdateFamilyRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.UpdateFamilyRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family__ = None; + let mut update_mask__ = None; + let mut family_identifier__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Family => { + if family__.is_some() { + return Err(serde::de::Error::duplicate_field("family")); + } + family__ = map_.next_value()?; + } + GeneratedField::UpdateMask => { + if update_mask__.is_some() { + return Err(serde::de::Error::duplicate_field("updateMask")); + } + update_mask__ = map_.next_value()?; + } + GeneratedField::FamilyId => { + if family_identifier__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_identifier__ = map_.next_value::<::std::option::Option<_>>()?.map(update_family_request::FamilyIdentifier::FamilyId); + } + GeneratedField::ClientKey => { + if family_identifier__.is_some() { + return Err(serde::de::Error::duplicate_field("clientKey")); + } + family_identifier__ = map_.next_value::<::std::option::Option<_>>()?.map(update_family_request::FamilyIdentifier::ClientKey); + } + } + } + Ok(UpdateFamilyRequest { + family: family__, + update_mask: update_mask__, + family_identifier: family_identifier__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.UpdateFamilyRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for UpdateFamilyResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_version_id.is_empty() { + len += 1; + } + if self.family.is_some() { + len += 1; + } + if !self.family_stats.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.UpdateFamilyResponse", len)?; + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + if let Some(v) = self.family.as_ref() { + struct_ser.serialize_field("family", v)?; + } + if !self.family_stats.is_empty() { + struct_ser.serialize_field("familyStats", &self.family_stats)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UpdateFamilyResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_version_id", + "familyVersionId", + "family", + "family_stats", + "familyStats", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyVersionId, + Family, + FamilyStats, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + "family" => Ok(GeneratedField::Family), + "familyStats" | "family_stats" => Ok(GeneratedField::FamilyStats), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UpdateFamilyResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.UpdateFamilyResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_version_id__ = None; + let mut family__ = None; + let mut family_stats__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + GeneratedField::Family => { + if family__.is_some() { + return Err(serde::de::Error::duplicate_field("family")); + } + family__ = map_.next_value()?; + } + GeneratedField::FamilyStats => { + if family_stats__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStats")); + } + family_stats__ = Some(map_.next_value()?); + } + } + } + Ok(UpdateFamilyResponse { + family_version_id: family_version_id__.unwrap_or_default(), + family: family__, + family_stats: family_stats__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.UpdateFamilyResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ValidateFamilyClientKeyRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.client_key.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ValidateFamilyClientKeyRequest", len)?; + if !self.client_key.is_empty() { + struct_ser.serialize_field("clientKey", &self.client_key)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ValidateFamilyClientKeyRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "client_key", + "clientKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + ClientKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "clientKey" | "client_key" => Ok(GeneratedField::ClientKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ValidateFamilyClientKeyRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ValidateFamilyClientKeyRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut client_key__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::ClientKey => { + if client_key__.is_some() { + return Err(serde::de::Error::duplicate_field("clientKey")); + } + client_key__ = Some(map_.next_value()?); + } + } + } + Ok(ValidateFamilyClientKeyRequest { + client_key: client_key__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ValidateFamilyClientKeyRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ValidateFamilyClientKeyResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.result.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ValidateFamilyClientKeyResponse", len)?; + if let Some(v) = self.result.as_ref() { + match v { + validate_family_client_key_response::Result::Success(v) => { + struct_ser.serialize_field("success", v)?; + } + validate_family_client_key_response::Result::ErrorMessage(v) => { + struct_ser.serialize_field("errorMessage", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ValidateFamilyClientKeyResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "success", + "error_message", + "errorMessage", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Success, + ErrorMessage, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "success" => Ok(GeneratedField::Success), + "errorMessage" | "error_message" => Ok(GeneratedField::ErrorMessage), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ValidateFamilyClientKeyResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ValidateFamilyClientKeyResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut result__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Success => { + if result__.is_some() { + return Err(serde::de::Error::duplicate_field("success")); + } + result__ = map_.next_value::<::std::option::Option<_>>()?.map(validate_family_client_key_response::Result::Success); + } + GeneratedField::ErrorMessage => { + if result__.is_some() { + return Err(serde::de::Error::duplicate_field("errorMessage")); + } + result__ = map_.next_value::<::std::option::Option<_>>()?.map(validate_family_client_key_response::Result::ErrorMessage); + } + } + } + Ok(ValidateFamilyClientKeyResponse { + result: result__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ValidateFamilyClientKeyResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ValidateFamilyNameRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_name.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ValidateFamilyNameRequest", len)?; + if !self.family_name.is_empty() { + struct_ser.serialize_field("familyName", &self.family_name)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ValidateFamilyNameRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_name", + "familyName", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyName, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyName" | "family_name" => Ok(GeneratedField::FamilyName), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ValidateFamilyNameRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ValidateFamilyNameRequest") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_name__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyName => { + if family_name__.is_some() { + return Err(serde::de::Error::duplicate_field("familyName")); + } + family_name__ = Some(map_.next_value()?); + } + } + } + Ok(ValidateFamilyNameRequest { + family_name: family_name__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ValidateFamilyNameRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ValidateFamilyNameResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.result.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.ValidateFamilyNameResponse", len)?; + if let Some(v) = self.result.as_ref() { + match v { + validate_family_name_response::Result::Success(v) => { + struct_ser.serialize_field("success", v)?; + } + validate_family_name_response::Result::ErrorMessage(v) => { + struct_ser.serialize_field("errorMessage", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ValidateFamilyNameResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "success", + "error_message", + "errorMessage", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Success, + ErrorMessage, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "success" => Ok(GeneratedField::Success), + "errorMessage" | "error_message" => Ok(GeneratedField::ErrorMessage), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ValidateFamilyNameResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.ValidateFamilyNameResponse") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut result__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Success => { + if result__.is_some() { + return Err(serde::de::Error::duplicate_field("success")); + } + result__ = map_.next_value::<::std::option::Option<_>>()?.map(validate_family_name_response::Result::Success); + } + GeneratedField::ErrorMessage => { + if result__.is_some() { + return Err(serde::de::Error::duplicate_field("errorMessage")); + } + result__ = map_.next_value::<::std::option::Option<_>>()?.map(validate_family_name_response::Result::ErrorMessage); + } + } + } + Ok(ValidateFamilyNameResponse { + result: result__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.ValidateFamilyNameResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for WindowType { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_alignment_id.is_empty() { + len += 1; + } + if self.duration.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.families.v1.WindowType", len)?; + if !self.family_alignment_id.is_empty() { + struct_ser.serialize_field("familyAlignmentId", &self.family_alignment_id)?; + } + if let Some(v) = self.duration.as_ref() { + struct_ser.serialize_field("duration", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for WindowType { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_alignment_id", + "familyAlignmentId", + "duration", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyAlignmentId, + Duration, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyAlignmentId" | "family_alignment_id" => Ok(GeneratedField::FamilyAlignmentId), + "duration" => Ok(GeneratedField::Duration), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WindowType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.families.v1.WindowType") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_alignment_id__ = None; + let mut duration__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyAlignmentId => { + if family_alignment_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignmentId")); + } + family_alignment_id__ = Some(map_.next_value()?); + } + GeneratedField::Duration => { + if duration__.is_some() { + return Err(serde::de::Error::duplicate_field("duration")); + } + duration__ = map_.next_value()?; + } + } + } + Ok(WindowType { + family_alignment_id: family_alignment_id__.unwrap_or_default(), + duration: duration__, + }) + } + } + deserializer.deserialize_struct("sift.families.v1.WindowType", FIELDS, GeneratedVisitor) + } +} diff --git a/rust/crates/sift_rs/src/gen/sift/families/v1/sift.families.v1.tonic.rs b/rust/crates/sift_rs/src/gen/sift/families/v1/sift.families.v1.tonic.rs new file mode 100644 index 0000000000..5906aa2bed --- /dev/null +++ b/rust/crates/sift_rs/src/gen/sift/families/v1/sift.families.v1.tonic.rs @@ -0,0 +1,2205 @@ +// @generated +/// Generated client implementations. +pub mod family_service_client { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + #[derive(Debug, Clone)] + pub struct FamilyServiceClient { + inner: tonic::client::Grpc, + } + impl FamilyServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl FamilyServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> FamilyServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + std::marker::Send + std::marker::Sync, + { + FamilyServiceClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + pub async fn get_family( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/GetFamily", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("sift.families.v1.FamilyService", "GetFamily")); + self.inner.unary(req, path, codec).await + } + pub async fn get_families( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/GetFamilies", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.families.v1.FamilyService", "GetFamilies"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn get_family_version( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/GetFamilyVersion", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.families.v1.FamilyService", "GetFamilyVersion"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn create_family( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/CreateFamily", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.families.v1.FamilyService", "CreateFamily"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn update_family( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/UpdateFamily", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.families.v1.FamilyService", "UpdateFamily"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn get_family_candidate_runs( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/GetFamilyCandidateRuns", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "GetFamilyCandidateRuns", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn get_family_candidate_run_count( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/GetFamilyCandidateRunCount", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "GetFamilyCandidateRunCount", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn list_family_candidate_runs( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/ListFamilyCandidateRuns", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "ListFamilyCandidateRuns", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn get_family_candidate_run_filter_fields( + &mut self, + request: impl tonic::IntoRequest< + super::GetFamilyCandidateRunFilterFieldsRequest, + >, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/GetFamilyCandidateRunFilterFields", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "GetFamilyCandidateRunFilterFields", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn list_families( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/ListFamilies", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.families.v1.FamilyService", "ListFamilies"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn list_family_versions( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/ListFamilyVersions", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "ListFamilyVersions", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn list_family_members( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/ListFamilyMembers", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "ListFamilyMembers", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn list_family_alignments( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/ListFamilyAlignments", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "ListFamilyAlignments", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn list_family_alignment_points( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/ListFamilyAlignmentPoints", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "ListFamilyAlignmentPoints", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn import_family( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/ImportFamily", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.families.v1.FamilyService", "ImportFamily"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn import_update_family( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/ImportUpdateFamily", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "ImportUpdateFamily", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn export_family( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/ExportFamily", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.families.v1.FamilyService", "ExportFamily"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn validate_family_name( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/ValidateFamilyName", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "ValidateFamilyName", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn validate_family_client_key( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/ValidateFamilyClientKey", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "ValidateFamilyClientKey", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn get_family_stat( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/GetFamilyStat", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.families.v1.FamilyService", "GetFamilyStat"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn get_family_stats( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/GetFamilyStats", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new("sift.families.v1.FamilyService", "GetFamilyStats"), + ); + self.inner.unary(req, path, codec).await + } + pub async fn create_family_stat_ranges( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/CreateFamilyStatRanges", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "CreateFamilyStatRanges", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn get_family_rule_dependencies( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/GetFamilyRuleDependencies", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "GetFamilyRuleDependencies", + ), + ); + self.inner.unary(req, path, codec).await + } + pub async fn generate_family_stat_range_name( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/sift.families.v1.FamilyService/GenerateFamilyStatRangeName", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "sift.families.v1.FamilyService", + "GenerateFamilyStatRangeName", + ), + ); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +pub mod family_service_server { + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with FamilyServiceServer. + #[async_trait] + pub trait FamilyService: std::marker::Send + std::marker::Sync + 'static { + async fn get_family( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn get_families( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn get_family_version( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn create_family( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn update_family( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn get_family_candidate_runs( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn get_family_candidate_run_count( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn list_family_candidate_runs( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn get_family_candidate_run_filter_fields( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn list_families( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn list_family_versions( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn list_family_members( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn list_family_alignments( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn list_family_alignment_points( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn import_family( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn import_update_family( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn export_family( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn validate_family_name( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn validate_family_client_key( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn get_family_stat( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn get_family_stats( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn create_family_stat_ranges( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn get_family_rule_dependencies( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + async fn generate_family_stat_range_name( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + #[derive(Debug)] + pub struct FamilyServiceServer { + inner: Arc, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + impl FamilyServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for FamilyServiceServer + where + T: FamilyService, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + match req.uri().path() { + "/sift.families.v1.FamilyService/GetFamily" => { + #[allow(non_camel_case_types)] + struct GetFamilySvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for GetFamilySvc { + type Response = super::GetFamilyResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_family(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFamilySvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/GetFamilies" => { + #[allow(non_camel_case_types)] + struct GetFamiliesSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for GetFamiliesSvc { + type Response = super::GetFamiliesResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_families(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFamiliesSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/GetFamilyVersion" => { + #[allow(non_camel_case_types)] + struct GetFamilyVersionSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for GetFamilyVersionSvc { + type Response = super::GetFamilyVersionResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_family_version(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFamilyVersionSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/CreateFamily" => { + #[allow(non_camel_case_types)] + struct CreateFamilySvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for CreateFamilySvc { + type Response = super::CreateFamilyResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::create_family(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = CreateFamilySvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/UpdateFamily" => { + #[allow(non_camel_case_types)] + struct UpdateFamilySvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for UpdateFamilySvc { + type Response = super::UpdateFamilyResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::update_family(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = UpdateFamilySvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/GetFamilyCandidateRuns" => { + #[allow(non_camel_case_types)] + struct GetFamilyCandidateRunsSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for GetFamilyCandidateRunsSvc { + type Response = super::GetFamilyCandidateRunsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_family_candidate_runs( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFamilyCandidateRunsSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/GetFamilyCandidateRunCount" => { + #[allow(non_camel_case_types)] + struct GetFamilyCandidateRunCountSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService< + super::GetFamilyCandidateRunCountRequest, + > for GetFamilyCandidateRunCountSvc { + type Response = super::GetFamilyCandidateRunCountResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::GetFamilyCandidateRunCountRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_family_candidate_run_count( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFamilyCandidateRunCountSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/ListFamilyCandidateRuns" => { + #[allow(non_camel_case_types)] + struct ListFamilyCandidateRunsSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for ListFamilyCandidateRunsSvc { + type Response = super::ListFamilyCandidateRunsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::ListFamilyCandidateRunsRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list_family_candidate_runs( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ListFamilyCandidateRunsSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/GetFamilyCandidateRunFilterFields" => { + #[allow(non_camel_case_types)] + struct GetFamilyCandidateRunFilterFieldsSvc( + pub Arc, + ); + impl< + T: FamilyService, + > tonic::server::UnaryService< + super::GetFamilyCandidateRunFilterFieldsRequest, + > for GetFamilyCandidateRunFilterFieldsSvc { + type Response = super::GetFamilyCandidateRunFilterFieldsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::GetFamilyCandidateRunFilterFieldsRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_family_candidate_run_filter_fields( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFamilyCandidateRunFilterFieldsSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/ListFamilies" => { + #[allow(non_camel_case_types)] + struct ListFamiliesSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for ListFamiliesSvc { + type Response = super::ListFamiliesResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list_families(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ListFamiliesSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/ListFamilyVersions" => { + #[allow(non_camel_case_types)] + struct ListFamilyVersionsSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for ListFamilyVersionsSvc { + type Response = super::ListFamilyVersionsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list_family_versions(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ListFamilyVersionsSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/ListFamilyMembers" => { + #[allow(non_camel_case_types)] + struct ListFamilyMembersSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for ListFamilyMembersSvc { + type Response = super::ListFamilyMembersResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list_family_members(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ListFamilyMembersSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/ListFamilyAlignments" => { + #[allow(non_camel_case_types)] + struct ListFamilyAlignmentsSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for ListFamilyAlignmentsSvc { + type Response = super::ListFamilyAlignmentsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list_family_alignments( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ListFamilyAlignmentsSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/ListFamilyAlignmentPoints" => { + #[allow(non_camel_case_types)] + struct ListFamilyAlignmentPointsSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService< + super::ListFamilyAlignmentPointsRequest, + > for ListFamilyAlignmentPointsSvc { + type Response = super::ListFamilyAlignmentPointsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::ListFamilyAlignmentPointsRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::list_family_alignment_points( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ListFamilyAlignmentPointsSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/ImportFamily" => { + #[allow(non_camel_case_types)] + struct ImportFamilySvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for ImportFamilySvc { + type Response = super::ImportFamilyResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::import_family(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ImportFamilySvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/ImportUpdateFamily" => { + #[allow(non_camel_case_types)] + struct ImportUpdateFamilySvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for ImportUpdateFamilySvc { + type Response = super::ImportUpdateFamilyResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::import_update_family(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ImportUpdateFamilySvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/ExportFamily" => { + #[allow(non_camel_case_types)] + struct ExportFamilySvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for ExportFamilySvc { + type Response = super::ExportFamilyResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::export_family(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ExportFamilySvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/ValidateFamilyName" => { + #[allow(non_camel_case_types)] + struct ValidateFamilyNameSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for ValidateFamilyNameSvc { + type Response = super::ValidateFamilyNameResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::validate_family_name(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ValidateFamilyNameSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/ValidateFamilyClientKey" => { + #[allow(non_camel_case_types)] + struct ValidateFamilyClientKeySvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for ValidateFamilyClientKeySvc { + type Response = super::ValidateFamilyClientKeyResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::ValidateFamilyClientKeyRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::validate_family_client_key( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ValidateFamilyClientKeySvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/GetFamilyStat" => { + #[allow(non_camel_case_types)] + struct GetFamilyStatSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for GetFamilyStatSvc { + type Response = super::GetFamilyStatResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_family_stat(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFamilyStatSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/GetFamilyStats" => { + #[allow(non_camel_case_types)] + struct GetFamilyStatsSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for GetFamilyStatsSvc { + type Response = super::GetFamilyStatsResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_family_stats(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFamilyStatsSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/CreateFamilyStatRanges" => { + #[allow(non_camel_case_types)] + struct CreateFamilyStatRangesSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService + for CreateFamilyStatRangesSvc { + type Response = super::CreateFamilyStatRangesResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::create_family_stat_ranges( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = CreateFamilyStatRangesSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/GetFamilyRuleDependencies" => { + #[allow(non_camel_case_types)] + struct GetFamilyRuleDependenciesSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService< + super::GetFamilyRuleDependenciesRequest, + > for GetFamilyRuleDependenciesSvc { + type Response = super::GetFamilyRuleDependenciesResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::GetFamilyRuleDependenciesRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::get_family_rule_dependencies( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GetFamilyRuleDependenciesSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + "/sift.families.v1.FamilyService/GenerateFamilyStatRangeName" => { + #[allow(non_camel_case_types)] + struct GenerateFamilyStatRangeNameSvc(pub Arc); + impl< + T: FamilyService, + > tonic::server::UnaryService< + super::GenerateFamilyStatRangeNameRequest, + > for GenerateFamilyStatRangeNameSvc { + type Response = super::GenerateFamilyStatRangeNameResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::GenerateFamilyStatRangeNameRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::generate_family_stat_range_name( + &inner, + request, + ) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = GenerateFamilyStatRangeNameSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + let mut response = http::Response::new( + tonic::body::Body::default(), + ); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) + }) + } + } + } + } + impl Clone for FamilyServiceServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "sift.families.v1.FamilyService"; + impl tonic::server::NamedService for FamilyServiceServer { + const NAME: &'static str = SERVICE_NAME; + } +} diff --git a/rust/crates/sift_rs/src/gen/sift/reports/v1/sift.reports.v1.rs b/rust/crates/sift_rs/src/gen/sift/reports/v1/sift.reports.v1.rs index c7ac67ba38..f67985570b 100644 --- a/rust/crates/sift_rs/src/gen/sift/reports/v1/sift.reports.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift/reports/v1/sift.reports.v1.rs @@ -38,6 +38,10 @@ pub struct Report { pub is_archived: bool, #[prost(enumeration="ReportType", tag="18")] pub report_type: i32, + #[prost(string, optional, tag="19")] + pub canvas_execution_id: ::core::option::Option<::prost::alloc::string::String>, + #[prost(enumeration="super::super::canvas::v1::CanvasCellExecutionStatus", optional, tag="20")] + pub canvas_status: ::core::option::Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ReportWithCumulativeSummary { @@ -75,8 +79,12 @@ pub struct ReportWithCumulativeSummary { pub is_archived: bool, #[prost(enumeration="ReportType", tag="17")] pub report_type: i32, + #[prost(string, optional, tag="18")] + pub canvas_execution_id: ::core::option::Option<::prost::alloc::string::String>, + #[prost(enumeration="super::super::canvas::v1::CanvasCellExecutionStatus", optional, tag="19")] + pub canvas_status: ::core::option::Option, } -#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct ReportRuleSummary { #[prost(string, tag="1")] pub rule_id: ::prost::alloc::string::String, @@ -106,6 +114,10 @@ pub struct ReportRuleSummary { pub asset_id: ::prost::alloc::string::String, #[prost(message, optional, tag="14")] pub deleted_date: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, repeated, tag="15")] + pub resolved_family_stats: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="16")] + pub resolved_alignment_configs: ::prost::alloc::vec::Vec, #[prost(uint32, tag="17")] pub display_order: u32, } @@ -142,6 +154,49 @@ pub struct ReportCumulativeRuleSummary { pub num_of_rules_without_annotations: u32, } #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ResolvedFamilyStat { + #[prost(string, tag="1")] + pub reference: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub family_id: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub family_version_id: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub family_stat_expression_id: ::prost::alloc::string::String, + #[prost(string, tag="5")] + pub family_stat_range_id: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ResolvedAlignmentEntry { + #[prost(string, repeated, tag="1")] + pub channel_references: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(message, optional, tag="2")] + pub t0: ::core::option::Option, + #[prost(message, optional, tag="3")] + pub start_time: ::core::option::Option, + #[prost(message, optional, tag="4")] + pub end_time: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ResolvedAlignmentPoint { + #[prost(message, optional, tag="1")] + pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(oneof="resolved_alignment_point::AlignmentConfig", tags="3, 4, 5")] + pub alignment_config: ::core::option::Option, +} +/// Nested message and enum types in `ResolvedAlignmentPoint`. +pub mod resolved_alignment_point { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum AlignmentConfig { + #[prost(message, tag="3")] + Run(super::super::super::families::v1::RunAlignment), + #[prost(message, tag="4")] + Annotation(super::super::super::families::v1::AnnotationAlignment), + #[prost(message, tag="5")] + TimestampConfig(super::super::super::families::v1::TimestampAlignment), + } +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct ReportRuleStatusDetails { #[prost(oneof="report_rule_status_details::Details", tags="1, 2, 3, 4, 5, 6")] pub details: ::core::option::Option, @@ -396,6 +451,7 @@ pub struct ListReportMetadataValuesResponse { pub enum ReportType { Unspecified = 0, RuleEvaluation = 1, + Canvas = 2, } impl ReportType { /// String value of the enum field names used in the ProtoBuf definition. @@ -406,6 +462,7 @@ impl ReportType { match self { Self::Unspecified => "REPORT_TYPE_UNSPECIFIED", Self::RuleEvaluation => "REPORT_TYPE_RULE_EVALUATION", + Self::Canvas => "REPORT_TYPE_CANVAS", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -413,6 +470,7 @@ impl ReportType { match value { "REPORT_TYPE_UNSPECIFIED" => Some(Self::Unspecified), "REPORT_TYPE_RULE_EVALUATION" => Some(Self::RuleEvaluation), + "REPORT_TYPE_CANVAS" => Some(Self::Canvas), _ => None, } } @@ -460,7 +518,7 @@ impl ReportRuleStatus { } /// Encoded file descriptor set for the `sift.reports.v1` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xcb, 0xa7, 0x02, 0x0a, 0x1d, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x0a, 0xaa, 0xc1, 0x02, 0x0a, 0x1d, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, @@ -474,410 +532,482 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf0, 0x07, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, - 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x09, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x33, 0x0a, - 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x12, 0x39, 0x0a, 0x14, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, - 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x46, 0x72, - 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, - 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x48, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, - 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x61, 0x6e, + 0x76, 0x61, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xae, 0x09, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x49, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, + 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, + 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x69, - 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x64, 0x12, 0x41, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, - 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0xde, 0x07, 0x0a, 0x1b, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x12, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, - 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x32, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x60, - 0x0a, 0x12, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, - 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x12, 0x33, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x14, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, - 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x72, 0x75, - 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x1f, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, - 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x64, 0x12, 0x41, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, + 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x09, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x04, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x61, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x12, 0x39, 0x0a, 0x14, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x46, 0x72, 0x6f, 0x6d, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x06, 0x6a, + 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, + 0x41, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x38, 0x0a, 0x13, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x48, 0x04, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0d, + 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6e, 0x76, 0x61, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x43, 0x65, 0x6c, 0x6c, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x05, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x72, 0x75, 0x6e, + 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x9c, 0x09, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, + 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, + 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, + 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x60, 0x0a, 0x12, 0x63, 0x75, + 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x63, 0x75, 0x6d, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x04, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x12, 0x39, 0x0a, 0x14, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x46, 0x72, 0x6f, + 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x06, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x0d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x41, + 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x38, 0x0a, 0x13, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x04, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0d, 0x63, + 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x43, 0x65, 0x6c, 0x6c, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x05, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0x90, 0x06, 0x0a, 0x11, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x79, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x72, - 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x0f, - 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x38, - 0x0a, 0x16, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, - 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x07, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, - 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0a, - 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, - 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x54, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x44, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x2b, - 0x0a, 0x09, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x08, 0x74, - 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9b, 0x05, 0x0a, 0x1b, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x14, 0x6e, - 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6f, - 0x70, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, - 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x70, - 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, - 0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x5f, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x6e, 0x75, - 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x12, 0x2f, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x29, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, - 0x6c, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0c, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x31, 0x0a, - 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, - 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x12, 0x2d, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0e, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, - 0x31, 0x0a, 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x2b, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, - 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x4b, 0x0a, 0x20, - 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x77, 0x69, 0x74, - 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x6e, 0x75, 0x6d, - 0x4f, 0x66, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe6, 0x03, 0x0a, 0x17, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x42, 0x0a, 0x04, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x00, - 0x52, 0x04, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x4e, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x12, 0x4e, 0x0a, 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xda, 0x07, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x07, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, + 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x0f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x4f, 0x70, + 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6e, 0x75, 0x6d, + 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, + 0x73, 0x73, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x09, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, - 0x12, 0x45, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x42, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x5c, + 0x0a, 0x15, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, + 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x6a, 0x0a, 0x1a, + 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x18, + 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x22, 0x2b, 0x0a, 0x09, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x67, 0x12, + 0x1e, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x9b, 0x05, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, + 0x35, 0x0a, 0x14, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x12, 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x6e, 0x75, 0x6d, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x12, 0x39, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x15, + 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2f, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x76, + 0x65, 0x12, 0x31, 0x0a, 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x66, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x12, 0x4b, 0x0a, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x1c, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x80, 0x02, + 0x0a, 0x12, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x19, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x16, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x14, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, + 0x22, 0x8c, 0x02, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x12, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x02, 0x74, 0x30, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, + 0x64, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, + 0x02, 0x74, 0x30, 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, + 0x65, 0x64, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0xb6, 0x02, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x32, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x47, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x51, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x12, 0x0a, 0x10, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xe6, 0x03, 0x0a, 0x17, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x12, 0x42, 0x0a, 0x04, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, - 0x69, 0x76, 0x65, 0x22, 0x71, 0x0a, 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0xc9, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, - 0x72, 0x72, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x65, 0x64, 0x22, 0xc8, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x00, 0x52, + 0x04, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x4e, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x20, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, - 0x74, 0x64, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, - 0x22, 0xd2, 0x03, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x23, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x1f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, - 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6f, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, - 0x16, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, - 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x22, 0x5a, 0x0a, 0x25, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x12, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, - 0xbe, 0x03, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, - 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x72, - 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x5f, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, + 0x4e, 0x0a, 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x12, + 0x45, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, + 0x76, 0x65, 0x22, 0x71, 0x0a, 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, + 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0xc9, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, + 0x72, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x65, 0x64, 0x22, 0xc8, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x20, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, + 0x64, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22, + 0xd2, 0x03, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x23, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x00, 0x52, 0x1f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6f, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x16, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x22, 0x5a, 0x0a, 0x25, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x12, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0xbe, + 0x03, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, + 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x74, 0x61, + 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x49, 0x64, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x72, 0x75, + 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x5f, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x63, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x63, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, - 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x42, 0x12, 0x0a, 0x10, - 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3c, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1e, - 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x22, 0x4e, - 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, - 0x2d, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, - 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x52, - 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x73, 0x22, 0x34, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, - 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, - 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, - 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x70, 0x0a, 0x13, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xda, 0x01, - 0x0a, 0x27, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, - 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6c, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x3c, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, + 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x22, 0x4e, 0x0a, + 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2d, + 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, + 0x75, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x52, 0x0a, + 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x73, 0x22, 0x34, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, @@ -888,1943 +1018,2077 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x28, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, - 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, - 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x36, 0x0a, 0x12, 0x52, 0x65, 0x72, 0x75, 0x6e, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, - 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, - 0x53, 0x0a, 0x13, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x16, 0x0a, - 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, - 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x70, 0x0a, 0x13, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xda, 0x01, 0x0a, + 0x27, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, + 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, + 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x28, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x36, 0x0a, 0x12, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x53, + 0x0a, 0x13, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x06, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, + 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, + 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x42, 0x79, 0x22, 0xa1, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x13, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2a, 0x62, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x56, 0x41, 0x53, 0x10, 0x02, 0x2a, 0xf2, 0x01, 0x0a, + 0x10, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, + 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x49, 0x56, 0x45, + 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, + 0x44, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, + 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, + 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, + 0x44, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, + 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, + 0x06, 0x32, 0xad, 0x10, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x99, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x92, 0x41, 0x1f, 0x12, 0x09, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x12, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, + 0x9a, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, + 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x1a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x22, 0x0f, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x9a, 0x01, 0x0a, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, 0x01, - 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, - 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xa1, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x15, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x13, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, - 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, - 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x1f, 0x4c, 0x69, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x20, 0x12, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x10, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x1a, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x0b, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x92, 0x41, 0x1c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0xc2, 0x02, 0x0a, + 0x0b, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe7, 0x01, 0x92, 0x41, 0xba, 0x01, 0x12, 0x0b, + 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0xaa, 0x01, 0x52, 0x65, + 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, + 0x65, 0x77, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x67, 0x61, 0x69, + 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, + 0x20, 0x75, 0x70, 0x2d, 0x74, 0x6f, 0x2d, 0x64, 0x61, 0x74, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x21, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, + 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x72, 0x65, 0x72, 0x75, + 0x6e, 0x12, 0xc4, 0x02, 0x0a, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xe6, 0x01, 0x92, 0x41, 0xb8, 0x01, 0x12, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x1a, 0xa7, 0x01, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, + 0x74, 0x6f, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x69, 0x74, 0x20, 0x61, 0x73, 0x20, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x62, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x24, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, + 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x83, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x84, 0x01, 0x92, 0x41, 0x4f, 0x12, 0x17, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x72, 0x75, 0x6c, 0x65, 0x2d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x89, + 0x02, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, - 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, - 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, - 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2a, 0x4a, 0x0a, 0x0a, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x2a, 0xf2, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x45, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, - 0x0a, 0x1a, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, - 0x0a, 0x17, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x52, - 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, - 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x52, - 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, - 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x32, 0xad, 0x10, 0x0a, 0x0d, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x99, 0x01, 0x0a, - 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x45, 0x92, 0x41, 0x1f, 0x12, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x1a, 0x12, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9a, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x14, 0x3a, 0x01, 0x2a, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x9a, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, - 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, - 0x2a, 0x1a, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x92, - 0x41, 0x1c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x1a, - 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0xc2, 0x02, 0x0a, 0x0b, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x72, - 0x75, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xe7, 0x01, 0x92, 0x41, 0xba, 0x01, 0x12, 0x0b, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x1a, 0xaa, 0x01, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x75, 0x70, 0x2d, 0x74, 0x6f, 0x2d, - 0x64, 0x61, 0x74, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x12, 0xc4, 0x02, 0x0a, 0x0c, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe6, 0x01, 0x92, 0x41, 0xb8, 0x01, 0x12, - 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0xa7, 0x01, - 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x20, 0x69, 0x74, 0x20, 0x61, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, - 0x64, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x22, 0x2f, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x87, 0x01, 0x92, 0x41, 0x51, 0x12, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x1a, 0x35, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x12, 0x83, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x84, 0x01, 0x92, 0x41, 0x4f, 0x12, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x1a, - 0x34, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x2d, 0x73, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x89, 0x02, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, 0x92, 0x41, 0x51, 0x12, - 0x18, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x35, 0x4c, 0x69, 0x73, 0x74, 0x20, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x94, 0x02, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x94, 0x02, 0x0a, 0x20, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, + 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, + 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, + 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x92, 0x41, 0x49, 0x12, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x92, - 0x41, 0x49, 0x12, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, - 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x1a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x29, 0x12, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x3a, 0x77, 0x69, 0x74, 0x68, 0x2d, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x2d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x96, 0x01, 0x92, 0x41, 0x12, - 0x12, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x0f, - 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, - 0x31, 0xe2, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x11, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, - 0x3a, 0x56, 0x31, 0x4a, 0xa0, 0xd4, 0x01, 0x0a, 0x07, 0x12, 0x05, 0x00, 0x00, 0x8c, 0x04, 0x01, - 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, - 0x03, 0x02, 0x00, 0x18, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x04, 0x00, 0x26, 0x0a, - 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, - 0x12, 0x03, 0x06, 0x00, 0x2a, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x03, 0x12, 0x03, 0x07, 0x00, 0x29, - 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, 0x08, 0x00, 0x38, 0x0a, 0x09, 0x0a, 0x02, 0x03, - 0x05, 0x12, 0x03, 0x09, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x01, 0x08, 0x12, 0x04, 0x0b, 0x00, 0x0d, - 0x02, 0x0a, 0x0b, 0x0a, 0x03, 0x08, 0x92, 0x08, 0x12, 0x04, 0x0b, 0x07, 0x0d, 0x01, 0x0a, 0x0c, - 0x0a, 0x05, 0x08, 0x92, 0x08, 0x02, 0x01, 0x12, 0x03, 0x0c, 0x09, 0x20, 0x0a, 0xd5, 0x03, 0x0a, - 0x02, 0x06, 0x00, 0x12, 0x04, 0x14, 0x00, 0x6d, 0x01, 0x1a, 0xc8, 0x03, 0x20, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x69, 0x73, 0x20, 0x67, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x72, 0x75, 0x6e, 0x27, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x20, 0x28, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x6e, - 0x0a, 0x20, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x64, 0x6f, 0x65, 0x73, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x79, 0x65, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x29, 0x2e, 0x20, 0x52, 0x50, 0x43, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, - 0x65, 0x0a, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x64, 0x20, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x3b, 0x20, 0x52, 0x50, 0x43, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x72, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x76, 0x69, - 0x61, 0x20, 0x61, 0x0a, 0x20, 0x44, 0x42, 0x20, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x20, 0x28, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x20, 0x2d, - 0x3e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x2d, 0x3e, 0x20, 0x72, 0x75, 0x6e, 0x5f, - 0x69, 0x64, 0x29, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x20, 0x69, 0x6e, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x72, 0x2e, 0x20, 0x53, 0x65, 0x65, 0x20, 0x77, 0x65, 0x62, 0x2d, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x67, 0x6f, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x65, 0x6c, 0x70, 0x65, - 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x14, 0x08, 0x15, - 0x0a, 0x22, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x04, 0x16, 0x02, 0x1c, 0x03, 0x1a, 0x14, - 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x16, - 0x06, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x16, 0x10, 0x20, - 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x16, 0x2b, 0x3c, 0x0a, 0x0c, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x17, 0x04, 0x44, 0x0a, 0x10, 0x0a, 0x09, - 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x17, 0x0b, 0x43, 0x0a, 0x11, - 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x17, 0x20, - 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x18, 0x04, 0x1b, 0x06, - 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x12, 0x04, 0x18, 0x0b, 0x1b, - 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x19, - 0x06, 0x1a, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, - 0x1a, 0x06, 0x27, 0x0a, 0x3f, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x04, 0x1f, 0x02, 0x28, - 0x03, 0x1a, 0x31, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, - 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x1f, - 0x06, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x1f, 0x13, 0x26, - 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x1f, 0x31, 0x45, 0x0a, 0x0d, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x20, 0x04, 0x23, 0x06, 0x0a, 0x11, 0x0a, - 0x09, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x20, 0x0b, 0x23, 0x05, - 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, - 0x21, 0x06, 0x1d, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x07, 0x12, 0x03, 0x22, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, - 0x04, 0x24, 0x04, 0x27, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, - 0x12, 0x04, 0x24, 0x0b, 0x27, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, - 0x08, 0x02, 0x12, 0x03, 0x25, 0x06, 0x1d, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, - 0x92, 0x08, 0x03, 0x12, 0x03, 0x26, 0x06, 0x25, 0x0a, 0x20, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x02, - 0x12, 0x04, 0x2b, 0x02, 0x34, 0x03, 0x1a, 0x12, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, - 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x02, 0x01, 0x12, 0x03, 0x2b, 0x06, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, - 0x02, 0x12, 0x03, 0x2b, 0x13, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x03, 0x12, - 0x03, 0x2b, 0x31, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, 0x2c, - 0x04, 0x2f, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x12, 0x04, 0x2c, 0x0b, 0x2f, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, - 0xca, 0xbc, 0x22, 0x03, 0x12, 0x03, 0x2d, 0x06, 0x1c, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, - 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x2e, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, 0x30, 0x04, 0x33, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, - 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x12, 0x04, 0x30, 0x0b, 0x33, 0x05, 0x0a, 0x0f, 0x0a, 0x08, - 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x31, 0x06, 0x1d, 0x0a, 0x0f, 0x0a, - 0x08, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x32, 0x06, 0x25, 0x0a, 0x1d, - 0x0a, 0x04, 0x06, 0x00, 0x02, 0x03, 0x12, 0x04, 0x37, 0x02, 0x3d, 0x03, 0x1a, 0x0f, 0x20, 0x4c, - 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, - 0x05, 0x06, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x37, 0x06, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x06, - 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x37, 0x12, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, - 0x03, 0x03, 0x12, 0x03, 0x37, 0x2f, 0x42, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x04, - 0x12, 0x03, 0x38, 0x04, 0x38, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, - 0xbc, 0x22, 0x12, 0x03, 0x38, 0x0b, 0x37, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x03, 0x04, - 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x38, 0x20, 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x03, 0x04, 0x12, 0x04, 0x39, 0x04, 0x3c, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, - 0x03, 0x04, 0x92, 0x08, 0x12, 0x04, 0x39, 0x0b, 0x3c, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, - 0x02, 0x03, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x3a, 0x06, 0x1c, 0x0a, 0x0f, 0x0a, 0x08, 0x06, - 0x00, 0x02, 0x03, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x3b, 0x06, 0x22, 0x0a, 0xbd, 0x01, 0x0a, - 0x04, 0x06, 0x00, 0x02, 0x04, 0x12, 0x04, 0x41, 0x02, 0x47, 0x03, 0x1a, 0xae, 0x01, 0x20, 0x52, - 0x65, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, - 0x6e, 0x65, 0x77, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x20, - 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x0a, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, - 0x67, 0x61, 0x69, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x6f, 0x73, 0x74, 0x20, 0x75, 0x70, 0x2d, 0x74, 0x6f, 0x2d, 0x64, 0x61, 0x74, 0x65, 0x20, 0x73, - 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x41, 0x06, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x04, 0x02, 0x12, 0x03, 0x41, 0x12, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, - 0x03, 0x12, 0x03, 0x41, 0x2f, 0x42, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x04, 0x12, - 0x03, 0x42, 0x04, 0x4b, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, - 0x22, 0x12, 0x03, 0x42, 0x0b, 0x4a, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, - 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x42, 0x20, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, - 0x04, 0x04, 0x12, 0x04, 0x43, 0x04, 0x46, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x04, - 0x04, 0x92, 0x08, 0x12, 0x04, 0x43, 0x0b, 0x46, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, - 0x04, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x44, 0x06, 0x1c, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, - 0x02, 0x04, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x45, 0x06, 0xbf, 0x01, 0x0a, 0xb9, 0x01, 0x0a, - 0x04, 0x06, 0x00, 0x02, 0x05, 0x12, 0x04, 0x4b, 0x02, 0x51, 0x03, 0x1a, 0xaa, 0x01, 0x20, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x72, - 0x6b, 0x20, 0x69, 0x74, 0x20, 0x61, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, - 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x0a, 0x20, 0x63, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, - 0x01, 0x12, 0x03, 0x4b, 0x06, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x02, 0x12, - 0x03, 0x4b, 0x13, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x4b, - 0x31, 0x45, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x4c, 0x04, 0x4c, - 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x4c, - 0x0b, 0x4b, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, - 0x12, 0x03, 0x4c, 0x20, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x04, 0x12, 0x04, - 0x4d, 0x04, 0x50, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x05, 0x04, 0x92, 0x08, 0x12, - 0x04, 0x4d, 0x0b, 0x50, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x05, 0x04, 0x92, 0x08, - 0x02, 0x12, 0x03, 0x4e, 0x06, 0x1d, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x05, 0x04, 0x92, - 0x08, 0x03, 0x12, 0x04, 0x4f, 0x06, 0xbc, 0x01, 0x0a, 0x3b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x06, - 0x12, 0x04, 0x54, 0x02, 0x5a, 0x03, 0x1a, 0x2d, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, - 0x54, 0x06, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x54, 0x1e, - 0x3c, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x54, 0x47, 0x66, 0x0a, - 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x04, 0x12, 0x03, 0x55, 0x04, 0x53, 0x0a, 0x10, 0x0a, - 0x09, 0x06, 0x00, 0x02, 0x06, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x55, 0x0b, 0x52, 0x0a, - 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x06, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x55, - 0x20, 0x51, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x04, 0x12, 0x04, 0x56, 0x04, 0x59, - 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x12, 0x04, 0x56, 0x0b, - 0x59, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, - 0x57, 0x06, 0x28, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x03, 0x12, - 0x03, 0x58, 0x06, 0x49, 0x0a, 0x3c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x07, 0x12, 0x04, 0x5d, 0x02, - 0x63, 0x03, 0x1a, 0x2e, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x5d, 0x06, 0x1e, - 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, 0x5d, 0x1f, 0x3e, 0x0a, 0x0c, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x5d, 0x49, 0x69, 0x0a, 0x0c, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x07, 0x04, 0x12, 0x03, 0x5e, 0x04, 0x54, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, - 0x02, 0x07, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x5e, 0x0b, 0x53, 0x0a, 0x11, 0x0a, 0x0a, - 0x06, 0x00, 0x02, 0x07, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x5e, 0x20, 0x52, 0x0a, - 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x04, 0x12, 0x04, 0x5f, 0x04, 0x62, 0x06, 0x0a, 0x0f, - 0x0a, 0x07, 0x06, 0x00, 0x02, 0x07, 0x04, 0x92, 0x08, 0x12, 0x04, 0x5f, 0x0b, 0x62, 0x05, 0x0a, - 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x07, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x60, 0x06, 0x29, - 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x07, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x61, 0x06, - 0x4a, 0x0a, 0x35, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x08, 0x12, 0x04, 0x66, 0x02, 0x6c, 0x03, 0x1a, - 0x27, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, - 0x01, 0x12, 0x03, 0x66, 0x06, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x02, 0x12, - 0x03, 0x66, 0x27, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x03, 0x12, 0x04, 0x66, - 0x59, 0x81, 0x01, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x04, 0x12, 0x03, 0x67, 0x04, - 0x50, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x08, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, - 0x67, 0x0b, 0x4f, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x08, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x02, 0x12, 0x03, 0x67, 0x20, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x04, 0x12, - 0x04, 0x68, 0x04, 0x6b, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, - 0x12, 0x04, 0x68, 0x0b, 0x6b, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, - 0x08, 0x02, 0x12, 0x03, 0x69, 0x06, 0x31, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x08, 0x04, - 0x92, 0x08, 0x03, 0x12, 0x03, 0x6a, 0x06, 0x3a, 0x0a, 0xd4, 0x01, 0x0a, 0x02, 0x05, 0x00, 0x12, - 0x04, 0x72, 0x00, 0x75, 0x01, 0x1a, 0xc7, 0x01, 0x20, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x20, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x20, - 0x6f, 0x66, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x6e, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x0a, 0x20, 0x60, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x60, - 0x20, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x2d, 0x65, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x69, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, - 0x72, 0x75, 0x6e, 0x3b, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x0a, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x69, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x63, 0x61, 0x6e, - 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, - 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x72, 0x05, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, - 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x73, 0x02, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, - 0x00, 0x12, 0x03, 0x73, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, - 0x03, 0x73, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x74, - 0x02, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x74, 0x02, 0x22, 0x0a, - 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x74, 0x20, 0x21, 0x0a, 0x0b, 0x0a, - 0x02, 0x04, 0x00, 0x12, 0x05, 0x77, 0x00, 0x97, 0x01, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, - 0x01, 0x12, 0x03, 0x77, 0x08, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, - 0x03, 0x78, 0x02, 0x08, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x78, 0x02, - 0x40, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x78, 0x09, 0x12, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x78, 0x15, 0x16, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x00, 0x08, 0x12, 0x03, 0x78, 0x17, 0x3f, 0x0a, 0x0f, 0x0a, 0x08, 0x04, - 0x00, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x78, 0x18, 0x3e, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x79, 0x02, 0x08, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, - 0x02, 0x01, 0x12, 0x03, 0x79, 0x02, 0x49, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, - 0x12, 0x03, 0x79, 0x09, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, - 0x79, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x08, 0x12, 0x03, 0x79, 0x20, - 0x48, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x79, - 0x21, 0x47, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x7e, 0x02, 0x08, - 0x0a, 0x8e, 0x02, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x7e, 0x02, 0x3d, 0x1a, 0x80, - 0x02, 0x20, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x1a, 0x25, 0x4c, 0x69, 0x73, + 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x63, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x77, 0x69, 0x74, 0x68, 0x2d, 0x63, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x2d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x42, 0x96, 0x01, 0x92, 0x41, 0x12, 0x12, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, + 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1b, 0x53, 0x69, 0x66, 0x74, 0x5c, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0x98, 0xe2, 0x01, 0x0a, 0x07, + 0x12, 0x05, 0x00, 0x00, 0xaa, 0x04, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, + 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x18, 0x0a, 0x09, 0x0a, 0x02, 0x03, + 0x00, 0x12, 0x03, 0x04, 0x00, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, + 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x06, 0x00, 0x2a, 0x0a, 0x09, 0x0a, 0x02, + 0x03, 0x03, 0x12, 0x03, 0x07, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, 0x08, + 0x00, 0x38, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x05, 0x12, 0x03, 0x09, 0x00, 0x25, 0x0a, 0x09, 0x0a, + 0x02, 0x03, 0x06, 0x12, 0x03, 0x0a, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x07, 0x12, 0x03, + 0x0b, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x01, 0x08, 0x12, 0x04, 0x0d, 0x00, 0x0f, 0x02, 0x0a, 0x0b, + 0x0a, 0x03, 0x08, 0x92, 0x08, 0x12, 0x04, 0x0d, 0x07, 0x0f, 0x01, 0x0a, 0x0c, 0x0a, 0x05, 0x08, + 0x92, 0x08, 0x02, 0x01, 0x12, 0x03, 0x0e, 0x09, 0x20, 0x0a, 0xd5, 0x03, 0x0a, 0x02, 0x06, 0x00, + 0x12, 0x04, 0x16, 0x00, 0x6f, 0x01, 0x1a, 0xc8, 0x03, 0x20, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x69, 0x73, 0x20, 0x67, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x72, + 0x75, 0x6e, 0x27, 0x73, 0x20, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x20, 0x28, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x52, 0x55, 0x4e, 0x29, 0x2c, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x6e, 0x0a, 0x20, 0x52, + 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x50, + 0x4f, 0x52, 0x54, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x79, 0x65, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x29, 0x2e, 0x20, + 0x52, 0x50, 0x43, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x0a, 0x20, + 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x64, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6c, + 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x5f, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x3b, + 0x20, 0x52, 0x50, 0x43, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x76, 0x69, 0x61, 0x20, 0x61, + 0x0a, 0x20, 0x44, 0x42, 0x20, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x20, 0x28, 0x65, 0x2e, 0x67, + 0x2e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x20, 0x2d, 0x3e, 0x20, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x2d, 0x3e, 0x20, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x29, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x5f, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x64, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, + 0x69, 0x6e, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x2e, + 0x20, 0x53, 0x65, 0x65, 0x20, 0x77, 0x65, 0x62, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x67, 0x6f, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x73, 0x2e, + 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x16, 0x08, 0x15, 0x0a, 0x22, 0x0a, + 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x04, 0x18, 0x02, 0x1e, 0x03, 0x1a, 0x14, 0x20, 0x52, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x18, 0x06, 0x0f, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x18, 0x10, 0x20, 0x0a, 0x0c, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x18, 0x2b, 0x3c, 0x0a, 0x0c, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x19, 0x04, 0x44, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, + 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x19, 0x0b, 0x43, 0x0a, 0x11, 0x0a, 0x0a, 0x06, + 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x19, 0x20, 0x42, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x1a, 0x04, 0x1d, 0x06, 0x0a, 0x0f, 0x0a, + 0x07, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x12, 0x04, 0x1a, 0x0b, 0x1d, 0x05, 0x0a, 0x0f, + 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x1b, 0x06, 0x1a, 0x0a, + 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x1c, 0x06, 0x27, + 0x0a, 0x3f, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x04, 0x21, 0x02, 0x2a, 0x03, 0x1a, 0x31, + 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x21, 0x06, 0x12, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x21, 0x13, 0x26, 0x0a, 0x0c, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x21, 0x31, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x22, 0x04, 0x25, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, + 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x22, 0x0b, 0x25, 0x05, 0x0a, 0x11, 0x0a, + 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x23, 0x06, 0x1d, + 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, + 0x24, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x26, 0x04, + 0x29, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x12, 0x04, 0x26, + 0x0b, 0x29, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x02, 0x12, + 0x03, 0x27, 0x06, 0x1d, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x03, + 0x12, 0x03, 0x28, 0x06, 0x25, 0x0a, 0x20, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x02, 0x12, 0x04, 0x2d, + 0x02, 0x36, 0x03, 0x1a, 0x12, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x01, + 0x12, 0x03, 0x2d, 0x06, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, + 0x2d, 0x13, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x2d, 0x31, + 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, 0x2e, 0x04, 0x31, 0x06, + 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x2e, + 0x0b, 0x31, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, + 0x03, 0x12, 0x03, 0x2f, 0x06, 0x1c, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, + 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x30, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x02, 0x04, 0x12, 0x04, 0x32, 0x04, 0x35, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x02, + 0x04, 0x92, 0x08, 0x12, 0x04, 0x32, 0x0b, 0x35, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, + 0x02, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x33, 0x06, 0x1d, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, + 0x02, 0x02, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x34, 0x06, 0x25, 0x0a, 0x1d, 0x0a, 0x04, 0x06, + 0x00, 0x02, 0x03, 0x12, 0x04, 0x39, 0x02, 0x3f, 0x03, 0x1a, 0x0f, 0x20, 0x4c, 0x69, 0x73, 0x74, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x03, 0x01, 0x12, 0x03, 0x39, 0x06, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, + 0x02, 0x12, 0x03, 0x39, 0x12, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x03, 0x12, + 0x03, 0x39, 0x2f, 0x42, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x04, 0x12, 0x03, 0x3a, + 0x04, 0x38, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, + 0x03, 0x3a, 0x0b, 0x37, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x02, 0x12, 0x03, 0x3a, 0x20, 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x04, + 0x12, 0x04, 0x3b, 0x04, 0x3e, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x03, 0x04, 0x92, + 0x08, 0x12, 0x04, 0x3b, 0x0b, 0x3e, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x03, 0x04, + 0x92, 0x08, 0x02, 0x12, 0x03, 0x3c, 0x06, 0x1c, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x03, + 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x3d, 0x06, 0x22, 0x0a, 0xbd, 0x01, 0x0a, 0x04, 0x06, 0x00, + 0x02, 0x04, 0x12, 0x04, 0x43, 0x02, 0x49, 0x03, 0x1a, 0xae, 0x01, 0x20, 0x52, 0x65, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x20, 0x61, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x0a, + 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x67, 0x61, 0x69, + 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, + 0x20, 0x75, 0x70, 0x2d, 0x74, 0x6f, 0x2d, 0x64, 0x61, 0x74, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x04, 0x01, 0x12, 0x03, 0x43, 0x06, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x02, + 0x12, 0x03, 0x43, 0x12, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, + 0x43, 0x2f, 0x42, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x04, 0x12, 0x03, 0x44, 0x04, + 0x4b, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, + 0x44, 0x0b, 0x4a, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, 0x22, + 0x04, 0x12, 0x03, 0x44, 0x20, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x04, 0x12, + 0x04, 0x45, 0x04, 0x48, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x04, 0x04, 0x92, 0x08, + 0x12, 0x04, 0x45, 0x0b, 0x48, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x04, 0x04, 0x92, + 0x08, 0x02, 0x12, 0x03, 0x46, 0x06, 0x1c, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x04, 0x04, + 0x92, 0x08, 0x03, 0x12, 0x04, 0x47, 0x06, 0xbf, 0x01, 0x0a, 0xb9, 0x01, 0x0a, 0x04, 0x06, 0x00, + 0x02, 0x05, 0x12, 0x04, 0x4d, 0x02, 0x53, 0x03, 0x1a, 0xaa, 0x01, 0x20, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x69, + 0x74, 0x20, 0x61, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x2e, 0x20, 0x41, + 0x6e, 0x79, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x0a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x61, + 0x76, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, + 0x4d, 0x06, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x02, 0x12, 0x03, 0x4d, 0x13, + 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x4d, 0x31, 0x45, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x4e, 0x04, 0x4c, 0x0a, 0x10, 0x0a, + 0x09, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x4e, 0x0b, 0x4b, 0x0a, + 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x4e, + 0x20, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x04, 0x12, 0x04, 0x4f, 0x04, 0x52, + 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x05, 0x04, 0x92, 0x08, 0x12, 0x04, 0x4f, 0x0b, + 0x52, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x05, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, + 0x50, 0x06, 0x1d, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x05, 0x04, 0x92, 0x08, 0x03, 0x12, + 0x04, 0x51, 0x06, 0xbc, 0x01, 0x0a, 0x3b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x06, 0x12, 0x04, 0x56, + 0x02, 0x5c, 0x03, 0x1a, 0x2d, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x69, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x56, 0x06, 0x1d, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x56, 0x1e, 0x3c, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x56, 0x47, 0x66, 0x0a, 0x0c, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x06, 0x04, 0x12, 0x03, 0x57, 0x04, 0x53, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, + 0x02, 0x06, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x57, 0x0b, 0x52, 0x0a, 0x11, 0x0a, 0x0a, + 0x06, 0x00, 0x02, 0x06, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x57, 0x20, 0x51, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x04, 0x12, 0x04, 0x58, 0x04, 0x5b, 0x06, 0x0a, 0x0f, + 0x0a, 0x07, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x12, 0x04, 0x58, 0x0b, 0x5b, 0x05, 0x0a, + 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x59, 0x06, 0x28, + 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x5a, 0x06, + 0x49, 0x0a, 0x3c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x07, 0x12, 0x04, 0x5f, 0x02, 0x65, 0x03, 0x1a, + 0x2e, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x5f, 0x06, 0x1e, 0x0a, 0x0c, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, 0x5f, 0x1f, 0x3e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x5f, 0x49, 0x69, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x07, 0x04, 0x12, 0x03, 0x60, 0x04, 0x54, 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x07, 0x04, + 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x60, 0x0b, 0x53, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, + 0x07, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, 0x60, 0x20, 0x52, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x07, 0x04, 0x12, 0x04, 0x61, 0x04, 0x64, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, + 0x00, 0x02, 0x07, 0x04, 0x92, 0x08, 0x12, 0x04, 0x61, 0x0b, 0x64, 0x05, 0x0a, 0x0f, 0x0a, 0x08, + 0x06, 0x00, 0x02, 0x07, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x62, 0x06, 0x29, 0x0a, 0x0f, 0x0a, + 0x08, 0x06, 0x00, 0x02, 0x07, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x63, 0x06, 0x4a, 0x0a, 0x35, + 0x0a, 0x04, 0x06, 0x00, 0x02, 0x08, 0x12, 0x04, 0x68, 0x02, 0x6e, 0x03, 0x1a, 0x27, 0x20, 0x4c, + 0x69, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, + 0x68, 0x06, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x02, 0x12, 0x03, 0x68, 0x27, + 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x03, 0x12, 0x04, 0x68, 0x59, 0x81, 0x01, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x04, 0x12, 0x03, 0x69, 0x04, 0x50, 0x0a, 0x10, + 0x0a, 0x09, 0x06, 0x00, 0x02, 0x08, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x69, 0x0b, 0x4f, + 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x08, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x03, + 0x69, 0x20, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x04, 0x12, 0x04, 0x6a, 0x04, + 0x6d, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x12, 0x04, 0x6a, + 0x0b, 0x6d, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x02, 0x12, + 0x03, 0x6b, 0x06, 0x31, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x03, + 0x12, 0x03, 0x6c, 0x06, 0x3a, 0x0a, 0xd4, 0x01, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x74, 0x00, + 0x78, 0x01, 0x1a, 0xc7, 0x01, 0x20, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x0a, 0x20, 0x60, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x60, 0x20, 0x73, 0x75, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x2d, 0x65, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x69, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, - 0x29, 0x2e, 0x0a, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x4e, 0x56, 0x41, 0x53, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x20, 0x4b, 0x65, 0x70, 0x74, 0x20, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, - 0x45, 0x44, 0x20, 0x28, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, - 0x61, 0x20, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x0a, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x29, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, - 0x76, 0x6f, 0x69, 0x64, 0x20, 0x72, 0x69, 0x70, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2e, - 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x7e, 0x09, 0x0f, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x7e, 0x12, 0x13, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x02, 0x08, 0x12, 0x03, 0x7e, 0x14, 0x3c, 0x0a, 0x0f, 0x0a, 0x08, 0x04, - 0x00, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x7e, 0x15, 0x3b, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x7f, 0x02, 0x08, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, - 0x02, 0x03, 0x12, 0x03, 0x7f, 0x02, 0x46, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, - 0x12, 0x03, 0x7f, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, - 0x7f, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x08, 0x12, 0x03, 0x7f, 0x1d, - 0x45, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x7f, - 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x05, 0x12, 0x04, 0x80, 0x01, 0x02, - 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0x80, 0x01, 0x02, 0x3b, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0x80, 0x01, 0x09, 0x0d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x04, 0x80, 0x01, 0x10, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x04, 0x08, 0x12, 0x04, 0x80, 0x01, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x00, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x80, 0x01, 0x13, 0x39, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, 0x12, 0x04, 0x81, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0x81, 0x01, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x05, 0x05, 0x12, 0x04, 0x81, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x05, 0x01, 0x12, 0x04, 0x81, 0x01, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x05, 0x03, 0x12, 0x04, 0x81, 0x01, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, - 0x08, 0x12, 0x04, 0x81, 0x01, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x05, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0x81, 0x01, 0x23, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x06, 0x05, 0x12, 0x04, 0x82, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, - 0x12, 0x04, 0x82, 0x01, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, - 0x04, 0x82, 0x01, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x04, - 0x82, 0x01, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x08, 0x12, 0x04, 0x82, - 0x01, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0x82, 0x01, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x05, 0x12, 0x04, - 0x83, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x04, 0x83, 0x01, - 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x04, 0x83, 0x01, 0x09, - 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x04, 0x83, 0x01, 0x1f, 0x20, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x08, 0x12, 0x04, 0x83, 0x01, 0x21, 0x49, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x83, 0x01, 0x22, - 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x06, 0x12, 0x04, 0x84, 0x01, 0x02, 0x1b, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x04, 0x84, 0x01, 0x02, 0x56, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x04, 0x84, 0x01, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x04, 0x84, 0x01, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x08, 0x08, 0x12, 0x04, 0x84, 0x01, 0x2d, 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x00, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x84, 0x01, 0x2e, 0x54, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x09, 0x06, 0x12, 0x04, 0x85, 0x01, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x00, 0x02, 0x09, 0x12, 0x04, 0x85, 0x01, 0x02, 0x58, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x09, 0x01, 0x12, 0x04, 0x85, 0x01, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x09, 0x03, 0x12, 0x04, 0x85, 0x01, 0x2c, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, - 0x08, 0x12, 0x04, 0x85, 0x01, 0x2f, 0x57, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x09, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0x85, 0x01, 0x30, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x0a, 0x04, 0x12, 0x04, 0x88, 0x01, 0x02, 0x0a, 0x0a, 0x88, 0x02, 0x0a, 0x04, 0x04, 0x00, 0x02, - 0x0a, 0x12, 0x04, 0x88, 0x01, 0x02, 0x55, 0x1a, 0xf9, 0x01, 0x20, 0x4f, 0x6e, 0x65, 0x20, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x6c, 0x69, - 0x6e, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x2e, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x20, 0x62, 0x79, 0x20, 0x60, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x60, 0x20, 0x61, 0x73, 0x63, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x2f, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x20, 0x28, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6d, - 0x61, 0x79, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x62, - 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x55, 0x49, 0x29, - 0x2e, 0x20, 0x60, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x60, 0x20, 0x69, 0x73, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x06, 0x12, 0x04, 0x88, 0x01, - 0x0b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x04, 0x88, 0x01, 0x1d, - 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, 0x12, 0x04, 0x88, 0x01, 0x29, 0x2b, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x08, 0x12, 0x04, 0x88, 0x01, 0x2c, 0x54, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, 0x01, 0x2d, - 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x04, 0x89, 0x01, 0x02, 0x0a, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0b, 0x12, 0x04, 0x89, 0x01, 0x02, 0x48, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x06, 0x12, 0x04, 0x89, 0x01, 0x0b, 0x14, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x04, 0x89, 0x01, 0x15, 0x19, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x0b, 0x03, 0x12, 0x04, 0x89, 0x01, 0x1c, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x0b, 0x08, 0x12, 0x04, 0x89, 0x01, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, - 0x02, 0x0b, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x89, 0x01, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x04, 0x8a, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x00, 0x02, 0x0c, 0x12, 0x04, 0x8a, 0x01, 0x02, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x0c, 0x05, 0x12, 0x04, 0x8a, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, - 0x01, 0x12, 0x04, 0x8a, 0x01, 0x12, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x03, - 0x12, 0x04, 0x8a, 0x01, 0x29, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x08, 0x12, - 0x04, 0x8a, 0x01, 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0c, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0x8a, 0x01, 0x2d, 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x04, - 0x12, 0x04, 0x8b, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0d, 0x12, 0x04, - 0x8b, 0x01, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x05, 0x12, 0x04, 0x8b, - 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x04, 0x8b, 0x01, - 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x03, 0x12, 0x04, 0x8b, 0x01, 0x1b, - 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x08, 0x12, 0x04, 0x8b, 0x01, 0x1e, 0x46, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0d, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8b, 0x01, - 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x04, 0x8c, 0x01, 0x02, - 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0e, 0x12, 0x04, 0x8c, 0x01, 0x02, 0x61, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x06, 0x12, 0x04, 0x8c, 0x01, 0x0b, 0x24, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x01, 0x12, 0x04, 0x8c, 0x01, 0x25, 0x32, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x0e, 0x03, 0x12, 0x04, 0x8c, 0x01, 0x35, 0x37, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x0e, 0x08, 0x12, 0x04, 0x8c, 0x01, 0x38, 0x60, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x00, 0x02, 0x0e, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8c, 0x01, 0x39, 0x5f, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x0f, 0x04, 0x12, 0x04, 0x8d, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x00, 0x02, 0x0f, 0x12, 0x04, 0x8d, 0x01, 0x02, 0x61, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x0f, 0x06, 0x12, 0x04, 0x8d, 0x01, 0x0b, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x0f, 0x01, 0x12, 0x04, 0x8d, 0x01, 0x2a, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, - 0x03, 0x12, 0x04, 0x8d, 0x01, 0x35, 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x08, - 0x12, 0x04, 0x8d, 0x01, 0x38, 0x60, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0f, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0x8d, 0x01, 0x39, 0x5f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, - 0x05, 0x12, 0x04, 0x8e, 0x01, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x10, 0x12, - 0x04, 0x8e, 0x01, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x01, 0x12, 0x04, - 0x8e, 0x01, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x03, 0x12, 0x04, 0x8e, - 0x01, 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x08, 0x12, 0x04, 0x8e, 0x01, - 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x10, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0x8e, 0x01, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x06, 0x12, 0x04, 0x90, - 0x01, 0x02, 0x0c, 0x0a, 0x95, 0x04, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x11, 0x12, 0x04, 0x90, 0x01, - 0x02, 0x47, 0x1a, 0x4f, 0x20, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x6b, 0x69, - 0x6e, 0x64, 0x2e, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x6f, 0x77, - 0x73, 0x2e, 0x0a, 0x22, 0xb5, 0x03, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x4e, 0x56, 0x41, - 0x53, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, - 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, - 0x72, 0x6f, 0x77, 0x0a, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x2d, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x29, 0x2e, 0x20, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x0a, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, - 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, - 0x20, 0x55, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x20, 0x70, - 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x4e, 0x56, 0x41, 0x53, - 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x72, - 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x0a, 0x20, 0x63, 0x61, 0x6e, - 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x20, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x3b, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x0a, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x69, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, + 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, + 0x05, 0x00, 0x01, 0x12, 0x03, 0x74, 0x05, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, + 0x01, 0x12, 0x03, 0x75, 0x02, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, + 0x75, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x75, 0x1c, + 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x76, 0x02, 0x1d, 0x0a, + 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x76, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, + 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x76, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x02, 0x01, 0x12, 0x03, 0x77, 0x02, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, + 0x12, 0x03, 0x77, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, + 0x77, 0x17, 0x18, 0x0a, 0x0b, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x05, 0x7a, 0x00, 0x9c, 0x01, 0x01, + 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x7a, 0x08, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x7b, 0x02, 0x08, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x00, 0x12, 0x03, 0x7b, 0x02, 0x40, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, + 0x12, 0x03, 0x7b, 0x09, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, + 0x7b, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x08, 0x12, 0x03, 0x7b, 0x17, + 0x3f, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x7b, + 0x18, 0x3e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x7c, 0x02, 0x08, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x7c, 0x02, 0x49, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x7c, 0x09, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x7c, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x01, 0x08, 0x12, 0x03, 0x7c, 0x20, 0x48, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x01, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x03, 0x7c, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, + 0x05, 0x12, 0x04, 0x81, 0x01, 0x02, 0x08, 0x0a, 0x8f, 0x02, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, + 0x12, 0x04, 0x81, 0x01, 0x02, 0x3d, 0x1a, 0x80, 0x02, 0x20, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, + 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, + 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x69, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x29, 0x2e, 0x0a, 0x20, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x4e, + 0x56, 0x41, 0x53, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x20, 0x4b, 0x65, 0x70, + 0x74, 0x20, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x20, 0x28, 0x72, 0x61, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x0a, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x29, 0x20, 0x74, 0x6f, 0x20, + 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x57, 0x69, 0x74, + 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x72, 0x69, 0x70, + 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x04, 0x81, 0x01, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, + 0x03, 0x12, 0x04, 0x81, 0x01, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x08, + 0x12, 0x04, 0x81, 0x01, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x02, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0x81, 0x01, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, + 0x05, 0x12, 0x04, 0x82, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, + 0x04, 0x82, 0x01, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, + 0x82, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x04, 0x82, + 0x01, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x08, 0x12, 0x04, 0x82, 0x01, + 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x82, 0x01, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x05, 0x12, 0x04, 0x83, + 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0x83, 0x01, 0x02, + 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0x83, 0x01, 0x09, 0x0d, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x04, 0x83, 0x01, 0x10, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x08, 0x12, 0x04, 0x83, 0x01, 0x12, 0x3a, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x00, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x83, 0x01, 0x13, 0x39, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, 0x12, 0x04, 0x84, 0x01, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0x84, 0x01, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x05, 0x05, 0x12, 0x04, 0x84, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0x84, 0x01, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x05, 0x03, 0x12, 0x04, 0x84, 0x01, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x05, 0x08, 0x12, 0x04, 0x84, 0x01, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, + 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x84, 0x01, 0x23, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x06, 0x05, 0x12, 0x04, 0x85, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x06, 0x12, 0x04, 0x85, 0x01, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, + 0x01, 0x12, 0x04, 0x85, 0x01, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, + 0x12, 0x04, 0x85, 0x01, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x08, 0x12, + 0x04, 0x85, 0x01, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x06, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0x85, 0x01, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x05, + 0x12, 0x04, 0x86, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x04, + 0x86, 0x01, 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x04, 0x86, + 0x01, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x04, 0x86, 0x01, + 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x08, 0x12, 0x04, 0x86, 0x01, 0x21, + 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x86, + 0x01, 0x22, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x06, 0x12, 0x04, 0x87, 0x01, + 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x04, 0x87, 0x01, 0x02, 0x56, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x04, 0x87, 0x01, 0x1c, 0x28, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x04, 0x87, 0x01, 0x2b, 0x2c, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x08, 0x12, 0x04, 0x87, 0x01, 0x2d, 0x55, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x00, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x87, 0x01, 0x2e, 0x54, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x06, 0x12, 0x04, 0x88, 0x01, 0x02, 0x1b, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x09, 0x12, 0x04, 0x88, 0x01, 0x02, 0x58, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x04, 0x88, 0x01, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x09, 0x03, 0x12, 0x04, 0x88, 0x01, 0x2c, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x09, 0x08, 0x12, 0x04, 0x88, 0x01, 0x2f, 0x57, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, + 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, 0x01, 0x30, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0a, 0x04, 0x12, 0x04, 0x8b, 0x01, 0x02, 0x0a, 0x0a, 0x88, 0x02, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x0a, 0x12, 0x04, 0x8b, 0x01, 0x02, 0x55, 0x1a, 0xf9, 0x01, 0x20, 0x4f, 0x6e, 0x65, + 0x20, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x2e, 0x20, 0x53, 0x6f, 0x72, 0x74, 0x20, 0x62, 0x79, 0x20, 0x60, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x60, 0x20, 0x61, 0x73, 0x63, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x2f, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x20, 0x28, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x6d, 0x61, 0x79, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x62, 0x79, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x55, + 0x49, 0x29, 0x2e, 0x20, 0x60, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x60, 0x20, 0x69, 0x73, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x06, 0x12, 0x04, + 0x8b, 0x01, 0x0b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x04, 0x8b, + 0x01, 0x1d, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, 0x12, 0x04, 0x8b, 0x01, + 0x29, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x08, 0x12, 0x04, 0x8b, 0x01, 0x2c, + 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8b, + 0x01, 0x2d, 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x04, 0x8c, 0x01, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0b, 0x12, 0x04, 0x8c, 0x01, 0x02, 0x48, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x06, 0x12, 0x04, 0x8c, 0x01, 0x0b, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x04, 0x8c, 0x01, 0x15, 0x19, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x03, 0x12, 0x04, 0x8c, 0x01, 0x1c, 0x1e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0b, 0x08, 0x12, 0x04, 0x8c, 0x01, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x00, 0x02, 0x0b, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8c, 0x01, 0x20, 0x46, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x04, 0x8d, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x0c, 0x12, 0x04, 0x8d, 0x01, 0x02, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0c, 0x05, 0x12, 0x04, 0x8d, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0c, 0x01, 0x12, 0x04, 0x8d, 0x01, 0x12, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0c, 0x03, 0x12, 0x04, 0x8d, 0x01, 0x29, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, + 0x08, 0x12, 0x04, 0x8d, 0x01, 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0c, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8d, 0x01, 0x2d, 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0d, 0x04, 0x12, 0x04, 0x8e, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0d, + 0x12, 0x04, 0x8e, 0x01, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x05, 0x12, + 0x04, 0x8e, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x04, + 0x8e, 0x01, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x03, 0x12, 0x04, 0x8e, + 0x01, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x08, 0x12, 0x04, 0x8e, 0x01, + 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0d, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x8e, 0x01, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x04, 0x8f, + 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0e, 0x12, 0x04, 0x8f, 0x01, 0x02, + 0x61, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x06, 0x12, 0x04, 0x8f, 0x01, 0x0b, 0x24, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x01, 0x12, 0x04, 0x8f, 0x01, 0x25, 0x32, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x03, 0x12, 0x04, 0x8f, 0x01, 0x35, 0x37, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x08, 0x12, 0x04, 0x8f, 0x01, 0x38, 0x60, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x00, 0x02, 0x0e, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8f, 0x01, 0x39, 0x5f, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x04, 0x12, 0x04, 0x90, 0x01, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0f, 0x12, 0x04, 0x90, 0x01, 0x02, 0x61, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0f, 0x06, 0x12, 0x04, 0x90, 0x01, 0x0b, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0f, 0x01, 0x12, 0x04, 0x90, 0x01, 0x2a, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0f, 0x03, 0x12, 0x04, 0x90, 0x01, 0x35, 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0f, 0x08, 0x12, 0x04, 0x90, 0x01, 0x38, 0x60, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0f, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x90, 0x01, 0x39, 0x5f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x10, 0x05, 0x12, 0x04, 0x91, 0x01, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x10, 0x12, 0x04, 0x91, 0x01, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x01, + 0x12, 0x04, 0x91, 0x01, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x03, 0x12, + 0x04, 0x91, 0x01, 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x08, 0x12, 0x04, + 0x91, 0x01, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x10, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0x91, 0x01, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x06, 0x12, + 0x04, 0x93, 0x01, 0x02, 0x0c, 0x0a, 0x5d, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x11, 0x12, 0x04, 0x93, + 0x01, 0x02, 0x47, 0x1a, 0x4f, 0x20, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x6b, + 0x69, 0x6e, 0x64, 0x2e, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x28, 0x77, 0x68, 0x6f, 0x73, 0x65, 0x20, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x69, 0x73, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x79, 0x65, 0x64, 0x20, 0x76, 0x69, 0x61, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x2d, - 0x72, 0x75, 0x6c, 0x65, 0x20, 0x60, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x60, - 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x11, 0x01, 0x12, 0x04, 0x90, 0x01, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x11, 0x03, 0x12, 0x04, 0x90, 0x01, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x11, 0x08, 0x12, 0x04, 0x90, 0x01, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x11, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x90, 0x01, 0x1f, 0x45, 0x0a, 0xa8, 0x02, 0x0a, 0x02, 0x04, - 0x01, 0x12, 0x06, 0x9c, 0x01, 0x00, 0xc5, 0x01, 0x01, 0x1a, 0x99, 0x02, 0x20, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x60, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x60, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x20, - 0x60, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x60, 0x0a, 0x20, 0x6c, 0x69, 0x73, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, - 0x60, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x60, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x20, 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x0a, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x6c, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x04, 0x9c, 0x01, - 0x08, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x05, 0x12, 0x04, 0x9e, 0x01, 0x02, - 0x08, 0x0a, 0x34, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x04, 0x9e, 0x01, 0x02, 0x40, 0x1a, - 0x26, 0x20, 0x54, 0x68, 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, - 0x12, 0x04, 0x9e, 0x01, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, - 0x04, 0x9e, 0x01, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x08, 0x12, 0x04, - 0x9e, 0x01, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0x9e, 0x01, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, - 0x04, 0xa0, 0x01, 0x02, 0x08, 0x0a, 0x5b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x04, 0xa0, - 0x01, 0x02, 0x49, 0x1a, 0x4d, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x61, 0x6e, 0x79, - 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa0, 0x01, 0x09, - 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa0, 0x01, 0x1e, 0x1f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, 0x12, 0x04, 0xa0, 0x01, 0x20, 0x48, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa0, 0x01, 0x21, - 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x05, 0x12, 0x04, 0xa2, 0x01, 0x02, 0x08, - 0x0a, 0x46, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x04, 0xa2, 0x01, 0x02, 0x3d, 0x1a, 0x38, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x6f, + 0x77, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x01, 0x12, 0x04, 0x93, + 0x01, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x03, 0x12, 0x04, 0x93, 0x01, + 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x08, 0x12, 0x04, 0x93, 0x01, 0x1e, + 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x11, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x93, + 0x01, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x04, 0x12, 0x04, 0x97, 0x01, + 0x02, 0x0a, 0x0a, 0xfe, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x12, 0x12, 0x04, 0x97, 0x01, 0x02, + 0x54, 0x1a, 0xef, 0x01, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x4e, 0x56, 0x41, 0x53, 0x20, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x64, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x72, 0x6f, + 0x77, 0x0a, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x28, 0x72, 0x65, 0x61, 0x64, 0x2d, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x29, 0x2e, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x0a, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x20, 0x55, + 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x61, 0x6e, 0x76, 0x61, 0x73, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x20, 0x70, 0x61, 0x67, + 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x05, 0x12, 0x04, 0x97, 0x01, + 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x01, 0x12, 0x04, 0x97, 0x01, 0x12, + 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x03, 0x12, 0x04, 0x97, 0x01, 0x28, 0x2a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x08, 0x12, 0x04, 0x97, 0x01, 0x2b, 0x53, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x12, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x97, 0x01, 0x2c, + 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, 0x04, 0x12, 0x04, 0x9b, 0x01, 0x02, 0x0a, + 0x0a, 0xd5, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x13, 0x12, 0x04, 0x9b, 0x01, 0x02, 0x70, 0x1a, + 0xc6, 0x01, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x4e, 0x56, 0x41, 0x53, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x0a, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, + 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x2e, 0x20, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x55, + 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x28, 0x77, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x20, 0x69, 0x73, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x79, 0x65, 0x64, + 0x20, 0x76, 0x69, 0x61, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x2d, 0x72, 0x75, 0x6c, + 0x65, 0x20, 0x60, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x60, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x65, 0x61, 0x64, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, + 0x06, 0x12, 0x04, 0x9b, 0x01, 0x0b, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, 0x01, + 0x12, 0x04, 0x9b, 0x01, 0x34, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, 0x03, 0x12, + 0x04, 0x9b, 0x01, 0x44, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, 0x08, 0x12, 0x04, + 0x9b, 0x01, 0x47, 0x6f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x13, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0x9b, 0x01, 0x48, 0x6e, 0x0a, 0xa8, 0x02, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x06, 0xa1, + 0x01, 0x00, 0xcc, 0x01, 0x01, 0x1a, 0x99, 0x02, 0x20, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x57, + 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x60, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x70, 0x65, 0x72, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x60, 0x73, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x60, 0x0a, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x60, 0x63, 0x75, 0x6d, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x60, + 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x63, 0x72, 0x6f, + 0x73, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x49, 0x74, + 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x0a, + 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, + 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 0x70, 0x20, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x04, 0xa1, 0x01, 0x08, 0x23, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa3, 0x01, 0x02, 0x08, 0x0a, 0x34, 0x0a, + 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x04, 0xa3, 0x01, 0x02, 0x40, 0x1a, 0x26, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa3, 0x01, + 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa3, 0x01, 0x15, + 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa3, 0x01, 0x17, 0x3f, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa3, 0x01, + 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa5, 0x01, 0x02, + 0x08, 0x0a, 0x5b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x04, 0xa5, 0x01, 0x02, 0x49, 0x1a, + 0x4d, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa5, 0x01, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa5, 0x01, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x01, 0x08, 0x12, 0x04, 0xa5, 0x01, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x01, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa5, 0x01, 0x21, 0x47, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x02, 0x05, 0x12, 0x04, 0xa7, 0x01, 0x02, 0x08, 0x0a, 0x46, 0x0a, 0x04, + 0x04, 0x01, 0x02, 0x02, 0x12, 0x04, 0xa7, 0x01, 0x02, 0x3d, 0x1a, 0x38, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x04, 0xa7, + 0x01, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x04, 0xa7, 0x01, + 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x08, 0x12, 0x04, 0xa7, 0x01, 0x14, + 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa7, + 0x01, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x05, 0x12, 0x04, 0xa9, 0x01, + 0x02, 0x08, 0x0a, 0x38, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x04, 0xa9, 0x01, 0x02, 0x46, + 0x1a, 0x2a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, + 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa9, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa9, 0x01, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x03, 0x08, 0x12, 0x04, 0xa9, 0x01, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, + 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa9, 0x01, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x04, 0x05, 0x12, 0x04, 0xab, 0x01, 0x02, 0x08, 0x0a, 0x2f, 0x0a, 0x04, 0x04, 0x01, + 0x02, 0x04, 0x12, 0x04, 0xab, 0x01, 0x02, 0x3b, 0x1a, 0x21, 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0xab, 0x01, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x04, 0x03, 0x12, 0x04, 0xab, 0x01, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x04, 0x08, 0x12, 0x04, 0xab, 0x01, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x04, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xab, 0x01, 0x13, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x05, 0x04, 0x12, 0x04, 0xad, 0x01, 0x02, 0x0a, 0x0a, 0x36, 0x0a, 0x04, 0x04, 0x01, 0x02, + 0x05, 0x12, 0x04, 0xad, 0x01, 0x02, 0x4b, 0x1a, 0x28, 0x20, 0x41, 0x6e, 0x20, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x05, 0x12, 0x04, 0xad, 0x01, 0x0b, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x01, 0x12, 0x04, 0xad, 0x01, 0x12, 0x1d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, 0x04, 0xad, 0x01, 0x20, 0x21, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x08, 0x12, 0x04, 0xad, 0x01, 0x22, 0x4a, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x01, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xad, 0x01, 0x23, 0x49, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x05, 0x12, 0x04, 0xaf, 0x01, 0x02, 0x08, 0x0a, 0x42, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x06, 0x12, 0x04, 0xaf, 0x01, 0x02, 0x49, 0x1a, 0x34, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x77, 0x68, 0x6f, 0x20, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, 0x04, 0xaf, 0x01, 0x09, + 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x04, 0xaf, 0x01, 0x1e, 0x1f, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x08, 0x12, 0x04, 0xaf, 0x01, 0x20, 0x48, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xaf, 0x01, 0x21, + 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x05, 0x12, 0x04, 0xb1, 0x01, 0x02, 0x08, + 0x0a, 0x48, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x04, 0xb1, 0x01, 0x02, 0x4a, 0x1a, 0x3a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, - 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, - 0x01, 0x12, 0x04, 0xa2, 0x01, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, - 0x12, 0x04, 0xa2, 0x01, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x08, 0x12, - 0x04, 0xa2, 0x01, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x02, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xa2, 0x01, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x05, - 0x12, 0x04, 0xa4, 0x01, 0x02, 0x08, 0x0a, 0x38, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x04, - 0xa4, 0x01, 0x02, 0x46, 0x1a, 0x2a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x2e, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x09, 0x18, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa4, 0x01, 0x1b, 0x1c, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x08, 0x12, 0x04, 0xa4, 0x01, 0x1d, 0x45, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x01, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa4, 0x01, 0x1e, 0x44, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x05, 0x12, 0x04, 0xa6, 0x01, 0x02, 0x08, 0x0a, 0x2f, - 0x0a, 0x04, 0x04, 0x01, 0x02, 0x04, 0x12, 0x04, 0xa6, 0x01, 0x02, 0x3b, 0x1a, 0x21, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa6, 0x01, 0x09, 0x0d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x03, 0x12, 0x04, 0xa6, 0x01, 0x10, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x04, 0x08, 0x12, 0x04, 0xa6, 0x01, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x01, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa6, 0x01, 0x13, 0x39, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x04, 0x12, 0x04, 0xa8, 0x01, 0x02, 0x0a, 0x0a, 0x36, 0x0a, - 0x04, 0x04, 0x01, 0x02, 0x05, 0x12, 0x04, 0xa8, 0x01, 0x02, 0x4b, 0x1a, 0x28, 0x20, 0x41, 0x6e, - 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x05, 0x12, 0x04, - 0xa8, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x01, 0x12, 0x04, 0xa8, - 0x01, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, 0x04, 0xa8, 0x01, - 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x08, 0x12, 0x04, 0xa8, 0x01, 0x22, - 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa8, - 0x01, 0x23, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x05, 0x12, 0x04, 0xaa, 0x01, - 0x02, 0x08, 0x0a, 0x42, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x06, 0x12, 0x04, 0xaa, 0x01, 0x02, 0x49, - 0x1a, 0x34, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x77, 0x68, - 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, - 0x04, 0xaa, 0x01, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x04, - 0xaa, 0x01, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x08, 0x12, 0x04, 0xaa, - 0x01, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xaa, 0x01, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x05, 0x12, 0x04, - 0xac, 0x01, 0x02, 0x08, 0x0a, 0x48, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x04, 0xac, 0x01, - 0x02, 0x4a, 0x1a, 0x3a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, - 0x77, 0x68, 0x6f, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x01, 0x12, 0x04, 0xac, 0x01, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x07, 0x03, 0x12, 0x04, 0xac, 0x01, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x01, 0x02, 0x07, 0x08, 0x12, 0x04, 0xac, 0x01, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x01, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xac, 0x01, 0x22, 0x48, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x08, 0x06, 0x12, 0x04, 0xae, 0x01, 0x02, 0x1b, 0x0a, 0x2c, 0x0a, 0x04, - 0x04, 0x01, 0x02, 0x08, 0x12, 0x04, 0xae, 0x01, 0x02, 0x56, 0x1a, 0x1e, 0x20, 0x57, 0x68, 0x65, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x61, 0x73, - 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, - 0x02, 0x08, 0x01, 0x12, 0x04, 0xae, 0x01, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x08, 0x03, 0x12, 0x04, 0xae, 0x01, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, - 0x08, 0x12, 0x04, 0xae, 0x01, 0x2d, 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x08, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0xae, 0x01, 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x09, 0x06, 0x12, 0x04, 0xb0, 0x01, 0x02, 0x1b, 0x0a, 0x32, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x09, - 0x12, 0x04, 0xb0, 0x01, 0x02, 0x58, 0x1a, 0x24, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x6c, 0x61, 0x73, - 0x74, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x01, 0x02, 0x09, 0x01, 0x12, 0x04, 0xb0, 0x01, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x09, 0x03, 0x12, 0x04, 0xb0, 0x01, 0x2c, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, - 0x02, 0x09, 0x08, 0x12, 0x04, 0xb0, 0x01, 0x2f, 0x57, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, - 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb0, 0x01, 0x30, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x0a, 0x06, 0x12, 0x04, 0xb2, 0x01, 0x02, 0x1d, 0x0a, 0x48, 0x0a, 0x04, 0x04, 0x01, - 0x02, 0x0a, 0x12, 0x04, 0xb2, 0x01, 0x02, 0x5f, 0x1a, 0x3a, 0x20, 0x41, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xb2, - 0x01, 0x1e, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x03, 0x12, 0x04, 0xb2, 0x01, - 0x33, 0x35, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x08, 0x12, 0x04, 0xb2, 0x01, 0x36, - 0x5e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb2, - 0x01, 0x37, 0x5d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x04, 0x12, 0x04, 0xb4, 0x01, - 0x02, 0x0a, 0x0a, 0x31, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0b, 0x12, 0x04, 0xb4, 0x01, 0x02, 0x48, - 0x1a, 0x23, 0x20, 0x54, 0x61, 0x67, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x06, 0x12, 0x04, - 0xb4, 0x01, 0x0b, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xb4, - 0x01, 0x15, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x03, 0x12, 0x04, 0xb4, 0x01, - 0x1c, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x08, 0x12, 0x04, 0xb4, 0x01, 0x1f, - 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0b, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb4, - 0x01, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x04, 0x12, 0x04, 0xb6, 0x01, - 0x02, 0x0a, 0x0a, 0x50, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0c, 0x12, 0x04, 0xb6, 0x01, 0x02, 0x55, - 0x1a, 0x42, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, - 0x72, 0x65, 0x72, 0x75, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x61, - 0x6e, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x05, 0x12, 0x04, 0xb6, - 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xb6, 0x01, - 0x12, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x03, 0x12, 0x04, 0xb6, 0x01, 0x29, - 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x08, 0x12, 0x04, 0xb6, 0x01, 0x2c, 0x54, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0c, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb6, 0x01, - 0x2d, 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x04, 0x12, 0x04, 0xb8, 0x01, 0x02, - 0x0a, 0x0a, 0x4c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0d, 0x12, 0x04, 0xb8, 0x01, 0x02, 0x47, 0x1a, - 0x3e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x74, 0x68, 0x61, 0x74, - 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x2e, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x05, 0x12, 0x04, 0xb8, 0x01, 0x0b, 0x11, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x01, 0x12, 0x04, 0xb8, 0x01, 0x12, 0x18, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x0d, 0x03, 0x12, 0x04, 0xb8, 0x01, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x01, 0x02, 0x0d, 0x08, 0x12, 0x04, 0xb8, 0x01, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x01, 0x02, 0x0d, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb8, 0x01, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x0e, 0x04, 0x12, 0x04, 0xba, 0x01, 0x02, 0x0a, 0x0a, 0x46, 0x0a, 0x04, - 0x04, 0x01, 0x02, 0x0e, 0x12, 0x04, 0xba, 0x01, 0x02, 0x61, 0x1a, 0x38, 0x20, 0x57, 0x68, 0x65, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x61, 0x73, - 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x77, 0x68, 0x6f, 0x20, + 0x6c, 0x61, 0x73, 0x74, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x07, 0x01, 0x12, 0x04, 0xb1, 0x01, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x07, 0x03, 0x12, 0x04, 0xb1, 0x01, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, + 0x08, 0x12, 0x04, 0xb1, 0x01, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x07, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb1, 0x01, 0x22, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x08, 0x06, 0x12, 0x04, 0xb3, 0x01, 0x02, 0x1b, 0x0a, 0x2c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x08, + 0x12, 0x04, 0xb3, 0x01, 0x02, 0x56, 0x1a, 0x1e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, + 0x04, 0xb3, 0x01, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x04, + 0xb3, 0x01, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x08, 0x12, 0x04, 0xb3, + 0x01, 0x2d, 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xb3, 0x01, 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x06, 0x12, 0x04, + 0xb5, 0x01, 0x02, 0x1b, 0x0a, 0x32, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x09, 0x12, 0x04, 0xb5, 0x01, + 0x02, 0x58, 0x1a, 0x24, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x20, 0x6d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, + 0x01, 0x12, 0x04, 0xb5, 0x01, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x03, + 0x12, 0x04, 0xb5, 0x01, 0x2c, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x08, 0x12, + 0x04, 0xb5, 0x01, 0x2f, 0x57, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x09, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xb5, 0x01, 0x30, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x06, + 0x12, 0x04, 0xb7, 0x01, 0x02, 0x1d, 0x0a, 0x48, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0a, 0x12, 0x04, + 0xb7, 0x01, 0x02, 0x5f, 0x1a, 0x3a, 0x20, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x61, + 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, + 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xb7, 0x01, 0x1e, 0x30, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x03, 0x12, 0x04, 0xb7, 0x01, 0x33, 0x35, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x08, 0x12, 0x04, 0xb7, 0x01, 0x36, 0x5e, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x01, 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb7, 0x01, 0x37, 0x5d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x04, 0x12, 0x04, 0xb9, 0x01, 0x02, 0x0a, 0x0a, 0x31, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0b, 0x12, 0x04, 0xb9, 0x01, 0x02, 0x48, 0x1a, 0x23, 0x20, 0x54, + 0x61, 0x67, 0x73, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x06, 0x12, 0x04, 0xb9, 0x01, 0x0b, 0x14, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xb9, 0x01, 0x15, 0x19, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x03, 0x12, 0x04, 0xb9, 0x01, 0x1c, 0x1e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x08, 0x12, 0x04, 0xb9, 0x01, 0x1f, 0x47, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x01, 0x02, 0x0b, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb9, 0x01, 0x20, 0x46, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x04, 0x12, 0x04, 0xbb, 0x01, 0x02, 0x0a, 0x0a, 0x50, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0c, 0x12, 0x04, 0xbb, 0x01, 0x02, 0x55, 0x1a, 0x42, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x72, 0x65, 0x72, 0x75, + 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x05, 0x12, 0x04, 0xbb, 0x01, 0x0b, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xbb, 0x01, 0x12, 0x26, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x03, 0x12, 0x04, 0xbb, 0x01, 0x29, 0x2b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x0c, 0x08, 0x12, 0x04, 0xbb, 0x01, 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x01, 0x02, 0x0c, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbb, 0x01, 0x2d, 0x53, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x04, 0x12, 0x04, 0xbd, 0x01, 0x02, 0x0a, 0x0a, 0x4c, 0x0a, + 0x04, 0x04, 0x01, 0x02, 0x0d, 0x12, 0x04, 0xbd, 0x01, 0x02, 0x47, 0x1a, 0x3e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x65, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x61, 0x6e, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x0d, 0x05, 0x12, 0x04, 0xbd, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x0d, 0x01, 0x12, 0x04, 0xbd, 0x01, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x0d, 0x03, 0x12, 0x04, 0xbd, 0x01, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, + 0x08, 0x12, 0x04, 0xbd, 0x01, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0d, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbd, 0x01, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x0e, 0x04, 0x12, 0x04, 0xbf, 0x01, 0x02, 0x0a, 0x0a, 0x46, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0e, + 0x12, 0x04, 0xbf, 0x01, 0x02, 0x61, 0x1a, 0x38, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x64, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, + 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x06, 0x12, 0x04, 0xbf, 0x01, 0x0b, 0x24, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x01, 0x12, 0x04, 0xbf, 0x01, 0x25, 0x32, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x03, 0x12, 0x04, 0xbf, 0x01, 0x35, 0x37, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x0e, 0x08, 0x12, 0x04, 0xbf, 0x01, 0x38, 0x60, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x01, 0x02, 0x0e, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbf, 0x01, 0x39, 0x5f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x05, 0x12, 0x04, 0xc1, 0x01, 0x02, 0x06, 0x0a, 0x35, 0x0a, + 0x04, 0x04, 0x01, 0x02, 0x0f, 0x12, 0x04, 0xc1, 0x01, 0x02, 0x41, 0x1a, 0x27, 0x20, 0x57, 0x68, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x06, 0x12, 0x04, 0xba, - 0x01, 0x0b, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x01, 0x12, 0x04, 0xba, 0x01, - 0x25, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x03, 0x12, 0x04, 0xba, 0x01, 0x35, - 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x08, 0x12, 0x04, 0xba, 0x01, 0x38, 0x60, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0e, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xba, 0x01, - 0x39, 0x5f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x05, 0x12, 0x04, 0xbc, 0x01, 0x02, - 0x06, 0x0a, 0x35, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0f, 0x12, 0x04, 0xbc, 0x01, 0x02, 0x41, 0x1a, - 0x27, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, - 0x01, 0x12, 0x04, 0xbc, 0x01, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x03, - 0x12, 0x04, 0xbc, 0x01, 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x08, 0x12, - 0x04, 0xbc, 0x01, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0f, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xbc, 0x01, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x06, - 0x12, 0x04, 0xbe, 0x01, 0x02, 0x0c, 0x0a, 0x95, 0x04, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x10, 0x12, - 0x04, 0xbe, 0x01, 0x02, 0x47, 0x1a, 0x4f, 0x20, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x2e, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x6f, 0x77, 0x73, 0x2e, 0x0a, 0x22, 0xb5, 0x03, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x43, 0x41, - 0x4e, 0x56, 0x41, 0x53, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x0a, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x28, 0x72, 0x65, 0x61, 0x64, 0x2d, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, - 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x29, 0x2e, 0x20, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x0a, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x55, 0x4c, 0x45, 0x5f, - 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x4e, - 0x56, 0x41, 0x53, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x0a, 0x20, + 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x01, 0x12, 0x04, 0xc1, + 0x01, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x03, 0x12, 0x04, 0xc1, 0x01, + 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x08, 0x12, 0x04, 0xc1, 0x01, 0x18, + 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0f, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc1, + 0x01, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x06, 0x12, 0x04, 0xc3, 0x01, + 0x02, 0x0c, 0x0a, 0x5d, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x10, 0x12, 0x04, 0xc3, 0x01, 0x02, 0x47, + 0x1a, 0x4f, 0x20, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x6b, 0x69, 0x6e, 0x64, + 0x2e, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x52, 0x55, + 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x01, 0x12, 0x04, 0xc3, 0x01, 0x0d, 0x18, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x03, 0x12, 0x04, 0xc3, 0x01, 0x1b, 0x1d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x08, 0x12, 0x04, 0xc3, 0x01, 0x1e, 0x46, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x01, 0x02, 0x10, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc3, 0x01, 0x1f, 0x45, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x11, 0x04, 0x12, 0x04, 0xc7, 0x01, 0x02, 0x0a, 0x0a, + 0xfe, 0x01, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x11, 0x12, 0x04, 0xc7, 0x01, 0x02, 0x54, 0x1a, 0xef, + 0x01, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x4e, 0x56, 0x41, 0x53, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x64, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x63, 0x61, + 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x72, 0x6f, 0x77, 0x0a, 0x20, + 0x69, 0x73, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x28, 0x72, 0x65, + 0x61, 0x64, 0x2d, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x20, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x28, 0x77, 0x68, 0x6f, - 0x73, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x69, 0x73, 0x0a, 0x20, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x79, 0x65, 0x64, 0x20, 0x76, 0x69, 0x61, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, - 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x60, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x01, 0x12, 0x04, 0xbe, 0x01, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x10, 0x03, 0x12, 0x04, 0xbe, 0x01, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x01, 0x02, 0x10, 0x08, 0x12, 0x04, 0xbe, 0x01, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x01, 0x02, 0x10, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbe, 0x01, 0x1f, 0x45, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x02, 0x12, 0x06, 0xc7, 0x01, 0x00, 0xd9, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x02, 0x01, 0x12, 0x04, 0xc7, 0x01, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, - 0x05, 0x12, 0x04, 0xc8, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, - 0x04, 0xc8, 0x01, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x04, - 0xc8, 0x01, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc8, - 0x01, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc8, 0x01, - 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xc8, 0x01, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc9, - 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc9, 0x01, 0x02, - 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc9, 0x01, 0x09, 0x18, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc9, 0x01, 0x1b, 0x1c, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x04, 0xc9, 0x01, 0x1d, 0x45, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x02, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc9, 0x01, 0x1e, 0x44, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x05, 0x12, 0x04, 0xca, 0x01, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x04, 0xca, 0x01, 0x02, 0x46, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x04, 0xca, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x04, 0xca, 0x01, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x02, 0x08, 0x12, 0x04, 0xca, 0x01, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, - 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xca, 0x01, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x03, 0x05, 0x12, 0x04, 0xcb, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x02, 0x02, 0x03, 0x12, 0x04, 0xcb, 0x01, 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, - 0x03, 0x01, 0x12, 0x04, 0xcb, 0x01, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, - 0x03, 0x12, 0x04, 0xcb, 0x01, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x08, - 0x12, 0x04, 0xcb, 0x01, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x03, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xcb, 0x01, 0x22, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, - 0x05, 0x12, 0x04, 0xcc, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, - 0x04, 0xcc, 0x01, 0x02, 0x4d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x04, - 0xcc, 0x01, 0x09, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x04, 0xcc, - 0x01, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x08, 0x12, 0x04, 0xcc, 0x01, - 0x24, 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xcc, 0x01, 0x25, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x05, 0x12, 0x04, 0xcd, - 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x04, 0xcd, 0x01, 0x02, - 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x04, 0xcd, 0x01, 0x09, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x04, 0xcd, 0x01, 0x14, 0x15, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x08, 0x12, 0x04, 0xcd, 0x01, 0x16, 0x3e, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x02, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcd, 0x01, 0x17, 0x3d, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x05, 0x12, 0x04, 0xce, 0x01, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x06, 0x12, 0x04, 0xce, 0x01, 0x02, 0x41, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x02, 0x02, 0x06, 0x01, 0x12, 0x04, 0xce, 0x01, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x06, 0x03, 0x12, 0x04, 0xce, 0x01, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x06, 0x08, 0x12, 0x04, 0xce, 0x01, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, - 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xce, 0x01, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x07, 0x05, 0x12, 0x04, 0xcf, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x02, 0x02, 0x07, 0x12, 0x04, 0xcf, 0x01, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, - 0x07, 0x01, 0x12, 0x04, 0xcf, 0x01, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, - 0x03, 0x12, 0x04, 0xcf, 0x01, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x08, - 0x12, 0x04, 0xcf, 0x01, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x07, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xcf, 0x01, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, - 0x06, 0x12, 0x04, 0xd0, 0x01, 0x02, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x08, 0x12, - 0x04, 0xd0, 0x01, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x01, 0x12, 0x04, - 0xd0, 0x01, 0x13, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x03, 0x12, 0x04, 0xd0, - 0x01, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x08, 0x12, 0x04, 0xd0, 0x01, - 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xd0, 0x01, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x06, 0x12, 0x04, 0xd1, - 0x01, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x09, 0x12, 0x04, 0xd1, 0x01, 0x02, - 0x57, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x01, 0x12, 0x04, 0xd1, 0x01, 0x1a, 0x28, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x03, 0x12, 0x04, 0xd1, 0x01, 0x2b, 0x2d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x08, 0x12, 0x04, 0xd1, 0x01, 0x2e, 0x56, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x02, 0x02, 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd1, 0x01, 0x2f, 0x55, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0a, 0x06, 0x12, 0x04, 0xd2, 0x01, 0x02, 0x1b, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0a, 0x12, 0x04, 0xd2, 0x01, 0x02, 0x57, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x02, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xd2, 0x01, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x0a, 0x03, 0x12, 0x04, 0xd2, 0x01, 0x2b, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x0a, 0x08, 0x12, 0x04, 0xd2, 0x01, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, - 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd2, 0x01, 0x2f, 0x55, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x0b, 0x06, 0x12, 0x04, 0xd3, 0x01, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x02, 0x02, 0x0b, 0x12, 0x04, 0xd3, 0x01, 0x02, 0x58, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, - 0x0b, 0x01, 0x12, 0x04, 0xd3, 0x01, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0b, - 0x03, 0x12, 0x04, 0xd3, 0x01, 0x2c, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0b, 0x08, - 0x12, 0x04, 0xd3, 0x01, 0x2f, 0x57, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x0b, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xd3, 0x01, 0x30, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0c, - 0x05, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0c, 0x12, - 0x04, 0xd4, 0x01, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0c, 0x01, 0x12, 0x04, - 0xd4, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0c, 0x03, 0x12, 0x04, 0xd4, - 0x01, 0x14, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0c, 0x08, 0x12, 0x04, 0xd4, 0x01, - 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x0c, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xd4, 0x01, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0d, 0x06, 0x12, 0x04, 0xd5, - 0x01, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0d, 0x12, 0x04, 0xd5, 0x01, 0x02, - 0x57, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0d, 0x01, 0x12, 0x04, 0xd5, 0x01, 0x1c, 0x28, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0d, 0x03, 0x12, 0x04, 0xd5, 0x01, 0x2b, 0x2d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0d, 0x08, 0x12, 0x04, 0xd5, 0x01, 0x2e, 0x56, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x02, 0x02, 0x0d, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd5, 0x01, 0x2f, 0x55, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0e, 0x05, 0x12, 0x04, 0xd8, 0x01, 0x02, 0x08, 0x0a, - 0x87, 0x02, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0e, 0x12, 0x04, 0xd8, 0x01, 0x02, 0x45, 0x1a, 0xf8, - 0x01, 0x20, 0x5a, 0x65, 0x72, 0x6f, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x20, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x27, 0x73, 0x20, 0x60, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x60, 0x2c, 0x20, 0x6f, - 0x72, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x60, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, - 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x60, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x65, 0x78, - 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x49, 0x44, 0x73, 0x2e, - 0x20, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x72, 0x75, - 0x6e, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, - 0x0e, 0x01, 0x12, 0x04, 0xd8, 0x01, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0e, - 0x03, 0x12, 0x04, 0xd8, 0x01, 0x19, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0e, 0x08, - 0x12, 0x04, 0xd8, 0x01, 0x1c, 0x44, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x0e, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xd8, 0x01, 0x1d, 0x43, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x06, - 0xdb, 0x01, 0x00, 0xdd, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x04, 0xdb, - 0x01, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x05, 0x12, 0x04, 0xdc, 0x01, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x04, 0xdc, 0x01, 0x02, 0x3f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x04, 0xdc, 0x01, 0x09, 0x11, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x04, 0xdc, 0x01, 0x14, 0x15, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x08, 0x12, 0x04, 0xdc, 0x01, 0x16, 0x3e, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x03, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdc, 0x01, 0x17, 0x3d, 0x0a, - 0xc0, 0x02, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x06, 0xe4, 0x01, 0x00, 0xfd, 0x01, 0x01, 0x1a, 0xb1, - 0x02, 0x20, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x61, - 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x20, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, - 0x28, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x2a, 0x29, 0x20, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x0a, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x65, 0x61, 0x63, 0x68, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x65, - 0x64, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x5f, 0x2a, 0x29, 0x20, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, - 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x0a, 0x20, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x04, 0xe4, 0x01, 0x08, 0x23, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x05, 0x12, 0x04, 0xe6, 0x01, 0x02, 0x08, 0x0a, 0x4f, - 0x0a, 0x04, 0x04, 0x04, 0x02, 0x00, 0x12, 0x04, 0xe6, 0x01, 0x02, 0x4b, 0x1a, 0x41, 0x20, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, - 0x70, 0x65, 0x6e, 0x20, 0x28, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x29, - 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x63, 0x72, - 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe6, 0x01, 0x09, 0x1d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe6, 0x01, 0x20, 0x21, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x04, 0x02, 0x00, 0x08, 0x12, 0x04, 0xe6, 0x01, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x04, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe6, 0x01, 0x23, 0x49, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x05, 0x12, 0x04, 0xe8, 0x01, 0x02, 0x08, 0x0a, 0x4e, 0x0a, - 0x04, 0x04, 0x04, 0x02, 0x01, 0x12, 0x04, 0xe8, 0x01, 0x02, 0x4d, 0x1a, 0x40, 0x20, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x20, 0x28, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x65, 0x64, 0x29, 0x20, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, - 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x04, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe8, 0x01, 0x09, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x04, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe8, 0x01, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x04, 0x02, 0x01, 0x08, 0x12, 0x04, 0xe8, 0x01, 0x24, 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, - 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe8, 0x01, 0x25, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x04, 0xea, 0x01, 0x02, 0x08, 0x0a, 0x4f, 0x0a, 0x04, 0x04, - 0x04, 0x02, 0x02, 0x12, 0x04, 0xea, 0x01, 0x02, 0x4d, 0x1a, 0x41, 0x20, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x61, 0x73, 0x73, - 0x65, 0x64, 0x20, 0x28, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x29, 0x20, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x04, 0xea, 0x01, 0x09, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x04, 0x02, 0x02, 0x03, 0x12, 0x04, 0xea, 0x01, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, - 0x02, 0x02, 0x08, 0x12, 0x04, 0xea, 0x01, 0x24, 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, - 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xea, 0x01, 0x25, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x04, 0x02, 0x03, 0x05, 0x12, 0x04, 0xec, 0x01, 0x02, 0x08, 0x0a, 0x56, 0x0a, 0x04, 0x04, 0x04, - 0x02, 0x03, 0x12, 0x04, 0xec, 0x01, 0x02, 0x4c, 0x1a, 0x48, 0x20, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x73, 0x2e, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x29, 0x2e, 0x20, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x0a, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x76, + 0x61, 0x73, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x11, 0x05, 0x12, 0x04, 0xc7, 0x01, 0x0b, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x11, 0x01, 0x12, 0x04, 0xc7, 0x01, 0x12, 0x25, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x11, 0x03, 0x12, 0x04, 0xc7, 0x01, 0x28, 0x2a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x11, 0x08, 0x12, 0x04, 0xc7, 0x01, 0x2b, 0x53, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x01, 0x02, 0x11, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc7, 0x01, 0x2c, 0x52, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x12, 0x04, 0x12, 0x04, 0xcb, 0x01, 0x02, 0x0a, 0x0a, 0xd5, 0x01, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x12, 0x12, 0x04, 0xcb, 0x01, 0x02, 0x70, 0x1a, 0xc6, 0x01, 0x20, + 0x46, 0x6f, 0x72, 0x20, 0x43, 0x41, 0x4e, 0x56, 0x41, 0x53, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x74, 0x68, + 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, + 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x0a, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x5f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, + 0x20, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x52, 0x55, 0x4c, 0x45, 0x5f, + 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x20, 0x28, 0x77, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x20, 0x69, 0x73, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x79, 0x65, 0x64, 0x20, 0x76, 0x69, + 0x61, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x60, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, + 0x61, 0x64, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x12, 0x06, 0x12, 0x04, + 0xcb, 0x01, 0x0b, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x12, 0x01, 0x12, 0x04, 0xcb, + 0x01, 0x34, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x12, 0x03, 0x12, 0x04, 0xcb, 0x01, + 0x44, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x12, 0x08, 0x12, 0x04, 0xcb, 0x01, 0x47, + 0x6f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x12, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcb, + 0x01, 0x48, 0x6e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x06, 0xce, 0x01, 0x00, 0xe2, 0x01, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x04, 0xce, 0x01, 0x08, 0x19, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x05, 0x12, 0x04, 0xcf, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x04, 0xcf, 0x01, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x00, 0x01, 0x12, 0x04, 0xcf, 0x01, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xcf, 0x01, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x00, 0x08, 0x12, 0x04, 0xcf, 0x01, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x00, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcf, 0x01, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x01, 0x05, 0x12, 0x04, 0xd0, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, + 0x01, 0x12, 0x04, 0xd0, 0x01, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xd0, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xd0, 0x01, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x04, + 0xd0, 0x01, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xd0, 0x01, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x05, 0x12, + 0x04, 0xd1, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x04, 0xd1, + 0x01, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x04, 0xd1, 0x01, + 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x04, 0xd1, 0x01, 0x1b, + 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x08, 0x12, 0x04, 0xd1, 0x01, 0x1d, 0x45, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd1, 0x01, + 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x05, 0x12, 0x04, 0xd2, 0x01, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x04, 0xd2, 0x01, 0x02, 0x4a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x01, 0x12, 0x04, 0xd2, 0x01, 0x09, 0x1c, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x03, 0x12, 0x04, 0xd2, 0x01, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x03, 0x08, 0x12, 0x04, 0xd2, 0x01, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x02, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd2, 0x01, 0x22, 0x48, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x05, 0x12, 0x04, 0xd3, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x04, 0xd3, 0x01, 0x02, 0x4d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x04, 0x01, 0x12, 0x04, 0xd3, 0x01, 0x09, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x04, 0x03, 0x12, 0x04, 0xd3, 0x01, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x04, 0x08, 0x12, 0x04, 0xd3, 0x01, 0x24, 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x04, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd3, 0x01, 0x25, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x05, 0x05, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, + 0x05, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, + 0x12, 0x04, 0xd4, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, + 0x04, 0xd4, 0x01, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x08, 0x12, 0x04, + 0xd4, 0x01, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xd4, 0x01, 0x17, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x05, 0x12, + 0x04, 0xd5, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x06, 0x12, 0x04, 0xd5, + 0x01, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x01, 0x12, 0x04, 0xd5, 0x01, + 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x03, 0x12, 0x04, 0xd5, 0x01, 0x16, + 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x08, 0x12, 0x04, 0xd5, 0x01, 0x18, 0x40, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd5, 0x01, + 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x05, 0x12, 0x04, 0xd6, 0x01, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x07, 0x12, 0x04, 0xd6, 0x01, 0x02, 0x41, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x01, 0x12, 0x04, 0xd6, 0x01, 0x09, 0x13, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x03, 0x12, 0x04, 0xd6, 0x01, 0x16, 0x17, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x07, 0x08, 0x12, 0x04, 0xd6, 0x01, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x02, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd6, 0x01, 0x19, 0x3f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x06, 0x12, 0x04, 0xd7, 0x01, 0x02, 0x12, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x02, 0x02, 0x08, 0x12, 0x04, 0xd7, 0x01, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x08, 0x01, 0x12, 0x04, 0xd7, 0x01, 0x13, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x08, 0x03, 0x12, 0x04, 0xd7, 0x01, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x08, 0x08, 0x12, 0x04, 0xd7, 0x01, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x08, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd7, 0x01, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x09, 0x06, 0x12, 0x04, 0xd8, 0x01, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, + 0x09, 0x12, 0x04, 0xd8, 0x01, 0x02, 0x57, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x01, + 0x12, 0x04, 0xd8, 0x01, 0x1a, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x03, 0x12, + 0x04, 0xd8, 0x01, 0x2b, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x08, 0x12, 0x04, + 0xd8, 0x01, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x09, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xd8, 0x01, 0x2f, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0a, 0x06, 0x12, + 0x04, 0xd9, 0x01, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0a, 0x12, 0x04, 0xd9, + 0x01, 0x02, 0x57, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xd9, 0x01, + 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0a, 0x03, 0x12, 0x04, 0xd9, 0x01, 0x2b, + 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0a, 0x08, 0x12, 0x04, 0xd9, 0x01, 0x2e, 0x56, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd9, 0x01, + 0x2f, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0b, 0x06, 0x12, 0x04, 0xda, 0x01, 0x02, + 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0b, 0x12, 0x04, 0xda, 0x01, 0x02, 0x58, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xda, 0x01, 0x1c, 0x29, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0b, 0x03, 0x12, 0x04, 0xda, 0x01, 0x2c, 0x2e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x0b, 0x08, 0x12, 0x04, 0xda, 0x01, 0x2f, 0x57, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x02, 0x02, 0x0b, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xda, 0x01, 0x30, 0x56, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0c, 0x05, 0x12, 0x04, 0xdb, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x02, 0x02, 0x0c, 0x12, 0x04, 0xdb, 0x01, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xdb, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x0c, 0x03, 0x12, 0x04, 0xdb, 0x01, 0x14, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x0c, 0x08, 0x12, 0x04, 0xdb, 0x01, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x0c, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdb, 0x01, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x0d, 0x06, 0x12, 0x04, 0xdc, 0x01, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, + 0x0d, 0x12, 0x04, 0xdc, 0x01, 0x02, 0x57, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0d, 0x01, + 0x12, 0x04, 0xdc, 0x01, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0d, 0x03, 0x12, + 0x04, 0xdc, 0x01, 0x2b, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0d, 0x08, 0x12, 0x04, + 0xdc, 0x01, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x0d, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xdc, 0x01, 0x2f, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0e, 0x04, 0x12, + 0x04, 0xdd, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0e, 0x12, 0x04, 0xdd, + 0x01, 0x02, 0x62, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0e, 0x06, 0x12, 0x04, 0xdd, 0x01, + 0x0b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0e, 0x01, 0x12, 0x04, 0xdd, 0x01, 0x1e, + 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0e, 0x03, 0x12, 0x04, 0xdd, 0x01, 0x36, 0x38, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0e, 0x08, 0x12, 0x04, 0xdd, 0x01, 0x39, 0x61, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x0e, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdd, 0x01, 0x3a, + 0x60, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0f, 0x04, 0x12, 0x04, 0xde, 0x01, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x0f, 0x12, 0x04, 0xde, 0x01, 0x02, 0x6b, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0f, 0x06, 0x12, 0x04, 0xde, 0x01, 0x0b, 0x21, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x0f, 0x01, 0x12, 0x04, 0xde, 0x01, 0x22, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x0f, 0x03, 0x12, 0x04, 0xde, 0x01, 0x3f, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x0f, 0x08, 0x12, 0x04, 0xde, 0x01, 0x42, 0x6a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, + 0x02, 0x0f, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xde, 0x01, 0x43, 0x69, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x10, 0x05, 0x12, 0x04, 0xe1, 0x01, 0x02, 0x08, 0x0a, 0x87, 0x02, 0x0a, 0x04, + 0x04, 0x02, 0x02, 0x10, 0x12, 0x04, 0xe1, 0x01, 0x02, 0x45, 0x1a, 0xf8, 0x01, 0x20, 0x5a, 0x65, + 0x72, 0x6f, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2e, 0x20, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x27, 0x73, 0x20, 0x60, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x60, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x60, 0x20, 0x69, 0x6e, + 0x20, 0x60, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x5f, 0x69, 0x64, 0x73, 0x60, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, + 0x69, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x49, 0x44, 0x73, 0x2e, 0x20, 0x4c, 0x6f, 0x77, + 0x65, 0x72, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x10, 0x01, 0x12, 0x04, + 0xe1, 0x01, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x10, 0x03, 0x12, 0x04, 0xe1, + 0x01, 0x19, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x10, 0x08, 0x12, 0x04, 0xe1, 0x01, + 0x1c, 0x44, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x10, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xe1, 0x01, 0x1d, 0x43, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x06, 0xe4, 0x01, 0x00, 0xe6, + 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x04, 0xe4, 0x01, 0x08, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x05, 0x12, 0x04, 0xe5, 0x01, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x04, 0xe5, 0x01, 0x02, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe5, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe5, 0x01, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x00, 0x08, 0x12, 0x04, 0xe5, 0x01, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x03, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe5, 0x01, 0x17, 0x3d, 0x0a, 0xc0, 0x02, 0x0a, 0x02, + 0x04, 0x04, 0x12, 0x06, 0xed, 0x01, 0x00, 0x86, 0x02, 0x01, 0x1a, 0xb1, 0x02, 0x20, 0x41, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2d, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, + 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x20, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x6e, 0x75, 0x6d, + 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x2a, 0x29, 0x20, + 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x0a, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, + 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x20, 0x28, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x2a, 0x29, 0x20, + 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x6d, 0x61, 0x6e, 0x79, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x0a, 0x20, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x0a, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x04, 0xed, 0x01, 0x08, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x04, 0x02, 0x00, 0x05, 0x12, 0x04, 0xef, 0x01, 0x02, 0x08, 0x0a, 0x4f, 0x0a, 0x04, 0x04, 0x04, + 0x02, 0x00, 0x12, 0x04, 0xef, 0x01, 0x02, 0x4b, 0x1a, 0x41, 0x20, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, + 0x28, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x29, 0x20, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x04, 0x02, 0x00, 0x01, 0x12, 0x04, 0xef, 0x01, 0x09, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xef, 0x01, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x00, 0x08, 0x12, 0x04, 0xef, 0x01, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x00, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xef, 0x01, 0x23, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x01, 0x05, 0x12, 0x04, 0xf1, 0x01, 0x02, 0x08, 0x0a, 0x4e, 0x0a, 0x04, 0x04, 0x04, 0x02, + 0x01, 0x12, 0x04, 0xf1, 0x01, 0x02, 0x4d, 0x1a, 0x40, 0x20, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x20, 0x28, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x65, 0x64, 0x29, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x2b, 0x20, - 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x29, - 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x01, 0x12, 0x04, 0xec, 0x01, 0x09, - 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x03, 0x12, 0x04, 0xec, 0x01, 0x21, 0x22, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x08, 0x12, 0x04, 0xec, 0x01, 0x23, 0x4b, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xec, 0x01, 0x24, - 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x05, 0x12, 0x04, 0xee, 0x01, 0x02, 0x08, - 0x0a, 0x3a, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x04, 0x12, 0x04, 0xee, 0x01, 0x02, 0x48, 0x1a, 0x2c, - 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x52, 0x45, 0x41, - 0x54, 0x45, 0x44, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x04, 0x02, 0x04, 0x01, 0x12, 0x04, 0xee, 0x01, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x04, 0x02, 0x04, 0x03, 0x12, 0x04, 0xee, 0x01, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, - 0x02, 0x04, 0x08, 0x12, 0x04, 0xee, 0x01, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, - 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xee, 0x01, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x04, 0x02, 0x05, 0x05, 0x12, 0x04, 0xf0, 0x01, 0x02, 0x08, 0x0a, 0x48, 0x0a, 0x04, 0x04, 0x04, - 0x02, 0x05, 0x12, 0x04, 0xf0, 0x01, 0x02, 0x45, 0x1a, 0x3a, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x28, 0x4c, 0x49, 0x56, 0x45, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x01, 0x12, 0x04, 0xf0, - 0x01, 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x03, 0x12, 0x04, 0xf0, 0x01, - 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x08, 0x12, 0x04, 0xf0, 0x01, 0x1c, - 0x44, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf0, - 0x01, 0x1d, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x05, 0x12, 0x04, 0xf2, 0x01, - 0x02, 0x08, 0x0a, 0x43, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x06, 0x12, 0x04, 0xf2, 0x01, 0x02, 0x49, - 0x1a, 0x35, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x01, - 0x12, 0x04, 0xf2, 0x01, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x03, 0x12, - 0x04, 0xf2, 0x01, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x08, 0x12, 0x04, - 0xf2, 0x01, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0xf2, 0x01, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x07, 0x05, 0x12, - 0x04, 0xf4, 0x01, 0x02, 0x08, 0x0a, 0x45, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x07, 0x12, 0x04, 0xf4, - 0x01, 0x02, 0x47, 0x1a, 0x37, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x75, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x04, 0x02, 0x07, 0x01, 0x12, 0x04, 0xf4, 0x01, 0x09, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x04, 0x02, 0x07, 0x03, 0x12, 0x04, 0xf4, 0x01, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, - 0x02, 0x07, 0x08, 0x12, 0x04, 0xf4, 0x01, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, - 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf4, 0x01, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x04, 0x02, 0x08, 0x05, 0x12, 0x04, 0xf6, 0x01, 0x02, 0x08, 0x0a, 0x3b, 0x0a, 0x04, 0x04, 0x04, - 0x02, 0x08, 0x12, 0x04, 0xf6, 0x01, 0x02, 0x49, 0x1a, 0x2d, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x65, 0x72, 0x65, 0x20, 0x63, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x01, - 0x12, 0x04, 0xf6, 0x01, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x03, 0x12, - 0x04, 0xf6, 0x01, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x08, 0x12, 0x04, - 0xf6, 0x01, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0xf6, 0x01, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x05, 0x12, - 0x04, 0xf8, 0x01, 0x02, 0x08, 0x0a, 0x42, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x09, 0x12, 0x04, 0xf8, - 0x01, 0x02, 0x47, 0x1a, 0x34, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x61, - 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, - 0x09, 0x01, 0x12, 0x04, 0xf8, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, - 0x03, 0x12, 0x04, 0xf8, 0x01, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x08, - 0x12, 0x04, 0xf8, 0x01, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x09, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xf8, 0x01, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0a, - 0x05, 0x12, 0x04, 0xfa, 0x01, 0x02, 0x08, 0x0a, 0x42, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0a, 0x12, - 0x04, 0xfa, 0x01, 0x02, 0x47, 0x1a, 0x34, 0x20, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x04, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xfa, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, - 0x02, 0x0a, 0x03, 0x12, 0x04, 0xfa, 0x01, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, - 0x0a, 0x08, 0x12, 0x04, 0xfa, 0x01, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x0a, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfa, 0x01, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, - 0x02, 0x0b, 0x05, 0x12, 0x04, 0xfc, 0x01, 0x02, 0x08, 0x0a, 0x4e, 0x0a, 0x04, 0x04, 0x04, 0x02, - 0x0b, 0x12, 0x04, 0xfc, 0x01, 0x02, 0x58, 0x1a, 0x40, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, - 0x0b, 0x01, 0x12, 0x04, 0xfc, 0x01, 0x09, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, - 0x03, 0x12, 0x04, 0xfc, 0x01, 0x2c, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x08, - 0x12, 0x04, 0xfc, 0x01, 0x2f, 0x57, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x0b, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xfc, 0x01, 0x30, 0x56, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x06, - 0x82, 0x02, 0x00, 0x8a, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, 0x04, 0x82, - 0x02, 0x05, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0x83, 0x02, - 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x00, 0x12, 0x04, 0x83, 0x02, 0x02, 0x25, - 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x02, 0x12, 0x04, 0x83, 0x02, 0x23, 0x24, 0x0a, - 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x01, 0x12, 0x04, 0x84, 0x02, 0x02, 0x1c, 0x0a, 0x0c, - 0x0a, 0x04, 0x05, 0x01, 0x02, 0x01, 0x12, 0x04, 0x84, 0x02, 0x02, 0x21, 0x0a, 0x0d, 0x0a, 0x05, - 0x05, 0x01, 0x02, 0x01, 0x02, 0x12, 0x04, 0x84, 0x02, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x01, 0x02, 0x02, 0x01, 0x12, 0x04, 0x85, 0x02, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, - 0x02, 0x02, 0x12, 0x04, 0x85, 0x02, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, - 0x02, 0x12, 0x04, 0x85, 0x02, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x01, - 0x12, 0x04, 0x86, 0x02, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x03, 0x12, 0x04, - 0x86, 0x02, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x02, 0x12, 0x04, 0x86, - 0x02, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0x87, 0x02, - 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x04, 0x12, 0x04, 0x87, 0x02, 0x02, 0x20, - 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x04, 0x02, 0x12, 0x04, 0x87, 0x02, 0x1e, 0x1f, 0x0a, - 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x05, 0x01, 0x12, 0x04, 0x88, 0x02, 0x02, 0x1d, 0x0a, 0x0c, - 0x0a, 0x04, 0x05, 0x01, 0x02, 0x05, 0x12, 0x04, 0x88, 0x02, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, - 0x05, 0x01, 0x02, 0x05, 0x02, 0x12, 0x04, 0x88, 0x02, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x01, 0x02, 0x06, 0x01, 0x12, 0x04, 0x89, 0x02, 0x02, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, - 0x02, 0x06, 0x12, 0x04, 0x89, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x06, - 0x02, 0x12, 0x04, 0x89, 0x02, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x05, 0x12, 0x06, 0x8c, - 0x02, 0x00, 0x95, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x04, 0x8c, 0x02, - 0x08, 0x1f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x05, 0x08, 0x00, 0x12, 0x06, 0x8d, 0x02, 0x02, 0x94, - 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x08, 0x00, 0x01, 0x12, 0x04, 0x8d, 0x02, 0x08, - 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x06, 0x12, 0x04, 0x8e, 0x02, 0x04, 0x22, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x04, 0x8e, 0x02, 0x04, 0x2f, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8e, 0x02, 0x23, 0x2a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x04, 0x8e, 0x02, 0x2d, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x05, 0x02, 0x01, 0x06, 0x12, 0x04, 0x8f, 0x02, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x05, 0x02, 0x01, 0x12, 0x04, 0x8f, 0x02, 0x04, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, - 0x01, 0x01, 0x12, 0x04, 0x8f, 0x02, 0x20, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, - 0x03, 0x12, 0x04, 0x8f, 0x02, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x06, - 0x12, 0x04, 0x90, 0x02, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x02, 0x12, 0x04, - 0x90, 0x02, 0x04, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, 0x04, 0x90, - 0x02, 0x24, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x03, 0x12, 0x04, 0x90, 0x02, - 0x2f, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x06, 0x12, 0x04, 0x91, 0x02, 0x04, - 0x21, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x03, 0x12, 0x04, 0x91, 0x02, 0x04, 0x2d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x01, 0x12, 0x04, 0x91, 0x02, 0x22, 0x28, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x03, 0x12, 0x04, 0x91, 0x02, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x05, 0x02, 0x04, 0x06, 0x12, 0x04, 0x92, 0x02, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x05, 0x02, 0x04, 0x12, 0x04, 0x92, 0x02, 0x04, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, - 0x02, 0x04, 0x01, 0x12, 0x04, 0x92, 0x02, 0x24, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, - 0x04, 0x03, 0x12, 0x04, 0x92, 0x02, 0x2f, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x05, - 0x06, 0x12, 0x04, 0x93, 0x02, 0x04, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x05, 0x12, - 0x04, 0x93, 0x02, 0x04, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x05, 0x01, 0x12, 0x04, - 0x93, 0x02, 0x21, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x05, 0x03, 0x12, 0x04, 0x93, - 0x02, 0x29, 0x2a, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x04, 0x97, 0x02, 0x00, 0x29, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x04, 0x97, 0x02, 0x08, 0x26, 0x0a, 0x0a, 0x0a, 0x02, - 0x04, 0x07, 0x12, 0x04, 0x98, 0x02, 0x00, 0x26, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, - 0x04, 0x98, 0x02, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x06, 0x99, 0x02, 0x00, - 0x9c, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x04, 0x99, 0x02, 0x08, 0x27, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x04, 0x12, 0x04, 0x9a, 0x02, 0x02, 0x0a, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x04, 0x9a, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x04, 0x9a, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9a, 0x02, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x08, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9a, 0x02, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, - 0x02, 0x01, 0x04, 0x12, 0x04, 0x9b, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, - 0x01, 0x12, 0x04, 0x9b, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x05, - 0x12, 0x04, 0x9b, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, - 0x04, 0x9b, 0x02, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x04, - 0x9b, 0x02, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x09, 0x12, 0x06, 0x9d, 0x02, 0x00, 0xa2, - 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x04, 0x9d, 0x02, 0x08, 0x25, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x05, 0x12, 0x04, 0x9e, 0x02, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, 0x04, 0x9e, 0x02, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9e, 0x02, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x09, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9e, 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, - 0x02, 0x00, 0x08, 0x12, 0x04, 0x9e, 0x02, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, - 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9e, 0x02, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x09, 0x02, 0x01, 0x04, 0x12, 0x04, 0x9f, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, - 0x02, 0x01, 0x12, 0x04, 0x9f, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, - 0x05, 0x12, 0x04, 0x9f, 0x02, 0x0b, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x01, - 0x12, 0x04, 0x9f, 0x02, 0x11, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x03, 0x12, - 0x04, 0x9f, 0x02, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x04, 0x12, 0x04, - 0xa0, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x02, 0x12, 0x04, 0xa0, 0x02, - 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x05, 0x12, 0x04, 0xa0, 0x02, 0x0b, - 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x01, 0x12, 0x04, 0xa0, 0x02, 0x12, 0x18, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x03, 0x12, 0x04, 0xa0, 0x02, 0x1b, 0x1c, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x04, 0x12, 0x04, 0xa1, 0x02, 0x02, 0x0a, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x09, 0x02, 0x03, 0x12, 0x04, 0xa1, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x09, 0x02, 0x03, 0x05, 0x12, 0x04, 0xa1, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x09, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa1, 0x02, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, - 0x02, 0x03, 0x03, 0x12, 0x04, 0xa1, 0x02, 0x1b, 0x1c, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x0a, 0x12, - 0x04, 0xa3, 0x02, 0x00, 0x2a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0a, 0x01, 0x12, 0x04, 0xa3, 0x02, - 0x08, 0x27, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0b, 0x12, 0x06, 0xa4, 0x02, 0x00, 0xa9, 0x02, 0x01, - 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0b, 0x01, 0x12, 0x04, 0xa4, 0x02, 0x08, 0x24, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0b, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa5, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x0b, 0x02, 0x00, 0x12, 0x04, 0xa5, 0x02, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, - 0x02, 0x00, 0x01, 0x12, 0x04, 0xa5, 0x02, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, - 0x00, 0x03, 0x12, 0x04, 0xa5, 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, - 0x08, 0x12, 0x04, 0xa5, 0x02, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0b, 0x02, 0x00, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa5, 0x02, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, - 0x01, 0x04, 0x12, 0x04, 0xa6, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x01, - 0x12, 0x04, 0xa6, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x05, 0x12, - 0x04, 0xa6, 0x02, 0x0b, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x01, 0x12, 0x04, - 0xa6, 0x02, 0x11, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa6, - 0x02, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x02, 0x04, 0x12, 0x04, 0xa7, 0x02, - 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x02, 0x12, 0x04, 0xa7, 0x02, 0x02, 0x1d, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x02, 0x05, 0x12, 0x04, 0xa7, 0x02, 0x0b, 0x11, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x02, 0x01, 0x12, 0x04, 0xa7, 0x02, 0x12, 0x18, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x02, 0x03, 0x12, 0x04, 0xa7, 0x02, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0b, 0x02, 0x03, 0x04, 0x12, 0x04, 0xa8, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x0b, 0x02, 0x03, 0x12, 0x04, 0xa8, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, - 0x02, 0x03, 0x05, 0x12, 0x04, 0xa8, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, - 0x03, 0x01, 0x12, 0x04, 0xa8, 0x02, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x03, - 0x03, 0x12, 0x04, 0xa8, 0x02, 0x1b, 0x1c, 0x0a, 0x3f, 0x0a, 0x02, 0x04, 0x0c, 0x12, 0x06, 0xac, - 0x02, 0x00, 0xb7, 0x02, 0x01, 0x1a, 0x31, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, - 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0c, 0x01, 0x12, - 0x04, 0xac, 0x02, 0x08, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0c, 0x08, 0x00, 0x12, 0x06, 0xad, - 0x02, 0x02, 0xb0, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x08, 0x00, 0x01, 0x12, 0x04, - 0xad, 0x02, 0x08, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x06, 0x12, 0x04, 0xae, - 0x02, 0x04, 0x29, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x00, 0x12, 0x04, 0xae, 0x02, 0x04, - 0x7b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xae, 0x02, 0x2a, 0x4d, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xae, 0x02, 0x50, 0x51, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x08, 0x12, 0x04, 0xae, 0x02, 0x52, 0x7a, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x0c, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xae, 0x02, 0x53, 0x79, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x06, 0x12, 0x04, 0xaf, 0x02, 0x04, 0x20, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x01, 0x12, 0x04, 0xaf, 0x02, 0x04, 0x68, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0c, 0x02, 0x01, 0x01, 0x12, 0x04, 0xaf, 0x02, 0x21, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0c, 0x02, 0x01, 0x03, 0x12, 0x04, 0xaf, 0x02, 0x3d, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0c, 0x02, 0x01, 0x08, 0x12, 0x04, 0xaf, 0x02, 0x3f, 0x67, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0c, - 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xaf, 0x02, 0x40, 0x66, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0c, 0x02, 0x02, 0x05, 0x12, 0x04, 0xb1, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x0c, 0x02, 0x02, 0x12, 0x04, 0xb1, 0x02, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, - 0x02, 0x01, 0x12, 0x04, 0xb1, 0x02, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x02, - 0x03, 0x12, 0x04, 0xb1, 0x02, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x02, 0x08, - 0x12, 0x04, 0xb1, 0x02, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0c, 0x02, 0x02, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xb1, 0x02, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, - 0x05, 0x12, 0x04, 0xb2, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x03, 0x12, - 0x04, 0xb2, 0x02, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x01, 0x12, 0x04, - 0xb2, 0x02, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x03, 0x12, 0x04, 0xb2, - 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x08, 0x12, 0x04, 0xb2, 0x02, - 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0c, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xb2, 0x02, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x04, 0x04, 0x12, 0x04, 0xb5, - 0x02, 0x02, 0x0a, 0x0a, 0x81, 0x01, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x04, 0x12, 0x04, 0xb5, 0x02, - 0x02, 0x44, 0x1a, 0x73, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x6f, - 0x72, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x04, 0x05, - 0x12, 0x04, 0xb5, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x04, 0x01, 0x12, - 0x04, 0xb5, 0x02, 0x12, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x04, 0x03, 0x12, 0x04, - 0xb5, 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x04, 0x08, 0x12, 0x04, 0xb5, - 0x02, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0c, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xb5, 0x02, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x05, 0x04, 0x12, 0x04, - 0xb6, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x05, 0x12, 0x04, 0xb6, 0x02, - 0x02, 0x61, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x05, 0x06, 0x12, 0x04, 0xb6, 0x02, 0x0b, - 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x05, 0x01, 0x12, 0x04, 0xb6, 0x02, 0x2a, 0x32, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x05, 0x03, 0x12, 0x04, 0xb6, 0x02, 0x35, 0x37, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x05, 0x08, 0x12, 0x04, 0xb6, 0x02, 0x38, 0x60, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x0c, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb6, 0x02, 0x39, 0x5f, - 0x0a, 0x3f, 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x06, 0xba, 0x02, 0x00, 0xbc, 0x02, 0x01, 0x1a, 0x31, - 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, - 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0d, 0x01, 0x12, 0x04, 0xba, 0x02, 0x08, 0x1c, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x06, 0x12, 0x04, 0xbb, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x0d, 0x02, 0x00, 0x12, 0x04, 0xbb, 0x02, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0d, 0x02, 0x00, 0x01, 0x12, 0x04, 0xbb, 0x02, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, - 0x02, 0x00, 0x03, 0x12, 0x04, 0xbb, 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, - 0x00, 0x08, 0x12, 0x04, 0xbb, 0x02, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0d, 0x02, 0x00, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbb, 0x02, 0x15, 0x3b, 0x0a, 0xa8, 0x01, 0x0a, 0x02, 0x04, - 0x0e, 0x12, 0x06, 0xc0, 0x02, 0x00, 0xc2, 0x02, 0x01, 0x1a, 0x99, 0x01, 0x20, 0x44, 0x65, 0x70, - 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, - 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x20, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x27, 0x73, 0x20, 0x60, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x60, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x60, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x60, 0x20, 0x61, 0x74, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x69, 0x6d, 0x65, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0e, 0x01, 0x12, 0x04, 0xc0, 0x02, - 0x08, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc1, 0x02, 0x02, - 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x00, 0x12, 0x04, 0xc1, 0x02, 0x02, 0x49, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc1, 0x02, 0x09, 0x1b, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc1, 0x02, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0e, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc1, 0x02, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x0e, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc1, 0x02, 0x21, 0x47, 0x0a, 0xda, - 0x01, 0x0a, 0x02, 0x04, 0x0f, 0x12, 0x06, 0xc6, 0x02, 0x00, 0xcf, 0x02, 0x01, 0x1a, 0xcb, 0x01, - 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, - 0x0a, 0x20, 0x48, 0x6f, 0x77, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x60, 0x3a, 0x20, 0x6c, 0x69, 0x73, - 0x74, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x60, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x69, 0x64, 0x73, 0x60, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x0f, 0x01, 0x12, 0x04, 0xc6, 0x02, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, - 0x05, 0x12, 0x04, 0xc7, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x00, 0x12, - 0x04, 0xc7, 0x02, 0x02, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x01, 0x12, 0x04, - 0xc7, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc7, - 0x02, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc7, 0x02, - 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xc7, 0x02, 0x13, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x04, 0x12, 0x04, 0xc8, - 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x01, 0x12, 0x04, 0xc8, 0x02, 0x02, - 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc8, 0x02, 0x0b, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc8, 0x02, 0x12, 0x1d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc8, 0x02, 0x20, 0x21, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x08, 0x12, 0x04, 0xc8, 0x02, 0x22, 0x4a, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x0f, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc8, 0x02, 0x23, 0x49, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, 0x04, 0x12, 0x04, 0xc9, 0x02, 0x02, 0x0a, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x02, 0x12, 0x04, 0xc9, 0x02, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0f, 0x02, 0x02, 0x05, 0x12, 0x04, 0xc9, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0f, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc9, 0x02, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, - 0x02, 0x02, 0x03, 0x12, 0x04, 0xc9, 0x02, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, - 0x02, 0x08, 0x12, 0x04, 0xc9, 0x02, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x02, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc9, 0x02, 0x21, 0x47, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0f, - 0x08, 0x00, 0x12, 0x06, 0xca, 0x02, 0x02, 0xce, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, - 0x08, 0x00, 0x01, 0x12, 0x04, 0xca, 0x02, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, - 0x03, 0x06, 0x12, 0x04, 0xcb, 0x02, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x03, - 0x12, 0x04, 0xcb, 0x02, 0x04, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x01, 0x12, - 0x04, 0xcb, 0x02, 0x1f, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x03, 0x12, 0x04, - 0xcb, 0x02, 0x2a, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x08, 0x12, 0x04, 0xcb, - 0x02, 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xcb, 0x02, 0x2d, 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x04, 0x06, 0x12, 0x04, - 0xcc, 0x02, 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x04, 0x12, 0x04, 0xcc, 0x02, - 0x04, 0x60, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x04, 0x01, 0x12, 0x04, 0xcc, 0x02, 0x22, - 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x04, 0x03, 0x12, 0x04, 0xcc, 0x02, 0x35, 0x36, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x04, 0x08, 0x12, 0x04, 0xcc, 0x02, 0x37, 0x5f, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcc, 0x02, 0x38, - 0x5e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x05, 0x06, 0x12, 0x04, 0xcd, 0x02, 0x04, 0x25, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x05, 0x12, 0x04, 0xcd, 0x02, 0x04, 0x64, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x05, 0x01, 0x12, 0x04, 0xcd, 0x02, 0x26, 0x36, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0f, 0x02, 0x05, 0x03, 0x12, 0x04, 0xcd, 0x02, 0x39, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0f, 0x02, 0x05, 0x08, 0x12, 0x04, 0xcd, 0x02, 0x3b, 0x63, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x0f, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcd, 0x02, 0x3c, 0x62, 0x0a, 0xbc, 0x01, - 0x0a, 0x02, 0x04, 0x10, 0x12, 0x06, 0xd3, 0x02, 0x00, 0xd5, 0x02, 0x01, 0x1a, 0xad, 0x01, 0x20, + 0x6c, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x01, 0x01, 0x12, 0x04, 0xf1, 0x01, 0x09, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, + 0x03, 0x12, 0x04, 0xf1, 0x01, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x08, + 0x12, 0x04, 0xf1, 0x01, 0x24, 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x01, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xf1, 0x01, 0x25, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, + 0x05, 0x12, 0x04, 0xf3, 0x01, 0x02, 0x08, 0x0a, 0x4f, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x02, 0x12, + 0x04, 0xf3, 0x01, 0x02, 0x4d, 0x1a, 0x41, 0x20, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, 0x28, + 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x29, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, + 0x01, 0x12, 0x04, 0xf3, 0x01, 0x09, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x03, + 0x12, 0x04, 0xf3, 0x01, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x08, 0x12, + 0x04, 0xf3, 0x01, 0x24, 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x02, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xf3, 0x01, 0x25, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x05, + 0x12, 0x04, 0xf5, 0x01, 0x02, 0x08, 0x0a, 0x56, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x03, 0x12, 0x04, + 0xf5, 0x01, 0x02, 0x4c, 0x1a, 0x48, 0x20, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x20, 0x28, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x2b, 0x20, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x01, 0x12, 0x04, 0xf5, 0x01, 0x09, 0x1e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x04, 0x02, 0x03, 0x03, 0x12, 0x04, 0xf5, 0x01, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x04, 0x02, 0x03, 0x08, 0x12, 0x04, 0xf5, 0x01, 0x23, 0x4b, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x04, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf5, 0x01, 0x24, 0x4a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x04, 0x02, 0x04, 0x05, 0x12, 0x04, 0xf7, 0x01, 0x02, 0x08, 0x0a, 0x3a, 0x0a, 0x04, + 0x04, 0x04, 0x02, 0x04, 0x12, 0x04, 0xf7, 0x01, 0x02, 0x48, 0x1a, 0x2c, 0x20, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x20, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, + 0x01, 0x12, 0x04, 0xf7, 0x01, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x03, + 0x12, 0x04, 0xf7, 0x01, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x08, 0x12, + 0x04, 0xf7, 0x01, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x04, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xf7, 0x01, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x05, + 0x12, 0x04, 0xf9, 0x01, 0x02, 0x08, 0x0a, 0x48, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x05, 0x12, 0x04, + 0xf9, 0x01, 0x02, 0x45, 0x1a, 0x3a, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x20, 0x28, 0x4c, 0x49, 0x56, 0x45, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x29, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x01, 0x12, 0x04, 0xf9, 0x01, 0x09, 0x17, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x03, 0x12, 0x04, 0xf9, 0x01, 0x1a, 0x1b, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x08, 0x12, 0x04, 0xf9, 0x01, 0x1c, 0x44, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x04, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf9, 0x01, 0x1d, 0x43, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x05, 0x12, 0x04, 0xfb, 0x01, 0x02, 0x08, 0x0a, 0x43, + 0x0a, 0x04, 0x04, 0x04, 0x02, 0x06, 0x12, 0x04, 0xfb, 0x01, 0x02, 0x49, 0x1a, 0x35, 0x20, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x66, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x6c, + 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x01, 0x12, 0x04, 0xfb, 0x01, + 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x03, 0x12, 0x04, 0xfb, 0x01, 0x1e, + 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x08, 0x12, 0x04, 0xfb, 0x01, 0x20, 0x48, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfb, 0x01, + 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x07, 0x05, 0x12, 0x04, 0xfd, 0x01, 0x02, + 0x08, 0x0a, 0x45, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x07, 0x12, 0x04, 0xfd, 0x01, 0x02, 0x47, 0x1a, + 0x37, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x66, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x07, + 0x01, 0x12, 0x04, 0xfd, 0x01, 0x09, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x07, 0x03, + 0x12, 0x04, 0xfd, 0x01, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x07, 0x08, 0x12, + 0x04, 0xfd, 0x01, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x07, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xfd, 0x01, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x05, + 0x12, 0x04, 0xff, 0x01, 0x02, 0x08, 0x0a, 0x3b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x08, 0x12, 0x04, + 0xff, 0x01, 0x02, 0x49, 0x1a, 0x2d, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x77, 0x65, 0x72, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, + 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x01, 0x12, 0x04, 0xff, 0x01, + 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x03, 0x12, 0x04, 0xff, 0x01, 0x1e, + 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x08, 0x12, 0x04, 0xff, 0x01, 0x20, 0x48, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xff, 0x01, + 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x05, 0x12, 0x04, 0x81, 0x02, 0x02, + 0x08, 0x0a, 0x42, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x09, 0x12, 0x04, 0x81, 0x02, 0x02, 0x47, 0x1a, + 0x34, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x65, + 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x01, 0x12, 0x04, + 0x81, 0x02, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x03, 0x12, 0x04, 0x81, + 0x02, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x08, 0x12, 0x04, 0x81, 0x02, + 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x81, 0x02, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0a, 0x05, 0x12, 0x04, 0x83, + 0x02, 0x02, 0x08, 0x0a, 0x42, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0a, 0x12, 0x04, 0x83, 0x02, 0x02, + 0x47, 0x1a, 0x34, 0x20, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0a, 0x01, + 0x12, 0x04, 0x83, 0x02, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0a, 0x03, 0x12, + 0x04, 0x83, 0x02, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0a, 0x08, 0x12, 0x04, + 0x83, 0x02, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0x83, 0x02, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x05, 0x12, + 0x04, 0x85, 0x02, 0x02, 0x08, 0x0a, 0x4e, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0b, 0x12, 0x04, 0x85, + 0x02, 0x02, 0x58, 0x1a, 0x40, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, + 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x01, 0x12, 0x04, + 0x85, 0x02, 0x09, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x03, 0x12, 0x04, 0x85, + 0x02, 0x2c, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x08, 0x12, 0x04, 0x85, 0x02, + 0x2f, 0x57, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x0b, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x85, 0x02, 0x30, 0x56, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x05, 0x12, 0x06, 0x88, 0x02, 0x00, 0x8e, + 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x04, 0x88, 0x02, 0x08, 0x1a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x05, 0x12, 0x04, 0x89, 0x02, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x04, 0x89, 0x02, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x04, 0x89, 0x02, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x05, 0x02, 0x00, 0x03, 0x12, 0x04, 0x89, 0x02, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, + 0x02, 0x00, 0x08, 0x12, 0x04, 0x89, 0x02, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x89, 0x02, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x05, 0x02, 0x01, 0x05, 0x12, 0x04, 0x8a, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, + 0x02, 0x01, 0x12, 0x04, 0x8a, 0x02, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, + 0x01, 0x12, 0x04, 0x8a, 0x02, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x03, + 0x12, 0x04, 0x8a, 0x02, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x08, 0x12, + 0x04, 0x8a, 0x02, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, 0x02, 0x01, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0x8a, 0x02, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x05, + 0x12, 0x04, 0x8b, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x02, 0x12, 0x04, + 0x8b, 0x02, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, 0x04, 0x8b, + 0x02, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x03, 0x12, 0x04, 0x8b, 0x02, + 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x08, 0x12, 0x04, 0x8b, 0x02, 0x1f, + 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8b, + 0x02, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x05, 0x12, 0x04, 0x8c, 0x02, + 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x03, 0x12, 0x04, 0x8c, 0x02, 0x02, 0x50, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x01, 0x12, 0x04, 0x8c, 0x02, 0x09, 0x22, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x03, 0x12, 0x04, 0x8c, 0x02, 0x25, 0x26, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x08, 0x12, 0x04, 0x8c, 0x02, 0x27, 0x4f, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x05, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8c, 0x02, 0x28, 0x4e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x04, 0x05, 0x12, 0x04, 0x8d, 0x02, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x05, 0x02, 0x04, 0x12, 0x04, 0x8d, 0x02, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x05, 0x02, 0x04, 0x01, 0x12, 0x04, 0x8d, 0x02, 0x09, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x05, 0x02, 0x04, 0x03, 0x12, 0x04, 0x8d, 0x02, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, + 0x02, 0x04, 0x08, 0x12, 0x04, 0x8d, 0x02, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, 0x02, + 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8d, 0x02, 0x23, 0x49, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x06, 0x12, 0x06, 0x90, 0x02, 0x00, 0x95, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x06, 0x01, + 0x12, 0x04, 0x90, 0x02, 0x08, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x04, 0x12, + 0x04, 0x91, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x04, 0x91, + 0x02, 0x02, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, 0x04, 0x91, 0x02, + 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x04, 0x91, 0x02, 0x12, + 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x04, 0x91, 0x02, 0x27, 0x28, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x06, 0x12, 0x04, 0x92, 0x02, 0x02, 0x18, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x04, 0x92, 0x02, 0x02, 0x20, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x01, 0x01, 0x12, 0x04, 0x92, 0x02, 0x19, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x01, 0x03, 0x12, 0x04, 0x92, 0x02, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x02, 0x06, 0x12, 0x04, 0x93, 0x02, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, + 0x02, 0x02, 0x12, 0x04, 0x93, 0x02, 0x02, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, + 0x01, 0x12, 0x04, 0x93, 0x02, 0x19, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x03, + 0x12, 0x04, 0x93, 0x02, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x06, 0x12, + 0x04, 0x94, 0x02, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x03, 0x12, 0x04, 0x94, + 0x02, 0x02, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x01, 0x12, 0x04, 0x94, 0x02, + 0x19, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x03, 0x12, 0x04, 0x94, 0x02, 0x24, + 0x25, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x06, 0x97, 0x02, 0x00, 0x9e, 0x02, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x04, 0x97, 0x02, 0x08, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x00, 0x06, 0x12, 0x04, 0x98, 0x02, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x07, 0x02, 0x00, 0x12, 0x04, 0x98, 0x02, 0x02, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, + 0x00, 0x01, 0x12, 0x04, 0x98, 0x02, 0x1c, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, + 0x03, 0x12, 0x04, 0x98, 0x02, 0x28, 0x29, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x07, 0x08, 0x00, 0x12, + 0x06, 0x99, 0x02, 0x02, 0x9d, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x08, 0x00, 0x01, + 0x12, 0x04, 0x99, 0x02, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x06, 0x12, + 0x04, 0x9a, 0x02, 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, 0x04, 0x9a, + 0x02, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9a, 0x02, + 0x22, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, 0x04, 0x9a, 0x02, 0x28, + 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x06, 0x12, 0x04, 0x9b, 0x02, 0x04, 0x28, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x02, 0x12, 0x04, 0x9b, 0x02, 0x04, 0x38, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9b, 0x02, 0x29, 0x33, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x07, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9b, 0x02, 0x36, 0x37, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x03, 0x06, 0x12, 0x04, 0x9c, 0x02, 0x04, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x07, 0x02, 0x03, 0x12, 0x04, 0x9c, 0x02, 0x04, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, + 0x03, 0x01, 0x12, 0x04, 0x9c, 0x02, 0x28, 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, + 0x03, 0x12, 0x04, 0x9c, 0x02, 0x3b, 0x3c, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x06, 0xa0, + 0x02, 0x00, 0xa8, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, 0x04, 0xa0, 0x02, + 0x05, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa1, 0x02, 0x02, + 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x00, 0x12, 0x04, 0xa1, 0x02, 0x02, 0x25, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x02, 0x12, 0x04, 0xa1, 0x02, 0x23, 0x24, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa2, 0x02, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, + 0x04, 0x05, 0x01, 0x02, 0x01, 0x12, 0x04, 0xa2, 0x02, 0x02, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x01, 0x02, 0x12, 0x04, 0xa2, 0x02, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, + 0x02, 0x02, 0x01, 0x12, 0x04, 0xa3, 0x02, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, + 0x02, 0x12, 0x04, 0xa3, 0x02, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x02, + 0x12, 0x04, 0xa3, 0x02, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x01, 0x12, + 0x04, 0xa4, 0x02, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x03, 0x12, 0x04, 0xa4, + 0x02, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x02, 0x12, 0x04, 0xa4, 0x02, + 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa5, 0x02, 0x02, + 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x04, 0x12, 0x04, 0xa5, 0x02, 0x02, 0x20, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x04, 0x02, 0x12, 0x04, 0xa5, 0x02, 0x1e, 0x1f, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x01, 0x02, 0x05, 0x01, 0x12, 0x04, 0xa6, 0x02, 0x02, 0x1d, 0x0a, 0x0c, 0x0a, + 0x04, 0x05, 0x01, 0x02, 0x05, 0x12, 0x04, 0xa6, 0x02, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x05, 0x02, 0x12, 0x04, 0xa6, 0x02, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, + 0x02, 0x06, 0x01, 0x12, 0x04, 0xa7, 0x02, 0x02, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, + 0x06, 0x12, 0x04, 0xa7, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x06, 0x02, + 0x12, 0x04, 0xa7, 0x02, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x06, 0xaa, 0x02, + 0x00, 0xb3, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x04, 0xaa, 0x02, 0x08, + 0x1f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x08, 0x08, 0x00, 0x12, 0x06, 0xab, 0x02, 0x02, 0xb2, 0x02, + 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x08, 0x00, 0x01, 0x12, 0x04, 0xab, 0x02, 0x08, 0x0f, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x06, 0x12, 0x04, 0xac, 0x02, 0x04, 0x22, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x04, 0xac, 0x02, 0x04, 0x2f, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x04, 0xac, 0x02, 0x23, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x00, 0x03, 0x12, 0x04, 0xac, 0x02, 0x2d, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x01, 0x06, 0x12, 0x04, 0xad, 0x02, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, + 0x02, 0x01, 0x12, 0x04, 0xad, 0x02, 0x04, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xad, 0x02, 0x20, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, + 0x12, 0x04, 0xad, 0x02, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x06, 0x12, + 0x04, 0xae, 0x02, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x02, 0x12, 0x04, 0xae, + 0x02, 0x04, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x01, 0x12, 0x04, 0xae, 0x02, + 0x24, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x03, 0x12, 0x04, 0xae, 0x02, 0x2f, + 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x06, 0x12, 0x04, 0xaf, 0x02, 0x04, 0x21, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x03, 0x12, 0x04, 0xaf, 0x02, 0x04, 0x2d, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x01, 0x12, 0x04, 0xaf, 0x02, 0x22, 0x28, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x03, 0x03, 0x12, 0x04, 0xaf, 0x02, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x04, 0x06, 0x12, 0x04, 0xb0, 0x02, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x08, 0x02, 0x04, 0x12, 0x04, 0xb0, 0x02, 0x04, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x04, 0x01, 0x12, 0x04, 0xb0, 0x02, 0x24, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x04, + 0x03, 0x12, 0x04, 0xb0, 0x02, 0x2f, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x06, + 0x12, 0x04, 0xb1, 0x02, 0x04, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x05, 0x12, 0x04, + 0xb1, 0x02, 0x04, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x01, 0x12, 0x04, 0xb1, + 0x02, 0x21, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x03, 0x12, 0x04, 0xb1, 0x02, + 0x29, 0x2a, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x09, 0x12, 0x04, 0xb5, 0x02, 0x00, 0x29, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x04, 0xb5, 0x02, 0x08, 0x26, 0x0a, 0x0a, 0x0a, 0x02, 0x04, + 0x0a, 0x12, 0x04, 0xb6, 0x02, 0x00, 0x26, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0a, 0x01, 0x12, 0x04, + 0xb6, 0x02, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0b, 0x12, 0x06, 0xb7, 0x02, 0x00, 0xba, + 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0b, 0x01, 0x12, 0x04, 0xb7, 0x02, 0x08, 0x27, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x04, 0x12, 0x04, 0xb8, 0x02, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x00, 0x12, 0x04, 0xb8, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0b, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb8, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb8, 0x02, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xb8, 0x02, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, + 0x01, 0x04, 0x12, 0x04, 0xb9, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x01, + 0x12, 0x04, 0xb9, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xb9, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x01, 0x12, 0x04, + 0xb9, 0x02, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb9, + 0x02, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0c, 0x12, 0x06, 0xbb, 0x02, 0x00, 0xc0, 0x02, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0c, 0x01, 0x12, 0x04, 0xbb, 0x02, 0x08, 0x25, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x05, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x0c, 0x02, 0x00, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xbc, 0x02, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xbc, 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, + 0x00, 0x08, 0x12, 0x04, 0xbc, 0x02, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0c, 0x02, 0x00, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbc, 0x02, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, + 0x02, 0x01, 0x04, 0x12, 0x04, 0xbd, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, + 0x01, 0x12, 0x04, 0xbd, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x05, + 0x12, 0x04, 0xbd, 0x02, 0x0b, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xbd, 0x02, 0x11, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x03, 0x12, 0x04, + 0xbd, 0x02, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x02, 0x04, 0x12, 0x04, 0xbe, + 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x02, 0x12, 0x04, 0xbe, 0x02, 0x02, + 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x02, 0x05, 0x12, 0x04, 0xbe, 0x02, 0x0b, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x02, 0x01, 0x12, 0x04, 0xbe, 0x02, 0x12, 0x18, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x02, 0x03, 0x12, 0x04, 0xbe, 0x02, 0x1b, 0x1c, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x03, 0x04, 0x12, 0x04, 0xbf, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x0c, 0x02, 0x03, 0x12, 0x04, 0xbf, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0c, 0x02, 0x03, 0x05, 0x12, 0x04, 0xbf, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, + 0x02, 0x03, 0x01, 0x12, 0x04, 0xbf, 0x02, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, + 0x03, 0x03, 0x12, 0x04, 0xbf, 0x02, 0x1b, 0x1c, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x04, + 0xc1, 0x02, 0x00, 0x2a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0d, 0x01, 0x12, 0x04, 0xc1, 0x02, 0x08, + 0x27, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0e, 0x12, 0x06, 0xc2, 0x02, 0x00, 0xc7, 0x02, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x0e, 0x01, 0x12, 0x04, 0xc2, 0x02, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc3, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x0e, 0x02, 0x00, 0x12, 0x04, 0xc3, 0x02, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, + 0x00, 0x01, 0x12, 0x04, 0xc3, 0x02, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, + 0x03, 0x12, 0x04, 0xc3, 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x08, + 0x12, 0x04, 0xc3, 0x02, 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x00, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xc3, 0x02, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, + 0x04, 0x12, 0x04, 0xc4, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x01, 0x12, + 0x04, 0xc4, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x05, 0x12, 0x04, + 0xc4, 0x02, 0x0b, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc4, + 0x02, 0x11, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc4, 0x02, + 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x04, 0x12, 0x04, 0xc5, 0x02, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x02, 0x12, 0x04, 0xc5, 0x02, 0x02, 0x1d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x05, 0x12, 0x04, 0xc5, 0x02, 0x0b, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc5, 0x02, 0x12, 0x18, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0e, 0x02, 0x02, 0x03, 0x12, 0x04, 0xc5, 0x02, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0e, 0x02, 0x03, 0x04, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x0e, 0x02, 0x03, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, + 0x03, 0x05, 0x12, 0x04, 0xc6, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x03, + 0x01, 0x12, 0x04, 0xc6, 0x02, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x03, 0x03, + 0x12, 0x04, 0xc6, 0x02, 0x1b, 0x1c, 0x0a, 0x3f, 0x0a, 0x02, 0x04, 0x0f, 0x12, 0x06, 0xca, 0x02, + 0x00, 0xd5, 0x02, 0x01, 0x1a, 0x31, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0f, 0x01, 0x12, 0x04, + 0xca, 0x02, 0x08, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0f, 0x08, 0x00, 0x12, 0x06, 0xcb, 0x02, + 0x02, 0xce, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x08, 0x00, 0x01, 0x12, 0x04, 0xcb, + 0x02, 0x08, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x06, 0x12, 0x04, 0xcc, 0x02, + 0x04, 0x29, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x00, 0x12, 0x04, 0xcc, 0x02, 0x04, 0x7b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x01, 0x12, 0x04, 0xcc, 0x02, 0x2a, 0x4d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xcc, 0x02, 0x50, 0x51, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x08, 0x12, 0x04, 0xcc, 0x02, 0x52, 0x7a, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x0f, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcc, 0x02, 0x53, 0x79, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x06, 0x12, 0x04, 0xcd, 0x02, 0x04, 0x20, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x01, 0x12, 0x04, 0xcd, 0x02, 0x04, 0x68, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcd, 0x02, 0x21, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xcd, 0x02, 0x3d, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, + 0x02, 0x01, 0x08, 0x12, 0x04, 0xcd, 0x02, 0x3f, 0x67, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, + 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcd, 0x02, 0x40, 0x66, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0f, 0x02, 0x02, 0x05, 0x12, 0x04, 0xcf, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, + 0x02, 0x02, 0x12, 0x04, 0xcf, 0x02, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, + 0x01, 0x12, 0x04, 0xcf, 0x02, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, 0x03, + 0x12, 0x04, 0xcf, 0x02, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, 0x08, 0x12, + 0x04, 0xcf, 0x02, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x02, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xcf, 0x02, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x05, + 0x12, 0x04, 0xd0, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x03, 0x12, 0x04, + 0xd0, 0x02, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x01, 0x12, 0x04, 0xd0, + 0x02, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x03, 0x12, 0x04, 0xd0, 0x02, + 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x08, 0x12, 0x04, 0xd0, 0x02, 0x14, + 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd0, + 0x02, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x04, 0x04, 0x12, 0x04, 0xd3, 0x02, + 0x02, 0x0a, 0x0a, 0x81, 0x01, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x04, 0x12, 0x04, 0xd3, 0x02, 0x02, + 0x44, 0x1a, 0x73, 0x20, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x72, + 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x04, 0x05, 0x12, + 0x04, 0xd3, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x04, 0x01, 0x12, 0x04, + 0xd3, 0x02, 0x12, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x04, 0x03, 0x12, 0x04, 0xd3, + 0x02, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x04, 0x08, 0x12, 0x04, 0xd3, 0x02, + 0x1b, 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xd3, 0x02, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x05, 0x04, 0x12, 0x04, 0xd4, + 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x05, 0x12, 0x04, 0xd4, 0x02, 0x02, + 0x61, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x05, 0x06, 0x12, 0x04, 0xd4, 0x02, 0x0b, 0x29, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x05, 0x01, 0x12, 0x04, 0xd4, 0x02, 0x2a, 0x32, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x05, 0x03, 0x12, 0x04, 0xd4, 0x02, 0x35, 0x37, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x05, 0x08, 0x12, 0x04, 0xd4, 0x02, 0x38, 0x60, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x0f, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd4, 0x02, 0x39, 0x5f, 0x0a, + 0x3f, 0x0a, 0x02, 0x04, 0x10, 0x12, 0x06, 0xd8, 0x02, 0x00, 0xda, 0x02, 0x01, 0x1a, 0x31, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x60, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x60, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x3a, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x49, 0x44, 0x20, 0x69, 0x73, 0x20, 0x60, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x60, 0x20, 0x30, - 0x2c, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20, 0x31, 0x2c, 0x20, 0x65, - 0x74, 0x63, 0x2e, 0x2c, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, - 0x04, 0x10, 0x01, 0x12, 0x04, 0xd3, 0x02, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, - 0x00, 0x04, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x00, - 0x12, 0x04, 0xd4, 0x02, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x05, 0x12, - 0x04, 0xd4, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x01, 0x12, 0x04, - 0xd4, 0x02, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd4, - 0x02, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd4, 0x02, - 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x10, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xd4, 0x02, 0x20, 0x46, 0x0a, 0xbb, 0x01, 0x0a, 0x02, 0x04, 0x11, 0x12, 0x06, 0xd9, 0x02, 0x00, - 0xdb, 0x02, 0x01, 0x1a, 0xac, 0x01, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x72, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x6b, 0x65, - 0x79, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x6e, 0x6f, 0x74, - 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x29, - 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x11, 0x01, 0x12, 0x04, 0xd9, 0x02, 0x08, 0x25, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x04, 0x12, 0x04, 0xda, 0x02, 0x02, 0x0a, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x11, 0x02, 0x00, 0x12, 0x04, 0xda, 0x02, 0x02, 0x50, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x11, 0x02, 0x00, 0x05, 0x12, 0x04, 0xda, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x11, 0x02, 0x00, 0x01, 0x12, 0x04, 0xda, 0x02, 0x12, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, - 0x02, 0x00, 0x03, 0x12, 0x04, 0xda, 0x02, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, - 0x00, 0x08, 0x12, 0x04, 0xda, 0x02, 0x27, 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x11, 0x02, 0x00, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xda, 0x02, 0x28, 0x4e, 0x0a, 0x3f, 0x0a, 0x02, 0x04, 0x12, - 0x12, 0x06, 0xde, 0x02, 0x00, 0xe0, 0x02, 0x01, 0x1a, 0x31, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, - 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, - 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x12, 0x01, 0x12, 0x04, 0xde, 0x02, 0x08, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, - 0x04, 0x12, 0x04, 0xdf, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x00, 0x12, - 0x04, 0xdf, 0x02, 0x02, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x05, 0x12, 0x04, - 0xdf, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x01, 0x12, 0x04, 0xdf, - 0x02, 0x12, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x03, 0x12, 0x04, 0xdf, 0x02, - 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x08, 0x12, 0x04, 0xdf, 0x02, 0x27, - 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdf, - 0x02, 0x28, 0x4e, 0x0a, 0x62, 0x0a, 0x02, 0x04, 0x13, 0x12, 0x06, 0xe3, 0x02, 0x00, 0xe5, 0x02, - 0x01, 0x1a, 0x54, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, - 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x13, 0x01, 0x12, 0x04, - 0xe3, 0x02, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x05, 0x12, 0x04, 0xe4, - 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x00, 0x12, 0x04, 0xe4, 0x02, 0x02, - 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe4, 0x02, 0x09, 0x12, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe4, 0x02, 0x15, 0x16, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x08, 0x12, 0x04, 0xe4, 0x02, 0x17, 0x3f, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x13, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe4, 0x02, 0x18, 0x3e, - 0x0a, 0x61, 0x0a, 0x02, 0x04, 0x14, 0x12, 0x06, 0xe8, 0x02, 0x00, 0xea, 0x02, 0x01, 0x1a, 0x53, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x10, 0x01, 0x12, 0x04, 0xd8, 0x02, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x10, 0x02, 0x00, 0x06, 0x12, 0x04, 0xd9, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x10, 0x02, 0x00, 0x12, 0x04, 0xd9, 0x02, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xd9, 0x02, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xd9, 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xd9, 0x02, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x10, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd9, 0x02, 0x15, 0x3b, 0x0a, 0xa8, 0x01, 0x0a, 0x02, 0x04, 0x11, + 0x12, 0x06, 0xde, 0x02, 0x00, 0xe0, 0x02, 0x01, 0x1a, 0x99, 0x01, 0x20, 0x44, 0x65, 0x70, 0x72, + 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, + 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x20, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x27, 0x73, 0x20, 0x60, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x60, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x60, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x60, 0x20, 0x61, 0x74, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x69, + 0x6d, 0x65, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x11, 0x01, 0x12, 0x04, 0xde, 0x02, 0x08, + 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x05, 0x12, 0x04, 0xdf, 0x02, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x00, 0x12, 0x04, 0xdf, 0x02, 0x02, 0x49, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x01, 0x12, 0x04, 0xdf, 0x02, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x11, 0x02, 0x00, 0x03, 0x12, 0x04, 0xdf, 0x02, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x11, 0x02, 0x00, 0x08, 0x12, 0x04, 0xdf, 0x02, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x11, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdf, 0x02, 0x21, 0x47, 0x0a, 0xda, 0x01, + 0x0a, 0x02, 0x04, 0x12, 0x12, 0x06, 0xe4, 0x02, 0x00, 0xed, 0x02, 0x01, 0x1a, 0xcb, 0x01, 0x20, + 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, + 0x20, 0x48, 0x6f, 0x77, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x64, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x60, 0x3a, 0x20, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x73, 0x60, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x12, + 0x01, 0x12, 0x04, 0xe4, 0x02, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x05, + 0x12, 0x04, 0xe5, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x00, 0x12, 0x04, + 0xe5, 0x02, 0x02, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe5, + 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe5, 0x02, + 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x08, 0x12, 0x04, 0xe5, 0x02, 0x12, + 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe5, + 0x02, 0x13, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x04, 0x12, 0x04, 0xe6, 0x02, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x01, 0x12, 0x04, 0xe6, 0x02, 0x02, 0x4b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x05, 0x12, 0x04, 0xe6, 0x02, 0x0b, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe6, 0x02, 0x12, 0x1d, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe6, 0x02, 0x20, 0x21, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x12, 0x02, 0x01, 0x08, 0x12, 0x04, 0xe6, 0x02, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x12, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe6, 0x02, 0x23, 0x49, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x12, 0x02, 0x02, 0x04, 0x12, 0x04, 0xe7, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x12, 0x02, 0x02, 0x12, 0x04, 0xe7, 0x02, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x12, 0x02, 0x02, 0x05, 0x12, 0x04, 0xe7, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, + 0x02, 0x02, 0x01, 0x12, 0x04, 0xe7, 0x02, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, + 0x02, 0x03, 0x12, 0x04, 0xe7, 0x02, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x02, + 0x08, 0x12, 0x04, 0xe7, 0x02, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, 0x02, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe7, 0x02, 0x21, 0x47, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x12, 0x08, + 0x00, 0x12, 0x06, 0xe8, 0x02, 0x02, 0xec, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x08, + 0x00, 0x01, 0x12, 0x04, 0xe8, 0x02, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, + 0x06, 0x12, 0x04, 0xe9, 0x02, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x03, 0x12, + 0x04, 0xe9, 0x02, 0x04, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, 0x01, 0x12, 0x04, + 0xe9, 0x02, 0x1f, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, 0x03, 0x12, 0x04, 0xe9, + 0x02, 0x2a, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, 0x08, 0x12, 0x04, 0xe9, 0x02, + 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xe9, 0x02, 0x2d, 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x04, 0x06, 0x12, 0x04, 0xea, + 0x02, 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x04, 0x12, 0x04, 0xea, 0x02, 0x04, + 0x60, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x04, 0x01, 0x12, 0x04, 0xea, 0x02, 0x22, 0x32, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x04, 0x03, 0x12, 0x04, 0xea, 0x02, 0x35, 0x36, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x04, 0x08, 0x12, 0x04, 0xea, 0x02, 0x37, 0x5f, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x12, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xea, 0x02, 0x38, 0x5e, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x05, 0x06, 0x12, 0x04, 0xeb, 0x02, 0x04, 0x25, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x05, 0x12, 0x04, 0xeb, 0x02, 0x04, 0x64, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x12, 0x02, 0x05, 0x01, 0x12, 0x04, 0xeb, 0x02, 0x26, 0x36, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x12, 0x02, 0x05, 0x03, 0x12, 0x04, 0xeb, 0x02, 0x39, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x12, 0x02, 0x05, 0x08, 0x12, 0x04, 0xeb, 0x02, 0x3b, 0x63, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, + 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xeb, 0x02, 0x3c, 0x62, 0x0a, 0xbc, 0x01, 0x0a, + 0x02, 0x04, 0x13, 0x12, 0x06, 0xf1, 0x02, 0x00, 0xf3, 0x02, 0x01, 0x1a, 0xad, 0x01, 0x20, 0x44, + 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x60, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x60, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x3a, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x49, 0x44, 0x20, 0x69, 0x73, 0x20, 0x60, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x60, 0x20, 0x30, 0x2c, + 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20, 0x31, 0x2c, 0x20, 0x65, 0x74, + 0x63, 0x2e, 0x2c, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x13, 0x01, 0x12, 0x04, 0xf1, 0x02, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, + 0x04, 0x12, 0x04, 0xf2, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x00, 0x12, + 0x04, 0xf2, 0x02, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x05, 0x12, 0x04, + 0xf2, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf2, + 0x02, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf2, 0x02, + 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x08, 0x12, 0x04, 0xf2, 0x02, 0x1f, + 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x13, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf2, + 0x02, 0x20, 0x46, 0x0a, 0xbb, 0x01, 0x0a, 0x02, 0x04, 0x14, 0x12, 0x06, 0xf7, 0x02, 0x00, 0xf9, + 0x02, 0x01, 0x1a, 0xac, 0x01, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, + 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x77, 0x68, 0x69, + 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x6b, 0x65, 0x79, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x29, 0x2e, + 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x14, 0x01, 0x12, 0x04, 0xf7, 0x02, 0x08, 0x25, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x04, 0x12, 0x04, 0xf8, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x14, 0x02, 0x00, 0x12, 0x04, 0xf8, 0x02, 0x02, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x14, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf8, 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xf8, 0x02, 0x12, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xf8, 0x02, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xf8, 0x02, 0x27, 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf8, 0x02, 0x28, 0x4e, 0x0a, 0x3f, 0x0a, 0x02, 0x04, 0x15, 0x12, + 0x06, 0xfc, 0x02, 0x00, 0xfe, 0x02, 0x01, 0x1a, 0x31, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x15, + 0x01, 0x12, 0x04, 0xfc, 0x02, 0x08, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x04, + 0x12, 0x04, 0xfd, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x00, 0x12, 0x04, + 0xfd, 0x02, 0x02, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x05, 0x12, 0x04, 0xfd, + 0x02, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x01, 0x12, 0x04, 0xfd, 0x02, + 0x12, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x03, 0x12, 0x04, 0xfd, 0x02, 0x25, + 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x08, 0x12, 0x04, 0xfd, 0x02, 0x27, 0x4f, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x15, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfd, 0x02, + 0x28, 0x4e, 0x0a, 0x62, 0x0a, 0x02, 0x04, 0x16, 0x12, 0x06, 0x81, 0x03, 0x00, 0x83, 0x03, 0x01, + 0x1a, 0x54, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x16, 0x01, 0x12, 0x04, 0x81, + 0x03, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x00, 0x05, 0x12, 0x04, 0x82, 0x03, + 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x00, 0x12, 0x04, 0x82, 0x03, 0x02, 0x40, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x00, 0x01, 0x12, 0x04, 0x82, 0x03, 0x09, 0x12, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x00, 0x03, 0x12, 0x04, 0x82, 0x03, 0x15, 0x16, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x16, 0x02, 0x00, 0x08, 0x12, 0x04, 0x82, 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x16, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x82, 0x03, 0x18, 0x3e, 0x0a, + 0x61, 0x0a, 0x02, 0x04, 0x17, 0x12, 0x06, 0x86, 0x03, 0x00, 0x88, 0x03, 0x01, 0x1a, 0x53, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x17, 0x01, 0x12, 0x04, 0x86, 0x03, 0x08, 0x19, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x06, 0x12, 0x04, 0x87, 0x03, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x17, 0x02, 0x00, 0x12, 0x04, 0x87, 0x03, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x17, 0x02, 0x00, 0x01, 0x12, 0x04, 0x87, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x17, 0x02, 0x00, 0x03, 0x12, 0x04, 0x87, 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, + 0x02, 0x00, 0x08, 0x12, 0x04, 0x87, 0x03, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x17, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x87, 0x03, 0x15, 0x3b, 0x0a, 0x59, 0x0a, 0x02, 0x04, + 0x18, 0x12, 0x06, 0x8b, 0x03, 0x00, 0xa7, 0x03, 0x01, 0x1a, 0x4b, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, + 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x18, 0x01, 0x12, 0x04, 0x8b, + 0x03, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x05, 0x12, 0x04, 0x8f, 0x03, + 0x02, 0x08, 0x0a, 0xee, 0x01, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x00, 0x12, 0x04, 0x8f, 0x03, 0x02, + 0x40, 0x1a, 0xdf, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x20, + 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x35, 0x30, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, + 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x0a, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8f, 0x03, + 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x03, 0x12, 0x04, 0x8f, 0x03, 0x15, + 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x08, 0x12, 0x04, 0x8f, 0x03, 0x17, 0x3f, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x18, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8f, 0x03, + 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x05, 0x12, 0x04, 0x95, 0x03, 0x02, + 0x08, 0x0a, 0xf8, 0x01, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x01, 0x12, 0x04, 0x95, 0x03, 0x02, 0x41, + 0x1a, 0xe9, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x57, + 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x60, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x18, 0x02, 0x01, 0x01, 0x12, 0x04, 0x95, 0x03, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x18, 0x02, 0x01, 0x03, 0x12, 0x04, 0x95, 0x03, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, + 0x02, 0x01, 0x08, 0x12, 0x04, 0x95, 0x03, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x18, 0x02, + 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x95, 0x03, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x18, 0x02, 0x02, 0x05, 0x12, 0x04, 0x9c, 0x03, 0x02, 0x08, 0x0a, 0x94, 0x05, 0x0a, 0x04, 0x04, + 0x18, 0x02, 0x02, 0x12, 0x04, 0x9c, 0x03, 0x02, 0x3d, 0x1a, 0x85, 0x05, 0x20, 0x41, 0x20, 0x5b, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, + 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, + 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x74, 0x61, 0x67, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, + 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x0a, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x60, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x72, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x20, 0x67, 0x75, 0x69, + 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, + 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x64, 0x65, 0x66, 0x2e, 0x6d, + 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x6d, 0x6f, + 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, + 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, + 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x28, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2d, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x23, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x29, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9c, 0x03, 0x09, 0x0f, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9c, 0x03, 0x12, 0x13, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x02, 0x08, 0x12, 0x04, 0x9c, 0x03, 0x14, 0x3c, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x18, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9c, 0x03, 0x15, 0x3b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x03, 0x05, 0x12, 0x04, 0x9f, 0x03, 0x02, 0x08, 0x0a, + 0x5b, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x03, 0x12, 0x04, 0x9f, 0x03, 0x02, 0x46, 0x1a, 0x4d, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x73, 0x20, 0x6f, 0x6e, + 0x6c, 0x79, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x79, + 0x6f, 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x18, 0x02, 0x03, 0x01, 0x12, 0x04, 0x9f, 0x03, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x18, 0x02, 0x03, 0x03, 0x12, 0x04, 0x9f, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, + 0x02, 0x03, 0x08, 0x12, 0x04, 0x9f, 0x03, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x18, 0x02, + 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9f, 0x03, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x18, 0x02, 0x04, 0x05, 0x12, 0x04, 0xa6, 0x03, 0x02, 0x08, 0x0a, 0xb1, 0x03, 0x0a, 0x04, 0x04, + 0x18, 0x02, 0x04, 0x12, 0x04, 0xa6, 0x03, 0x02, 0x3f, 0x1a, 0xa2, 0x03, 0x20, 0x48, 0x6f, 0x77, + 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, + 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x22, 0x46, 0x49, 0x45, + 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x5d, 0x2c, 0x2e, + 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x28, 0x6e, 0x65, 0x77, 0x65, + 0x73, 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, + 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x5d, 0x28, 0x68, 0x74, 0x74, + 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x70, 0x2e, + 0x64, 0x65, 0x76, 0x2f, 0x31, 0x33, 0x32, 0x23, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x29, 0x0a, 0x20, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x22, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x2c, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x18, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa6, 0x03, 0x09, 0x11, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x18, 0x02, 0x04, 0x03, 0x12, 0x04, 0xa6, 0x03, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x18, 0x02, 0x04, 0x08, 0x12, 0x04, 0xa6, 0x03, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x18, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa6, 0x03, 0x17, 0x3d, 0x0a, 0x4e, 0x0a, + 0x02, 0x04, 0x19, 0x12, 0x06, 0xaa, 0x03, 0x00, 0xad, 0x03, 0x01, 0x1a, 0x40, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, + 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x19, 0x01, 0x12, 0x04, 0xaa, 0x03, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, + 0x02, 0x00, 0x04, 0x12, 0x04, 0xab, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, + 0x00, 0x12, 0x04, 0xab, 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x06, + 0x12, 0x04, 0xab, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xab, 0x03, 0x12, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xab, 0x03, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x05, 0x12, 0x04, 0xac, + 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x01, 0x12, 0x04, 0xac, 0x03, 0x02, + 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x01, 0x12, 0x04, 0xac, 0x03, 0x09, 0x18, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x03, 0x12, 0x04, 0xac, 0x03, 0x1b, 0x1c, 0x0a, + 0x6f, 0x0a, 0x02, 0x04, 0x1a, 0x12, 0x06, 0xb0, 0x03, 0x00, 0xcc, 0x03, 0x01, 0x1a, 0x61, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, - 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x14, 0x01, 0x12, 0x04, 0xe8, 0x02, 0x08, 0x19, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x06, 0x12, 0x04, 0xe9, 0x02, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x00, 0x12, 0x04, 0xe9, 0x02, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x14, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe9, 0x02, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x14, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe9, 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x14, 0x02, 0x00, 0x08, 0x12, 0x04, 0xe9, 0x02, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, - 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe9, 0x02, 0x15, 0x3b, 0x0a, 0x59, 0x0a, 0x02, - 0x04, 0x15, 0x12, 0x06, 0xed, 0x02, 0x00, 0x89, 0x03, 0x01, 0x1a, 0x4b, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, - 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x15, 0x01, 0x12, 0x04, - 0xed, 0x02, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf1, - 0x02, 0x02, 0x08, 0x0a, 0xee, 0x01, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x00, 0x12, 0x04, 0xf1, 0x02, - 0x02, 0x40, 0x1a, 0xdf, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x49, 0x66, - 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x74, - 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x35, 0x30, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, - 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x0a, 0x20, 0x31, 0x30, 0x30, 0x30, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf1, - 0x02, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf1, 0x02, - 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x08, 0x12, 0x04, 0xf1, 0x02, 0x17, - 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x15, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf1, - 0x02, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x05, 0x12, 0x04, 0xf7, 0x02, - 0x02, 0x08, 0x0a, 0xf8, 0x01, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x01, 0x12, 0x04, 0xf7, 0x02, 0x02, - 0x41, 0x1a, 0xe9, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, - 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, - 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, - 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x60, 0x20, - 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x15, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf7, 0x02, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x15, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf7, 0x02, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x15, 0x02, 0x01, 0x08, 0x12, 0x04, 0xf7, 0x02, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x15, - 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf7, 0x02, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x15, 0x02, 0x02, 0x05, 0x12, 0x04, 0xfe, 0x02, 0x02, 0x08, 0x0a, 0x94, 0x05, 0x0a, 0x04, - 0x04, 0x15, 0x02, 0x02, 0x12, 0x04, 0xfe, 0x02, 0x02, 0x3d, 0x1a, 0x85, 0x05, 0x20, 0x41, 0x20, - 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, - 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, - 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x74, 0x61, 0x67, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, - 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x0a, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, - 0x60, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x6f, 0x64, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x60, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x72, - 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, - 0x65, 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x20, 0x67, 0x75, - 0x69, 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, - 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x64, 0x65, 0x66, 0x2e, - 0x6d, 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2d, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x6d, - 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x28, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2d, 0x62, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x23, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x29, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x01, 0x12, 0x04, 0xfe, 0x02, 0x09, - 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x03, 0x12, 0x04, 0xfe, 0x02, 0x12, 0x13, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x08, 0x12, 0x04, 0xfe, 0x02, 0x14, 0x3c, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x15, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfe, 0x02, 0x15, - 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x03, 0x05, 0x12, 0x04, 0x81, 0x03, 0x02, 0x08, - 0x0a, 0x5b, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x03, 0x12, 0x04, 0x81, 0x03, 0x02, 0x46, 0x1a, 0x4d, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x73, 0x20, 0x6f, - 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, - 0x79, 0x6f, 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x15, 0x02, 0x03, 0x01, 0x12, 0x04, 0x81, 0x03, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x15, 0x02, 0x03, 0x03, 0x12, 0x04, 0x81, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x15, 0x02, 0x03, 0x08, 0x12, 0x04, 0x81, 0x03, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x15, - 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x81, 0x03, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x15, 0x02, 0x04, 0x05, 0x12, 0x04, 0x88, 0x03, 0x02, 0x08, 0x0a, 0xb1, 0x03, 0x0a, 0x04, - 0x04, 0x15, 0x02, 0x04, 0x12, 0x04, 0x88, 0x03, 0x02, 0x3f, 0x1a, 0xa2, 0x03, 0x20, 0x48, 0x6f, - 0x77, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, - 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x22, 0x46, 0x49, - 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x5d, 0x2c, - 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, - 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, - 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x65, 0x73, 0x63, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x28, 0x6e, 0x65, 0x77, - 0x65, 0x73, 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x29, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, - 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x2c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x5d, 0x28, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x70, - 0x2e, 0x64, 0x65, 0x76, 0x2f, 0x31, 0x33, 0x32, 0x23, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x29, 0x0a, 0x20, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x22, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x2c, - 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x04, 0x01, 0x12, 0x04, 0x88, 0x03, 0x09, 0x11, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x15, 0x02, 0x04, 0x03, 0x12, 0x04, 0x88, 0x03, 0x14, 0x15, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x15, 0x02, 0x04, 0x08, 0x12, 0x04, 0x88, 0x03, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x15, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, 0x03, 0x17, 0x3d, 0x0a, 0x4e, - 0x0a, 0x02, 0x04, 0x16, 0x12, 0x06, 0x8c, 0x03, 0x00, 0x8f, 0x03, 0x01, 0x1a, 0x40, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x0a, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1a, 0x01, 0x12, 0x04, 0xb0, 0x03, 0x08, 0x2f, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1a, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb4, 0x03, 0x02, 0x08, 0x0a, 0xee, 0x01, 0x0a, + 0x04, 0x04, 0x1a, 0x02, 0x00, 0x12, 0x04, 0xb4, 0x03, 0x02, 0x40, 0x1a, 0xdf, 0x01, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x35, + 0x30, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, + 0x6f, 0x76, 0x65, 0x0a, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1a, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb4, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1a, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb4, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1a, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb4, 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1a, + 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb4, 0x03, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1a, 0x02, 0x01, 0x05, 0x12, 0x04, 0xba, 0x03, 0x02, 0x08, 0x0a, 0xa2, 0x02, 0x0a, 0x04, + 0x04, 0x1a, 0x02, 0x01, 0x12, 0x04, 0xba, 0x03, 0x02, 0x41, 0x1a, 0x93, 0x02, 0x20, 0x41, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, + 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x57, 0x68, + 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, + 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, + 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x60, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x01, 0x12, 0x04, 0xba, 0x03, 0x09, 0x13, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xba, 0x03, 0x16, 0x17, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x08, 0x12, 0x04, 0xba, 0x03, 0x18, 0x40, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x1a, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xba, 0x03, 0x19, 0x3f, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x02, 0x05, 0x12, 0x04, 0xc1, 0x03, 0x02, 0x08, 0x0a, 0x94, + 0x05, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x02, 0x12, 0x04, 0xc1, 0x03, 0x02, 0x3d, 0x1a, 0x85, 0x05, + 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, + 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, + 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, + 0x60, 0x2c, 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x69, 0x73, 0x5f, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x0a, 0x20, 0x60, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x60, 0x2c, 0x20, 0x60, + 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x60, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, + 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, + 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x64, + 0x65, 0x66, 0x2e, 0x6d, 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2d, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x46, 0x6f, + 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x28, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2d, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x23, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x29, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x02, 0x01, 0x12, 0x04, + 0xc1, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x02, 0x03, 0x12, 0x04, 0xc1, + 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x02, 0x08, 0x12, 0x04, 0xc1, 0x03, + 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1a, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xc1, 0x03, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x03, 0x05, 0x12, 0x04, 0xc4, + 0x03, 0x02, 0x08, 0x0a, 0x5b, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x03, 0x12, 0x04, 0xc4, 0x03, 0x02, + 0x46, 0x1a, 0x4d, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, + 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, + 0x69, 0x66, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x62, 0x65, 0x6c, + 0x6f, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, + 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x03, 0x01, 0x12, 0x04, 0xc4, 0x03, 0x09, 0x18, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x03, 0x03, 0x12, 0x04, 0xc4, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x03, 0x08, 0x12, 0x04, 0xc4, 0x03, 0x1d, 0x45, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x1a, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc4, 0x03, 0x1e, 0x44, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x04, 0x05, 0x12, 0x04, 0xcb, 0x03, 0x02, 0x08, 0x0a, 0xb1, + 0x03, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x04, 0x12, 0x04, 0xcb, 0x03, 0x02, 0x3f, 0x1a, 0xa2, 0x03, + 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, 0x61, + 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, + 0x22, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5b, 0x20, 0x64, 0x65, 0x73, + 0x63, 0x5d, 0x2c, 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, + 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x60, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x60, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x65, + 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x28, + 0x6e, 0x65, 0x77, 0x65, 0x73, 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x29, 0x2e, 0x0a, 0x20, + 0x46, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x5d, + 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x61, 0x69, 0x70, 0x2e, 0x64, 0x65, 0x76, 0x2f, 0x31, 0x33, 0x32, 0x23, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x20, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, + 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x64, 0x65, + 0x73, 0x63, 0x2c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x22, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x04, 0x01, 0x12, 0x04, 0xcb, 0x03, 0x09, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x04, 0x03, 0x12, 0x04, 0xcb, 0x03, 0x14, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x04, 0x08, 0x12, 0x04, 0xcb, 0x03, 0x16, 0x3e, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x1a, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcb, 0x03, 0x17, + 0x3d, 0x0a, 0x63, 0x0a, 0x02, 0x04, 0x1b, 0x12, 0x06, 0xcf, 0x03, 0x00, 0xd2, 0x03, 0x01, 0x1a, + 0x55, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1b, 0x01, 0x12, 0x04, 0xcf, + 0x03, 0x08, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x04, 0x12, 0x04, 0xd0, 0x03, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x00, 0x12, 0x04, 0xd0, 0x03, 0x02, 0x33, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x06, 0x12, 0x04, 0xd0, 0x03, 0x0b, 0x26, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd0, 0x03, 0x27, 0x2e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd0, 0x03, 0x31, 0x32, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd1, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x1b, 0x02, 0x01, 0x12, 0x04, 0xd1, 0x03, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x01, 0x01, 0x12, 0x04, 0xd1, 0x03, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, + 0x01, 0x03, 0x12, 0x04, 0xd1, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1c, 0x12, 0x06, + 0xd4, 0x03, 0x00, 0xd6, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1c, 0x01, 0x12, 0x04, 0xd4, + 0x03, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd5, 0x03, + 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1c, 0x02, 0x00, 0x12, 0x04, 0xd5, 0x03, 0x02, 0x40, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd5, 0x03, 0x09, 0x12, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd5, 0x03, 0x15, 0x16, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1c, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd5, 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x1c, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd5, 0x03, 0x18, 0x3e, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x1d, 0x12, 0x06, 0xd8, 0x03, 0x00, 0xdb, 0x03, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x1d, 0x01, 0x12, 0x04, 0xd8, 0x03, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, + 0x02, 0x00, 0x05, 0x12, 0x04, 0xd9, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1d, 0x02, + 0x00, 0x12, 0x04, 0xd9, 0x03, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xd9, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xd9, 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x08, 0x12, 0x04, + 0xd9, 0x03, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1d, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xd9, 0x03, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xda, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x01, 0x12, 0x04, 0xda, + 0x03, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xda, 0x03, + 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xda, 0x03, 0x15, + 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x08, 0x12, 0x04, 0xda, 0x03, 0x17, 0x3f, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1d, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xda, 0x03, + 0x18, 0x3e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1e, 0x12, 0x06, 0xdd, 0x03, 0x00, 0xdf, 0x03, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1e, 0x01, 0x12, 0x04, 0xdd, 0x03, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xde, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x1e, 0x02, 0x00, 0x12, 0x04, 0xde, 0x03, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xde, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xde, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xde, 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1e, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xde, 0x03, 0x18, 0x3e, 0x0a, 0x22, 0x0a, 0x02, 0x04, 0x1f, 0x12, + 0x06, 0xe1, 0x03, 0x00, 0xe3, 0x03, 0x01, 0x22, 0x14, 0x20, 0x6e, 0x6f, 0x20, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x0a, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x1f, 0x01, 0x12, 0x04, 0xe1, 0x03, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x20, + 0x12, 0x06, 0xe5, 0x03, 0x00, 0xed, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x20, 0x01, 0x12, + 0x04, 0xe5, 0x03, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, 0x06, 0x12, 0x04, + 0xe7, 0x03, 0x02, 0x08, 0x0a, 0x25, 0x0a, 0x04, 0x04, 0x20, 0x02, 0x00, 0x12, 0x04, 0xe7, 0x03, + 0x02, 0x3d, 0x1a, 0x17, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x20, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe7, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xe7, 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, + 0x00, 0x08, 0x12, 0x04, 0xe7, 0x03, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x20, 0x02, 0x00, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe7, 0x03, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, + 0x02, 0x01, 0x06, 0x12, 0x04, 0xec, 0x03, 0x02, 0x1b, 0x0a, 0xb2, 0x02, 0x0a, 0x04, 0x04, 0x20, + 0x02, 0x01, 0x12, 0x04, 0xec, 0x03, 0x02, 0x55, 0x1a, 0xa3, 0x02, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x0a, 0x20, 0x60, 0x69, + 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x60, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x60, 0x2e, 0x20, 0x41, 0x6e, 0x20, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x69, 0x73, 0x20, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x20, 0x49, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x60, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x73, 0x6b, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, + 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x20, 0x02, 0x01, 0x01, 0x12, 0x04, 0xec, 0x03, 0x1c, 0x27, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x20, 0x02, 0x01, 0x03, 0x12, 0x04, 0xec, 0x03, 0x2a, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x20, 0x02, 0x01, 0x08, 0x12, 0x04, 0xec, 0x03, 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x20, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xec, 0x03, 0x2d, 0x53, 0x0a, 0x22, 0x0a, + 0x02, 0x04, 0x21, 0x12, 0x06, 0xef, 0x03, 0x00, 0xf1, 0x03, 0x01, 0x22, 0x14, 0x20, 0x6e, 0x6f, + 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x21, 0x01, 0x12, 0x04, 0xef, 0x03, 0x08, 0x1c, 0x0a, 0x52, + 0x0a, 0x02, 0x04, 0x22, 0x12, 0x06, 0xf4, 0x03, 0x00, 0x8a, 0x04, 0x01, 0x1a, 0x44, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, - 0x0a, 0x03, 0x04, 0x16, 0x01, 0x12, 0x04, 0x8c, 0x03, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x16, 0x02, 0x00, 0x04, 0x12, 0x04, 0x8d, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, - 0x02, 0x00, 0x12, 0x04, 0x8d, 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x00, - 0x06, 0x12, 0x04, 0x8d, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x00, 0x01, - 0x12, 0x04, 0x8d, 0x03, 0x12, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x00, 0x03, 0x12, - 0x04, 0x8d, 0x03, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x05, 0x12, 0x04, - 0x8e, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x01, 0x12, 0x04, 0x8e, 0x03, - 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8e, 0x03, 0x09, - 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8e, 0x03, 0x1b, 0x1c, - 0x0a, 0x6f, 0x0a, 0x02, 0x04, 0x17, 0x12, 0x06, 0x92, 0x03, 0x00, 0xae, 0x03, 0x01, 0x1a, 0x61, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, - 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x17, 0x01, 0x12, 0x04, 0x92, 0x03, 0x08, 0x2f, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x05, 0x12, 0x04, 0x96, 0x03, 0x02, 0x08, 0x0a, 0xee, 0x01, - 0x0a, 0x04, 0x04, 0x17, 0x02, 0x00, 0x12, 0x04, 0x96, 0x03, 0x02, 0x40, 0x1a, 0xdf, 0x01, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x74, 0x6f, + 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x60, + 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x22, 0x01, 0x12, 0x04, 0xf4, 0x03, 0x08, 0x26, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf6, 0x03, 0x02, 0x08, 0x0a, 0x38, + 0x0a, 0x04, 0x04, 0x22, 0x02, 0x00, 0x12, 0x04, 0xf6, 0x03, 0x02, 0x40, 0x1a, 0x2a, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x68, 0x6f, 0x73, 0x65, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xf6, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xf6, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x08, 0x12, + 0x04, 0xf6, 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x22, 0x02, 0x00, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xf6, 0x03, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x01, 0x05, + 0x12, 0x04, 0xfb, 0x03, 0x02, 0x08, 0x0a, 0xfc, 0x01, 0x0a, 0x04, 0x04, 0x22, 0x02, 0x01, 0x12, + 0x04, 0xfb, 0x03, 0x02, 0x40, 0x1a, 0xed, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, - 0x35, 0x30, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x35, 0x30, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x0a, 0x20, 0x31, 0x30, 0x30, + 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x01, 0x01, 0x12, 0x04, + 0xfb, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x01, 0x03, 0x12, 0x04, 0xfb, + 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x01, 0x08, 0x12, 0x04, 0xfb, 0x03, + 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x22, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xfb, 0x03, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x02, 0x05, 0x12, 0x04, 0xff, + 0x03, 0x02, 0x08, 0x0a, 0x90, 0x01, 0x0a, 0x04, 0x04, 0x22, 0x02, 0x02, 0x12, 0x04, 0xff, 0x03, + 0x02, 0x41, 0x1a, 0x81, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x69, 0x65, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x02, 0x01, 0x12, + 0x04, 0xff, 0x03, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x02, 0x03, 0x12, 0x04, + 0xff, 0x03, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x02, 0x08, 0x12, 0x04, 0xff, + 0x03, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x22, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xff, 0x03, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x03, 0x05, 0x12, 0x04, + 0x84, 0x04, 0x02, 0x08, 0x0a, 0xef, 0x01, 0x0a, 0x04, 0x04, 0x22, 0x02, 0x03, 0x12, 0x04, 0x84, + 0x04, 0x02, 0x3d, 0x1a, 0xe0, 0x01, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, + 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, + 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, + 0x60, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x60, 0x2c, 0x0a, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x03, 0x01, 0x12, + 0x04, 0x84, 0x04, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x03, 0x03, 0x12, 0x04, + 0x84, 0x04, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x03, 0x08, 0x12, 0x04, 0x84, + 0x04, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x22, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0x84, 0x04, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x04, 0x05, 0x12, 0x04, + 0x89, 0x04, 0x02, 0x08, 0x0a, 0x97, 0x02, 0x0a, 0x04, 0x04, 0x22, 0x02, 0x04, 0x12, 0x04, 0x89, + 0x04, 0x02, 0x3f, 0x1a, 0x88, 0x02, 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, + 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, + 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x22, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x5d, 0x2c, + 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, + 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x60, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x60, 0x20, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x22, 0x02, 0x04, 0x01, 0x12, 0x04, 0x89, 0x04, 0x09, 0x11, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x22, 0x02, 0x04, 0x03, 0x12, 0x04, 0x89, 0x04, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x22, 0x02, 0x04, 0x08, 0x12, 0x04, 0x89, 0x04, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x22, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x89, 0x04, 0x17, 0x3d, 0x0a, 0x52, 0x0a, + 0x02, 0x04, 0x23, 0x12, 0x06, 0x8d, 0x04, 0x00, 0x90, 0x04, 0x01, 0x1a, 0x44, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, + 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x60, 0x2e, + 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x23, 0x01, 0x12, 0x04, 0x8d, 0x04, 0x08, 0x27, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x04, 0x12, 0x04, 0x8e, 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x23, 0x02, 0x00, 0x12, 0x04, 0x8e, 0x04, 0x02, 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x23, 0x02, 0x00, 0x06, 0x12, 0x04, 0x8e, 0x04, 0x0b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x8e, 0x04, 0x1d, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x8e, 0x04, 0x35, 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x01, + 0x05, 0x12, 0x04, 0x8f, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x23, 0x02, 0x01, 0x12, + 0x04, 0x8f, 0x04, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x8f, 0x04, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8f, + 0x04, 0x1b, 0x1c, 0x0a, 0x53, 0x0a, 0x02, 0x04, 0x24, 0x12, 0x06, 0x93, 0x04, 0x00, 0xa4, 0x04, + 0x01, 0x1a, 0x45, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x24, 0x01, 0x12, + 0x04, 0x93, 0x04, 0x08, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x05, 0x12, 0x04, + 0x95, 0x04, 0x02, 0x08, 0x0a, 0x39, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x00, 0x12, 0x04, 0x95, 0x04, + 0x02, 0x40, 0x1a, 0x2b, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, + 0x77, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x01, 0x12, 0x04, 0x95, 0x04, 0x09, 0x12, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x03, 0x12, 0x04, 0x95, 0x04, 0x15, 0x16, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x24, 0x02, 0x00, 0x08, 0x12, 0x04, 0x95, 0x04, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x24, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x95, 0x04, 0x18, 0x3e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x24, 0x02, 0x01, 0x05, 0x12, 0x04, 0x9a, 0x04, 0x02, 0x08, 0x0a, 0xfe, 0x01, + 0x0a, 0x04, 0x04, 0x24, 0x02, 0x01, 0x12, 0x04, 0x9a, 0x04, 0x02, 0x40, 0x1a, 0xef, 0x01, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, + 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, + 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x35, 0x30, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x0a, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x01, 0x12, 0x04, 0x96, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x17, 0x02, 0x00, 0x03, 0x12, 0x04, 0x96, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x17, 0x02, 0x00, 0x08, 0x12, 0x04, 0x96, 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x17, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x96, 0x03, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x17, 0x02, 0x01, 0x05, 0x12, 0x04, 0x9c, 0x03, 0x02, 0x08, 0x0a, 0xa2, 0x02, 0x0a, - 0x04, 0x04, 0x17, 0x02, 0x01, 0x12, 0x04, 0x9c, 0x03, 0x02, 0x41, 0x1a, 0x93, 0x02, 0x20, 0x41, + 0x0a, 0x05, 0x04, 0x24, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9a, 0x04, 0x09, 0x12, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x24, 0x02, 0x01, 0x03, 0x12, 0x04, 0x9a, 0x04, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x24, 0x02, 0x01, 0x08, 0x12, 0x04, 0x9a, 0x04, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x24, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9a, 0x04, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x24, 0x02, 0x02, 0x05, 0x12, 0x04, 0x9e, 0x04, 0x02, 0x08, 0x0a, 0x91, 0x01, 0x0a, + 0x04, 0x04, 0x24, 0x02, 0x02, 0x12, 0x04, 0x9e, 0x04, 0x02, 0x41, 0x1a, 0x82, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x57, - 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, - 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x60, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9c, 0x03, 0x09, 0x13, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x03, 0x12, 0x04, 0x9c, 0x03, 0x16, 0x17, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x08, 0x12, 0x04, 0x9c, 0x03, 0x18, 0x40, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x17, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9c, 0x03, 0x19, 0x3f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x02, 0x05, 0x12, 0x04, 0xa3, 0x03, 0x02, 0x08, 0x0a, - 0x94, 0x05, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x02, 0x12, 0x04, 0xa3, 0x03, 0x02, 0x3d, 0x1a, 0x85, - 0x05, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, - 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, - 0x60, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x6e, 0x61, 0x6d, - 0x65, 0x60, 0x2c, 0x20, 0x60, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x69, 0x73, - 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x0a, 0x20, 0x60, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x60, 0x2c, 0x20, - 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, - 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x60, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, - 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, 0x67, - 0x64, 0x65, 0x66, 0x2e, 0x6d, 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2d, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x46, - 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5d, 0x28, 0x2f, 0x64, 0x6f, 0x63, 0x73, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2d, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x23, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x29, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x02, 0x01, 0x12, - 0x04, 0xa3, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x02, 0x03, 0x12, 0x04, - 0xa3, 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x02, 0x08, 0x12, 0x04, 0xa3, - 0x03, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x17, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xa3, 0x03, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x05, 0x12, 0x04, - 0xa6, 0x03, 0x02, 0x08, 0x0a, 0x5b, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x03, 0x12, 0x04, 0xa6, 0x03, - 0x02, 0x46, 0x1a, 0x4d, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, - 0x20, 0x69, 0x66, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x62, 0x65, - 0x6c, 0x6f, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, - 0x65, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa6, 0x03, 0x09, 0x18, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa6, 0x03, 0x1b, 0x1c, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x08, 0x12, 0x04, 0xa6, 0x03, 0x1d, 0x45, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x17, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa6, 0x03, 0x1e, 0x44, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x04, 0x05, 0x12, 0x04, 0xad, 0x03, 0x02, 0x08, 0x0a, - 0xb1, 0x03, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x04, 0x12, 0x04, 0xad, 0x03, 0x02, 0x3f, 0x1a, 0xa2, - 0x03, 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, - 0x61, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x2e, 0x65, 0x2e, - 0x20, 0x22, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5b, 0x20, 0x64, 0x65, - 0x73, 0x63, 0x5d, 0x2c, 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x6e, 0x61, 0x6d, - 0x65, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, - 0x65, 0x60, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, - 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x60, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x64, - 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, - 0x28, 0x6e, 0x65, 0x77, 0x65, 0x73, 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x29, 0x2e, 0x0a, - 0x20, 0x46, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, - 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x61, 0x69, 0x70, 0x2e, 0x64, 0x65, 0x76, 0x2f, 0x31, 0x33, 0x32, 0x23, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x20, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, - 0x20, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x64, - 0x65, 0x73, 0x63, 0x2c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, - 0x65, 0x22, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x04, 0x01, 0x12, 0x04, 0xad, 0x03, - 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x04, 0x03, 0x12, 0x04, 0xad, 0x03, 0x14, - 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x04, 0x08, 0x12, 0x04, 0xad, 0x03, 0x16, 0x3e, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x17, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xad, 0x03, - 0x17, 0x3d, 0x0a, 0x63, 0x0a, 0x02, 0x04, 0x18, 0x12, 0x06, 0xb1, 0x03, 0x00, 0xb4, 0x03, 0x01, - 0x1a, 0x55, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x6d, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x18, 0x01, 0x12, 0x04, - 0xb1, 0x03, 0x08, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x04, 0x12, 0x04, 0xb2, - 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x00, 0x12, 0x04, 0xb2, 0x03, 0x02, - 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x06, 0x12, 0x04, 0xb2, 0x03, 0x0b, 0x26, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb2, 0x03, 0x27, 0x2e, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb2, 0x03, 0x31, 0x32, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb3, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x18, 0x02, 0x01, 0x12, 0x04, 0xb3, 0x03, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x18, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb3, 0x03, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, - 0x02, 0x01, 0x03, 0x12, 0x04, 0xb3, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x19, 0x12, - 0x06, 0xb6, 0x03, 0x00, 0xb8, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x19, 0x01, 0x12, 0x04, - 0xb6, 0x03, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb7, - 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x00, 0x12, 0x04, 0xb7, 0x03, 0x02, - 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb7, 0x03, 0x09, 0x12, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb7, 0x03, 0x15, 0x16, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb7, 0x03, 0x17, 0x3f, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x19, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb7, 0x03, 0x18, 0x3e, - 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1a, 0x12, 0x06, 0xba, 0x03, 0x00, 0xbd, 0x03, 0x01, 0x0a, 0x0b, - 0x0a, 0x03, 0x04, 0x1a, 0x01, 0x12, 0x04, 0xba, 0x03, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1a, 0x02, 0x00, 0x05, 0x12, 0x04, 0xbb, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1a, - 0x02, 0x00, 0x12, 0x04, 0xbb, 0x03, 0x02, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, - 0x01, 0x12, 0x04, 0xbb, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x03, - 0x12, 0x04, 0xbb, 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x08, 0x12, - 0x04, 0xbb, 0x03, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1a, 0x02, 0x00, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xbb, 0x03, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x05, - 0x12, 0x04, 0xbc, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x01, 0x12, 0x04, - 0xbc, 0x03, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x01, 0x12, 0x04, 0xbc, - 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xbc, 0x03, - 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x08, 0x12, 0x04, 0xbc, 0x03, 0x17, - 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1a, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbc, - 0x03, 0x18, 0x3e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1b, 0x12, 0x06, 0xbf, 0x03, 0x00, 0xc1, 0x03, - 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1b, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x08, 0x1b, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc0, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x1b, 0x02, 0x00, 0x12, 0x04, 0xc0, 0x03, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc0, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, - 0x02, 0x00, 0x03, 0x12, 0x04, 0xc0, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, - 0x00, 0x08, 0x12, 0x04, 0xc0, 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x00, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc0, 0x03, 0x18, 0x3e, 0x0a, 0x22, 0x0a, 0x02, 0x04, 0x1c, - 0x12, 0x06, 0xc3, 0x03, 0x00, 0xc5, 0x03, 0x01, 0x22, 0x14, 0x20, 0x6e, 0x6f, 0x20, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x0a, 0x0a, 0x0b, - 0x0a, 0x03, 0x04, 0x1c, 0x01, 0x12, 0x04, 0xc3, 0x03, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, - 0x1d, 0x12, 0x06, 0xc7, 0x03, 0x00, 0xcf, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1d, 0x01, - 0x12, 0x04, 0xc7, 0x03, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x06, 0x12, - 0x04, 0xc9, 0x03, 0x02, 0x08, 0x0a, 0x25, 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x00, 0x12, 0x04, 0xc9, - 0x03, 0x02, 0x3d, 0x1a, 0x17, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1d, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc9, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1d, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc9, 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, - 0x02, 0x00, 0x08, 0x12, 0x04, 0xc9, 0x03, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1d, 0x02, - 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc9, 0x03, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1d, 0x02, 0x01, 0x06, 0x12, 0x04, 0xce, 0x03, 0x02, 0x1b, 0x0a, 0xb2, 0x02, 0x0a, 0x04, 0x04, - 0x1d, 0x02, 0x01, 0x12, 0x04, 0xce, 0x03, 0x02, 0x55, 0x1a, 0xa3, 0x02, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x0a, 0x20, 0x60, - 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x60, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x60, 0x2e, 0x20, 0x41, 0x6e, - 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x69, 0x73, - 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x20, 0x49, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x60, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x73, - 0x6b, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x20, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xce, 0x03, 0x1c, 0x27, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xce, 0x03, 0x2a, 0x2b, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x1d, 0x02, 0x01, 0x08, 0x12, 0x04, 0xce, 0x03, 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x1d, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xce, 0x03, 0x2d, 0x53, 0x0a, 0x22, - 0x0a, 0x02, 0x04, 0x1e, 0x12, 0x06, 0xd1, 0x03, 0x00, 0xd3, 0x03, 0x01, 0x22, 0x14, 0x20, 0x6e, - 0x6f, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1e, 0x01, 0x12, 0x04, 0xd1, 0x03, 0x08, 0x1c, 0x0a, - 0x52, 0x0a, 0x02, 0x04, 0x1f, 0x12, 0x06, 0xd6, 0x03, 0x00, 0xec, 0x03, 0x01, 0x1a, 0x44, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x60, + 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9e, 0x04, 0x09, 0x13, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9e, 0x04, 0x16, 0x17, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x08, 0x12, 0x04, 0x9e, 0x04, 0x18, 0x40, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x24, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9e, 0x04, 0x19, 0x3f, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x05, 0x12, 0x04, 0xa3, 0x04, 0x02, 0x08, 0x0a, 0xff, + 0x01, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x03, 0x12, 0x04, 0xa3, 0x04, 0x02, 0x3d, 0x1a, 0xf0, 0x01, + 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, + 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x6b, 0x65, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x60, 0x2c, 0x20, 0x60, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x60, 0x2c, 0x20, 0x60, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, + 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x60, 0x2c, 0x0a, 0x20, 0x60, 0x6b, 0x65, 0x79, 0x5f, 0x69, + 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x60, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x60, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa3, 0x04, 0x09, 0x0f, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa3, 0x04, 0x12, 0x13, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x08, 0x12, 0x04, 0xa3, 0x04, 0x14, 0x3c, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x24, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa3, 0x04, 0x15, 0x3b, 0x0a, + 0x53, 0x0a, 0x02, 0x04, 0x25, 0x12, 0x06, 0xa7, 0x04, 0x00, 0xaa, 0x04, 0x01, 0x1a, 0x45, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, - 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1f, 0x01, 0x12, 0x04, 0xd6, 0x03, 0x08, 0x26, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd8, 0x03, 0x02, 0x08, 0x0a, - 0x38, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x00, 0x12, 0x04, 0xd8, 0x03, 0x02, 0x40, 0x1a, 0x2a, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x68, 0x6f, 0x73, 0x65, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, - 0x00, 0x01, 0x12, 0x04, 0xd8, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, - 0x03, 0x12, 0x04, 0xd8, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x08, - 0x12, 0x04, 0xd8, 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1f, 0x02, 0x00, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xd8, 0x03, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, - 0x05, 0x12, 0x04, 0xdd, 0x03, 0x02, 0x08, 0x0a, 0xfc, 0x01, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x01, - 0x12, 0x04, 0xdd, 0x03, 0x02, 0x40, 0x1a, 0xed, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, - 0x20, 0x35, 0x30, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, - 0x65, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x0a, 0x20, 0x31, 0x30, - 0x30, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x01, 0x12, - 0x04, 0xdd, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x03, 0x12, 0x04, - 0xdd, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x08, 0x12, 0x04, 0xdd, - 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1f, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xdd, 0x03, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x02, 0x05, 0x12, 0x04, - 0xe1, 0x03, 0x02, 0x08, 0x0a, 0x90, 0x01, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x02, 0x12, 0x04, 0xe1, - 0x03, 0x02, 0x41, 0x1a, 0x81, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x20, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x02, 0x01, - 0x12, 0x04, 0xe1, 0x03, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x02, 0x03, 0x12, - 0x04, 0xe1, 0x03, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x02, 0x08, 0x12, 0x04, - 0xe1, 0x03, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1f, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0xe1, 0x03, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, 0x05, 0x12, - 0x04, 0xe6, 0x03, 0x02, 0x08, 0x0a, 0xef, 0x01, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x03, 0x12, 0x04, - 0xe6, 0x03, 0x02, 0x3d, 0x1a, 0xe0, 0x01, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, - 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, - 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, - 0x20, 0x60, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x60, 0x2c, 0x0a, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2e, 0x20, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, 0x01, - 0x12, 0x04, 0xe6, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, 0x03, 0x12, - 0x04, 0xe6, 0x03, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, 0x08, 0x12, 0x04, - 0xe6, 0x03, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1f, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0xe6, 0x03, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x05, 0x12, - 0x04, 0xeb, 0x03, 0x02, 0x08, 0x0a, 0x97, 0x02, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x04, 0x12, 0x04, - 0xeb, 0x03, 0x02, 0x3f, 0x1a, 0x88, 0x02, 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, - 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, - 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, - 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x22, 0x46, - 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x5d, - 0x2c, 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2e, 0x0a, 0x20, - 0x49, 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x60, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x60, 0x20, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x01, 0x12, 0x04, 0xeb, 0x03, 0x09, 0x11, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x03, 0x12, 0x04, 0xeb, 0x03, 0x14, 0x15, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x1f, 0x02, 0x04, 0x08, 0x12, 0x04, 0xeb, 0x03, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x1f, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xeb, 0x03, 0x17, 0x3d, 0x0a, 0x52, - 0x0a, 0x02, 0x04, 0x20, 0x12, 0x06, 0xef, 0x03, 0x00, 0xf2, 0x03, 0x01, 0x1a, 0x44, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x60, - 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x20, 0x01, 0x12, 0x04, 0xef, 0x03, 0x08, 0x27, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, 0x04, 0x12, 0x04, 0xf0, 0x03, 0x02, 0x0a, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x20, 0x02, 0x00, 0x12, 0x04, 0xf0, 0x03, 0x02, 0x37, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x20, 0x02, 0x00, 0x06, 0x12, 0x04, 0xf0, 0x03, 0x0b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x20, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf0, 0x03, 0x1d, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, - 0x02, 0x00, 0x03, 0x12, 0x04, 0xf0, 0x03, 0x35, 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, - 0x01, 0x05, 0x12, 0x04, 0xf1, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x20, 0x02, 0x01, - 0x12, 0x04, 0xf1, 0x03, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x01, 0x01, 0x12, - 0x04, 0xf1, 0x03, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x01, 0x03, 0x12, 0x04, - 0xf1, 0x03, 0x1b, 0x1c, 0x0a, 0x53, 0x0a, 0x02, 0x04, 0x21, 0x12, 0x06, 0xf5, 0x03, 0x00, 0x86, - 0x04, 0x01, 0x1a, 0x45, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x21, 0x01, - 0x12, 0x04, 0xf5, 0x03, 0x08, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x05, 0x12, - 0x04, 0xf7, 0x03, 0x02, 0x08, 0x0a, 0x39, 0x0a, 0x04, 0x04, 0x21, 0x02, 0x00, 0x12, 0x04, 0xf7, - 0x03, 0x02, 0x40, 0x1a, 0x2b, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x20, 0x77, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf7, 0x03, 0x09, 0x12, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf7, 0x03, 0x15, 0x16, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x08, 0x12, 0x04, 0xf7, 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x21, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf7, 0x03, 0x18, 0x3e, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x01, 0x05, 0x12, 0x04, 0xfc, 0x03, 0x02, 0x08, 0x0a, 0xfe, - 0x01, 0x0a, 0x04, 0x04, 0x21, 0x02, 0x01, 0x12, 0x04, 0xfc, 0x03, 0x02, 0x40, 0x1a, 0xef, 0x01, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, - 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, - 0x20, 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, - 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x35, 0x30, 0x20, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, - 0x61, 0x62, 0x6f, 0x76, 0x65, 0x0a, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, - 0x30, 0x30, 0x30, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x01, 0x01, 0x12, 0x04, 0xfc, 0x03, 0x09, 0x12, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x21, 0x02, 0x01, 0x03, 0x12, 0x04, 0xfc, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x21, 0x02, 0x01, 0x08, 0x12, 0x04, 0xfc, 0x03, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x21, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfc, 0x03, 0x18, 0x3e, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x21, 0x02, 0x02, 0x05, 0x12, 0x04, 0x80, 0x04, 0x02, 0x08, 0x0a, 0x91, 0x01, - 0x0a, 0x04, 0x04, 0x21, 0x02, 0x02, 0x12, 0x04, 0x80, 0x04, 0x02, 0x41, 0x1a, 0x82, 0x01, 0x20, - 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, - 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x02, 0x01, 0x12, 0x04, 0x80, 0x04, 0x09, 0x13, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x02, 0x03, 0x12, 0x04, 0x80, 0x04, 0x16, 0x17, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x02, 0x08, 0x12, 0x04, 0x80, 0x04, 0x18, 0x40, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x21, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x80, 0x04, 0x19, 0x3f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x03, 0x05, 0x12, 0x04, 0x85, 0x04, 0x02, 0x08, 0x0a, - 0xff, 0x01, 0x0a, 0x04, 0x04, 0x21, 0x02, 0x03, 0x12, 0x04, 0x85, 0x04, 0x02, 0x3d, 0x1a, 0xf0, - 0x01, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, - 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x6b, 0x65, - 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x60, 0x2c, 0x20, 0x60, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x60, 0x2c, 0x20, 0x60, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, - 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x60, 0x2c, 0x0a, 0x20, 0x60, 0x6b, 0x65, 0x79, 0x5f, - 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x60, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x64, 0x60, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x03, 0x01, 0x12, 0x04, 0x85, 0x04, 0x09, 0x0f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x03, 0x03, 0x12, 0x04, 0x85, 0x04, 0x12, 0x13, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x03, 0x08, 0x12, 0x04, 0x85, 0x04, 0x14, 0x3c, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x21, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x85, 0x04, 0x15, 0x3b, - 0x0a, 0x53, 0x0a, 0x02, 0x04, 0x22, 0x12, 0x06, 0x89, 0x04, 0x00, 0x8c, 0x04, 0x01, 0x1a, 0x45, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x22, 0x01, 0x12, 0x04, 0x89, 0x04, - 0x08, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x04, 0x12, 0x04, 0x8a, 0x04, 0x02, - 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x22, 0x02, 0x00, 0x12, 0x04, 0x8a, 0x04, 0x02, 0x3e, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x06, 0x12, 0x04, 0x8a, 0x04, 0x0b, 0x29, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8a, 0x04, 0x2a, 0x39, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x22, 0x02, 0x00, 0x03, 0x12, 0x04, 0x8a, 0x04, 0x3c, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x22, 0x02, 0x01, 0x05, 0x12, 0x04, 0x8b, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x22, 0x02, 0x01, 0x12, 0x04, 0x8b, 0x04, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, - 0x01, 0x01, 0x12, 0x04, 0x8b, 0x04, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x01, - 0x03, 0x12, 0x04, 0x8b, 0x04, 0x1b, 0x1c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x25, 0x01, 0x12, 0x04, 0xa7, 0x04, 0x08, + 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x04, 0x12, 0x04, 0xa8, 0x04, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x25, 0x02, 0x00, 0x12, 0x04, 0xa8, 0x04, 0x02, 0x3e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x06, 0x12, 0x04, 0xa8, 0x04, 0x0b, 0x29, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x25, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa8, 0x04, 0x2a, 0x39, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x25, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa8, 0x04, 0x3c, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x25, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa9, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x25, + 0x02, 0x01, 0x12, 0x04, 0xa9, 0x04, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xa9, 0x04, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x01, 0x03, + 0x12, 0x04, 0xa9, 0x04, 0x1b, 0x1c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, ]; include!("sift.reports.v1.tonic.rs"); include!("sift.reports.v1.serde.rs"); diff --git a/rust/crates/sift_rs/src/gen/sift/reports/v1/sift.reports.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift/reports/v1/sift.reports.v1.serde.rs index 0980f2ed4b..c780ab5c3d 100644 --- a/rust/crates/sift_rs/src/gen/sift/reports/v1/sift.reports.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift/reports/v1/sift.reports.v1.serde.rs @@ -2304,6 +2304,12 @@ impl serde::Serialize for Report { if self.report_type != 0 { len += 1; } + if self.canvas_execution_id.is_some() { + len += 1; + } + if self.canvas_status.is_some() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.reports.v1.Report", len)?; if !self.report_id.is_empty() { struct_ser.serialize_field("reportId", &self.report_id)?; @@ -2361,6 +2367,14 @@ impl serde::Serialize for Report { .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.report_type)))?; struct_ser.serialize_field("reportType", &v)?; } + if let Some(v) = self.canvas_execution_id.as_ref() { + struct_ser.serialize_field("canvasExecutionId", v)?; + } + if let Some(v) = self.canvas_status.as_ref() { + let v = super::super::canvas::v1::CanvasCellExecutionStatus::try_from(*v) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; + struct_ser.serialize_field("canvasStatus", &v)?; + } struct_ser.end() } } @@ -2402,6 +2416,10 @@ impl<'de> serde::Deserialize<'de> for Report { "isArchived", "report_type", "reportType", + "canvas_execution_id", + "canvasExecutionId", + "canvas_status", + "canvasStatus", ]; #[allow(clippy::enum_variant_names)] @@ -2424,6 +2442,8 @@ impl<'de> serde::Deserialize<'de> for Report { Metadata, IsArchived, ReportType, + CanvasExecutionId, + CanvasStatus, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -2463,6 +2483,8 @@ impl<'de> serde::Deserialize<'de> for Report { "metadata" => Ok(GeneratedField::Metadata), "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), "reportType" | "report_type" => Ok(GeneratedField::ReportType), + "canvasExecutionId" | "canvas_execution_id" => Ok(GeneratedField::CanvasExecutionId), + "canvasStatus" | "canvas_status" => Ok(GeneratedField::CanvasStatus), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -2500,6 +2522,8 @@ impl<'de> serde::Deserialize<'de> for Report { let mut metadata__ = None; let mut is_archived__ = None; let mut report_type__ = None; + let mut canvas_execution_id__ = None; + let mut canvas_status__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::ReportId => { @@ -2610,6 +2634,18 @@ impl<'de> serde::Deserialize<'de> for Report { } report_type__ = Some(map_.next_value::()? as i32); } + GeneratedField::CanvasExecutionId => { + if canvas_execution_id__.is_some() { + return Err(serde::de::Error::duplicate_field("canvasExecutionId")); + } + canvas_execution_id__ = map_.next_value()?; + } + GeneratedField::CanvasStatus => { + if canvas_status__.is_some() { + return Err(serde::de::Error::duplicate_field("canvasStatus")); + } + canvas_status__ = map_.next_value::<::std::option::Option>()?.map(|x| x as i32); + } } } Ok(Report { @@ -2631,6 +2667,8 @@ impl<'de> serde::Deserialize<'de> for Report { metadata: metadata__.unwrap_or_default(), is_archived: is_archived__.unwrap_or_default(), report_type: report_type__.unwrap_or_default(), + canvas_execution_id: canvas_execution_id__, + canvas_status: canvas_status__, }) } } @@ -3861,6 +3899,12 @@ impl serde::Serialize for ReportRuleSummary { if self.deleted_date.is_some() { len += 1; } + if !self.resolved_family_stats.is_empty() { + len += 1; + } + if !self.resolved_alignment_configs.is_empty() { + len += 1; + } if self.display_order != 0 { len += 1; } @@ -3909,6 +3953,12 @@ impl serde::Serialize for ReportRuleSummary { if let Some(v) = self.deleted_date.as_ref() { struct_ser.serialize_field("deletedDate", v)?; } + if !self.resolved_family_stats.is_empty() { + struct_ser.serialize_field("resolvedFamilyStats", &self.resolved_family_stats)?; + } + if !self.resolved_alignment_configs.is_empty() { + struct_ser.serialize_field("resolvedAlignmentConfigs", &self.resolved_alignment_configs)?; + } if self.display_order != 0 { struct_ser.serialize_field("displayOrder", &self.display_order)?; } @@ -3949,6 +3999,10 @@ impl<'de> serde::Deserialize<'de> for ReportRuleSummary { "assetId", "deleted_date", "deletedDate", + "resolved_family_stats", + "resolvedFamilyStats", + "resolved_alignment_configs", + "resolvedAlignmentConfigs", "display_order", "displayOrder", ]; @@ -3969,6 +4023,8 @@ impl<'de> serde::Deserialize<'de> for ReportRuleSummary { ModifiedDate, AssetId, DeletedDate, + ResolvedFamilyStats, + ResolvedAlignmentConfigs, DisplayOrder, } impl<'de> serde::Deserialize<'de> for GeneratedField { @@ -4005,6 +4061,8 @@ impl<'de> serde::Deserialize<'de> for ReportRuleSummary { "modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate), "assetId" | "asset_id" => Ok(GeneratedField::AssetId), "deletedDate" | "deleted_date" => Ok(GeneratedField::DeletedDate), + "resolvedFamilyStats" | "resolved_family_stats" => Ok(GeneratedField::ResolvedFamilyStats), + "resolvedAlignmentConfigs" | "resolved_alignment_configs" => Ok(GeneratedField::ResolvedAlignmentConfigs), "displayOrder" | "display_order" => Ok(GeneratedField::DisplayOrder), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } @@ -4039,6 +4097,8 @@ impl<'de> serde::Deserialize<'de> for ReportRuleSummary { let mut modified_date__ = None; let mut asset_id__ = None; let mut deleted_date__ = None; + let mut resolved_family_stats__ = None; + let mut resolved_alignment_configs__ = None; let mut display_order__ = None; while let Some(k) = map_.next_key()? { match k { @@ -4134,6 +4194,18 @@ impl<'de> serde::Deserialize<'de> for ReportRuleSummary { } deleted_date__ = map_.next_value()?; } + GeneratedField::ResolvedFamilyStats => { + if resolved_family_stats__.is_some() { + return Err(serde::de::Error::duplicate_field("resolvedFamilyStats")); + } + resolved_family_stats__ = Some(map_.next_value()?); + } + GeneratedField::ResolvedAlignmentConfigs => { + if resolved_alignment_configs__.is_some() { + return Err(serde::de::Error::duplicate_field("resolvedAlignmentConfigs")); + } + resolved_alignment_configs__ = Some(map_.next_value()?); + } GeneratedField::DisplayOrder => { if display_order__.is_some() { return Err(serde::de::Error::duplicate_field("displayOrder")); @@ -4159,6 +4231,8 @@ impl<'de> serde::Deserialize<'de> for ReportRuleSummary { modified_date: modified_date__, asset_id: asset_id__.unwrap_or_default(), deleted_date: deleted_date__, + resolved_family_stats: resolved_family_stats__.unwrap_or_default(), + resolved_alignment_configs: resolved_alignment_configs__.unwrap_or_default(), display_order: display_order__.unwrap_or_default(), }) } @@ -4267,6 +4341,7 @@ impl serde::Serialize for ReportType { let variant = match self { Self::Unspecified => "REPORT_TYPE_UNSPECIFIED", Self::RuleEvaluation => "REPORT_TYPE_RULE_EVALUATION", + Self::Canvas => "REPORT_TYPE_CANVAS", }; serializer.serialize_str(variant) } @@ -4280,6 +4355,7 @@ impl<'de> serde::Deserialize<'de> for ReportType { const FIELDS: &[&str] = &[ "REPORT_TYPE_UNSPECIFIED", "REPORT_TYPE_RULE_EVALUATION", + "REPORT_TYPE_CANVAS", ]; struct GeneratedVisitor; @@ -4322,6 +4398,7 @@ impl<'de> serde::Deserialize<'de> for ReportType { match value { "REPORT_TYPE_UNSPECIFIED" => Ok(ReportType::Unspecified), "REPORT_TYPE_RULE_EVALUATION" => Ok(ReportType::RuleEvaluation), + "REPORT_TYPE_CANVAS" => Ok(ReportType::Canvas), _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), } } @@ -4388,6 +4465,12 @@ impl serde::Serialize for ReportWithCumulativeSummary { if self.report_type != 0 { len += 1; } + if self.canvas_execution_id.is_some() { + len += 1; + } + if self.canvas_status.is_some() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.reports.v1.ReportWithCumulativeSummary", len)?; if !self.report_id.is_empty() { struct_ser.serialize_field("reportId", &self.report_id)?; @@ -4442,6 +4525,14 @@ impl serde::Serialize for ReportWithCumulativeSummary { .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.report_type)))?; struct_ser.serialize_field("reportType", &v)?; } + if let Some(v) = self.canvas_execution_id.as_ref() { + struct_ser.serialize_field("canvasExecutionId", v)?; + } + if let Some(v) = self.canvas_status.as_ref() { + let v = super::super::canvas::v1::CanvasCellExecutionStatus::try_from(*v) + .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; + struct_ser.serialize_field("canvasStatus", &v)?; + } struct_ser.end() } } @@ -4483,6 +4574,10 @@ impl<'de> serde::Deserialize<'de> for ReportWithCumulativeSummary { "isArchived", "report_type", "reportType", + "canvas_execution_id", + "canvasExecutionId", + "canvas_status", + "canvasStatus", ]; #[allow(clippy::enum_variant_names)] @@ -4504,6 +4599,8 @@ impl<'de> serde::Deserialize<'de> for ReportWithCumulativeSummary { ArchivedDate, IsArchived, ReportType, + CanvasExecutionId, + CanvasStatus, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -4542,6 +4639,8 @@ impl<'de> serde::Deserialize<'de> for ReportWithCumulativeSummary { "archivedDate" | "archived_date" => Ok(GeneratedField::ArchivedDate), "isArchived" | "is_archived" => Ok(GeneratedField::IsArchived), "reportType" | "report_type" => Ok(GeneratedField::ReportType), + "canvasExecutionId" | "canvas_execution_id" => Ok(GeneratedField::CanvasExecutionId), + "canvasStatus" | "canvas_status" => Ok(GeneratedField::CanvasStatus), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -4578,6 +4677,8 @@ impl<'de> serde::Deserialize<'de> for ReportWithCumulativeSummary { let mut archived_date__ = None; let mut is_archived__ = None; let mut report_type__ = None; + let mut canvas_execution_id__ = None; + let mut canvas_status__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::ReportId => { @@ -4682,6 +4783,18 @@ impl<'de> serde::Deserialize<'de> for ReportWithCumulativeSummary { } report_type__ = Some(map_.next_value::()? as i32); } + GeneratedField::CanvasExecutionId => { + if canvas_execution_id__.is_some() { + return Err(serde::de::Error::duplicate_field("canvasExecutionId")); + } + canvas_execution_id__ = map_.next_value()?; + } + GeneratedField::CanvasStatus => { + if canvas_status__.is_some() { + return Err(serde::de::Error::duplicate_field("canvasStatus")); + } + canvas_status__ = map_.next_value::<::std::option::Option>()?.map(|x| x as i32); + } } } Ok(ReportWithCumulativeSummary { @@ -4702,6 +4815,8 @@ impl<'de> serde::Deserialize<'de> for ReportWithCumulativeSummary { archived_date: archived_date__, is_archived: is_archived__.unwrap_or_default(), report_type: report_type__.unwrap_or_default(), + canvas_execution_id: canvas_execution_id__, + canvas_status: canvas_status__, }) } } @@ -4910,6 +5025,454 @@ impl<'de> serde::Deserialize<'de> for RerunReportResponse { deserializer.deserialize_struct("sift.reports.v1.RerunReportResponse", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for ResolvedAlignmentEntry { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.channel_references.is_empty() { + len += 1; + } + if self.t0.is_some() { + len += 1; + } + if self.start_time.is_some() { + len += 1; + } + if self.end_time.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.reports.v1.ResolvedAlignmentEntry", len)?; + if !self.channel_references.is_empty() { + struct_ser.serialize_field("channelReferences", &self.channel_references)?; + } + if let Some(v) = self.t0.as_ref() { + struct_ser.serialize_field("t0", v)?; + } + if let Some(v) = self.start_time.as_ref() { + struct_ser.serialize_field("startTime", v)?; + } + if let Some(v) = self.end_time.as_ref() { + struct_ser.serialize_field("endTime", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ResolvedAlignmentEntry { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "channel_references", + "channelReferences", + "t0", + "start_time", + "startTime", + "end_time", + "endTime", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + ChannelReferences, + T0, + StartTime, + EndTime, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "channelReferences" | "channel_references" => Ok(GeneratedField::ChannelReferences), + "t0" => Ok(GeneratedField::T0), + "startTime" | "start_time" => Ok(GeneratedField::StartTime), + "endTime" | "end_time" => Ok(GeneratedField::EndTime), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ResolvedAlignmentEntry; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.reports.v1.ResolvedAlignmentEntry") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut channel_references__ = None; + let mut t0__ = None; + let mut start_time__ = None; + let mut end_time__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::ChannelReferences => { + if channel_references__.is_some() { + return Err(serde::de::Error::duplicate_field("channelReferences")); + } + channel_references__ = Some(map_.next_value()?); + } + GeneratedField::T0 => { + if t0__.is_some() { + return Err(serde::de::Error::duplicate_field("t0")); + } + t0__ = map_.next_value()?; + } + GeneratedField::StartTime => { + if start_time__.is_some() { + return Err(serde::de::Error::duplicate_field("startTime")); + } + start_time__ = map_.next_value()?; + } + GeneratedField::EndTime => { + if end_time__.is_some() { + return Err(serde::de::Error::duplicate_field("endTime")); + } + end_time__ = map_.next_value()?; + } + } + } + Ok(ResolvedAlignmentEntry { + channel_references: channel_references__.unwrap_or_default(), + t0: t0__, + start_time: start_time__, + end_time: end_time__, + }) + } + } + deserializer.deserialize_struct("sift.reports.v1.ResolvedAlignmentEntry", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ResolvedAlignmentPoint { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.timestamp.is_some() { + len += 1; + } + if self.alignment_config.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.reports.v1.ResolvedAlignmentPoint", len)?; + if let Some(v) = self.timestamp.as_ref() { + struct_ser.serialize_field("timestamp", v)?; + } + if let Some(v) = self.alignment_config.as_ref() { + match v { + resolved_alignment_point::AlignmentConfig::Run(v) => { + struct_ser.serialize_field("run", v)?; + } + resolved_alignment_point::AlignmentConfig::Annotation(v) => { + struct_ser.serialize_field("annotation", v)?; + } + resolved_alignment_point::AlignmentConfig::TimestampConfig(v) => { + struct_ser.serialize_field("timestampConfig", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ResolvedAlignmentPoint { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "timestamp", + "run", + "annotation", + "timestamp_config", + "timestampConfig", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Timestamp, + Run, + Annotation, + TimestampConfig, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "timestamp" => Ok(GeneratedField::Timestamp), + "run" => Ok(GeneratedField::Run), + "annotation" => Ok(GeneratedField::Annotation), + "timestampConfig" | "timestamp_config" => Ok(GeneratedField::TimestampConfig), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ResolvedAlignmentPoint; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.reports.v1.ResolvedAlignmentPoint") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut timestamp__ = None; + let mut alignment_config__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Timestamp => { + if timestamp__.is_some() { + return Err(serde::de::Error::duplicate_field("timestamp")); + } + timestamp__ = map_.next_value()?; + } + GeneratedField::Run => { + if alignment_config__.is_some() { + return Err(serde::de::Error::duplicate_field("run")); + } + alignment_config__ = map_.next_value::<::std::option::Option<_>>()?.map(resolved_alignment_point::AlignmentConfig::Run) +; + } + GeneratedField::Annotation => { + if alignment_config__.is_some() { + return Err(serde::de::Error::duplicate_field("annotation")); + } + alignment_config__ = map_.next_value::<::std::option::Option<_>>()?.map(resolved_alignment_point::AlignmentConfig::Annotation) +; + } + GeneratedField::TimestampConfig => { + if alignment_config__.is_some() { + return Err(serde::de::Error::duplicate_field("timestampConfig")); + } + alignment_config__ = map_.next_value::<::std::option::Option<_>>()?.map(resolved_alignment_point::AlignmentConfig::TimestampConfig) +; + } + } + } + Ok(ResolvedAlignmentPoint { + timestamp: timestamp__, + alignment_config: alignment_config__, + }) + } + } + deserializer.deserialize_struct("sift.reports.v1.ResolvedAlignmentPoint", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ResolvedFamilyStat { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.reference.is_empty() { + len += 1; + } + if !self.family_id.is_empty() { + len += 1; + } + if !self.family_version_id.is_empty() { + len += 1; + } + if !self.family_stat_expression_id.is_empty() { + len += 1; + } + if !self.family_stat_range_id.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.reports.v1.ResolvedFamilyStat", len)?; + if !self.reference.is_empty() { + struct_ser.serialize_field("reference", &self.reference)?; + } + if !self.family_id.is_empty() { + struct_ser.serialize_field("familyId", &self.family_id)?; + } + if !self.family_version_id.is_empty() { + struct_ser.serialize_field("familyVersionId", &self.family_version_id)?; + } + if !self.family_stat_expression_id.is_empty() { + struct_ser.serialize_field("familyStatExpressionId", &self.family_stat_expression_id)?; + } + if !self.family_stat_range_id.is_empty() { + struct_ser.serialize_field("familyStatRangeId", &self.family_stat_range_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ResolvedFamilyStat { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "reference", + "family_id", + "familyId", + "family_version_id", + "familyVersionId", + "family_stat_expression_id", + "familyStatExpressionId", + "family_stat_range_id", + "familyStatRangeId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Reference, + FamilyId, + FamilyVersionId, + FamilyStatExpressionId, + FamilyStatRangeId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "reference" => Ok(GeneratedField::Reference), + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + "familyVersionId" | "family_version_id" => Ok(GeneratedField::FamilyVersionId), + "familyStatExpressionId" | "family_stat_expression_id" => Ok(GeneratedField::FamilyStatExpressionId), + "familyStatRangeId" | "family_stat_range_id" => Ok(GeneratedField::FamilyStatRangeId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ResolvedFamilyStat; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.reports.v1.ResolvedFamilyStat") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut reference__ = None; + let mut family_id__ = None; + let mut family_version_id__ = None; + let mut family_stat_expression_id__ = None; + let mut family_stat_range_id__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Reference => { + if reference__.is_some() { + return Err(serde::de::Error::duplicate_field("reference")); + } + reference__ = Some(map_.next_value()?); + } + GeneratedField::FamilyId => { + if family_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyVersionId => { + if family_version_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyVersionId")); + } + family_version_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStatExpressionId => { + if family_stat_expression_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatExpressionId")); + } + family_stat_expression_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStatRangeId => { + if family_stat_range_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatRangeId")); + } + family_stat_range_id__ = Some(map_.next_value()?); + } + } + } + Ok(ResolvedFamilyStat { + reference: reference__.unwrap_or_default(), + family_id: family_id__.unwrap_or_default(), + family_version_id: family_version_id__.unwrap_or_default(), + family_stat_expression_id: family_stat_expression_id__.unwrap_or_default(), + family_stat_range_id: family_stat_range_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.reports.v1.ResolvedFamilyStat", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for UpdateReportRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result diff --git a/rust/crates/sift_rs/src/gen/sift/rule_evaluation/v1/sift.rule_evaluation.v1.rs b/rust/crates/sift_rs/src/gen/sift/rule_evaluation/v1/sift.rule_evaluation.v1.rs index e3df7dca02..70a6c67124 100644 --- a/rust/crates/sift_rs/src/gen/sift/rule_evaluation/v1/sift.rule_evaluation.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift/rule_evaluation/v1/sift.rule_evaluation.v1.rs @@ -1,6 +1,6 @@ // @generated // This file is @generated by prost-build. -#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct EvaluateRulesRequest { #[prost(message, optional, tag="6")] pub annotation_options: ::core::option::Option, @@ -8,6 +8,8 @@ pub struct EvaluateRulesRequest { pub organization_id: ::prost::alloc::string::String, #[prost(string, optional, tag="8")] pub report_name: ::core::option::Option<::prost::alloc::string::String>, + #[prost(message, repeated, tag="11")] + pub run_family_alignment_configs: ::prost::alloc::vec::Vec, #[prost(oneof="evaluate_rules_request::Time", tags="1, 2, 9")] pub time: ::core::option::Option, #[prost(oneof="evaluate_rules_request::Mode", tags="3, 4, 5, 10")] @@ -87,6 +89,8 @@ pub struct EvaluateRulesResponse { pub struct EvaluateRulesPreviewRequest { #[prost(string, tag="7")] pub organization_id: ::prost::alloc::string::String, + #[prost(message, repeated, tag="9")] + pub run_family_alignment_configs: ::prost::alloc::vec::Vec, #[prost(oneof="evaluate_rules_preview_request::Time", tags="1, 8")] pub time: ::core::option::Option, #[prost(oneof="evaluate_rules_preview_request::Mode", tags="3, 4, 5, 6")] @@ -113,6 +117,25 @@ pub mod evaluate_rules_preview_request { RuleConfigs(super::EvaluateRulesFromRuleConfigs), } } +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct RunFamilyAlignmentConfig { + #[prost(string, tag="1")] + pub family_alignment_name: ::prost::alloc::string::String, + #[prost(oneof="run_family_alignment_config::AlignmentConfig", tags="2, 3, 4")] + pub alignment_config: ::core::option::Option, +} +/// Nested message and enum types in `RunFamilyAlignmentConfig`. +pub mod run_family_alignment_config { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum AlignmentConfig { + #[prost(message, tag="2")] + Run(super::super::super::families::v1::RunAlignment), + #[prost(message, tag="3")] + Annotation(super::super::super::families::v1::AnnotationAlignment), + #[prost(message, tag="4")] + Timestamp(super::super::super::families::v1::TimestampAlignment), + } +} #[derive(Clone, PartialEq, ::prost::Message)] pub struct EvaluateRulesFromRuleConfigs { #[prost(message, repeated, tag="1")] @@ -127,7 +150,7 @@ pub struct EvaluateRulesPreviewResponse { } /// Encoded file descriptor set for the `sift.rule_evaluation.v1` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xa5, 0x40, 0x0a, 0x2d, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, + 0x0a, 0xc1, 0x4b, 0x0a, 0x2d, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, @@ -143,9 +166,13 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x69, 0x66, 0x74, + 0x66, 0x69, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x69, 0x66, 0x74, + 0x2f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x73, 0x69, 0x66, + 0x74, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x96, 0x06, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8f, 0x07, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, @@ -192,456 +219,542 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, - 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, - 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xeb, - 0x01, 0x0a, 0x0c, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x39, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, - 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x3f, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x48, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xcf, 0x01, 0x0a, - 0x0f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x40, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x6b, - 0x0a, 0x24, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, - 0x72, 0x6f, 0x6d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x78, 0x0a, 0x1f, 0x45, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x55, - 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x4e, 0x0a, 0x1d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x5e, 0x0a, 0x1e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, - 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x15, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3d, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, - 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x05, 0x6a, 0x6f, - 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, - 0xde, 0x04, 0x0a, 0x1b, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x3b, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x00, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x4d, 0x0a, 0x0e, - 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x77, + 0x0a, 0x1c, 0x72, 0x75, 0x6e, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x72, - 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x55, 0x0a, 0x05, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, 0x52, 0x05, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x48, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x63, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x73, 0x48, 0x01, 0x52, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x42, 0x06, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, - 0x22, 0x5f, 0x0a, 0x1c, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, - 0x12, 0x3f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x73, 0x22, 0xae, 0x01, 0x0a, 0x1c, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x4f, 0x0a, 0x13, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x11, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x32, 0xd8, 0x06, 0x0a, 0x15, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc3, 0x02, 0x0a, - 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2d, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x75, 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x19, 0x72, 0x75, + 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, + 0x06, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xeb, 0x01, 0x0a, 0x0c, 0x52, 0x75, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x03, + 0x72, 0x75, 0x6e, 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x24, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x43, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x22, 0x78, 0x0a, 0x1f, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x4e, + 0x0a, 0x1d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, + 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x2d, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, + 0x72, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x5e, + 0x0a, 0x1e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0xb7, + 0x01, 0x0a, 0x15, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, + 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, 0xd7, 0x05, 0x0a, 0x1b, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, + 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x4d, 0x0a, 0x0e, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x55, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x48, 0x01, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x0d, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, + 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, 0x52, 0x0c, 0x72, 0x75, + 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x63, 0x0a, 0x0f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, + 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, + 0x5a, 0x0a, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x46, 0x72, 0x6f, + 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x48, 0x01, 0x52, 0x0b, + 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x77, 0x0a, 0x1c, 0x72, 0x75, 0x6e, + 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x31, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x19, 0x72, 0x75, 0x6e, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6d, 0x6f, + 0x64, 0x65, 0x22, 0xaa, 0x02, 0x0a, 0x18, 0x52, 0x75, 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x37, 0x0a, 0x15, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x72, 0x75, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6c, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x03, 0x72, 0x75, 0x6e, 0x12, 0x47, 0x0a, 0x0a, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, + 0x5f, 0x0a, 0x1c, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, + 0x3f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x22, 0xae, 0x01, 0x0a, 0x1c, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3d, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x4f, 0x0a, 0x13, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, + 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, + 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x32, 0xd8, 0x06, 0x0a, 0x15, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc3, 0x02, 0x0a, 0x0d, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd2, 0x01, - 0x92, 0x41, 0xa7, 0x01, 0x12, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x1a, 0x95, 0x01, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x64, 0x65, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x67, - 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x49, 0x44, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0xda, 0x02, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x34, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, - 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd4, 0x01, 0x92, 0x41, 0xa1, 0x01, 0x12, - 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, - 0x65, 0x76, 0x69, 0x65, 0x77, 0x1a, 0x88, 0x01, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x20, - 0x61, 0x20, 0x64, 0x72, 0x79, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, - 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x1a, - 0x9b, 0x01, 0x92, 0x41, 0x97, 0x01, 0x12, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x1a, 0x79, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, - 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, - 0x73, 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x65, 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x32, 0x31, 0x31, 0x30, 0x32, 0x42, 0xca, 0x01, - 0x92, 0x41, 0x1b, 0x12, 0x19, 0x0a, 0x17, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x45, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x0a, 0x1b, - 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, - 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x52, 0x75, 0x6c, - 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x2e, - 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x53, 0x69, 0x66, - 0x74, 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x18, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xb3, 0x20, 0x0a, 0x07, 0x12, - 0x05, 0x00, 0x00, 0x8c, 0x01, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, - 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x20, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, - 0x12, 0x03, 0x04, 0x00, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, 0x29, - 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x06, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, - 0x03, 0x12, 0x03, 0x07, 0x00, 0x38, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, 0x08, 0x00, - 0x37, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x05, 0x12, 0x03, 0x09, 0x00, 0x23, 0x0a, 0x09, 0x0a, 0x01, - 0x08, 0x12, 0x04, 0x0b, 0x00, 0x0d, 0x02, 0x0a, 0x0b, 0x0a, 0x03, 0x08, 0x92, 0x08, 0x12, 0x04, - 0x0b, 0x07, 0x0d, 0x01, 0x0a, 0x0c, 0x0a, 0x05, 0x08, 0x92, 0x08, 0x02, 0x01, 0x12, 0x03, 0x0c, - 0x09, 0x29, 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x0f, 0x00, 0x2f, 0x01, 0x0a, 0x0a, - 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x0f, 0x08, 0x1d, 0x0a, 0x0b, 0x0a, 0x03, 0x06, 0x00, - 0x03, 0x12, 0x04, 0x10, 0x02, 0x16, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x03, 0x92, 0x08, - 0x12, 0x04, 0x10, 0x09, 0x16, 0x03, 0x0a, 0x0d, 0x0a, 0x06, 0x06, 0x00, 0x03, 0x92, 0x08, 0x02, - 0x12, 0x03, 0x11, 0x04, 0x2d, 0x0a, 0x0e, 0x0a, 0x07, 0x06, 0x00, 0x03, 0x92, 0x08, 0x03, 0x02, - 0x12, 0x03, 0x13, 0x06, 0x63, 0x0a, 0x0e, 0x0a, 0x07, 0x06, 0x00, 0x03, 0x92, 0x08, 0x03, 0x01, - 0x12, 0x03, 0x14, 0x06, 0x34, 0x0a, 0xa6, 0x01, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x04, - 0x19, 0x02, 0x22, 0x03, 0x1a, 0x97, 0x01, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x64, 0x65, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, - 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x72, - 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x49, 0x44, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x19, 0x06, 0x13, 0x0a, 0x0c, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x19, 0x14, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x00, 0x03, 0x12, 0x03, 0x19, 0x33, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, - 0x04, 0x12, 0x04, 0x1a, 0x04, 0x1d, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x00, 0x04, - 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x1a, 0x0b, 0x1d, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, - 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x1b, 0x06, 0x2a, 0x0a, 0x11, 0x0a, - 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x1c, 0x06, 0x0f, - 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x1e, 0x04, 0x21, 0x06, 0x0a, - 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x12, 0x04, 0x1e, 0x0b, 0x21, 0x05, - 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x1f, 0x06, - 0x1e, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x20, - 0x06, 0xaa, 0x01, 0x0a, 0x99, 0x01, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x04, 0x25, 0x02, - 0x2e, 0x03, 0x1a, 0x8a, 0x01, 0x20, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, 0x20, - 0x64, 0x72, 0x79, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x67, 0x61, - 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, - 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, - 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x25, 0x06, 0x1a, 0x0a, 0x0c, 0x0a, - 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x25, 0x1b, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x06, - 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x25, 0x41, 0x5d, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, - 0x01, 0x04, 0x12, 0x04, 0x26, 0x04, 0x29, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x01, - 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x26, 0x0b, 0x29, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, - 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x27, 0x06, 0x32, 0x0a, 0x11, - 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x28, 0x06, - 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x2a, 0x04, 0x2d, 0x06, - 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x12, 0x04, 0x2a, 0x0b, 0x2d, - 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x2b, - 0x06, 0x25, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, - 0x2c, 0x06, 0x9d, 0x01, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x31, 0x00, 0x46, 0x01, - 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x31, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x00, 0x08, 0x00, 0x12, 0x04, 0x32, 0x02, 0x36, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, - 0x08, 0x00, 0x01, 0x12, 0x03, 0x32, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, - 0x06, 0x12, 0x03, 0x33, 0x04, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, - 0x33, 0x04, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x33, 0x2b, - 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x33, 0x31, 0x32, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x06, 0x12, 0x03, 0x34, 0x04, 0x13, 0x0a, 0x0b, 0x0a, - 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x34, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x01, 0x01, 0x12, 0x03, 0x34, 0x14, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, - 0x03, 0x12, 0x03, 0x34, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x06, 0x12, - 0x03, 0x35, 0x04, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x35, 0x04, - 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x35, 0x11, 0x1f, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x35, 0x22, 0x23, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x00, 0x08, 0x01, 0x12, 0x04, 0x37, 0x02, 0x3c, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x00, 0x08, 0x01, 0x01, 0x12, 0x03, 0x37, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x03, 0x06, 0x12, 0x03, 0x38, 0x04, 0x28, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, - 0x03, 0x38, 0x04, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x38, - 0x29, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x38, 0x31, 0x32, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x06, 0x12, 0x03, 0x39, 0x04, 0x21, 0x0a, 0x0b, - 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x39, 0x04, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x39, 0x22, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x04, 0x03, 0x12, 0x03, 0x39, 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x06, - 0x12, 0x03, 0x3a, 0x04, 0x23, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x3a, - 0x04, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x3a, 0x24, 0x33, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x3a, 0x36, 0x37, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, 0x03, 0x3b, 0x04, 0x08, 0x0a, 0x0b, 0x0a, 0x04, - 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x3b, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x06, 0x01, 0x12, 0x03, 0x3b, 0x09, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, - 0x12, 0x03, 0x3b, 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x06, 0x12, 0x03, - 0x3d, 0x02, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, 0x3d, 0x02, 0x38, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x3d, 0x21, 0x33, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x3d, 0x36, 0x37, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x03, 0x40, 0x02, 0x08, 0x0a, 0x4b, 0x0a, 0x04, 0x04, 0x00, - 0x02, 0x08, 0x12, 0x03, 0x40, 0x02, 0x46, 0x1a, 0x3e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, - 0x75, 0x73, 0x65, 0x72, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, - 0x12, 0x03, 0x40, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, - 0x40, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x08, 0x12, 0x03, 0x40, 0x1d, - 0x45, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x40, - 0x1e, 0x44, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x04, 0x12, 0x03, 0x43, 0x02, 0x0a, - 0x0a, 0x5c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x09, 0x12, 0x03, 0x43, 0x02, 0x4b, 0x1a, 0x4f, 0x20, - 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x05, 0x12, 0x03, 0x43, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x43, 0x12, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x09, 0x03, 0x12, 0x03, 0x43, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, - 0x08, 0x12, 0x03, 0x43, 0x22, 0x4a, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x09, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x03, 0x43, 0x23, 0x49, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x48, - 0x00, 0x4c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x48, 0x08, 0x14, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x49, 0x02, 0x28, 0x0a, 0x0b, 0x0a, - 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x49, 0x02, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, - 0x02, 0x00, 0x01, 0x12, 0x03, 0x49, 0x29, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, - 0x03, 0x12, 0x03, 0x49, 0x2f, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x04, 0x12, - 0x03, 0x4a, 0x02, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x4a, 0x02, - 0x5d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x06, 0x12, 0x03, 0x4a, 0x0b, 0x24, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x4a, 0x25, 0x2f, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x4a, 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, 0x4a, 0x34, 0x5c, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, - 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x4a, 0x35, 0x5b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, - 0x02, 0x02, 0x04, 0x12, 0x03, 0x4b, 0x02, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, - 0x12, 0x03, 0x4b, 0x02, 0x5b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x06, 0x12, 0x03, - 0x4b, 0x0b, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x4b, 0x25, - 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x4b, 0x30, 0x31, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x08, 0x12, 0x03, 0x4b, 0x32, 0x5a, 0x0a, 0x0f, 0x0a, - 0x08, 0x04, 0x01, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x4b, 0x33, 0x59, 0x0a, 0x0a, - 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x4e, 0x00, 0x52, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, - 0x01, 0x12, 0x03, 0x4e, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x06, 0x12, - 0x03, 0x4f, 0x02, 0x24, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x4f, 0x02, - 0x59, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4f, 0x25, 0x2b, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4f, 0x2e, 0x2f, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, 0x03, 0x4f, 0x30, 0x58, 0x0a, 0x0f, 0x0a, 0x08, 0x04, - 0x02, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x4f, 0x31, 0x57, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x01, 0x06, 0x12, 0x03, 0x50, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, - 0x02, 0x01, 0x12, 0x03, 0x50, 0x02, 0x54, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, - 0x12, 0x03, 0x50, 0x1c, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, - 0x50, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, 0x50, 0x2b, - 0x53, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x50, - 0x2c, 0x52, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x06, 0x12, 0x03, 0x51, 0x02, 0x1b, - 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x03, 0x51, 0x02, 0x52, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x03, 0x51, 0x1c, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x02, 0x03, 0x12, 0x03, 0x51, 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, - 0x02, 0x08, 0x12, 0x03, 0x51, 0x29, 0x51, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x02, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x03, 0x51, 0x2a, 0x50, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, - 0x54, 0x00, 0x56, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x54, 0x08, 0x2c, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, 0x03, 0x55, 0x02, 0x29, 0x0a, 0x0b, - 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x55, 0x02, 0x5d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x55, 0x2a, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, - 0x00, 0x03, 0x12, 0x03, 0x55, 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x08, - 0x12, 0x03, 0x55, 0x34, 0x5c, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x03, 0x02, 0x00, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x03, 0x55, 0x35, 0x5b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x58, 0x00, - 0x5a, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x58, 0x08, 0x27, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x06, 0x12, 0x03, 0x59, 0x02, 0x28, 0x0a, 0x0b, 0x0a, 0x04, - 0x04, 0x04, 0x02, 0x00, 0x12, 0x03, 0x59, 0x02, 0x66, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, - 0x00, 0x01, 0x12, 0x03, 0x59, 0x29, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, - 0x12, 0x03, 0x59, 0x3b, 0x3c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x08, 0x12, 0x03, - 0x59, 0x3d, 0x65, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x03, 0x59, 0x3e, 0x64, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x05, 0x12, 0x04, 0x5c, 0x00, 0x5e, 0x01, - 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x03, 0x5c, 0x08, 0x25, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x05, 0x02, 0x00, 0x04, 0x12, 0x03, 0x5d, 0x02, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, - 0x02, 0x00, 0x12, 0x03, 0x5d, 0x02, 0x50, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x05, - 0x12, 0x03, 0x5d, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x03, - 0x5d, 0x12, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, 0x5d, 0x25, - 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x08, 0x12, 0x03, 0x5d, 0x27, 0x4f, 0x0a, - 0x0f, 0x0a, 0x08, 0x04, 0x05, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x5d, 0x28, 0x4e, - 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x04, 0x60, 0x00, 0x62, 0x01, 0x0a, 0x0a, 0x0a, 0x03, - 0x04, 0x06, 0x01, 0x12, 0x03, 0x60, 0x08, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, - 0x06, 0x12, 0x03, 0x61, 0x02, 0x24, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x03, - 0x61, 0x02, 0x57, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x03, 0x61, 0x25, - 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x03, 0x61, 0x2c, 0x2d, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x08, 0x12, 0x03, 0x61, 0x2e, 0x56, 0x0a, 0x0f, 0x0a, - 0x08, 0x04, 0x06, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x61, 0x2f, 0x55, 0x0a, 0x0a, - 0x0a, 0x02, 0x04, 0x07, 0x12, 0x04, 0x64, 0x00, 0x6c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x07, - 0x01, 0x12, 0x03, 0x64, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, - 0x03, 0x65, 0x02, 0x07, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x03, 0x65, 0x02, - 0x4e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x01, 0x12, 0x03, 0x65, 0x08, 0x20, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x03, 0x12, 0x03, 0x65, 0x23, 0x24, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x07, 0x02, 0x00, 0x08, 0x12, 0x03, 0x65, 0x25, 0x4d, 0x0a, 0x0f, 0x0a, 0x08, 0x04, - 0x07, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x65, 0x26, 0x4c, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x07, 0x02, 0x01, 0x04, 0x12, 0x03, 0x68, 0x02, 0x0a, 0x0a, 0x50, 0x0a, 0x04, 0x04, 0x07, - 0x02, 0x01, 0x12, 0x03, 0x68, 0x02, 0x49, 0x1a, 0x43, 0x20, 0x41, 0x20, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x65, - 0x72, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x67, 0x61, - 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x07, 0x02, 0x01, 0x05, 0x12, 0x03, 0x68, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, - 0x02, 0x01, 0x01, 0x12, 0x03, 0x68, 0x12, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, - 0x03, 0x12, 0x03, 0x68, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x08, 0x12, - 0x03, 0x68, 0x20, 0x48, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x07, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x03, 0x68, 0x21, 0x47, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x04, 0x12, 0x03, - 0x6b, 0x02, 0x0a, 0x0a, 0x6a, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x02, 0x12, 0x03, 0x6b, 0x02, 0x46, - 0x1a, 0x5d, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x68, - 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x72, - 0x75, 0x6e, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20, 0x62, - 0x65, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x61, - 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x05, 0x12, 0x03, 0x6b, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x07, 0x02, 0x02, 0x01, 0x12, 0x03, 0x6b, 0x12, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, - 0x07, 0x02, 0x02, 0x03, 0x12, 0x03, 0x6b, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, - 0x02, 0x08, 0x12, 0x03, 0x6b, 0x1d, 0x45, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x07, 0x02, 0x02, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x03, 0x6b, 0x1e, 0x44, 0x0a, 0x0b, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x05, - 0x6e, 0x00, 0x81, 0x01, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x03, 0x6e, 0x08, - 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x08, 0x00, 0x12, 0x04, 0x6f, 0x02, 0x75, 0x03, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x08, 0x00, 0x01, 0x12, 0x03, 0x6f, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x08, 0x02, 0x00, 0x06, 0x12, 0x03, 0x70, 0x04, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, - 0x08, 0x02, 0x00, 0x12, 0x03, 0x70, 0x04, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, - 0x01, 0x12, 0x03, 0x70, 0x2b, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, 0x12, - 0x03, 0x70, 0x31, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x06, 0x12, 0x03, 0x71, - 0x04, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x03, 0x71, 0x04, 0x24, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x03, 0x71, 0x11, 0x1f, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x03, 0x71, 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x08, 0x08, 0x01, 0x12, 0x04, 0x76, 0x02, 0x7b, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x08, - 0x01, 0x01, 0x12, 0x03, 0x76, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x06, - 0x12, 0x03, 0x77, 0x04, 0x28, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x02, 0x12, 0x03, 0x77, - 0x04, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x01, 0x12, 0x03, 0x77, 0x29, 0x2e, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x03, 0x12, 0x03, 0x77, 0x31, 0x32, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x06, 0x12, 0x03, 0x78, 0x04, 0x21, 0x0a, 0x0b, 0x0a, 0x04, - 0x04, 0x08, 0x02, 0x03, 0x12, 0x03, 0x78, 0x04, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, - 0x03, 0x01, 0x12, 0x03, 0x78, 0x22, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x03, - 0x12, 0x03, 0x78, 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x04, 0x06, 0x12, 0x03, - 0x79, 0x04, 0x23, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x04, 0x12, 0x03, 0x79, 0x04, 0x38, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x04, 0x01, 0x12, 0x03, 0x79, 0x24, 0x33, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x08, 0x02, 0x04, 0x03, 0x12, 0x03, 0x79, 0x36, 0x37, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x08, 0x02, 0x05, 0x06, 0x12, 0x03, 0x7a, 0x04, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, - 0x02, 0x05, 0x12, 0x03, 0x7a, 0x04, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x01, - 0x12, 0x03, 0x7a, 0x21, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x03, 0x12, 0x03, - 0x7a, 0x30, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x06, 0x05, 0x12, 0x03, 0x7e, 0x02, - 0x08, 0x0a, 0x4b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x06, 0x12, 0x03, 0x7e, 0x02, 0x46, 0x1a, 0x3e, - 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x69, - 0x66, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x62, 0x65, 0x6c, 0x6f, - 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x08, 0x02, 0x06, 0x01, 0x12, 0x03, 0x7e, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x08, 0x02, 0x06, 0x03, 0x12, 0x03, 0x7e, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, - 0x02, 0x06, 0x08, 0x12, 0x03, 0x7e, 0x1d, 0x45, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x06, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x7e, 0x1e, 0x44, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x09, 0x12, - 0x06, 0x84, 0x01, 0x00, 0x86, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x04, - 0x84, 0x01, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x04, 0x12, 0x04, 0x85, - 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, 0x04, 0x85, 0x01, 0x02, - 0x60, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x06, 0x12, 0x04, 0x85, 0x01, 0x0b, 0x2a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x04, 0x85, 0x01, 0x2b, 0x32, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x04, 0x85, 0x01, 0x35, 0x36, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x08, 0x12, 0x04, 0x85, 0x01, 0x37, 0x5f, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x85, 0x01, 0x38, 0x5e, 0x0a, - 0x0c, 0x0a, 0x02, 0x04, 0x0a, 0x12, 0x06, 0x89, 0x01, 0x00, 0x8c, 0x01, 0x01, 0x0a, 0x0b, 0x0a, - 0x03, 0x04, 0x0a, 0x01, 0x12, 0x04, 0x89, 0x01, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, - 0x02, 0x00, 0x05, 0x12, 0x04, 0x8a, 0x01, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, - 0x00, 0x12, 0x04, 0x8a, 0x01, 0x02, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x01, - 0x12, 0x04, 0x8a, 0x01, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x03, 0x12, - 0x04, 0x8a, 0x01, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x08, 0x12, 0x04, - 0x8a, 0x01, 0x25, 0x4d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0a, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0x8a, 0x01, 0x26, 0x4c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x04, 0x12, - 0x04, 0x8b, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x01, 0x12, 0x04, 0x8b, - 0x01, 0x02, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x06, 0x12, 0x04, 0x8b, 0x01, - 0x0b, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8b, 0x01, 0x2a, - 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8b, 0x01, 0x40, 0x41, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd2, 0x01, 0x92, + 0x41, 0xa7, 0x01, 0x12, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x1a, 0x95, 0x01, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x67, 0x61, + 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, + 0x44, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, + 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0xda, 0x02, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x34, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x35, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd4, 0x01, 0x92, 0x41, 0xa1, 0x01, 0x12, 0x14, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x65, + 0x76, 0x69, 0x65, 0x77, 0x1a, 0x88, 0x01, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, + 0x20, 0x64, 0x72, 0x79, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x67, + 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, 0x6c, + 0x64, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, + 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x1a, 0x9b, + 0x01, 0x92, 0x41, 0x97, 0x01, 0x12, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x1a, 0x79, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x62, 0x6f, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, + 0x61, 0x72, 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x6c, 0x65, 0x2f, 0x32, 0x36, 0x35, 0x34, 0x32, 0x31, 0x31, 0x30, 0x32, 0x42, 0xca, 0x01, 0x92, + 0x41, 0x1b, 0x12, 0x19, 0x0a, 0x17, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x0a, 0x1b, 0x63, + 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x52, 0x75, 0x6c, 0x65, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, + 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, + 0xca, 0x02, 0x16, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x53, 0x69, 0x66, 0x74, + 0x5c, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5c, + 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x18, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xf0, 0x26, 0x0a, 0x07, 0x12, 0x05, + 0x00, 0x00, 0x98, 0x01, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, + 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x20, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, + 0x03, 0x04, 0x00, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, 0x29, 0x0a, + 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x06, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x03, + 0x12, 0x03, 0x07, 0x00, 0x38, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, 0x08, 0x00, 0x37, + 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x05, 0x12, 0x03, 0x09, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, + 0x06, 0x12, 0x03, 0x0a, 0x00, 0x27, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x07, 0x12, 0x03, 0x0b, 0x00, + 0x23, 0x0a, 0x09, 0x0a, 0x01, 0x08, 0x12, 0x04, 0x0d, 0x00, 0x0f, 0x02, 0x0a, 0x0b, 0x0a, 0x03, + 0x08, 0x92, 0x08, 0x12, 0x04, 0x0d, 0x07, 0x0f, 0x01, 0x0a, 0x0c, 0x0a, 0x05, 0x08, 0x92, 0x08, + 0x02, 0x01, 0x12, 0x03, 0x0e, 0x09, 0x29, 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x11, + 0x00, 0x31, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x11, 0x08, 0x1d, 0x0a, + 0x0b, 0x0a, 0x03, 0x06, 0x00, 0x03, 0x12, 0x04, 0x12, 0x02, 0x18, 0x04, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x00, 0x03, 0x92, 0x08, 0x12, 0x04, 0x12, 0x09, 0x18, 0x03, 0x0a, 0x0d, 0x0a, 0x06, 0x06, + 0x00, 0x03, 0x92, 0x08, 0x02, 0x12, 0x03, 0x13, 0x04, 0x2d, 0x0a, 0x0e, 0x0a, 0x07, 0x06, 0x00, + 0x03, 0x92, 0x08, 0x03, 0x02, 0x12, 0x03, 0x15, 0x06, 0x63, 0x0a, 0x0e, 0x0a, 0x07, 0x06, 0x00, + 0x03, 0x92, 0x08, 0x03, 0x01, 0x12, 0x03, 0x16, 0x06, 0x34, 0x0a, 0xa6, 0x01, 0x0a, 0x04, 0x06, + 0x00, 0x02, 0x00, 0x12, 0x04, 0x1b, 0x02, 0x24, 0x03, 0x1a, 0x97, 0x01, 0x20, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x61, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, + 0x75, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x20, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x44, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x1b, 0x06, + 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x1b, 0x14, 0x28, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1b, 0x33, 0x48, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x1c, 0x04, 0x1f, 0x06, 0x0a, 0x11, 0x0a, 0x09, + 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x1c, 0x0b, 0x1f, 0x05, 0x0a, + 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x1d, + 0x06, 0x2a, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, + 0x12, 0x03, 0x1e, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, + 0x20, 0x04, 0x23, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x12, + 0x04, 0x20, 0x0b, 0x23, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, + 0x02, 0x12, 0x03, 0x21, 0x06, 0x1e, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, + 0x08, 0x03, 0x12, 0x04, 0x22, 0x06, 0xaa, 0x01, 0x0a, 0x99, 0x01, 0x0a, 0x04, 0x06, 0x00, 0x02, + 0x01, 0x12, 0x04, 0x27, 0x02, 0x30, 0x03, 0x1a, 0x8a, 0x01, 0x20, 0x50, 0x65, 0x72, 0x66, 0x6f, + 0x72, 0x6d, 0x20, 0x61, 0x20, 0x64, 0x72, 0x79, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x27, + 0x06, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x27, 0x1b, 0x36, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x27, 0x41, 0x5d, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x28, 0x04, 0x2b, 0x06, 0x0a, 0x11, 0x0a, + 0x09, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x28, 0x0b, 0x2b, 0x05, + 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, + 0x29, 0x06, 0x32, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, + 0x07, 0x12, 0x03, 0x2a, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, + 0x04, 0x2c, 0x04, 0x2f, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, + 0x12, 0x04, 0x2c, 0x0b, 0x2f, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, + 0x08, 0x02, 0x12, 0x03, 0x2d, 0x06, 0x25, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, + 0x92, 0x08, 0x03, 0x12, 0x04, 0x2e, 0x06, 0x9d, 0x01, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, + 0x04, 0x33, 0x00, 0x49, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x33, 0x08, + 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x08, 0x00, 0x12, 0x04, 0x34, 0x02, 0x38, 0x03, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x08, 0x00, 0x01, 0x12, 0x03, 0x34, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x35, 0x04, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x00, 0x12, 0x03, 0x35, 0x04, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, + 0x01, 0x12, 0x03, 0x35, 0x2b, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, + 0x03, 0x35, 0x31, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x06, 0x12, 0x03, 0x36, + 0x04, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x36, 0x04, 0x1f, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x36, 0x14, 0x1a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x36, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x02, 0x06, 0x12, 0x03, 0x37, 0x04, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x02, 0x12, 0x03, 0x37, 0x04, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, + 0x03, 0x37, 0x11, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x37, + 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x08, 0x01, 0x12, 0x04, 0x39, 0x02, 0x3e, 0x03, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x08, 0x01, 0x01, 0x12, 0x03, 0x39, 0x08, 0x0c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x06, 0x12, 0x03, 0x3a, 0x04, 0x28, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x3a, 0x04, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x3a, 0x29, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, + 0x12, 0x03, 0x3a, 0x31, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x06, 0x12, 0x03, + 0x3b, 0x04, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x3b, 0x04, 0x34, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x3b, 0x22, 0x2f, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x3b, 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x05, 0x06, 0x12, 0x03, 0x3c, 0x04, 0x23, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x05, 0x12, 0x03, 0x3c, 0x04, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, + 0x12, 0x03, 0x3c, 0x24, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, + 0x3c, 0x36, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, 0x03, 0x3d, 0x04, + 0x08, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x3d, 0x04, 0x23, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x3d, 0x09, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x3d, 0x20, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x07, 0x06, 0x12, 0x03, 0x3f, 0x02, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, + 0x12, 0x03, 0x3f, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, + 0x3f, 0x21, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x3f, 0x36, + 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x03, 0x42, 0x02, 0x08, 0x0a, + 0x4b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x03, 0x42, 0x02, 0x46, 0x1a, 0x3e, 0x20, 0x4f, + 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, + 0x79, 0x6f, 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x42, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x08, 0x03, 0x12, 0x03, 0x42, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, + 0x08, 0x12, 0x03, 0x42, 0x1d, 0x45, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x08, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x03, 0x42, 0x1e, 0x44, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x04, + 0x12, 0x03, 0x45, 0x02, 0x0a, 0x0a, 0x5c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x09, 0x12, 0x03, 0x45, + 0x02, 0x4b, 0x1a, 0x4f, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x05, 0x12, 0x03, 0x45, 0x0b, + 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x45, 0x12, 0x1d, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x03, 0x12, 0x03, 0x45, 0x20, 0x21, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x09, 0x08, 0x12, 0x03, 0x45, 0x22, 0x4a, 0x0a, 0x0f, 0x0a, 0x08, 0x04, + 0x00, 0x02, 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x45, 0x23, 0x49, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0a, 0x04, 0x12, 0x03, 0x48, 0x02, 0x0a, 0x0a, 0x8b, 0x01, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x0a, 0x12, 0x03, 0x48, 0x02, 0x6f, 0x1a, 0x7e, 0x20, 0x49, 0x66, 0x20, 0x65, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, + 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, + 0x73, 0x74, 0x61, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x75, 0x6e, 0x64, + 0x65, 0x72, 0x20, 0x74, 0x65, 0x73, 0x74, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, + 0x06, 0x12, 0x03, 0x48, 0x0b, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x01, 0x12, + 0x03, 0x48, 0x24, 0x40, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, 0x12, 0x03, 0x48, + 0x43, 0x45, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x08, 0x12, 0x03, 0x48, 0x46, 0x6e, + 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x48, 0x47, + 0x6d, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x4b, 0x00, 0x4f, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x4b, 0x08, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x00, 0x06, 0x12, 0x03, 0x4c, 0x02, 0x28, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, + 0x03, 0x4c, 0x02, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4c, + 0x29, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4c, 0x2f, 0x30, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x04, 0x12, 0x03, 0x4d, 0x02, 0x0a, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x4d, 0x02, 0x5d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x01, 0x06, 0x12, 0x03, 0x4d, 0x0b, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x4d, 0x25, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, + 0x12, 0x03, 0x4d, 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, + 0x4d, 0x34, 0x5c, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x03, 0x4d, 0x35, 0x5b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x04, 0x12, 0x03, 0x4e, + 0x02, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x03, 0x4e, 0x02, 0x5b, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x06, 0x12, 0x03, 0x4e, 0x0b, 0x24, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x4e, 0x25, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x4e, 0x30, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x02, 0x08, 0x12, 0x03, 0x4e, 0x32, 0x5a, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x02, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x03, 0x4e, 0x33, 0x59, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, + 0x51, 0x00, 0x55, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x51, 0x08, 0x17, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x06, 0x12, 0x03, 0x52, 0x02, 0x24, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x52, 0x02, 0x59, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x52, 0x25, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x00, 0x03, 0x12, 0x03, 0x52, 0x2e, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, + 0x12, 0x03, 0x52, 0x30, 0x58, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x00, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x03, 0x52, 0x31, 0x57, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x06, 0x12, + 0x03, 0x53, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x53, 0x02, + 0x54, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x53, 0x1c, 0x26, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x53, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, 0x53, 0x2b, 0x53, 0x0a, 0x0f, 0x0a, 0x08, 0x04, + 0x02, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x53, 0x2c, 0x52, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x02, 0x06, 0x12, 0x03, 0x54, 0x02, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, + 0x02, 0x02, 0x12, 0x03, 0x54, 0x02, 0x52, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, + 0x12, 0x03, 0x54, 0x1c, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x03, + 0x54, 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x08, 0x12, 0x03, 0x54, 0x29, + 0x51, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x54, + 0x2a, 0x50, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x57, 0x00, 0x59, 0x01, 0x0a, 0x0a, + 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x57, 0x08, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x00, 0x06, 0x12, 0x03, 0x58, 0x02, 0x29, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, + 0x12, 0x03, 0x58, 0x02, 0x5d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x58, 0x2a, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x58, 0x32, + 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x08, 0x12, 0x03, 0x58, 0x34, 0x5c, 0x0a, + 0x0f, 0x0a, 0x08, 0x04, 0x03, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x58, 0x35, 0x5b, + 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x5b, 0x00, 0x5d, 0x01, 0x0a, 0x0a, 0x0a, 0x03, + 0x04, 0x04, 0x01, 0x12, 0x03, 0x5b, 0x08, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, + 0x06, 0x12, 0x03, 0x5c, 0x02, 0x28, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x00, 0x12, 0x03, + 0x5c, 0x02, 0x66, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x01, 0x12, 0x03, 0x5c, 0x29, + 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, 0x12, 0x03, 0x5c, 0x3b, 0x3c, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x08, 0x12, 0x03, 0x5c, 0x3d, 0x65, 0x0a, 0x0f, 0x0a, + 0x08, 0x04, 0x04, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x5c, 0x3e, 0x64, 0x0a, 0x0a, + 0x0a, 0x02, 0x04, 0x05, 0x12, 0x04, 0x5f, 0x00, 0x61, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, + 0x01, 0x12, 0x03, 0x5f, 0x08, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x04, 0x12, + 0x03, 0x60, 0x02, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x03, 0x60, 0x02, + 0x50, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x05, 0x12, 0x03, 0x60, 0x0b, 0x11, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x03, 0x60, 0x12, 0x22, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, 0x60, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x05, 0x02, 0x00, 0x08, 0x12, 0x03, 0x60, 0x27, 0x4f, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x05, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x60, 0x28, 0x4e, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x06, + 0x12, 0x04, 0x63, 0x00, 0x65, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x03, 0x63, + 0x08, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x06, 0x12, 0x03, 0x64, 0x02, 0x24, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x03, 0x64, 0x02, 0x57, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x03, 0x64, 0x25, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x00, 0x03, 0x12, 0x03, 0x64, 0x2c, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, + 0x00, 0x08, 0x12, 0x03, 0x64, 0x2e, 0x56, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x06, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x03, 0x64, 0x2f, 0x55, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x04, + 0x67, 0x00, 0x6f, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x03, 0x67, 0x08, 0x1d, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, 0x03, 0x68, 0x02, 0x07, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x03, 0x68, 0x02, 0x4e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x07, 0x02, 0x00, 0x01, 0x12, 0x03, 0x68, 0x08, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, + 0x00, 0x03, 0x12, 0x03, 0x68, 0x23, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x08, + 0x12, 0x03, 0x68, 0x25, 0x4d, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x07, 0x02, 0x00, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x03, 0x68, 0x26, 0x4c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x04, 0x12, + 0x03, 0x6b, 0x02, 0x0a, 0x0a, 0x50, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, 0x03, 0x6b, 0x02, + 0x49, 0x1a, 0x43, 0x20, 0x41, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x69, + 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x65, 0x72, 0x65, 0x20, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, + 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x05, 0x12, + 0x03, 0x6b, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, 0x12, 0x03, 0x6b, + 0x12, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, 0x03, 0x6b, 0x1e, 0x1f, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x08, 0x12, 0x03, 0x6b, 0x20, 0x48, 0x0a, 0x0f, + 0x0a, 0x08, 0x04, 0x07, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x6b, 0x21, 0x47, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x04, 0x12, 0x03, 0x6e, 0x02, 0x0a, 0x0a, 0x6a, 0x0a, + 0x04, 0x04, 0x07, 0x02, 0x02, 0x12, 0x03, 0x6e, 0x02, 0x46, 0x1a, 0x5d, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x69, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x6f, 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x69, 0x6d, + 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, + 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, + 0x02, 0x05, 0x12, 0x03, 0x6e, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x01, + 0x12, 0x03, 0x6e, 0x12, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x03, 0x12, 0x03, + 0x6e, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, 0x08, 0x12, 0x03, 0x6e, 0x1d, + 0x45, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x07, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x03, 0x6e, + 0x1e, 0x44, 0x0a, 0x0b, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x05, 0x71, 0x00, 0x85, 0x01, 0x01, 0x0a, + 0x0a, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x03, 0x71, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x08, 0x08, 0x00, 0x12, 0x04, 0x72, 0x02, 0x78, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x08, + 0x00, 0x01, 0x12, 0x03, 0x72, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x06, + 0x12, 0x03, 0x73, 0x04, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x03, 0x73, + 0x04, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x03, 0x73, 0x2b, 0x2e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, 0x12, 0x03, 0x73, 0x31, 0x32, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x06, 0x12, 0x03, 0x74, 0x04, 0x10, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x08, 0x02, 0x01, 0x12, 0x03, 0x74, 0x04, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x74, 0x11, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, + 0x12, 0x03, 0x74, 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x08, 0x01, 0x12, 0x04, 0x79, + 0x02, 0x7e, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x08, 0x01, 0x01, 0x12, 0x03, 0x79, 0x08, + 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x06, 0x12, 0x03, 0x7a, 0x04, 0x28, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x02, 0x12, 0x03, 0x7a, 0x04, 0x33, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x02, 0x01, 0x12, 0x03, 0x7a, 0x29, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x02, 0x03, 0x12, 0x03, 0x7a, 0x31, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, + 0x06, 0x12, 0x03, 0x7b, 0x04, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x03, 0x12, 0x03, + 0x7b, 0x04, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x01, 0x12, 0x03, 0x7b, 0x22, + 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x03, 0x03, 0x12, 0x03, 0x7b, 0x32, 0x33, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x04, 0x06, 0x12, 0x03, 0x7c, 0x04, 0x23, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x08, 0x02, 0x04, 0x12, 0x03, 0x7c, 0x04, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x04, 0x01, 0x12, 0x03, 0x7c, 0x24, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x04, + 0x03, 0x12, 0x03, 0x7c, 0x36, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x06, 0x12, + 0x03, 0x7d, 0x04, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x05, 0x12, 0x03, 0x7d, 0x04, + 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x01, 0x12, 0x03, 0x7d, 0x21, 0x2d, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x05, 0x03, 0x12, 0x03, 0x7d, 0x30, 0x31, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x06, 0x05, 0x12, 0x04, 0x81, 0x01, 0x02, 0x08, 0x0a, 0x4c, 0x0a, 0x04, + 0x04, 0x08, 0x02, 0x06, 0x12, 0x04, 0x81, 0x01, 0x02, 0x46, 0x1a, 0x3e, 0x20, 0x4f, 0x6e, 0x6c, + 0x79, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x79, 0x6f, + 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x06, 0x01, 0x12, 0x04, 0x81, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x06, 0x03, 0x12, 0x04, 0x81, 0x01, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x06, + 0x08, 0x12, 0x04, 0x81, 0x01, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x06, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0x81, 0x01, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, + 0x07, 0x04, 0x12, 0x04, 0x84, 0x01, 0x02, 0x0a, 0x0a, 0x8c, 0x01, 0x0a, 0x04, 0x04, 0x08, 0x02, + 0x07, 0x12, 0x04, 0x84, 0x01, 0x02, 0x6e, 0x1a, 0x7e, 0x20, 0x49, 0x66, 0x20, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x67, + 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x61, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x73, + 0x74, 0x61, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x75, 0x6e, 0x64, 0x65, + 0x72, 0x20, 0x74, 0x65, 0x73, 0x74, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x07, 0x06, + 0x12, 0x04, 0x84, 0x01, 0x0b, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x07, 0x01, 0x12, + 0x04, 0x84, 0x01, 0x24, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x07, 0x03, 0x12, 0x04, + 0x84, 0x01, 0x43, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x07, 0x08, 0x12, 0x04, 0x84, + 0x01, 0x45, 0x6d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0x84, 0x01, 0x46, 0x6c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x09, 0x12, 0x06, 0x87, 0x01, 0x00, + 0x8e, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x04, 0x87, 0x01, 0x08, 0x20, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x05, 0x12, 0x04, 0x88, 0x01, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, 0x04, 0x88, 0x01, 0x02, 0x4c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x04, 0x88, 0x01, 0x09, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x04, 0x88, 0x01, 0x21, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x09, 0x02, 0x00, 0x08, 0x12, 0x04, 0x88, 0x01, 0x23, 0x4b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, + 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, 0x01, 0x24, 0x4a, 0x0a, 0x0e, 0x0a, 0x04, + 0x04, 0x09, 0x08, 0x00, 0x12, 0x06, 0x89, 0x01, 0x02, 0x8d, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x09, 0x08, 0x00, 0x01, 0x12, 0x04, 0x89, 0x01, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x09, 0x02, 0x01, 0x06, 0x12, 0x04, 0x8a, 0x01, 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, + 0x02, 0x01, 0x12, 0x04, 0x8a, 0x01, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, + 0x01, 0x12, 0x04, 0x8a, 0x01, 0x22, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x03, + 0x12, 0x04, 0x8a, 0x01, 0x28, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x06, 0x12, + 0x04, 0x8b, 0x01, 0x04, 0x28, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x02, 0x12, 0x04, 0x8b, + 0x01, 0x04, 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x01, 0x12, 0x04, 0x8b, 0x01, + 0x29, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x03, 0x12, 0x04, 0x8b, 0x01, 0x36, + 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x06, 0x12, 0x04, 0x8c, 0x01, 0x04, 0x27, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x03, 0x12, 0x04, 0x8c, 0x01, 0x04, 0x36, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x01, 0x12, 0x04, 0x8c, 0x01, 0x28, 0x31, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x09, 0x02, 0x03, 0x03, 0x12, 0x04, 0x8c, 0x01, 0x34, 0x35, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x0a, 0x12, 0x06, 0x90, 0x01, 0x00, 0x92, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0a, + 0x01, 0x12, 0x04, 0x90, 0x01, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x04, + 0x12, 0x04, 0x91, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, + 0x91, 0x01, 0x02, 0x60, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x06, 0x12, 0x04, 0x91, + 0x01, 0x0b, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x01, 0x12, 0x04, 0x91, 0x01, + 0x2b, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x03, 0x12, 0x04, 0x91, 0x01, 0x35, + 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x08, 0x12, 0x04, 0x91, 0x01, 0x37, 0x5f, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0a, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x91, 0x01, + 0x38, 0x5e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0b, 0x12, 0x06, 0x95, 0x01, 0x00, 0x98, 0x01, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0b, 0x01, 0x12, 0x04, 0x95, 0x01, 0x08, 0x24, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0b, 0x02, 0x00, 0x05, 0x12, 0x04, 0x96, 0x01, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x0b, 0x02, 0x00, 0x12, 0x04, 0x96, 0x01, 0x02, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x96, 0x01, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x96, 0x01, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, + 0x08, 0x12, 0x04, 0x96, 0x01, 0x25, 0x4d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0b, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0x96, 0x01, 0x26, 0x4c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, + 0x01, 0x04, 0x12, 0x04, 0x97, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x01, + 0x12, 0x04, 0x97, 0x01, 0x02, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x06, 0x12, + 0x04, 0x97, 0x01, 0x0b, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x97, 0x01, 0x2a, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x03, 0x12, 0x04, 0x97, + 0x01, 0x40, 0x41, 0x82, 0xe0, 0xd6, 0xfc, 0x0f, 0x03, 0x1a, 0x01, 0x06, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, ]; include!("sift.rule_evaluation.v1.tonic.rs"); include!("sift.rule_evaluation.v1.serde.rs"); diff --git a/rust/crates/sift_rs/src/gen/sift/rule_evaluation/v1/sift.rule_evaluation.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift/rule_evaluation/v1/sift.rule_evaluation.v1.serde.rs index d39125b6ff..92782e19b6 100644 --- a/rust/crates/sift_rs/src/gen/sift/rule_evaluation/v1/sift.rule_evaluation.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift/rule_evaluation/v1/sift.rule_evaluation.v1.serde.rs @@ -594,6 +594,9 @@ impl serde::Serialize for EvaluateRulesPreviewRequest { if !self.organization_id.is_empty() { len += 1; } + if !self.run_family_alignment_configs.is_empty() { + len += 1; + } if self.time.is_some() { len += 1; } @@ -604,6 +607,9 @@ impl serde::Serialize for EvaluateRulesPreviewRequest { if !self.organization_id.is_empty() { struct_ser.serialize_field("organizationId", &self.organization_id)?; } + if !self.run_family_alignment_configs.is_empty() { + struct_ser.serialize_field("runFamilyAlignmentConfigs", &self.run_family_alignment_configs)?; + } if let Some(v) = self.time.as_ref() { match v { evaluate_rules_preview_request::Time::Run(v) => { @@ -642,6 +648,8 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesPreviewRequest { const FIELDS: &[&str] = &[ "organization_id", "organizationId", + "run_family_alignment_configs", + "runFamilyAlignmentConfigs", "run", "run_time_range", "runTimeRange", @@ -657,6 +665,7 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesPreviewRequest { #[allow(clippy::enum_variant_names)] enum GeneratedField { OrganizationId, + RunFamilyAlignmentConfigs, Run, RunTimeRange, Rules, @@ -685,6 +694,7 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesPreviewRequest { { match value { "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + "runFamilyAlignmentConfigs" | "run_family_alignment_configs" => Ok(GeneratedField::RunFamilyAlignmentConfigs), "run" => Ok(GeneratedField::Run), "runTimeRange" | "run_time_range" => Ok(GeneratedField::RunTimeRange), "rules" => Ok(GeneratedField::Rules), @@ -711,6 +721,7 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesPreviewRequest { V: serde::de::MapAccess<'de>, { let mut organization_id__ = None; + let mut run_family_alignment_configs__ = None; let mut time__ = None; let mut mode__ = None; while let Some(k) = map_.next_key()? { @@ -721,6 +732,12 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesPreviewRequest { } organization_id__ = Some(map_.next_value()?); } + GeneratedField::RunFamilyAlignmentConfigs => { + if run_family_alignment_configs__.is_some() { + return Err(serde::de::Error::duplicate_field("runFamilyAlignmentConfigs")); + } + run_family_alignment_configs__ = Some(map_.next_value()?); + } GeneratedField::Run => { if time__.is_some() { return Err(serde::de::Error::duplicate_field("run")); @@ -767,6 +784,7 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesPreviewRequest { } Ok(EvaluateRulesPreviewRequest { organization_id: organization_id__.unwrap_or_default(), + run_family_alignment_configs: run_family_alignment_configs__.unwrap_or_default(), time: time__, mode: mode__, }) @@ -904,6 +922,9 @@ impl serde::Serialize for EvaluateRulesRequest { if self.report_name.is_some() { len += 1; } + if !self.run_family_alignment_configs.is_empty() { + len += 1; + } if self.time.is_some() { len += 1; } @@ -920,6 +941,9 @@ impl serde::Serialize for EvaluateRulesRequest { if let Some(v) = self.report_name.as_ref() { struct_ser.serialize_field("reportName", v)?; } + if !self.run_family_alignment_configs.is_empty() { + struct_ser.serialize_field("runFamilyAlignmentConfigs", &self.run_family_alignment_configs)?; + } if let Some(v) = self.time.as_ref() { match v { evaluate_rules_request::Time::Run(v) => { @@ -965,6 +989,8 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesRequest { "organizationId", "report_name", "reportName", + "run_family_alignment_configs", + "runFamilyAlignmentConfigs", "run", "assets", "run_time_range", @@ -983,6 +1009,7 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesRequest { AnnotationOptions, OrganizationId, ReportName, + RunFamilyAlignmentConfigs, Run, Assets, RunTimeRange, @@ -1014,6 +1041,7 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesRequest { "annotationOptions" | "annotation_options" => Ok(GeneratedField::AnnotationOptions), "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), "reportName" | "report_name" => Ok(GeneratedField::ReportName), + "runFamilyAlignmentConfigs" | "run_family_alignment_configs" => Ok(GeneratedField::RunFamilyAlignmentConfigs), "run" => Ok(GeneratedField::Run), "assets" => Ok(GeneratedField::Assets), "runTimeRange" | "run_time_range" => Ok(GeneratedField::RunTimeRange), @@ -1043,6 +1071,7 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesRequest { let mut annotation_options__ = None; let mut organization_id__ = None; let mut report_name__ = None; + let mut run_family_alignment_configs__ = None; let mut time__ = None; let mut mode__ = None; while let Some(k) = map_.next_key()? { @@ -1065,6 +1094,12 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesRequest { } report_name__ = map_.next_value()?; } + GeneratedField::RunFamilyAlignmentConfigs => { + if run_family_alignment_configs__.is_some() { + return Err(serde::de::Error::duplicate_field("runFamilyAlignmentConfigs")); + } + run_family_alignment_configs__ = Some(map_.next_value()?); + } GeneratedField::Run => { if time__.is_some() { return Err(serde::de::Error::duplicate_field("run")); @@ -1119,6 +1154,7 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesRequest { annotation_options: annotation_options__, organization_id: organization_id__.unwrap_or_default(), report_name: report_name__, + run_family_alignment_configs: run_family_alignment_configs__.unwrap_or_default(), time: time__, mode: mode__, }) @@ -1257,6 +1293,146 @@ impl<'de> serde::Deserialize<'de> for EvaluateRulesResponse { deserializer.deserialize_struct("sift.rule_evaluation.v1.EvaluateRulesResponse", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for RunFamilyAlignmentConfig { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.family_alignment_name.is_empty() { + len += 1; + } + if self.alignment_config.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.rule_evaluation.v1.RunFamilyAlignmentConfig", len)?; + if !self.family_alignment_name.is_empty() { + struct_ser.serialize_field("familyAlignmentName", &self.family_alignment_name)?; + } + if let Some(v) = self.alignment_config.as_ref() { + match v { + run_family_alignment_config::AlignmentConfig::Run(v) => { + struct_ser.serialize_field("run", v)?; + } + run_family_alignment_config::AlignmentConfig::Annotation(v) => { + struct_ser.serialize_field("annotation", v)?; + } + run_family_alignment_config::AlignmentConfig::Timestamp(v) => { + struct_ser.serialize_field("timestamp", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for RunFamilyAlignmentConfig { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "family_alignment_name", + "familyAlignmentName", + "run", + "annotation", + "timestamp", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FamilyAlignmentName, + Run, + Annotation, + Timestamp, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "familyAlignmentName" | "family_alignment_name" => Ok(GeneratedField::FamilyAlignmentName), + "run" => Ok(GeneratedField::Run), + "annotation" => Ok(GeneratedField::Annotation), + "timestamp" => Ok(GeneratedField::Timestamp), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = RunFamilyAlignmentConfig; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.rule_evaluation.v1.RunFamilyAlignmentConfig") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut family_alignment_name__ = None; + let mut alignment_config__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::FamilyAlignmentName => { + if family_alignment_name__.is_some() { + return Err(serde::de::Error::duplicate_field("familyAlignmentName")); + } + family_alignment_name__ = Some(map_.next_value()?); + } + GeneratedField::Run => { + if alignment_config__.is_some() { + return Err(serde::de::Error::duplicate_field("run")); + } + alignment_config__ = map_.next_value::<::std::option::Option<_>>()?.map(run_family_alignment_config::AlignmentConfig::Run) +; + } + GeneratedField::Annotation => { + if alignment_config__.is_some() { + return Err(serde::de::Error::duplicate_field("annotation")); + } + alignment_config__ = map_.next_value::<::std::option::Option<_>>()?.map(run_family_alignment_config::AlignmentConfig::Annotation) +; + } + GeneratedField::Timestamp => { + if alignment_config__.is_some() { + return Err(serde::de::Error::duplicate_field("timestamp")); + } + alignment_config__ = map_.next_value::<::std::option::Option<_>>()?.map(run_family_alignment_config::AlignmentConfig::Timestamp) +; + } + } + } + Ok(RunFamilyAlignmentConfig { + family_alignment_name: family_alignment_name__.unwrap_or_default(), + alignment_config: alignment_config__, + }) + } + } + deserializer.deserialize_struct("sift.rule_evaluation.v1.RunFamilyAlignmentConfig", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for RunTimeRange { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result diff --git a/rust/crates/sift_rs/src/gen/sift/rules/v1/sift.rules.v1.rs b/rust/crates/sift_rs/src/gen/sift/rules/v1/sift.rules.v1.rs index 2b19be33a2..06ea23f4c8 100644 --- a/rust/crates/sift_rs/src/gen/sift/rules/v1/sift.rules.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift/rules/v1/sift.rules.v1.rs @@ -632,6 +632,19 @@ pub struct AnnotationActionConfiguration { pub metadata: ::prost::alloc::vec::Vec, } #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct FamilyStatReference { + #[prost(string, tag="1")] + pub reference: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub family_id: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub family_stat_name: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub family_stat_expression: ::prost::alloc::string::String, + #[prost(string, tag="5")] + pub family_stat_range_name: ::prost::alloc::string::String, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct EvaluateRulesRequest { #[prost(string, repeated, tag="1")] pub rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, @@ -792,7 +805,7 @@ impl ConditionComparator { } /// Encoded file descriptor set for the `sift.rules.v1` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0x90, 0xca, 0x03, 0x0a, 0x19, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x0a, 0xf1, 0xd1, 0x03, 0x0a, 0x19, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, @@ -1557,2907 +1570,2969 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x22, 0x8e, 0x02, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, - 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x58, 0x0a, - 0x12, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x72, 0x5f, 0x69, 0x64, 0x22, 0xfe, 0x01, 0x0a, 0x13, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x09, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x20, 0x0a, 0x09, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, + 0x64, 0x12, 0x2d, 0x0a, 0x10, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x39, 0x0a, 0x16, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, + 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x16, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x13, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8e, 0x02, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x58, + 0x0a, 0x12, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x11, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, + 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x06, + 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x1a, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x11, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, - 0x12, 0x3e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x06, 0x0a, - 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x1a, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x49, 0x64, 0x73, 0x22, 0x82, 0x01, 0x0a, - 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, - 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x15, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x13, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, - 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, - 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, - 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x10, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, - 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x2a, 0x5c, 0x0a, 0x0b, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x18, 0x53, 0x45, - 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x14, 0x0a, 0x10, - 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x53, 0x43, - 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, - 0x45, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x02, 0x2a, 0x5c, 0x0a, 0x0a, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x49, - 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x4e, - 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x45, - 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x10, 0x03, 0x2a, 0xad, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x28, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, - 0x50, 0x41, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x45, 0x53, - 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x53, 0x53, - 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x02, - 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, - 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, - 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x09, 0x0a, - 0x05, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, - 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x06, 0x32, 0x9f, 0x27, 0x0a, 0x0b, 0x52, 0x75, 0x6c, 0x65, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, - 0x92, 0x41, 0x41, 0x12, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x1a, 0x32, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x12, 0x94, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, - 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, - 0x92, 0x41, 0x32, 0x12, 0x07, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x27, 0x52, 0x65, - 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xaa, 0x01, 0x0a, 0x0d, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x92, 0x41, 0x2a, 0x12, 0x0d, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, - 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, - 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x92, 0x41, 0x1d, - 0x12, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x0f, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x92, 0x41, 0x27, 0x12, 0x0a, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x19, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x1a, 0x0d, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xda, 0x01, - 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x75, 0x92, 0x41, 0x4e, 0x12, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x3a, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x65, 0x78, 0x69, 0x73, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x1a, - 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xbb, 0x01, 0x0a, 0x0a, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, - 0x92, 0x41, 0x43, 0x12, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, - 0x35, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x2e, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, - 0x65, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, - 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x88, 0x02, 0x01, 0x12, 0x98, 0x01, 0x0a, 0x0b, 0x41, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x42, 0x92, 0x41, 0x1f, 0x12, 0x0b, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x1a, 0x10, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x12, 0xe7, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x92, 0x41, 0x57, 0x12, - 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x1a, 0x43, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x44, 0x65, 0x70, 0x72, - 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, - 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x88, 0x02, 0x01, 0x12, 0xba, 0x01, - 0x0a, 0x11, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x2a, 0x12, 0x11, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x15, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0d, 0x55, - 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x55, 0x6e, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x12, 0x55, 0x6e, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x12, 0xc6, 0x01, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, - 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x58, 0x92, 0x41, 0x2e, 0x12, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x17, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x20, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xb6, 0x01, 0x0a, 0x0c, 0x55, - 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x22, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x92, 0x41, 0x36, 0x12, 0x0c, 0x55, 0x6e, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x26, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, - 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x88, 0x02, 0x01, 0x12, 0xd9, 0x01, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x73, 0x69, 0x66, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x49, 0x64, 0x73, 0x22, 0x82, 0x01, + 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x15, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x18, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x13, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, + 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, + 0x62, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x10, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, + 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x2a, 0x5c, 0x0a, 0x0b, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x18, 0x53, + 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x14, 0x0a, + 0x10, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x53, + 0x43, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x4f, 0x52, + 0x44, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x02, 0x2a, 0x5c, 0x0a, 0x0a, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x17, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, + 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x41, + 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x57, + 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x10, 0x03, 0x2a, 0xad, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x28, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x41, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x45, + 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x53, + 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, + 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, + 0x4e, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, + 0x48, 0x41, 0x4e, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x09, + 0x0a, 0x05, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, + 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x06, 0x32, 0x9f, 0x27, 0x0a, 0x0b, 0x52, 0x75, 0x6c, + 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x63, 0x92, 0x41, 0x41, 0x12, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x1a, 0x32, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x12, 0x94, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x12, 0x1d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x4a, 0x92, 0x41, 0x32, 0x12, 0x07, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x27, 0x52, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xaa, 0x01, 0x0a, 0x0d, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x92, 0x41, 0x2a, 0x12, 0x0d, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x19, 0x52, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, + 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x92, 0x41, + 0x1d, 0x12, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x0f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x92, 0x41, 0x27, 0x12, + 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x19, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x1a, + 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xda, + 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x92, 0x41, 0x4e, 0x12, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x3a, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, + 0x1a, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xbb, 0x01, 0x0a, 0x0a, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x68, 0x92, 0x41, 0x43, 0x12, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x1a, 0x35, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x2e, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, + 0x73, 0x65, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, + 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, + 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x88, 0x02, 0x01, 0x12, 0x98, 0x01, 0x0a, 0x0b, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x21, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x42, 0x92, 0x41, 0x1f, 0x12, 0x0b, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x1a, 0x10, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x12, 0xe7, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x92, 0x41, 0x57, + 0x12, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x1a, 0x43, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x44, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, + 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x88, 0x02, 0x01, 0x12, 0xba, + 0x01, 0x0a, 0x11, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x2a, 0x12, 0x11, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, + 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, + 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0d, + 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x23, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x55, + 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x12, 0x55, 0x6e, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x12, 0xc6, 0x01, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x6e, 0x92, 0x41, 0x42, 0x12, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x2c, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, - 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, - 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x88, 0x02, 0x01, 0x12, - 0xdf, 0x01, 0x0a, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x92, - 0x41, 0x5b, 0x12, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x1a, 0x4a, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x88, 0x02, - 0x01, 0x12, 0x84, 0x02, 0x0a, 0x16, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, - 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x48, - 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x01, 0x92, 0x41, 0x5f, 0x12, - 0x16, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, - 0x65, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x88, 0x02, 0x01, 0x12, 0xd6, 0x01, 0x0a, 0x0d, 0x56, 0x69, 0x65, - 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, - 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x4a, - 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7a, 0x92, 0x41, 0x56, 0x12, 0x0d, 0x56, 0x69, 0x65, 0x77, - 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, - 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x88, 0x02, - 0x01, 0x12, 0x94, 0x02, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, - 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2e, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x96, 0x01, 0x92, 0x41, 0x64, 0x12, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, - 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, - 0x48, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, - 0x01, 0x2a, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x88, 0x02, 0x01, 0x12, 0x80, 0x02, 0x0a, 0x11, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x27, - 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x97, 0x01, 0x92, 0x41, 0x6c, 0x12, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x57, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, - 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, - 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, - 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x88, 0x02, 0x01, 0x12, 0xe7, 0x01, 0x0a, 0x0f, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, - 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, - 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x84, - 0x01, 0x92, 0x41, 0x5b, 0x12, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x48, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, - 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, - 0x6f, 0x6e, 0x88, 0x02, 0x01, 0x12, 0x94, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, + 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x58, 0x92, 0x41, 0x2e, 0x12, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x17, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x20, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xb6, 0x01, 0x0a, 0x0c, + 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x22, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x92, 0x41, 0x36, 0x12, 0x0c, 0x55, 0x6e, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x1a, 0x26, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x88, 0x02, 0x01, 0x12, 0xd9, 0x01, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x6e, 0x92, 0x41, 0x42, 0x12, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x2c, 0x44, 0x65, 0x70, 0x72, 0x65, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, + 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x88, 0x02, 0x01, + 0x12, 0xdf, 0x01, 0x0a, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, + 0x92, 0x41, 0x5b, 0x12, 0x0d, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x1a, 0x4a, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, + 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x88, + 0x02, 0x01, 0x12, 0x84, 0x02, 0x0a, 0x16, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, + 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, + 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x01, 0x92, 0x41, 0x5f, + 0x12, 0x16, 0x56, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x65, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x69, 0x65, 0x77, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x88, 0x02, 0x01, 0x12, 0xd6, 0x01, 0x0a, 0x0d, 0x56, 0x69, + 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x69, + 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, + 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7a, 0x92, 0x41, 0x56, 0x12, 0x0d, 0x56, 0x69, 0x65, + 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x45, 0x52, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x88, + 0x02, 0x01, 0x12, 0x94, 0x02, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, + 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x2e, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x96, 0x01, 0x92, 0x41, 0x64, 0x12, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, + 0x6d, 0x61, 0x6e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x1a, 0x48, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, + 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, + 0x3a, 0x01, 0x2a, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6d, 0x61, 0x6e, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x88, 0x02, 0x01, 0x12, 0x80, 0x02, 0x0a, 0x11, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x97, 0x01, 0x92, 0x41, 0x6c, 0x12, 0x11, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x57, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, + 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, + 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x88, 0x02, 0x01, 0x12, 0xe7, 0x01, 0x0a, + 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, + 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x84, 0x01, 0x92, 0x41, 0x5b, 0x12, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, + 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x48, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, + 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, + 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, + 0x73, 0x6f, 0x6e, 0x88, 0x02, 0x01, 0x12, 0x94, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x92, 0x41, 0x27, 0x12, 0x09, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x1a, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, - 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x12, 0xd9, 0x01, 0x0a, - 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x74, 0x92, 0x41, 0x49, 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x35, 0x52, 0x65, 0x74, 0x72, 0x69, - 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb8, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x73, 0x69, - 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x92, 0x41, 0x39, 0x12, 0x0e, 0x47, - 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x27, 0x52, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0xdf, 0x01, 0x0a, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x73, - 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x92, 0x41, 0x27, 0x12, 0x09, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x1a, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x12, 0xd9, 0x01, + 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x74, 0x92, 0x41, 0x49, 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x35, 0x52, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb8, 0x01, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x73, + 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x92, 0x41, 0x39, 0x12, 0x0e, + 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x27, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xdf, 0x01, 0x0a, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, + 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, + 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, + 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x92, 0x41, 0x42, 0x12, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, - 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x92, 0x41, 0x42, 0x12, 0x14, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x1a, 0x2a, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb1, 0x01, 0x92, 0x41, 0xad, 0x01, 0x12, 0x30, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, - 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, - 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x1a, 0x79, - 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, - 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, - 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, 0x74, - 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, 0x70, - 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2f, - 0x32, 0x36, 0x35, 0x34, 0x32, 0x31, 0x31, 0x30, 0x32, 0x42, 0x88, 0x01, 0x92, 0x41, 0x10, 0x12, - 0x0e, 0x0a, 0x0c, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x0a, - 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x42, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xd4, 0xb7, 0x02, 0x0a, 0x07, 0x12, 0x05, 0x00, 0x00, 0x9e, 0x07, - 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x9b, 0x03, 0x0a, 0x01, - 0x02, 0x12, 0x03, 0x09, 0x00, 0x16, 0x1a, 0x90, 0x03, 0x20, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, - 0x41, 0x4c, 0x20, 0x4e, 0x4f, 0x54, 0x45, 0x53, 0x20, 0x46, 0x4f, 0x52, 0x20, 0x4d, 0x41, 0x49, - 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x53, 0x3a, 0x0a, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x69, 0x6e, 0x67, - 0x20, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x70, 0x65, 0x6e, - 0x64, 0x20, 0x6f, 0x6e, 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x61, 0x7a, 0x69, 0x6d, 0x75, 0x74, - 0x68, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x60, 0x20, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x65, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x0a, - 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x2d, 0x70, 0x61, 0x73, 0x74, 0x65, 0x20, 0x66, - 0x61, 0x73, 0x68, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x61, 0x7a, 0x69, 0x6d, 0x75, - 0x74, 0x68, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x60, 0x2e, 0x0a, 0x0a, 0x20, - 0x41, 0x6c, 0x73, 0x6f, 0x2c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x6f, - 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c, - 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x47, 0x6f, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x3a, 0x0a, 0x20, - 0x2d, 0x20, 0x61, 0x7a, 0x69, 0x6d, 0x75, 0x74, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x70, 0x62, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x0a, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, - 0x03, 0x0b, 0x00, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x0c, 0x00, 0x29, 0x0a, - 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x0d, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x03, - 0x12, 0x03, 0x0e, 0x00, 0x38, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, 0x0f, 0x00, 0x2f, - 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x05, 0x12, 0x03, 0x10, 0x00, 0x37, 0x0a, 0x09, 0x0a, 0x02, 0x03, - 0x06, 0x12, 0x03, 0x11, 0x00, 0x37, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x07, 0x12, 0x03, 0x12, 0x00, - 0x3a, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x08, 0x12, 0x03, 0x13, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x01, - 0x08, 0x12, 0x04, 0x15, 0x00, 0x17, 0x02, 0x0a, 0x0b, 0x0a, 0x03, 0x08, 0x92, 0x08, 0x12, 0x04, - 0x15, 0x07, 0x17, 0x01, 0x0a, 0x0c, 0x0a, 0x05, 0x08, 0x92, 0x08, 0x02, 0x01, 0x12, 0x03, 0x16, - 0x09, 0x1e, 0x0a, 0x0b, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x05, 0x19, 0x00, 0xbc, 0x02, 0x01, 0x0a, - 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x19, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x03, 0x06, - 0x00, 0x03, 0x12, 0x04, 0x1a, 0x02, 0x20, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x03, 0x92, - 0x08, 0x12, 0x04, 0x1a, 0x09, 0x20, 0x03, 0x0a, 0x0d, 0x0a, 0x06, 0x06, 0x00, 0x03, 0x92, 0x08, - 0x02, 0x12, 0x03, 0x1b, 0x04, 0x43, 0x0a, 0x0e, 0x0a, 0x07, 0x06, 0x00, 0x03, 0x92, 0x08, 0x03, - 0x02, 0x12, 0x03, 0x1d, 0x06, 0x63, 0x0a, 0x0e, 0x0a, 0x07, 0x06, 0x00, 0x03, 0x92, 0x08, 0x03, - 0x01, 0x12, 0x03, 0x1e, 0x06, 0x34, 0x0a, 0x42, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x04, - 0x23, 0x02, 0x2c, 0x03, 0x1a, 0x34, 0x20, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x00, 0x01, 0x12, 0x03, 0x23, 0x06, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, - 0x02, 0x12, 0x03, 0x23, 0x12, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, - 0x03, 0x23, 0x2f, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x24, - 0x04, 0x27, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x12, 0x04, 0x24, 0x0b, 0x27, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, - 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x25, 0x06, 0x22, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, - 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x26, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x28, 0x04, 0x2b, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, - 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x12, 0x04, 0x28, 0x0b, 0x2b, 0x05, 0x0a, 0x0f, 0x0a, 0x08, - 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x29, 0x06, 0x1c, 0x0a, 0x0f, 0x0a, - 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x2a, 0x06, 0x47, 0x0a, 0x37, - 0x0a, 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x04, 0x2f, 0x02, 0x35, 0x03, 0x1a, 0x29, 0x20, 0x52, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x01, - 0x12, 0x03, 0x2f, 0x06, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, - 0x2f, 0x0e, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x2f, 0x27, - 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x30, 0x04, 0x36, 0x0a, - 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x30, 0x0b, - 0x35, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, - 0x03, 0x30, 0x20, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x31, - 0x04, 0x34, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x12, 0x04, - 0x31, 0x0b, 0x34, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x02, - 0x12, 0x03, 0x32, 0x06, 0x18, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, - 0x03, 0x12, 0x03, 0x33, 0x06, 0x3c, 0x0a, 0x28, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x02, 0x12, 0x04, - 0x38, 0x02, 0x41, 0x03, 0x1a, 0x1a, 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, - 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x38, 0x06, 0x13, 0x0a, 0x0c, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x38, 0x14, 0x28, 0x0a, 0x0c, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x38, 0x33, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x02, 0x04, 0x12, 0x04, 0x39, 0x04, 0x3c, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, - 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x39, 0x0b, 0x3c, 0x05, 0x0a, 0x11, 0x0a, 0x0a, - 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x3a, 0x06, 0x24, 0x0a, - 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x3b, - 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, 0x3d, 0x04, 0x40, - 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x12, 0x04, 0x3d, 0x0b, - 0x40, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, - 0x3e, 0x06, 0x1e, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x03, 0x12, - 0x03, 0x3f, 0x06, 0x2e, 0x0a, 0x1f, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x03, 0x12, 0x04, 0x44, 0x02, - 0x4d, 0x03, 0x1a, 0x11, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, - 0x44, 0x06, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x44, 0x11, - 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x44, 0x2d, 0x3f, 0x0a, - 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x04, 0x12, 0x04, 0x45, 0x04, 0x48, 0x06, 0x0a, 0x11, - 0x0a, 0x09, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x45, 0x0b, 0x48, - 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, - 0x03, 0x46, 0x06, 0x1b, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, - 0x22, 0x07, 0x12, 0x03, 0x47, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x04, - 0x12, 0x04, 0x49, 0x04, 0x4c, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x03, 0x04, 0x92, - 0x08, 0x12, 0x04, 0x49, 0x0b, 0x4c, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x03, 0x04, - 0x92, 0x08, 0x02, 0x12, 0x03, 0x4a, 0x06, 0x1b, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x03, - 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x4b, 0x06, 0x24, 0x0a, 0x29, 0x0a, 0x04, 0x06, 0x00, 0x02, - 0x04, 0x12, 0x04, 0x50, 0x02, 0x59, 0x03, 0x1a, 0x1b, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x50, - 0x06, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x02, 0x12, 0x03, 0x50, 0x11, 0x22, - 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x50, 0x2d, 0x3f, 0x0a, 0x0d, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x04, 0x12, 0x04, 0x51, 0x04, 0x54, 0x06, 0x0a, 0x11, 0x0a, - 0x09, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x51, 0x0b, 0x54, 0x05, - 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x03, 0x12, 0x03, - 0x52, 0x06, 0x1a, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x07, 0x12, 0x03, 0x53, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x04, 0x12, - 0x04, 0x55, 0x04, 0x58, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x04, 0x04, 0x92, 0x08, - 0x12, 0x04, 0x55, 0x0b, 0x58, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x04, 0x04, 0x92, - 0x08, 0x02, 0x12, 0x03, 0x56, 0x06, 0x1b, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x04, 0x04, - 0x92, 0x08, 0x03, 0x12, 0x03, 0x57, 0x06, 0x2e, 0x0a, 0x4a, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x05, - 0x12, 0x04, 0x5c, 0x02, 0x65, 0x03, 0x1a, 0x3c, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, - 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, - 0x6f, 0x72, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x65, 0x78, 0x69, - 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x5c, - 0x06, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x02, 0x12, 0x03, 0x5c, 0x17, 0x2e, - 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x5c, 0x39, 0x51, 0x0a, 0x0d, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x04, 0x12, 0x04, 0x5d, 0x04, 0x60, 0x06, 0x0a, 0x11, 0x0a, - 0x09, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x5d, 0x0b, 0x60, 0x05, - 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x03, 0x12, 0x03, - 0x5e, 0x06, 0x26, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x07, 0x12, 0x03, 0x5f, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x04, 0x12, - 0x04, 0x61, 0x04, 0x64, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x05, 0x04, 0x92, 0x08, - 0x12, 0x04, 0x61, 0x0b, 0x64, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x05, 0x04, 0x92, - 0x08, 0x02, 0x12, 0x03, 0x62, 0x06, 0x21, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x05, 0x04, - 0x92, 0x08, 0x03, 0x12, 0x03, 0x63, 0x06, 0x4f, 0x0a, 0x47, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x06, - 0x12, 0x04, 0x69, 0x02, 0x73, 0x03, 0x1a, 0x39, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x20, - 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, - 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x69, 0x06, 0x10, 0x0a, - 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x69, 0x11, 0x22, 0x0a, 0x0c, 0x0a, - 0x05, 0x06, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x69, 0x2d, 0x3f, 0x0a, 0x0c, 0x0a, 0x05, 0x06, - 0x00, 0x02, 0x06, 0x04, 0x12, 0x03, 0x6a, 0x04, 0x1d, 0x0a, 0x0d, 0x0a, 0x06, 0x06, 0x00, 0x02, - 0x06, 0x04, 0x21, 0x12, 0x03, 0x6a, 0x04, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, - 0x04, 0x12, 0x04, 0x6b, 0x04, 0x6e, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x06, 0x04, - 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x6b, 0x0b, 0x6e, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, - 0x02, 0x06, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x6c, 0x06, 0x22, 0x0a, 0x11, 0x0a, - 0x0a, 0x06, 0x00, 0x02, 0x06, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x6d, 0x06, 0x0f, - 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x04, 0x12, 0x04, 0x6f, 0x04, 0x72, 0x06, 0x0a, - 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x12, 0x04, 0x6f, 0x0b, 0x72, 0x05, - 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x70, 0x06, - 0x1b, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x71, - 0x06, 0x4a, 0x0a, 0x20, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x07, 0x12, 0x04, 0x76, 0x02, 0x7f, 0x03, - 0x1a, 0x12, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x76, - 0x06, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, 0x76, 0x12, 0x24, - 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x76, 0x2f, 0x42, 0x0a, 0x0d, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x04, 0x12, 0x04, 0x77, 0x04, 0x7a, 0x06, 0x0a, 0x11, 0x0a, - 0x09, 0x06, 0x00, 0x02, 0x07, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x77, 0x0b, 0x7a, 0x05, - 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x07, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, - 0x78, 0x06, 0x23, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x07, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x07, 0x12, 0x03, 0x79, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x04, 0x12, - 0x04, 0x7b, 0x04, 0x7e, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x07, 0x04, 0x92, 0x08, - 0x12, 0x04, 0x7b, 0x0b, 0x7e, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x07, 0x04, 0x92, - 0x08, 0x02, 0x12, 0x03, 0x7c, 0x06, 0x1c, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x07, 0x04, - 0x92, 0x08, 0x03, 0x12, 0x03, 0x7d, 0x06, 0x25, 0x0a, 0x57, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x08, - 0x12, 0x06, 0x83, 0x01, 0x02, 0x8d, 0x01, 0x03, 0x1a, 0x47, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, - 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, + 0x73, 0x1a, 0x2a, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x3a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb1, 0x01, 0x92, 0x41, 0xad, 0x01, 0x12, 0x30, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, + 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x1a, + 0x79, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, + 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x2e, 0x12, 0x56, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x73, 0x69, 0x66, + 0x74, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x64, 0x65, 0x73, 0x6b, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x2f, + 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2f, 0x32, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x2f, 0x32, 0x36, 0x35, 0x34, 0x32, 0x31, 0x31, 0x30, 0x32, 0x42, 0x88, 0x01, 0x92, 0x41, 0x10, + 0x12, 0x0e, 0x0a, 0x0c, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0xa2, 0x02, 0x03, 0x53, 0x52, 0x58, 0xaa, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x2e, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x53, 0x69, 0x66, 0x74, 0x5c, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xb4, 0xbd, 0x02, 0x0a, 0x07, 0x12, 0x05, 0x00, 0x00, 0xa9, + 0x07, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x9b, 0x03, 0x0a, + 0x01, 0x02, 0x12, 0x03, 0x09, 0x00, 0x16, 0x1a, 0x90, 0x03, 0x20, 0x49, 0x4e, 0x54, 0x45, 0x52, + 0x4e, 0x41, 0x4c, 0x20, 0x4e, 0x4f, 0x54, 0x45, 0x53, 0x20, 0x46, 0x4f, 0x52, 0x20, 0x4d, 0x41, + 0x49, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x53, 0x3a, 0x0a, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x69, 0x6e, + 0x67, 0x20, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x64, 0x65, + 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x64, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x20, 0x6f, 0x6e, 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x61, 0x7a, 0x69, 0x6d, 0x75, + 0x74, 0x68, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x60, 0x20, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x20, 0x41, 0x6e, 0x79, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, + 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x0a, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x2d, 0x70, 0x61, 0x73, 0x74, 0x65, 0x20, + 0x66, 0x61, 0x73, 0x68, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x61, 0x7a, 0x69, 0x6d, + 0x75, 0x74, 0x68, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x60, 0x2e, 0x0a, 0x0a, + 0x20, 0x41, 0x6c, 0x73, 0x6f, 0x2c, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, + 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x47, 0x6f, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x3a, 0x0a, + 0x20, 0x2d, 0x20, 0x61, 0x7a, 0x69, 0x6d, 0x75, 0x74, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x70, 0x62, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x72, 0x0a, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, + 0x12, 0x03, 0x0b, 0x00, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x0c, 0x00, 0x29, + 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x0d, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, + 0x03, 0x12, 0x03, 0x0e, 0x00, 0x38, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, 0x0f, 0x00, + 0x2f, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x05, 0x12, 0x03, 0x10, 0x00, 0x37, 0x0a, 0x09, 0x0a, 0x02, + 0x03, 0x06, 0x12, 0x03, 0x11, 0x00, 0x37, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x07, 0x12, 0x03, 0x12, + 0x00, 0x3a, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x08, 0x12, 0x03, 0x13, 0x00, 0x29, 0x0a, 0x09, 0x0a, + 0x01, 0x08, 0x12, 0x04, 0x15, 0x00, 0x17, 0x02, 0x0a, 0x0b, 0x0a, 0x03, 0x08, 0x92, 0x08, 0x12, + 0x04, 0x15, 0x07, 0x17, 0x01, 0x0a, 0x0c, 0x0a, 0x05, 0x08, 0x92, 0x08, 0x02, 0x01, 0x12, 0x03, + 0x16, 0x09, 0x1e, 0x0a, 0x0b, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x05, 0x19, 0x00, 0xbc, 0x02, 0x01, + 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x19, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x03, + 0x06, 0x00, 0x03, 0x12, 0x04, 0x1a, 0x02, 0x20, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x03, + 0x92, 0x08, 0x12, 0x04, 0x1a, 0x09, 0x20, 0x03, 0x0a, 0x0d, 0x0a, 0x06, 0x06, 0x00, 0x03, 0x92, + 0x08, 0x02, 0x12, 0x03, 0x1b, 0x04, 0x43, 0x0a, 0x0e, 0x0a, 0x07, 0x06, 0x00, 0x03, 0x92, 0x08, + 0x03, 0x02, 0x12, 0x03, 0x1d, 0x06, 0x63, 0x0a, 0x0e, 0x0a, 0x07, 0x06, 0x00, 0x03, 0x92, 0x08, + 0x03, 0x01, 0x12, 0x03, 0x1e, 0x06, 0x34, 0x0a, 0x42, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, + 0x04, 0x23, 0x02, 0x2c, 0x03, 0x1a, 0x34, 0x20, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x23, 0x06, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x00, 0x02, 0x12, 0x03, 0x23, 0x12, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, + 0x12, 0x03, 0x23, 0x2f, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, + 0x24, 0x04, 0x27, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x12, 0x04, 0x24, 0x0b, 0x27, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, + 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x25, 0x06, 0x22, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, + 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x26, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x28, 0x04, 0x2b, 0x06, 0x0a, 0x0f, 0x0a, 0x07, + 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x12, 0x04, 0x28, 0x0b, 0x2b, 0x05, 0x0a, 0x0f, 0x0a, + 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x29, 0x06, 0x1c, 0x0a, 0x0f, + 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x2a, 0x06, 0x47, 0x0a, + 0x37, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x04, 0x2f, 0x02, 0x35, 0x03, 0x1a, 0x29, 0x20, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, + 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, + 0x01, 0x12, 0x03, 0x2f, 0x06, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, + 0x03, 0x2f, 0x0e, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x2f, + 0x27, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x30, 0x04, 0x36, + 0x0a, 0x10, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x03, 0x30, + 0x0b, 0x35, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, + 0x12, 0x03, 0x30, 0x20, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, + 0x31, 0x04, 0x34, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x12, + 0x04, 0x31, 0x0b, 0x34, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, + 0x02, 0x12, 0x03, 0x32, 0x06, 0x18, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, + 0x08, 0x03, 0x12, 0x03, 0x33, 0x06, 0x3c, 0x0a, 0x28, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x02, 0x12, + 0x04, 0x38, 0x02, 0x41, 0x03, 0x1a, 0x1a, 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x01, 0x12, 0x04, 0x83, 0x01, 0x06, 0x16, - 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x02, 0x12, 0x04, 0x83, 0x01, 0x17, 0x2e, 0x0a, - 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x03, 0x12, 0x04, 0x83, 0x01, 0x39, 0x51, 0x0a, 0x0d, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x04, 0x12, 0x04, 0x84, 0x01, 0x04, 0x1d, 0x0a, 0x0e, 0x0a, - 0x06, 0x06, 0x00, 0x02, 0x08, 0x04, 0x21, 0x12, 0x04, 0x84, 0x01, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, - 0x05, 0x06, 0x00, 0x02, 0x08, 0x04, 0x12, 0x06, 0x85, 0x01, 0x04, 0x88, 0x01, 0x06, 0x0a, 0x13, - 0x0a, 0x09, 0x06, 0x00, 0x02, 0x08, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0x85, 0x01, 0x0b, - 0x88, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x08, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x04, 0x12, 0x04, 0x86, 0x01, 0x06, 0x27, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x08, 0x04, - 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0x87, 0x01, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, - 0x00, 0x02, 0x08, 0x04, 0x12, 0x06, 0x89, 0x01, 0x04, 0x8c, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, - 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x12, 0x06, 0x89, 0x01, 0x0b, 0x8c, 0x01, 0x05, 0x0a, - 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0x8a, 0x01, 0x06, - 0x21, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x8b, - 0x01, 0x06, 0x58, 0x0a, 0x27, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x09, 0x12, 0x06, 0x90, 0x01, 0x02, - 0x99, 0x01, 0x03, 0x1a, 0x17, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x09, 0x01, 0x12, 0x04, 0x90, 0x01, 0x06, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x06, - 0x00, 0x02, 0x09, 0x02, 0x12, 0x04, 0x90, 0x01, 0x18, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x09, 0x03, 0x12, 0x04, 0x90, 0x01, 0x3b, 0x54, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, - 0x09, 0x04, 0x12, 0x06, 0x91, 0x01, 0x04, 0x94, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, - 0x02, 0x09, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0x91, 0x01, 0x0b, 0x94, 0x01, 0x05, 0x0a, - 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x09, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0x92, - 0x01, 0x06, 0x28, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x09, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x07, 0x12, 0x04, 0x93, 0x01, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x09, 0x04, - 0x12, 0x06, 0x95, 0x01, 0x04, 0x98, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x09, - 0x04, 0x92, 0x08, 0x12, 0x06, 0x95, 0x01, 0x0b, 0x98, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, - 0x00, 0x02, 0x09, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0x96, 0x01, 0x06, 0x22, 0x0a, 0x10, 0x0a, - 0x08, 0x06, 0x00, 0x02, 0x09, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x97, 0x01, 0x06, 0x2a, 0x0a, - 0x24, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0a, 0x12, 0x06, 0x9c, 0x01, 0x02, 0xa5, 0x01, 0x03, 0x1a, - 0x14, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x04, - 0x9c, 0x01, 0x06, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0a, 0x02, 0x12, 0x04, 0x9c, - 0x01, 0x14, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0a, 0x03, 0x12, 0x04, 0x9c, 0x01, - 0x33, 0x48, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0a, 0x04, 0x12, 0x06, 0x9d, 0x01, 0x04, - 0xa0, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0a, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x12, 0x06, 0x9d, 0x01, 0x0b, 0xa0, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0a, - 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0x9e, 0x01, 0x06, 0x25, 0x0a, 0x12, 0x0a, 0x0a, - 0x06, 0x00, 0x02, 0x0a, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0x9f, 0x01, 0x06, 0x0f, - 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0a, 0x04, 0x12, 0x06, 0xa1, 0x01, 0x04, 0xa4, 0x01, - 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0a, 0x04, 0x92, 0x08, 0x12, 0x06, 0xa1, 0x01, - 0x0b, 0xa4, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0a, 0x04, 0x92, 0x08, 0x02, - 0x12, 0x04, 0xa2, 0x01, 0x06, 0x1e, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0a, 0x04, 0x92, - 0x08, 0x03, 0x12, 0x04, 0xa3, 0x01, 0x06, 0x27, 0x0a, 0x29, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0b, - 0x12, 0x06, 0xa8, 0x01, 0x02, 0xb1, 0x01, 0x03, 0x1a, 0x19, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x20, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xa8, 0x01, - 0x06, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x02, 0x12, 0x04, 0xa8, 0x01, 0x1a, - 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x03, 0x12, 0x04, 0xa8, 0x01, 0x3f, 0x5a, - 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x06, 0xa9, 0x01, 0x04, 0xac, 0x01, - 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0b, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, - 0xa9, 0x01, 0x0b, 0xac, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0b, 0x04, 0xb0, - 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xaa, 0x01, 0x06, 0x2a, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, - 0x02, 0x0b, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xab, 0x01, 0x06, 0x0f, 0x0a, 0x0f, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x06, 0xad, 0x01, 0x04, 0xb0, 0x01, 0x06, 0x0a, - 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x92, 0x08, 0x12, 0x06, 0xad, 0x01, 0x0b, 0xb0, - 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, - 0xae, 0x01, 0x06, 0x24, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x92, 0x08, 0x03, - 0x12, 0x04, 0xaf, 0x01, 0x06, 0x2c, 0x0a, 0x4c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0c, 0x12, 0x06, - 0xb5, 0x01, 0x02, 0xbf, 0x01, 0x03, 0x1a, 0x3c, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, - 0x0a, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xb5, - 0x01, 0x06, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x02, 0x12, 0x04, 0xb5, 0x01, - 0x13, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x03, 0x12, 0x04, 0xb5, 0x01, 0x31, - 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x04, 0xb6, 0x01, 0x04, 0x1d, - 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x21, 0x12, 0x04, 0xb6, 0x01, 0x04, 0x1d, - 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x06, 0xb7, 0x01, 0x04, 0xba, 0x01, - 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0c, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, - 0xb7, 0x01, 0x0b, 0xba, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0c, 0x04, 0xb0, - 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xb8, 0x01, 0x06, 0x24, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, - 0x02, 0x0c, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xb9, 0x01, 0x06, 0x0f, 0x0a, 0x0f, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x06, 0xbb, 0x01, 0x04, 0xbe, 0x01, 0x06, 0x0a, - 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x92, 0x08, 0x12, 0x06, 0xbb, 0x01, 0x0b, 0xbe, - 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, - 0xbc, 0x01, 0x06, 0x1d, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x92, 0x08, 0x03, - 0x12, 0x04, 0xbd, 0x01, 0x06, 0x3b, 0x0a, 0x5a, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0d, 0x12, 0x06, - 0xc3, 0x01, 0x02, 0xcd, 0x01, 0x03, 0x1a, 0x4a, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, - 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x04, 0xc3, 0x01, 0x06, - 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x02, 0x12, 0x04, 0xc3, 0x01, 0x19, 0x32, - 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x03, 0x12, 0x04, 0xc3, 0x01, 0x3d, 0x57, 0x0a, - 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x12, 0x04, 0xc4, 0x01, 0x04, 0x1d, 0x0a, 0x0e, - 0x0a, 0x06, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x21, 0x12, 0x04, 0xc4, 0x01, 0x04, 0x1d, 0x0a, 0x0f, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x12, 0x06, 0xc5, 0x01, 0x04, 0xc8, 0x01, 0x06, 0x0a, - 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0d, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0xc5, 0x01, - 0x0b, 0xc8, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0d, 0x04, 0xb0, 0xca, 0xbc, - 0x22, 0x04, 0x12, 0x04, 0xc6, 0x01, 0x06, 0x29, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0d, - 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xc7, 0x01, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x0d, 0x04, 0x12, 0x06, 0xc9, 0x01, 0x04, 0xcc, 0x01, 0x06, 0x0a, 0x11, 0x0a, - 0x07, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x92, 0x08, 0x12, 0x06, 0xc9, 0x01, 0x0b, 0xcc, 0x01, 0x05, - 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xca, 0x01, - 0x06, 0x23, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, - 0xcb, 0x01, 0x06, 0x41, 0x0a, 0x41, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0e, 0x12, 0x06, 0xd0, 0x01, - 0x02, 0xda, 0x01, 0x03, 0x1a, 0x31, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x01, - 0x12, 0x04, 0xd0, 0x01, 0x06, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x02, 0x12, - 0x04, 0xd0, 0x01, 0x14, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x03, 0x12, 0x04, - 0xd0, 0x01, 0x33, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x04, 0xd1, - 0x01, 0x04, 0x1d, 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x21, 0x12, 0x04, 0xd1, - 0x01, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x06, 0xd2, 0x01, - 0x04, 0xd5, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0e, 0x04, 0xb0, 0xca, 0xbc, - 0x22, 0x12, 0x06, 0xd2, 0x01, 0x0b, 0xd5, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, - 0x0e, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xd3, 0x01, 0x06, 0x24, 0x0a, 0x12, 0x0a, - 0x0a, 0x06, 0x00, 0x02, 0x0e, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xd4, 0x01, 0x06, - 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x06, 0xd6, 0x01, 0x04, 0xd9, - 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x92, 0x08, 0x12, 0x06, 0xd6, - 0x01, 0x0b, 0xd9, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x92, 0x08, - 0x02, 0x12, 0x04, 0xd7, 0x01, 0x06, 0x1e, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0e, 0x04, - 0x92, 0x08, 0x03, 0x12, 0x04, 0xd8, 0x01, 0x06, 0x5f, 0x0a, 0x7f, 0x0a, 0x04, 0x06, 0x00, 0x02, - 0x0f, 0x12, 0x06, 0xdd, 0x01, 0x02, 0xe4, 0x01, 0x03, 0x1a, 0x6f, 0x20, 0x44, 0x65, 0x70, 0x72, - 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x56, 0x69, 0x65, - 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, - 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x4a, - 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, - 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x0f, 0x01, 0x12, 0x04, 0xdd, 0x01, 0x06, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, - 0x0f, 0x02, 0x12, 0x04, 0xdd, 0x01, 0x1d, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0f, - 0x03, 0x12, 0x04, 0xdd, 0x01, 0x45, 0x63, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0f, 0x04, - 0x12, 0x04, 0xde, 0x01, 0x04, 0x1d, 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x21, - 0x12, 0x04, 0xde, 0x01, 0x04, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x12, - 0x04, 0xdf, 0x01, 0x04, 0x48, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0f, 0x04, 0xb0, 0xca, - 0xbc, 0x22, 0x12, 0x04, 0xdf, 0x01, 0x0b, 0x47, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0f, - 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x04, 0xdf, 0x01, 0x20, 0x46, 0x0a, 0x0f, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x0f, 0x04, 0x12, 0x06, 0xe0, 0x01, 0x04, 0xe3, 0x01, 0x06, 0x0a, 0x11, 0x0a, - 0x07, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x92, 0x08, 0x12, 0x06, 0xe0, 0x01, 0x0b, 0xe3, 0x01, 0x05, - 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xe1, 0x01, - 0x06, 0x27, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, - 0xe2, 0x01, 0x06, 0x5a, 0x0a, 0x7f, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x10, 0x12, 0x06, 0xe7, 0x01, - 0x02, 0xee, 0x01, 0x03, 0x1a, 0x6f, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x01, 0x12, 0x04, - 0xe7, 0x01, 0x06, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x02, 0x12, 0x04, 0xe7, - 0x01, 0x14, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x03, 0x12, 0x04, 0xe7, 0x01, - 0x33, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x04, 0x12, 0x04, 0xe8, 0x01, 0x04, - 0x1d, 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x10, 0x04, 0x21, 0x12, 0x04, 0xe8, 0x01, 0x04, - 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x04, 0x12, 0x04, 0xe9, 0x01, 0x04, 0x3f, - 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x10, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0xe9, - 0x01, 0x0b, 0x3e, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x10, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x02, 0x12, 0x04, 0xe9, 0x01, 0x20, 0x3d, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x04, - 0x12, 0x06, 0xea, 0x01, 0x04, 0xed, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x10, - 0x04, 0x92, 0x08, 0x12, 0x06, 0xea, 0x01, 0x0b, 0xed, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, - 0x00, 0x02, 0x10, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xeb, 0x01, 0x06, 0x1e, 0x0a, 0x10, 0x0a, - 0x08, 0x06, 0x00, 0x02, 0x10, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0xec, 0x01, 0x06, 0x5a, 0x0a, - 0x85, 0x01, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x11, 0x12, 0x06, 0xf1, 0x01, 0x02, 0xfb, 0x01, 0x03, - 0x1a, 0x75, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, - 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x01, - 0x12, 0x04, 0xf1, 0x01, 0x06, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x02, 0x12, - 0x04, 0xf1, 0x01, 0x1f, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x03, 0x12, 0x04, - 0xf1, 0x01, 0x49, 0x69, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x04, 0x12, 0x04, 0xf2, - 0x01, 0x04, 0x1d, 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x11, 0x04, 0x21, 0x12, 0x04, 0xf2, - 0x01, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x04, 0x12, 0x06, 0xf3, 0x01, - 0x04, 0xf6, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x11, 0x04, 0xb0, 0xca, 0xbc, - 0x22, 0x12, 0x06, 0xf3, 0x01, 0x0b, 0xf6, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, - 0x11, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xf4, 0x01, 0x06, 0x2f, 0x0a, 0x12, 0x0a, - 0x0a, 0x06, 0x00, 0x02, 0x11, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xf5, 0x01, 0x06, - 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x04, 0x12, 0x06, 0xf7, 0x01, 0x04, 0xfa, - 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x11, 0x04, 0x92, 0x08, 0x12, 0x06, 0xf7, - 0x01, 0x0b, 0xfa, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x11, 0x04, 0x92, 0x08, - 0x02, 0x12, 0x04, 0xf8, 0x01, 0x06, 0x29, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x11, 0x04, - 0x92, 0x08, 0x03, 0x12, 0x04, 0xf9, 0x01, 0x06, 0x5d, 0x0a, 0xca, 0x01, 0x0a, 0x04, 0x06, 0x00, - 0x02, 0x12, 0x12, 0x06, 0xfe, 0x01, 0x02, 0x88, 0x02, 0x03, 0x1a, 0xb9, 0x01, 0x20, 0x44, 0x65, - 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, - 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, - 0x20, 0x61, 0x20, 0x64, 0x72, 0x79, 0x2d, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x01, 0x12, - 0x04, 0xfe, 0x01, 0x06, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x02, 0x12, 0x04, - 0xfe, 0x01, 0x18, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x03, 0x12, 0x04, 0xfe, - 0x01, 0x3b, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x04, 0x12, 0x04, 0xff, 0x01, - 0x04, 0x1d, 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x12, 0x04, 0x21, 0x12, 0x04, 0xff, 0x01, - 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x04, 0x12, 0x06, 0x80, 0x02, 0x04, - 0x83, 0x02, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x12, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x12, 0x06, 0x80, 0x02, 0x0b, 0x83, 0x02, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x12, - 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0x81, 0x02, 0x06, 0x28, 0x0a, 0x12, 0x0a, 0x0a, - 0x06, 0x00, 0x02, 0x12, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0x82, 0x02, 0x06, 0x0f, - 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x04, 0x12, 0x06, 0x84, 0x02, 0x04, 0x87, 0x02, - 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x12, 0x04, 0x92, 0x08, 0x12, 0x06, 0x84, 0x02, - 0x0b, 0x87, 0x02, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x12, 0x04, 0x92, 0x08, 0x02, - 0x12, 0x04, 0x85, 0x02, 0x06, 0x22, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x12, 0x04, 0x92, - 0x08, 0x03, 0x12, 0x04, 0x86, 0x02, 0x06, 0x6c, 0x0a, 0x85, 0x01, 0x0a, 0x04, 0x06, 0x00, 0x02, - 0x13, 0x12, 0x06, 0x8b, 0x02, 0x02, 0x95, 0x02, 0x03, 0x1a, 0x75, 0x20, 0x44, 0x65, 0x70, 0x72, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x38, 0x06, 0x13, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x38, 0x14, 0x28, 0x0a, 0x0c, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x38, 0x33, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, 0x39, 0x04, 0x3c, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, + 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x39, 0x0b, 0x3c, 0x05, 0x0a, 0x11, 0x0a, + 0x0a, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x3a, 0x06, 0x24, + 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, + 0x3b, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, 0x3d, 0x04, + 0x40, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x12, 0x04, 0x3d, + 0x0b, 0x40, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x02, 0x12, + 0x03, 0x3e, 0x06, 0x1e, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x03, + 0x12, 0x03, 0x3f, 0x06, 0x2e, 0x0a, 0x1f, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x03, 0x12, 0x04, 0x44, + 0x02, 0x4d, 0x03, 0x1a, 0x11, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x01, 0x12, + 0x03, 0x44, 0x06, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x44, + 0x11, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x44, 0x2d, 0x3f, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, 0x04, 0x12, 0x04, 0x45, 0x04, 0x48, 0x06, 0x0a, + 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x45, 0x0b, + 0x48, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, + 0x12, 0x03, 0x46, 0x06, 0x1b, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x03, 0x04, 0xb0, 0xca, + 0xbc, 0x22, 0x07, 0x12, 0x03, 0x47, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x03, + 0x04, 0x12, 0x04, 0x49, 0x04, 0x4c, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x03, 0x04, + 0x92, 0x08, 0x12, 0x04, 0x49, 0x0b, 0x4c, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x03, + 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x4a, 0x06, 0x1b, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, + 0x03, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x4b, 0x06, 0x24, 0x0a, 0x29, 0x0a, 0x04, 0x06, 0x00, + 0x02, 0x04, 0x12, 0x04, 0x50, 0x02, 0x59, 0x03, 0x1a, 0x1b, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, + 0x50, 0x06, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x02, 0x12, 0x03, 0x50, 0x11, + 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x50, 0x2d, 0x3f, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x04, 0x12, 0x04, 0x51, 0x04, 0x54, 0x06, 0x0a, 0x11, + 0x0a, 0x09, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x51, 0x0b, 0x54, + 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x03, 0x12, + 0x03, 0x52, 0x06, 0x1a, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x04, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x07, 0x12, 0x03, 0x53, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x04, 0x04, + 0x12, 0x04, 0x55, 0x04, 0x58, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x04, 0x04, 0x92, + 0x08, 0x12, 0x04, 0x55, 0x0b, 0x58, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x04, 0x04, + 0x92, 0x08, 0x02, 0x12, 0x03, 0x56, 0x06, 0x1b, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x04, + 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x57, 0x06, 0x2e, 0x0a, 0x4a, 0x0a, 0x04, 0x06, 0x00, 0x02, + 0x05, 0x12, 0x04, 0x5c, 0x02, 0x65, 0x03, 0x1a, 0x3c, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x20, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x65, 0x78, + 0x69, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, + 0x5c, 0x06, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x02, 0x12, 0x03, 0x5c, 0x17, + 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x5c, 0x39, 0x51, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x04, 0x12, 0x04, 0x5d, 0x04, 0x60, 0x06, 0x0a, 0x11, + 0x0a, 0x09, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x5d, 0x0b, 0x60, + 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x03, 0x12, + 0x03, 0x5e, 0x06, 0x26, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x05, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x07, 0x12, 0x03, 0x5f, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x05, 0x04, + 0x12, 0x04, 0x61, 0x04, 0x64, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x05, 0x04, 0x92, + 0x08, 0x12, 0x04, 0x61, 0x0b, 0x64, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x05, 0x04, + 0x92, 0x08, 0x02, 0x12, 0x03, 0x62, 0x06, 0x21, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x05, + 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x63, 0x06, 0x4f, 0x0a, 0x47, 0x0a, 0x04, 0x06, 0x00, 0x02, + 0x06, 0x12, 0x04, 0x69, 0x02, 0x73, 0x03, 0x1a, 0x39, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, + 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x69, 0x06, 0x10, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x69, 0x11, 0x22, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x69, 0x2d, 0x3f, 0x0a, 0x0c, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x06, 0x04, 0x12, 0x03, 0x6a, 0x04, 0x1d, 0x0a, 0x0d, 0x0a, 0x06, 0x06, 0x00, + 0x02, 0x06, 0x04, 0x21, 0x12, 0x03, 0x6a, 0x04, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x06, 0x04, 0x12, 0x04, 0x6b, 0x04, 0x6e, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x06, + 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x6b, 0x0b, 0x6e, 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, + 0x00, 0x02, 0x06, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x6c, 0x06, 0x22, 0x0a, 0x11, + 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x06, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x6d, 0x06, + 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x06, 0x04, 0x12, 0x04, 0x6f, 0x04, 0x72, 0x06, + 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x12, 0x04, 0x6f, 0x0b, 0x72, + 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x02, 0x12, 0x03, 0x70, + 0x06, 0x1b, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x06, 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, + 0x71, 0x06, 0x4a, 0x0a, 0x20, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x07, 0x12, 0x04, 0x76, 0x02, 0x7f, + 0x03, 0x1a, 0x12, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, + 0x76, 0x06, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, 0x76, 0x12, + 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x76, 0x2f, 0x42, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x04, 0x12, 0x04, 0x77, 0x04, 0x7a, 0x06, 0x0a, 0x11, + 0x0a, 0x09, 0x06, 0x00, 0x02, 0x07, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x77, 0x0b, 0x7a, + 0x05, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x07, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, + 0x03, 0x78, 0x06, 0x23, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x07, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x07, 0x12, 0x03, 0x79, 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x07, 0x04, + 0x12, 0x04, 0x7b, 0x04, 0x7e, 0x06, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x07, 0x04, 0x92, + 0x08, 0x12, 0x04, 0x7b, 0x0b, 0x7e, 0x05, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x07, 0x04, + 0x92, 0x08, 0x02, 0x12, 0x03, 0x7c, 0x06, 0x1c, 0x0a, 0x0f, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x07, + 0x04, 0x92, 0x08, 0x03, 0x12, 0x03, 0x7d, 0x06, 0x25, 0x0a, 0x57, 0x0a, 0x04, 0x06, 0x00, 0x02, + 0x08, 0x12, 0x06, 0x83, 0x01, 0x02, 0x8d, 0x01, 0x03, 0x1a, 0x47, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, - 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, - 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, 0x01, 0x12, 0x04, 0x8b, 0x02, 0x06, 0x15, 0x0a, - 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, 0x02, 0x12, 0x04, 0x8b, 0x02, 0x16, 0x2c, 0x0a, 0x0d, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, 0x03, 0x12, 0x04, 0x8b, 0x02, 0x37, 0x4e, 0x0a, 0x0d, 0x0a, - 0x05, 0x06, 0x00, 0x02, 0x13, 0x04, 0x12, 0x04, 0x8c, 0x02, 0x04, 0x1d, 0x0a, 0x0e, 0x0a, 0x06, - 0x06, 0x00, 0x02, 0x13, 0x04, 0x21, 0x12, 0x04, 0x8c, 0x02, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x13, 0x04, 0x12, 0x06, 0x8d, 0x02, 0x04, 0x90, 0x02, 0x06, 0x0a, 0x13, 0x0a, - 0x09, 0x06, 0x00, 0x02, 0x13, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0x8d, 0x02, 0x0b, 0x90, - 0x02, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x13, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, - 0x12, 0x04, 0x8e, 0x02, 0x06, 0x26, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x13, 0x04, 0xb0, - 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0x8f, 0x02, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x13, 0x04, 0x12, 0x06, 0x91, 0x02, 0x04, 0x94, 0x02, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, - 0x00, 0x02, 0x13, 0x04, 0x92, 0x08, 0x12, 0x06, 0x91, 0x02, 0x0b, 0x94, 0x02, 0x05, 0x0a, 0x10, - 0x0a, 0x08, 0x06, 0x00, 0x02, 0x13, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0x92, 0x02, 0x06, 0x20, - 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x13, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x93, 0x02, - 0x06, 0x5d, 0x0a, 0x0e, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x14, 0x12, 0x06, 0x97, 0x02, 0x02, 0x9d, - 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x01, 0x12, 0x04, 0x97, 0x02, 0x06, - 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x02, 0x12, 0x04, 0x97, 0x02, 0x10, 0x20, - 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x03, 0x12, 0x04, 0x97, 0x02, 0x2b, 0x3c, 0x0a, - 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x04, 0x12, 0x04, 0x98, 0x02, 0x04, 0x3b, 0x0a, 0x11, - 0x0a, 0x09, 0x06, 0x00, 0x02, 0x14, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x98, 0x02, 0x0b, - 0x3a, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x14, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, - 0x04, 0x98, 0x02, 0x20, 0x39, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x04, 0x12, 0x06, - 0x99, 0x02, 0x04, 0x9c, 0x02, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x14, 0x04, 0x92, - 0x08, 0x12, 0x06, 0x99, 0x02, 0x0b, 0x9c, 0x02, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, - 0x14, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0x9a, 0x02, 0x06, 0x1a, 0x0a, 0x10, 0x0a, 0x08, 0x06, - 0x00, 0x02, 0x14, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x9b, 0x02, 0x06, 0x2f, 0x0a, 0x47, 0x0a, - 0x04, 0x06, 0x00, 0x02, 0x15, 0x12, 0x06, 0xa0, 0x02, 0x02, 0xa6, 0x02, 0x03, 0x1a, 0x37, 0x20, - 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x15, 0x01, 0x12, - 0x04, 0xa0, 0x02, 0x06, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x15, 0x02, 0x12, 0x04, - 0xa0, 0x02, 0x17, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x15, 0x03, 0x12, 0x04, 0xa0, - 0x02, 0x39, 0x51, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x15, 0x04, 0x12, 0x04, 0xa1, 0x02, - 0x04, 0x49, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x15, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, - 0x04, 0xa1, 0x02, 0x0b, 0x48, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x15, 0x04, 0xb0, 0xca, - 0xbc, 0x22, 0x02, 0x12, 0x04, 0xa1, 0x02, 0x20, 0x47, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, - 0x15, 0x04, 0x12, 0x06, 0xa2, 0x02, 0x04, 0xa5, 0x02, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, - 0x02, 0x15, 0x04, 0x92, 0x08, 0x12, 0x06, 0xa2, 0x02, 0x0b, 0xa5, 0x02, 0x05, 0x0a, 0x10, 0x0a, - 0x08, 0x06, 0x00, 0x02, 0x15, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xa3, 0x02, 0x06, 0x21, 0x0a, - 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x15, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0xa4, 0x02, 0x06, - 0x4a, 0x0a, 0x39, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x16, 0x12, 0x06, 0xa9, 0x02, 0x02, 0xaf, 0x02, - 0x03, 0x1a, 0x29, 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x16, 0x01, 0x12, 0x04, 0xa9, 0x02, 0x06, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x06, - 0x00, 0x02, 0x16, 0x02, 0x12, 0x04, 0xa9, 0x02, 0x15, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, - 0x02, 0x16, 0x03, 0x12, 0x04, 0xa9, 0x02, 0x35, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, - 0x16, 0x04, 0x12, 0x04, 0xaa, 0x02, 0x04, 0x3e, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x16, - 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0xaa, 0x02, 0x0b, 0x3d, 0x0a, 0x12, 0x0a, 0x0a, 0x06, - 0x00, 0x02, 0x16, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x04, 0xaa, 0x02, 0x20, 0x3c, 0x0a, - 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x16, 0x04, 0x12, 0x06, 0xab, 0x02, 0x04, 0xae, 0x02, 0x06, - 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x16, 0x04, 0x92, 0x08, 0x12, 0x06, 0xab, 0x02, 0x0b, - 0xae, 0x02, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x16, 0x04, 0x92, 0x08, 0x02, 0x12, - 0x04, 0xac, 0x02, 0x06, 0x1f, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x16, 0x04, 0x92, 0x08, - 0x03, 0x12, 0x04, 0xad, 0x02, 0x06, 0x3c, 0x0a, 0x3c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x17, 0x12, - 0x06, 0xb2, 0x02, 0x02, 0xbb, 0x02, 0x03, 0x1a, 0x2c, 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x63, 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x01, 0x12, 0x04, 0x83, 0x01, 0x06, + 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x02, 0x12, 0x04, 0x83, 0x01, 0x17, 0x2e, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x03, 0x12, 0x04, 0x83, 0x01, 0x39, 0x51, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x04, 0x12, 0x04, 0x84, 0x01, 0x04, 0x1d, 0x0a, 0x0e, + 0x0a, 0x06, 0x06, 0x00, 0x02, 0x08, 0x04, 0x21, 0x12, 0x04, 0x84, 0x01, 0x04, 0x1d, 0x0a, 0x0f, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x08, 0x04, 0x12, 0x06, 0x85, 0x01, 0x04, 0x88, 0x01, 0x06, 0x0a, + 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x08, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0x85, 0x01, + 0x0b, 0x88, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x08, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x04, 0x12, 0x04, 0x86, 0x01, 0x06, 0x27, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x08, + 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0x87, 0x01, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x08, 0x04, 0x12, 0x06, 0x89, 0x01, 0x04, 0x8c, 0x01, 0x06, 0x0a, 0x11, 0x0a, + 0x07, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x12, 0x06, 0x89, 0x01, 0x0b, 0x8c, 0x01, 0x05, + 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0x8a, 0x01, + 0x06, 0x21, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x08, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, + 0x8b, 0x01, 0x06, 0x58, 0x0a, 0x27, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x09, 0x12, 0x06, 0x90, 0x01, + 0x02, 0x99, 0x01, 0x03, 0x1a, 0x17, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x09, 0x01, 0x12, 0x04, 0x90, 0x01, 0x06, 0x17, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x09, 0x02, 0x12, 0x04, 0x90, 0x01, 0x18, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x09, 0x03, 0x12, 0x04, 0x90, 0x01, 0x3b, 0x54, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x09, 0x04, 0x12, 0x06, 0x91, 0x01, 0x04, 0x94, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, + 0x00, 0x02, 0x09, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0x91, 0x01, 0x0b, 0x94, 0x01, 0x05, + 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x09, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, + 0x92, 0x01, 0x06, 0x28, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x09, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x07, 0x12, 0x04, 0x93, 0x01, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x09, + 0x04, 0x12, 0x06, 0x95, 0x01, 0x04, 0x98, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, + 0x09, 0x04, 0x92, 0x08, 0x12, 0x06, 0x95, 0x01, 0x0b, 0x98, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, + 0x06, 0x00, 0x02, 0x09, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0x96, 0x01, 0x06, 0x22, 0x0a, 0x10, + 0x0a, 0x08, 0x06, 0x00, 0x02, 0x09, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x97, 0x01, 0x06, 0x2a, + 0x0a, 0x24, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0a, 0x12, 0x06, 0x9c, 0x01, 0x02, 0xa5, 0x01, 0x03, + 0x1a, 0x14, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0a, 0x01, 0x12, + 0x04, 0x9c, 0x01, 0x06, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0a, 0x02, 0x12, 0x04, + 0x9c, 0x01, 0x14, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0a, 0x03, 0x12, 0x04, 0x9c, + 0x01, 0x33, 0x48, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0a, 0x04, 0x12, 0x06, 0x9d, 0x01, + 0x04, 0xa0, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0a, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x12, 0x06, 0x9d, 0x01, 0x0b, 0xa0, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, + 0x0a, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0x9e, 0x01, 0x06, 0x25, 0x0a, 0x12, 0x0a, + 0x0a, 0x06, 0x00, 0x02, 0x0a, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0x9f, 0x01, 0x06, + 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0a, 0x04, 0x12, 0x06, 0xa1, 0x01, 0x04, 0xa4, + 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0a, 0x04, 0x92, 0x08, 0x12, 0x06, 0xa1, + 0x01, 0x0b, 0xa4, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0a, 0x04, 0x92, 0x08, + 0x02, 0x12, 0x04, 0xa2, 0x01, 0x06, 0x1e, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0a, 0x04, + 0x92, 0x08, 0x03, 0x12, 0x04, 0xa3, 0x01, 0x06, 0x27, 0x0a, 0x29, 0x0a, 0x04, 0x06, 0x00, 0x02, + 0x0b, 0x12, 0x06, 0xa8, 0x01, 0x02, 0xb1, 0x01, 0x03, 0x1a, 0x19, 0x20, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x20, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xa8, + 0x01, 0x06, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x02, 0x12, 0x04, 0xa8, 0x01, + 0x1a, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x03, 0x12, 0x04, 0xa8, 0x01, 0x3f, + 0x5a, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x06, 0xa9, 0x01, 0x04, 0xac, + 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0b, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, + 0x06, 0xa9, 0x01, 0x0b, 0xac, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0b, 0x04, + 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xaa, 0x01, 0x06, 0x2a, 0x0a, 0x12, 0x0a, 0x0a, 0x06, + 0x00, 0x02, 0x0b, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xab, 0x01, 0x06, 0x0f, 0x0a, + 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x06, 0xad, 0x01, 0x04, 0xb0, 0x01, 0x06, + 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x92, 0x08, 0x12, 0x06, 0xad, 0x01, 0x0b, + 0xb0, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x92, 0x08, 0x02, 0x12, + 0x04, 0xae, 0x01, 0x06, 0x24, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0b, 0x04, 0x92, 0x08, + 0x03, 0x12, 0x04, 0xaf, 0x01, 0x06, 0x2c, 0x0a, 0x4c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0c, 0x12, + 0x06, 0xb5, 0x01, 0x02, 0xbf, 0x01, 0x03, 0x1a, 0x3c, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, + 0x2e, 0x0a, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x04, + 0xb5, 0x01, 0x06, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x02, 0x12, 0x04, 0xb5, + 0x01, 0x13, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x03, 0x12, 0x04, 0xb5, 0x01, + 0x31, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x04, 0xb6, 0x01, 0x04, + 0x1d, 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x21, 0x12, 0x04, 0xb6, 0x01, 0x04, + 0x1d, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x06, 0xb7, 0x01, 0x04, 0xba, + 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0c, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, + 0x06, 0xb7, 0x01, 0x0b, 0xba, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0c, 0x04, + 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xb8, 0x01, 0x06, 0x24, 0x0a, 0x12, 0x0a, 0x0a, 0x06, + 0x00, 0x02, 0x0c, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xb9, 0x01, 0x06, 0x0f, 0x0a, + 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x06, 0xbb, 0x01, 0x04, 0xbe, 0x01, 0x06, + 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x92, 0x08, 0x12, 0x06, 0xbb, 0x01, 0x0b, + 0xbe, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x92, 0x08, 0x02, 0x12, + 0x04, 0xbc, 0x01, 0x06, 0x1d, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0c, 0x04, 0x92, 0x08, + 0x03, 0x12, 0x04, 0xbd, 0x01, 0x06, 0x3b, 0x0a, 0x5a, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0d, 0x12, + 0x06, 0xc3, 0x01, 0x02, 0xcd, 0x01, 0x03, 0x1a, 0x4a, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x01, 0x12, 0x04, - 0xb2, 0x02, 0x06, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x02, 0x12, 0x04, 0xb2, - 0x02, 0x1b, 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x03, 0x12, 0x04, 0xb2, 0x02, - 0x41, 0x5d, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x04, 0x12, 0x06, 0xb3, 0x02, 0x04, - 0xb6, 0x02, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x17, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x12, 0x06, 0xb3, 0x02, 0x0b, 0xb6, 0x02, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x17, - 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xb4, 0x02, 0x06, 0x2c, 0x0a, 0x12, 0x0a, 0x0a, - 0x06, 0x00, 0x02, 0x17, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xb5, 0x02, 0x06, 0x0f, - 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x04, 0x12, 0x06, 0xb7, 0x02, 0x04, 0xba, 0x02, - 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x17, 0x04, 0x92, 0x08, 0x12, 0x06, 0xb7, 0x02, - 0x0b, 0xba, 0x02, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x17, 0x04, 0x92, 0x08, 0x02, - 0x12, 0x04, 0xb8, 0x02, 0x06, 0x25, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x17, 0x04, 0x92, - 0x08, 0x03, 0x12, 0x04, 0xb9, 0x02, 0x06, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x06, - 0xbe, 0x02, 0x00, 0xf4, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x04, 0xbe, - 0x02, 0x08, 0x0c, 0x0a, 0x4e, 0x0a, 0x03, 0x04, 0x00, 0x09, 0x12, 0x04, 0xc0, 0x02, 0x02, 0x0d, - 0x1a, 0x41, 0x20, 0x35, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x22, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x09, 0x00, 0x12, 0x04, 0xc0, 0x02, 0x0b, - 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x09, 0x00, 0x01, 0x12, 0x04, 0xc0, 0x02, 0x0b, 0x0c, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x09, 0x00, 0x02, 0x12, 0x04, 0xc0, 0x02, 0x0b, 0x0c, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc1, 0x02, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0xc1, 0x02, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc1, 0x02, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc1, 0x02, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x00, 0x08, 0x12, 0x04, 0xc1, 0x02, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, - 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc1, 0x02, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc2, 0x02, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x00, - 0x02, 0x01, 0x12, 0x06, 0xc2, 0x02, 0x02, 0xc5, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x01, 0x01, 0x12, 0x04, 0xc2, 0x02, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, - 0x01, 0x03, 0x12, 0x04, 0xc2, 0x02, 0x14, 0x15, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, - 0x08, 0x12, 0x06, 0xc2, 0x02, 0x16, 0xc5, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, - 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc3, 0x02, 0x04, 0x2a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, - 0x00, 0x02, 0x01, 0x08, 0x03, 0x12, 0x04, 0xc4, 0x02, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x02, 0x05, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, - 0x02, 0x02, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, - 0x01, 0x12, 0x04, 0xc6, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, - 0x12, 0x04, 0xc6, 0x02, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x08, 0x12, - 0x04, 0xc6, 0x02, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x02, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xc6, 0x02, 0x13, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, - 0x12, 0x04, 0xc7, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x04, - 0xc7, 0x02, 0x02, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, 0xc7, - 0x02, 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x04, 0xc7, 0x02, - 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x08, 0x12, 0x04, 0xc7, 0x02, 0x19, - 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc7, - 0x02, 0x1a, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x05, 0x12, 0x04, 0xc8, 0x02, - 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0xc8, 0x02, 0x02, 0x3f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0xc8, 0x02, 0x07, 0x11, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x04, 0xc8, 0x02, 0x14, 0x15, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x08, 0x12, 0x04, 0xc8, 0x02, 0x16, 0x3e, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x00, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc8, 0x02, 0x17, 0x3d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x06, 0x12, 0x04, 0xc9, 0x02, 0x02, 0x1b, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0xc9, 0x02, 0x02, 0x56, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0xc9, 0x02, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x05, 0x03, 0x12, 0x04, 0xc9, 0x02, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x05, 0x08, 0x12, 0x04, 0xc9, 0x02, 0x2d, 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, - 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc9, 0x02, 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x06, 0x06, 0x12, 0x04, 0xca, 0x02, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, - 0x02, 0x06, 0x12, 0x04, 0xca, 0x02, 0x02, 0x57, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, - 0x01, 0x12, 0x04, 0xca, 0x02, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, - 0x12, 0x04, 0xca, 0x02, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x08, 0x12, - 0x04, 0xca, 0x02, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x06, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xca, 0x02, 0x2f, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x05, - 0x12, 0x04, 0xcb, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x04, - 0xcb, 0x02, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x04, 0xcb, - 0x02, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x04, 0xcb, 0x02, - 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x08, 0x12, 0x04, 0xcb, 0x02, 0x20, - 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcb, - 0x02, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x04, 0xcc, 0x02, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x04, 0xcc, 0x02, 0x02, 0x4b, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x04, 0xcc, 0x02, 0x09, 0x1c, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x04, 0xcc, 0x02, 0x1f, 0x21, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x08, 0x12, 0x04, 0xcc, 0x02, 0x22, 0x4a, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x00, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcc, 0x02, 0x23, 0x49, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x05, 0x12, 0x04, 0xcd, 0x02, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x00, 0x02, 0x09, 0x12, 0x04, 0xcd, 0x02, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x04, 0xcd, 0x02, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x09, 0x03, 0x12, 0x04, 0xcd, 0x02, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x09, 0x08, 0x12, 0x04, 0xcd, 0x02, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, - 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcd, 0x02, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x0a, 0x04, 0x12, 0x04, 0xce, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, - 0x02, 0x0a, 0x12, 0x04, 0xce, 0x02, 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, - 0x06, 0x12, 0x04, 0xce, 0x02, 0x0b, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x01, - 0x12, 0x04, 0xce, 0x02, 0x19, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, 0x12, - 0x04, 0xce, 0x02, 0x26, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x08, 0x12, 0x04, - 0xce, 0x02, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0a, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0xce, 0x02, 0x2a, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x06, 0x12, - 0x04, 0xcf, 0x02, 0x02, 0x0d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0b, 0x12, 0x04, 0xcf, - 0x02, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xcf, 0x02, - 0x0e, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x03, 0x12, 0x04, 0xcf, 0x02, 0x1d, - 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x08, 0x12, 0x04, 0xcf, 0x02, 0x20, 0x48, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0b, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcf, 0x02, - 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x05, 0x12, 0x04, 0xd2, 0x02, 0x02, - 0x08, 0x0a, 0x6d, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0c, 0x12, 0x04, 0xd2, 0x02, 0x02, 0x42, 0x1a, - 0x5f, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x73, 0x20, - 0x61, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x20, 0x49, 0x74, 0x20, 0x69, 0x73, - 0x20, 0x69, 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xd2, 0x02, 0x09, 0x13, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x03, 0x12, 0x04, 0xd2, 0x02, 0x16, 0x18, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x08, 0x12, 0x04, 0xd2, 0x02, 0x19, 0x41, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x00, 0x02, 0x0c, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd2, 0x02, 0x1a, 0x40, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x06, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x18, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0d, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x5b, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x04, 0xd4, 0x02, 0x19, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x0d, 0x03, 0x12, 0x04, 0xd4, 0x02, 0x2f, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x0d, 0x08, 0x12, 0x04, 0xd4, 0x02, 0x32, 0x5a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, - 0x0d, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd4, 0x02, 0x33, 0x59, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x0e, 0x06, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, - 0x02, 0x0e, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x57, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, - 0x01, 0x12, 0x04, 0xd5, 0x02, 0x15, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x03, - 0x12, 0x04, 0xd5, 0x02, 0x2b, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x08, 0x12, - 0x04, 0xd5, 0x02, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0e, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xd5, 0x02, 0x2f, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x06, - 0x12, 0x04, 0xd6, 0x02, 0x02, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0f, 0x12, 0x06, - 0xd6, 0x02, 0x02, 0xd9, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x01, 0x12, - 0x04, 0xd6, 0x02, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x03, 0x12, 0x04, - 0xd6, 0x02, 0x2b, 0x2d, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x08, 0x12, 0x06, 0xd6, - 0x02, 0x2e, 0xd9, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0f, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xd7, 0x02, 0x04, 0x2a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x00, 0x02, 0x0f, 0x08, - 0x03, 0x12, 0x04, 0xd8, 0x02, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x05, - 0x12, 0x04, 0xda, 0x02, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x10, 0x12, 0x04, - 0xda, 0x02, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x01, 0x12, 0x04, 0xda, - 0x02, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x03, 0x12, 0x04, 0xda, 0x02, - 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x08, 0x12, 0x04, 0xda, 0x02, 0x18, - 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x10, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xda, - 0x02, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x04, 0x12, 0x04, 0xdb, 0x02, - 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x11, 0x12, 0x04, 0xdb, 0x02, 0x02, 0x61, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x06, 0x12, 0x04, 0xdb, 0x02, 0x0b, 0x29, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x01, 0x12, 0x04, 0xdb, 0x02, 0x2a, 0x32, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x03, 0x12, 0x04, 0xdb, 0x02, 0x35, 0x37, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x11, 0x08, 0x12, 0x04, 0xdb, 0x02, 0x38, 0x60, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x00, 0x02, 0x11, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdb, 0x02, 0x39, 0x5f, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x06, 0x12, 0x04, 0xde, 0x02, 0x02, 0x1b, 0x0a, 0x42, 0x0a, - 0x04, 0x04, 0x00, 0x02, 0x12, 0x12, 0x04, 0xde, 0x02, 0x02, 0x58, 0x1a, 0x34, 0x20, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x01, 0x12, 0x04, 0xde, 0x02, 0x1c, 0x29, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x03, 0x12, 0x04, 0xde, 0x02, 0x2c, 0x2e, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x08, 0x12, 0x04, 0xde, 0x02, 0x2f, 0x57, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x00, 0x02, 0x12, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xde, 0x02, 0x30, 0x56, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, 0x05, 0x12, 0x04, 0xe1, 0x02, 0x02, 0x06, 0x0a, - 0x4b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x13, 0x12, 0x04, 0xe1, 0x02, 0x02, 0x41, 0x1a, 0x3d, 0x20, - 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x20, 0x69, 0x73, 0x20, 0x69, - 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x77, 0x68, 0x65, - 0x6e, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, - 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x13, 0x01, 0x12, 0x04, 0xe1, 0x02, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x13, 0x03, 0x12, 0x04, 0xe1, 0x02, 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x13, 0x08, 0x12, 0x04, 0xe1, 0x02, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, - 0x13, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe1, 0x02, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x00, 0x02, 0x14, 0x05, 0x12, 0x04, 0xed, 0x02, 0x02, 0x06, 0x0a, 0xe1, 0x05, 0x0a, 0x04, 0x04, - 0x00, 0x02, 0x14, 0x12, 0x04, 0xed, 0x02, 0x02, 0x50, 0x1a, 0xd2, 0x05, 0x20, 0x49, 0x66, 0x20, - 0x60, 0x74, 0x72, 0x75, 0x65, 0x60, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x6c, 0x69, 0x76, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, - 0x3b, 0x20, 0x69, 0x66, 0x20, 0x60, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x60, 0x2c, 0x20, 0x6c, 0x69, - 0x76, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x0a, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, - 0x28, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, - 0x73, 0x20, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x2e, - 0x0a, 0x0a, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x27, 0x73, 0x20, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, 0x61, - 0x72, 0x69, 0x6c, 0x79, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x41, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x0a, - 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x76, 0x69, 0x61, 0x20, 0x60, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x20, 0x77, 0x68, 0x6f, 0x73, 0x65, - 0x20, 0x55, 0x44, 0x46, 0x20, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x66, - 0x61, 0x69, 0x6c, 0x73, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, - 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x68, 0x61, 0x75, - 0x73, 0x74, 0x65, 0x64, 0x3b, 0x20, 0x73, 0x65, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x60, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x60, 0x29, 0x20, - 0x69, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x0a, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x69, - 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x60, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x20, 0x60, 0x74, 0x72, 0x75, 0x65, 0x60, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x72, 0x65, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x0a, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x73, 0x75, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x78, 0x65, 0x64, 0x20, 0x28, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x73, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x65, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x29, 0x2c, 0x0a, 0x20, 0x72, 0x65, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x60, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x75, 0x6c, 0x65, 0x60, 0x20, 0x2f, 0x20, 0x60, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x60, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, - 0x6c, 0x79, 0x20, 0x73, 0x65, 0x74, 0x73, 0x0a, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x76, + 0x65, 0x73, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x04, 0xc3, 0x01, + 0x06, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x02, 0x12, 0x04, 0xc3, 0x01, 0x19, + 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x03, 0x12, 0x04, 0xc3, 0x01, 0x3d, 0x57, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x12, 0x04, 0xc4, 0x01, 0x04, 0x1d, 0x0a, + 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x21, 0x12, 0x04, 0xc4, 0x01, 0x04, 0x1d, 0x0a, + 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x12, 0x06, 0xc5, 0x01, 0x04, 0xc8, 0x01, 0x06, + 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0d, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0xc5, + 0x01, 0x0b, 0xc8, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0d, 0x04, 0xb0, 0xca, + 0xbc, 0x22, 0x04, 0x12, 0x04, 0xc6, 0x01, 0x06, 0x29, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, + 0x0d, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xc7, 0x01, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x12, 0x06, 0xc9, 0x01, 0x04, 0xcc, 0x01, 0x06, 0x0a, 0x11, + 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x92, 0x08, 0x12, 0x06, 0xc9, 0x01, 0x0b, 0xcc, 0x01, + 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xca, + 0x01, 0x06, 0x23, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0d, 0x04, 0x92, 0x08, 0x03, 0x12, + 0x04, 0xcb, 0x01, 0x06, 0x41, 0x0a, 0x41, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x0e, 0x12, 0x06, 0xd0, + 0x01, 0x02, 0xda, 0x01, 0x03, 0x1a, 0x31, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, + 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, + 0x01, 0x12, 0x04, 0xd0, 0x01, 0x06, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x02, + 0x12, 0x04, 0xd0, 0x01, 0x14, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x03, 0x12, + 0x04, 0xd0, 0x01, 0x33, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x04, + 0xd1, 0x01, 0x04, 0x1d, 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x21, 0x12, 0x04, + 0xd1, 0x01, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x06, 0xd2, + 0x01, 0x04, 0xd5, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0e, 0x04, 0xb0, 0xca, + 0xbc, 0x22, 0x12, 0x06, 0xd2, 0x01, 0x0b, 0xd5, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, + 0x02, 0x0e, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xd3, 0x01, 0x06, 0x24, 0x0a, 0x12, + 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x0e, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xd4, 0x01, + 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x06, 0xd6, 0x01, 0x04, + 0xd9, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x92, 0x08, 0x12, 0x06, + 0xd6, 0x01, 0x0b, 0xd9, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0e, 0x04, 0x92, + 0x08, 0x02, 0x12, 0x04, 0xd7, 0x01, 0x06, 0x1e, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0e, + 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0xd8, 0x01, 0x06, 0x5f, 0x0a, 0x7f, 0x0a, 0x04, 0x06, 0x00, + 0x02, 0x0f, 0x12, 0x06, 0xdd, 0x01, 0x02, 0xe4, 0x01, 0x03, 0x1a, 0x6f, 0x20, 0x44, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x56, 0x69, + 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, + 0x65, 0x61, 0x64, 0x2e, 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, + 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, + 0x76, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x0f, 0x01, 0x12, 0x04, 0xdd, 0x01, 0x06, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x0f, 0x02, 0x12, 0x04, 0xdd, 0x01, 0x1d, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x0f, 0x03, 0x12, 0x04, 0xdd, 0x01, 0x45, 0x63, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0f, + 0x04, 0x12, 0x04, 0xde, 0x01, 0x04, 0x1d, 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x0f, 0x04, + 0x21, 0x12, 0x04, 0xde, 0x01, 0x04, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x0f, 0x04, + 0x12, 0x04, 0xdf, 0x01, 0x04, 0x48, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x0f, 0x04, 0xb0, + 0xca, 0xbc, 0x22, 0x12, 0x04, 0xdf, 0x01, 0x0b, 0x47, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, + 0x0f, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x04, 0xdf, 0x01, 0x20, 0x46, 0x0a, 0x0f, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x12, 0x06, 0xe0, 0x01, 0x04, 0xe3, 0x01, 0x06, 0x0a, 0x11, + 0x0a, 0x07, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x92, 0x08, 0x12, 0x06, 0xe0, 0x01, 0x0b, 0xe3, 0x01, + 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xe1, + 0x01, 0x06, 0x27, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x0f, 0x04, 0x92, 0x08, 0x03, 0x12, + 0x04, 0xe2, 0x01, 0x06, 0x5a, 0x0a, 0x7f, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x10, 0x12, 0x06, 0xe7, + 0x01, 0x02, 0xee, 0x01, 0x03, 0x1a, 0x6f, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x20, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x01, 0x12, + 0x04, 0xe7, 0x01, 0x06, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x02, 0x12, 0x04, + 0xe7, 0x01, 0x14, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x03, 0x12, 0x04, 0xe7, + 0x01, 0x33, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x04, 0x12, 0x04, 0xe8, 0x01, + 0x04, 0x1d, 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x10, 0x04, 0x21, 0x12, 0x04, 0xe8, 0x01, + 0x04, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, 0x04, 0x12, 0x04, 0xe9, 0x01, 0x04, + 0x3f, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x10, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, + 0xe9, 0x01, 0x0b, 0x3e, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x10, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x02, 0x12, 0x04, 0xe9, 0x01, 0x20, 0x3d, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x10, + 0x04, 0x12, 0x06, 0xea, 0x01, 0x04, 0xed, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, + 0x10, 0x04, 0x92, 0x08, 0x12, 0x06, 0xea, 0x01, 0x0b, 0xed, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, + 0x06, 0x00, 0x02, 0x10, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xeb, 0x01, 0x06, 0x1e, 0x0a, 0x10, + 0x0a, 0x08, 0x06, 0x00, 0x02, 0x10, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0xec, 0x01, 0x06, 0x5a, + 0x0a, 0x85, 0x01, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x11, 0x12, 0x06, 0xf1, 0x01, 0x02, 0xfb, 0x01, + 0x03, 0x1a, 0x75, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, + 0x01, 0x12, 0x04, 0xf1, 0x01, 0x06, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x02, + 0x12, 0x04, 0xf1, 0x01, 0x1f, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x03, 0x12, + 0x04, 0xf1, 0x01, 0x49, 0x69, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x04, 0x12, 0x04, + 0xf2, 0x01, 0x04, 0x1d, 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x11, 0x04, 0x21, 0x12, 0x04, + 0xf2, 0x01, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x04, 0x12, 0x06, 0xf3, + 0x01, 0x04, 0xf6, 0x01, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x11, 0x04, 0xb0, 0xca, + 0xbc, 0x22, 0x12, 0x06, 0xf3, 0x01, 0x0b, 0xf6, 0x01, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, + 0x02, 0x11, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xf4, 0x01, 0x06, 0x2f, 0x0a, 0x12, + 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x11, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xf5, 0x01, + 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x11, 0x04, 0x12, 0x06, 0xf7, 0x01, 0x04, + 0xfa, 0x01, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x11, 0x04, 0x92, 0x08, 0x12, 0x06, + 0xf7, 0x01, 0x0b, 0xfa, 0x01, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x11, 0x04, 0x92, + 0x08, 0x02, 0x12, 0x04, 0xf8, 0x01, 0x06, 0x29, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x11, + 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0xf9, 0x01, 0x06, 0x5d, 0x0a, 0xca, 0x01, 0x0a, 0x04, 0x06, + 0x00, 0x02, 0x12, 0x12, 0x06, 0xfe, 0x01, 0x02, 0x88, 0x02, 0x03, 0x1a, 0xb9, 0x01, 0x20, 0x44, + 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, + 0x2e, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, + 0x73, 0x20, 0x61, 0x20, 0x64, 0x72, 0x79, 0x2d, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x01, + 0x12, 0x04, 0xfe, 0x01, 0x06, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x02, 0x12, + 0x04, 0xfe, 0x01, 0x18, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x03, 0x12, 0x04, + 0xfe, 0x01, 0x3b, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x04, 0x12, 0x04, 0xff, + 0x01, 0x04, 0x1d, 0x0a, 0x0e, 0x0a, 0x06, 0x06, 0x00, 0x02, 0x12, 0x04, 0x21, 0x12, 0x04, 0xff, + 0x01, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x04, 0x12, 0x06, 0x80, 0x02, + 0x04, 0x83, 0x02, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x12, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x12, 0x06, 0x80, 0x02, 0x0b, 0x83, 0x02, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, + 0x12, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0x81, 0x02, 0x06, 0x28, 0x0a, 0x12, 0x0a, + 0x0a, 0x06, 0x00, 0x02, 0x12, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0x82, 0x02, 0x06, + 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x12, 0x04, 0x12, 0x06, 0x84, 0x02, 0x04, 0x87, + 0x02, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x12, 0x04, 0x92, 0x08, 0x12, 0x06, 0x84, + 0x02, 0x0b, 0x87, 0x02, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x12, 0x04, 0x92, 0x08, + 0x02, 0x12, 0x04, 0x85, 0x02, 0x06, 0x22, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x12, 0x04, + 0x92, 0x08, 0x03, 0x12, 0x04, 0x86, 0x02, 0x06, 0x6c, 0x0a, 0x85, 0x01, 0x0a, 0x04, 0x06, 0x00, + 0x02, 0x13, 0x12, 0x06, 0x8b, 0x02, 0x02, 0x95, 0x02, 0x03, 0x1a, 0x75, 0x20, 0x44, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, + 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x20, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, + 0x60, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x4a, 0x53, 0x4f, + 0x4e, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, 0x01, 0x12, 0x04, 0x8b, 0x02, 0x06, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, 0x02, 0x12, 0x04, 0x8b, 0x02, 0x16, 0x2c, 0x0a, + 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, 0x03, 0x12, 0x04, 0x8b, 0x02, 0x37, 0x4e, 0x0a, 0x0d, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x13, 0x04, 0x12, 0x04, 0x8c, 0x02, 0x04, 0x1d, 0x0a, 0x0e, 0x0a, + 0x06, 0x06, 0x00, 0x02, 0x13, 0x04, 0x21, 0x12, 0x04, 0x8c, 0x02, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x13, 0x04, 0x12, 0x06, 0x8d, 0x02, 0x04, 0x90, 0x02, 0x06, 0x0a, 0x13, + 0x0a, 0x09, 0x06, 0x00, 0x02, 0x13, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x06, 0x8d, 0x02, 0x0b, + 0x90, 0x02, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x13, 0x04, 0xb0, 0xca, 0xbc, 0x22, + 0x04, 0x12, 0x04, 0x8e, 0x02, 0x06, 0x26, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x13, 0x04, + 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0x8f, 0x02, 0x06, 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x13, 0x04, 0x12, 0x06, 0x91, 0x02, 0x04, 0x94, 0x02, 0x06, 0x0a, 0x11, 0x0a, 0x07, + 0x06, 0x00, 0x02, 0x13, 0x04, 0x92, 0x08, 0x12, 0x06, 0x91, 0x02, 0x0b, 0x94, 0x02, 0x05, 0x0a, + 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x13, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0x92, 0x02, 0x06, + 0x20, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x13, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x93, + 0x02, 0x06, 0x5d, 0x0a, 0x0e, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x14, 0x12, 0x06, 0x97, 0x02, 0x02, + 0x9d, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x01, 0x12, 0x04, 0x97, 0x02, + 0x06, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x02, 0x12, 0x04, 0x97, 0x02, 0x10, + 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x03, 0x12, 0x04, 0x97, 0x02, 0x2b, 0x3c, + 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x04, 0x12, 0x04, 0x98, 0x02, 0x04, 0x3b, 0x0a, + 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x14, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x98, 0x02, + 0x0b, 0x3a, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x14, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, + 0x12, 0x04, 0x98, 0x02, 0x20, 0x39, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x14, 0x04, 0x12, + 0x06, 0x99, 0x02, 0x04, 0x9c, 0x02, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x14, 0x04, + 0x92, 0x08, 0x12, 0x06, 0x99, 0x02, 0x0b, 0x9c, 0x02, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, + 0x02, 0x14, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0x9a, 0x02, 0x06, 0x1a, 0x0a, 0x10, 0x0a, 0x08, + 0x06, 0x00, 0x02, 0x14, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x9b, 0x02, 0x06, 0x2f, 0x0a, 0x47, + 0x0a, 0x04, 0x06, 0x00, 0x02, 0x15, 0x12, 0x06, 0xa0, 0x02, 0x02, 0xa6, 0x02, 0x03, 0x1a, 0x37, + 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x15, 0x01, + 0x12, 0x04, 0xa0, 0x02, 0x06, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x15, 0x02, 0x12, + 0x04, 0xa0, 0x02, 0x17, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x15, 0x03, 0x12, 0x04, + 0xa0, 0x02, 0x39, 0x51, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x15, 0x04, 0x12, 0x04, 0xa1, + 0x02, 0x04, 0x49, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x15, 0x04, 0xb0, 0xca, 0xbc, 0x22, + 0x12, 0x04, 0xa1, 0x02, 0x0b, 0x48, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x15, 0x04, 0xb0, + 0xca, 0xbc, 0x22, 0x02, 0x12, 0x04, 0xa1, 0x02, 0x20, 0x47, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x15, 0x04, 0x12, 0x06, 0xa2, 0x02, 0x04, 0xa5, 0x02, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, + 0x00, 0x02, 0x15, 0x04, 0x92, 0x08, 0x12, 0x06, 0xa2, 0x02, 0x0b, 0xa5, 0x02, 0x05, 0x0a, 0x10, + 0x0a, 0x08, 0x06, 0x00, 0x02, 0x15, 0x04, 0x92, 0x08, 0x02, 0x12, 0x04, 0xa3, 0x02, 0x06, 0x21, + 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x15, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0xa4, 0x02, + 0x06, 0x4a, 0x0a, 0x39, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x16, 0x12, 0x06, 0xa9, 0x02, 0x02, 0xaf, + 0x02, 0x03, 0x1a, 0x29, 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, + 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x06, 0x00, 0x02, 0x16, 0x01, 0x12, 0x04, 0xa9, 0x02, 0x06, 0x14, 0x0a, 0x0d, 0x0a, 0x05, + 0x06, 0x00, 0x02, 0x16, 0x02, 0x12, 0x04, 0xa9, 0x02, 0x15, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, + 0x00, 0x02, 0x16, 0x03, 0x12, 0x04, 0xa9, 0x02, 0x35, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, + 0x02, 0x16, 0x04, 0x12, 0x04, 0xaa, 0x02, 0x04, 0x3e, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, + 0x16, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0xaa, 0x02, 0x0b, 0x3d, 0x0a, 0x12, 0x0a, 0x0a, + 0x06, 0x00, 0x02, 0x16, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x02, 0x12, 0x04, 0xaa, 0x02, 0x20, 0x3c, + 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x16, 0x04, 0x12, 0x06, 0xab, 0x02, 0x04, 0xae, 0x02, + 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x16, 0x04, 0x92, 0x08, 0x12, 0x06, 0xab, 0x02, + 0x0b, 0xae, 0x02, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x16, 0x04, 0x92, 0x08, 0x02, + 0x12, 0x04, 0xac, 0x02, 0x06, 0x1f, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x16, 0x04, 0x92, + 0x08, 0x03, 0x12, 0x04, 0xad, 0x02, 0x06, 0x3c, 0x0a, 0x3c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x17, + 0x12, 0x06, 0xb2, 0x02, 0x02, 0xbb, 0x02, 0x03, 0x1a, 0x2c, 0x20, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x01, 0x12, + 0x04, 0xb2, 0x02, 0x06, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x02, 0x12, 0x04, + 0xb2, 0x02, 0x1b, 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x03, 0x12, 0x04, 0xb2, + 0x02, 0x41, 0x5d, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x04, 0x12, 0x06, 0xb3, 0x02, + 0x04, 0xb6, 0x02, 0x06, 0x0a, 0x13, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x17, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x12, 0x06, 0xb3, 0x02, 0x0b, 0xb6, 0x02, 0x05, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x00, 0x02, + 0x17, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x04, 0xb4, 0x02, 0x06, 0x2c, 0x0a, 0x12, 0x0a, + 0x0a, 0x06, 0x00, 0x02, 0x17, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x04, 0xb5, 0x02, 0x06, + 0x0f, 0x0a, 0x0f, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x17, 0x04, 0x12, 0x06, 0xb7, 0x02, 0x04, 0xba, + 0x02, 0x06, 0x0a, 0x11, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x17, 0x04, 0x92, 0x08, 0x12, 0x06, 0xb7, + 0x02, 0x0b, 0xba, 0x02, 0x05, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x17, 0x04, 0x92, 0x08, + 0x02, 0x12, 0x04, 0xb8, 0x02, 0x06, 0x25, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x17, 0x04, + 0x92, 0x08, 0x03, 0x12, 0x04, 0xb9, 0x02, 0x06, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x00, 0x12, + 0x06, 0xbe, 0x02, 0x00, 0xf4, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x04, + 0xbe, 0x02, 0x08, 0x0c, 0x0a, 0x4e, 0x0a, 0x03, 0x04, 0x00, 0x09, 0x12, 0x04, 0xc0, 0x02, 0x02, + 0x0d, 0x1a, 0x41, 0x20, 0x35, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x22, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x09, 0x00, 0x12, 0x04, 0xc0, 0x02, + 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x09, 0x00, 0x01, 0x12, 0x04, 0xc0, 0x02, 0x0b, + 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x09, 0x00, 0x02, 0x12, 0x04, 0xc0, 0x02, 0x0b, 0x0c, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc1, 0x02, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0xc1, 0x02, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc1, 0x02, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc1, 0x02, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc1, 0x02, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, + 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc1, 0x02, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc2, 0x02, 0x02, 0x08, 0x0a, 0x0e, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x01, 0x12, 0x06, 0xc2, 0x02, 0x02, 0xc5, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc2, 0x02, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x01, 0x03, 0x12, 0x04, 0xc2, 0x02, 0x14, 0x15, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x01, 0x08, 0x12, 0x06, 0xc2, 0x02, 0x16, 0xc5, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, + 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc3, 0x02, 0x04, 0x2a, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x00, 0x02, 0x01, 0x08, 0x03, 0x12, 0x04, 0xc4, 0x02, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x02, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x04, 0xc6, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, + 0x03, 0x12, 0x04, 0xc6, 0x02, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x08, + 0x12, 0x04, 0xc6, 0x02, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x02, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xc6, 0x02, 0x13, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, + 0x05, 0x12, 0x04, 0xc7, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, + 0x04, 0xc7, 0x02, 0x02, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, + 0xc7, 0x02, 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x04, 0xc7, + 0x02, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x08, 0x12, 0x04, 0xc7, 0x02, + 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xc7, 0x02, 0x1a, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x05, 0x12, 0x04, 0xc8, + 0x02, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0xc8, 0x02, 0x02, + 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0xc8, 0x02, 0x07, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x04, 0xc8, 0x02, 0x14, 0x15, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x08, 0x12, 0x04, 0xc8, 0x02, 0x16, 0x3e, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x00, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc8, 0x02, 0x17, 0x3d, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x06, 0x12, 0x04, 0xc9, 0x02, 0x02, 0x1b, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0xc9, 0x02, 0x02, 0x56, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0xc9, 0x02, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x04, 0xc9, 0x02, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x05, 0x08, 0x12, 0x04, 0xc9, 0x02, 0x2d, 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, + 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc9, 0x02, 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x06, 0x06, 0x12, 0x04, 0xca, 0x02, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x06, 0x12, 0x04, 0xca, 0x02, 0x02, 0x57, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x06, 0x01, 0x12, 0x04, 0xca, 0x02, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, + 0x03, 0x12, 0x04, 0xca, 0x02, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x08, + 0x12, 0x04, 0xca, 0x02, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x06, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xca, 0x02, 0x2f, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, + 0x05, 0x12, 0x04, 0xcb, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, + 0x04, 0xcb, 0x02, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x04, + 0xcb, 0x02, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x04, 0xcb, + 0x02, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x08, 0x12, 0x04, 0xcb, 0x02, + 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xcb, 0x02, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x04, 0xcc, + 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x04, 0xcc, 0x02, 0x02, + 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x04, 0xcc, 0x02, 0x09, 0x1c, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x04, 0xcc, 0x02, 0x1f, 0x21, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x08, 0x12, 0x04, 0xcc, 0x02, 0x22, 0x4a, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x00, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcc, 0x02, 0x23, 0x49, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x05, 0x12, 0x04, 0xcd, 0x02, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x09, 0x12, 0x04, 0xcd, 0x02, 0x02, 0x47, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x04, 0xcd, 0x02, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x09, 0x03, 0x12, 0x04, 0xcd, 0x02, 0x1b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x09, 0x08, 0x12, 0x04, 0xcd, 0x02, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, + 0x02, 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcd, 0x02, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0a, 0x04, 0x12, 0x04, 0xce, 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x0a, 0x12, 0x04, 0xce, 0x02, 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0a, 0x06, 0x12, 0x04, 0xce, 0x02, 0x0b, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, + 0x01, 0x12, 0x04, 0xce, 0x02, 0x19, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, + 0x12, 0x04, 0xce, 0x02, 0x26, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x08, 0x12, + 0x04, 0xce, 0x02, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0a, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xce, 0x02, 0x2a, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x06, + 0x12, 0x04, 0xcf, 0x02, 0x02, 0x0d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0b, 0x12, 0x04, + 0xcf, 0x02, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xcf, + 0x02, 0x0e, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x03, 0x12, 0x04, 0xcf, 0x02, + 0x1d, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x08, 0x12, 0x04, 0xcf, 0x02, 0x20, + 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0b, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcf, + 0x02, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x05, 0x12, 0x04, 0xd2, 0x02, + 0x02, 0x08, 0x0a, 0x6d, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0c, 0x12, 0x04, 0xd2, 0x02, 0x02, 0x42, + 0x1a, 0x5f, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x64, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x20, 0x49, 0x74, 0x20, 0x69, + 0x73, 0x20, 0x69, 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xd2, 0x02, 0x09, 0x13, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x03, 0x12, 0x04, 0xd2, 0x02, 0x16, 0x18, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x08, 0x12, 0x04, 0xd2, 0x02, 0x19, 0x41, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0c, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd2, 0x02, 0x1a, 0x40, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x06, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x18, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0d, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x5b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x04, 0xd4, 0x02, 0x19, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0d, 0x03, 0x12, 0x04, 0xd4, 0x02, 0x2f, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0d, 0x08, 0x12, 0x04, 0xd4, 0x02, 0x32, 0x5a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, + 0x02, 0x0d, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd4, 0x02, 0x33, 0x59, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0e, 0x06, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x0e, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x57, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0e, 0x01, 0x12, 0x04, 0xd5, 0x02, 0x15, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, + 0x03, 0x12, 0x04, 0xd5, 0x02, 0x2b, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x08, + 0x12, 0x04, 0xd5, 0x02, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0e, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xd5, 0x02, 0x2f, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, + 0x06, 0x12, 0x04, 0xd6, 0x02, 0x02, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0f, 0x12, + 0x06, 0xd6, 0x02, 0x02, 0xd9, 0x02, 0x04, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x01, + 0x12, 0x04, 0xd6, 0x02, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x03, 0x12, + 0x04, 0xd6, 0x02, 0x2b, 0x2d, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x08, 0x12, 0x06, + 0xd6, 0x02, 0x2e, 0xd9, 0x02, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x0f, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xd7, 0x02, 0x04, 0x2a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x00, 0x02, 0x0f, + 0x08, 0x03, 0x12, 0x04, 0xd8, 0x02, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, + 0x05, 0x12, 0x04, 0xda, 0x02, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x10, 0x12, + 0x04, 0xda, 0x02, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x01, 0x12, 0x04, + 0xda, 0x02, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x03, 0x12, 0x04, 0xda, + 0x02, 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x10, 0x08, 0x12, 0x04, 0xda, 0x02, + 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x10, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xda, 0x02, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x04, 0x12, 0x04, 0xdb, + 0x02, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x11, 0x12, 0x04, 0xdb, 0x02, 0x02, + 0x61, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x06, 0x12, 0x04, 0xdb, 0x02, 0x0b, 0x29, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x01, 0x12, 0x04, 0xdb, 0x02, 0x2a, 0x32, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x03, 0x12, 0x04, 0xdb, 0x02, 0x35, 0x37, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x11, 0x08, 0x12, 0x04, 0xdb, 0x02, 0x38, 0x60, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x00, 0x02, 0x11, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdb, 0x02, 0x39, 0x5f, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x06, 0x12, 0x04, 0xde, 0x02, 0x02, 0x1b, 0x0a, 0x42, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x12, 0x12, 0x04, 0xde, 0x02, 0x02, 0x58, 0x1a, 0x34, 0x20, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x64, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x01, 0x12, 0x04, 0xde, 0x02, 0x1c, + 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x03, 0x12, 0x04, 0xde, 0x02, 0x2c, 0x2e, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x12, 0x08, 0x12, 0x04, 0xde, 0x02, 0x2f, 0x57, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x12, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xde, 0x02, 0x30, + 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x13, 0x05, 0x12, 0x04, 0xe1, 0x02, 0x02, 0x06, + 0x0a, 0x4b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x13, 0x12, 0x04, 0xe1, 0x02, 0x02, 0x41, 0x1a, 0x3d, + 0x20, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x20, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x77, 0x68, + 0x65, 0x6e, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x13, 0x01, 0x12, 0x04, 0xe1, 0x02, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x13, 0x03, 0x12, 0x04, 0xe1, 0x02, 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x13, 0x08, 0x12, 0x04, 0xe1, 0x02, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, + 0x02, 0x13, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe1, 0x02, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x14, 0x05, 0x12, 0x04, 0xed, 0x02, 0x02, 0x06, 0x0a, 0xe1, 0x05, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x14, 0x12, 0x04, 0xed, 0x02, 0x02, 0x50, 0x1a, 0xd2, 0x05, 0x20, 0x49, 0x66, + 0x20, 0x60, 0x74, 0x72, 0x75, 0x65, 0x60, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x6c, 0x69, 0x76, 0x65, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x3b, 0x20, 0x69, 0x66, 0x20, 0x60, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x60, 0x2c, 0x20, 0x6c, + 0x69, 0x76, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x0a, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x61, 0x69, + 0x6e, 0x73, 0x20, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, + 0x2e, 0x0a, 0x0a, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x27, 0x73, 0x20, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x65, 0x63, 0x65, 0x73, 0x73, + 0x61, 0x72, 0x69, 0x6c, 0x79, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x41, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x0a, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x76, 0x69, 0x61, 0x20, 0x60, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x20, 0x77, 0x68, 0x6f, 0x73, + 0x65, 0x20, 0x55, 0x44, 0x46, 0x20, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x20, + 0x66, 0x61, 0x69, 0x6c, 0x73, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x68, 0x61, + 0x75, 0x73, 0x74, 0x65, 0x64, 0x3b, 0x20, 0x73, 0x65, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x60, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x60, 0x29, + 0x20, 0x69, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x0a, 0x20, 0x74, 0x6f, 0x20, 0x60, + 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, + 0x73, 0x65, 0x60, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x20, 0x60, 0x74, 0x72, 0x75, 0x65, 0x60, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x72, 0x65, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x0a, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x73, 0x75, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x78, 0x65, 0x64, 0x20, 0x28, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2c, 0x20, + 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x29, 0x2c, 0x0a, 0x20, 0x72, + 0x65, 0x69, 0x73, 0x73, 0x75, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x60, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x75, 0x6c, 0x65, 0x60, 0x20, 0x2f, 0x20, 0x60, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x60, 0x20, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, + 0x74, 0x6c, 0x79, 0x20, 0x73, 0x65, 0x74, 0x73, 0x0a, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x6c, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x14, 0x01, 0x12, 0x04, 0xed, 0x02, 0x07, 0x21, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x14, 0x03, 0x12, 0x04, 0xed, 0x02, 0x24, 0x26, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x14, 0x08, 0x12, 0x04, 0xed, 0x02, 0x27, 0x4f, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x00, 0x02, 0x14, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xed, 0x02, 0x28, 0x4e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x15, 0x05, 0x12, 0x04, 0xf0, 0x02, 0x02, 0x08, 0x0a, 0xa9, 0x01, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x15, 0x12, 0x04, 0xf0, 0x02, 0x02, 0x4a, 0x1a, 0x9a, 0x01, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, + 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, + 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x61, 0x73, 0x20, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x15, 0x01, 0x12, 0x04, 0xf0, 0x02, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x15, + 0x03, 0x12, 0x04, 0xf0, 0x02, 0x1e, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x15, 0x08, + 0x12, 0x04, 0xf0, 0x02, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x15, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xf0, 0x02, 0x22, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, + 0x04, 0x12, 0x04, 0xf3, 0x02, 0x02, 0x0a, 0x0a, 0x38, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x16, 0x12, + 0x04, 0xf3, 0x02, 0x02, 0x22, 0x1a, 0x2a, 0x20, 0x49, 0x64, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, 0x05, 0x12, 0x04, 0xf3, 0x02, 0x0b, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, 0x01, 0x12, 0x04, 0xf3, 0x02, 0x12, 0x1c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, 0x03, 0x12, 0x04, 0xf3, 0x02, 0x1f, 0x21, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x01, 0x12, 0x06, 0xf6, 0x02, 0x00, 0x82, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x01, 0x01, 0x12, 0x04, 0xf6, 0x02, 0x08, 0x15, 0x0a, 0x5b, 0x0a, 0x03, 0x04, 0x01, 0x09, + 0x12, 0x04, 0xf8, 0x02, 0x02, 0x0d, 0x1a, 0x4e, 0x20, 0x34, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6c, 0x64, 0x20, + 0x22, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x6c, 0x69, 0x76, 0x65, 0x64, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x09, 0x00, 0x12, 0x04, + 0xf8, 0x02, 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x09, 0x00, 0x01, 0x12, 0x04, 0xf8, + 0x02, 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x09, 0x00, 0x02, 0x12, 0x04, 0xf8, 0x02, + 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf9, 0x02, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x04, 0xf9, 0x02, 0x02, 0x48, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf9, 0x02, 0x09, 0x1a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf9, 0x02, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x00, 0x08, 0x12, 0x04, 0xf9, 0x02, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x01, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf9, 0x02, 0x20, 0x46, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x04, 0xfa, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x04, 0xfa, 0x02, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x01, 0x01, 0x12, 0x04, 0xfa, 0x02, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x01, 0x03, 0x12, 0x04, 0xfa, 0x02, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x01, 0x08, 0x12, 0x04, 0xfa, 0x02, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x01, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfa, 0x02, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x02, 0x06, 0x12, 0x04, 0xfb, 0x02, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, + 0x02, 0x12, 0x04, 0xfb, 0x02, 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, + 0x12, 0x04, 0xfb, 0x02, 0x1a, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, + 0x04, 0xfb, 0x02, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x08, 0x12, 0x04, + 0xfb, 0x02, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xfb, 0x02, 0x2a, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x06, 0x12, + 0x04, 0xfc, 0x02, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x04, 0xfc, + 0x02, 0x02, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0xfc, 0x02, + 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x04, 0xfc, 0x02, 0x2b, + 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x08, 0x12, 0x04, 0xfc, 0x02, 0x2d, 0x55, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfc, 0x02, + 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x06, 0x12, 0x04, 0xfd, 0x02, 0x02, + 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x04, 0x12, 0x04, 0xfd, 0x02, 0x02, 0x57, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0xfd, 0x02, 0x1c, 0x29, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x03, 0x12, 0x04, 0xfd, 0x02, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x04, 0x08, 0x12, 0x04, 0xfd, 0x02, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x01, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfd, 0x02, 0x2f, 0x55, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x05, 0x12, 0x04, 0xfe, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x01, 0x02, 0x05, 0x12, 0x04, 0xfe, 0x02, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x05, 0x01, 0x12, 0x04, 0xfe, 0x02, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x05, 0x03, 0x12, 0x04, 0xfe, 0x02, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x05, 0x08, 0x12, 0x04, 0xfe, 0x02, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x05, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfe, 0x02, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x06, 0x05, 0x12, 0x04, 0xff, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, + 0x06, 0x12, 0x04, 0xff, 0x02, 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, + 0x12, 0x04, 0xff, 0x02, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, + 0x04, 0xff, 0x02, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x08, 0x12, 0x04, + 0xff, 0x02, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xff, 0x02, 0x22, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x04, 0x12, + 0x04, 0x80, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x04, 0x80, + 0x03, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x06, 0x12, 0x04, 0x80, 0x03, + 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x01, 0x12, 0x04, 0x80, 0x03, 0x16, + 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x03, 0x12, 0x04, 0x80, 0x03, 0x20, 0x21, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x08, 0x12, 0x04, 0x80, 0x03, 0x22, 0x4a, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x80, 0x03, 0x23, + 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x05, 0x12, 0x04, 0x81, 0x03, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x08, 0x12, 0x04, 0x81, 0x03, 0x02, 0x51, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, 0x04, 0x81, 0x03, 0x09, 0x22, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x04, 0x81, 0x03, 0x25, 0x27, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x08, 0x08, 0x12, 0x04, 0x81, 0x03, 0x28, 0x50, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x01, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x81, 0x03, 0x29, 0x4f, 0x0a, 0x0c, 0x0a, + 0x02, 0x04, 0x02, 0x12, 0x06, 0x83, 0x03, 0x00, 0x8d, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x02, 0x01, 0x12, 0x04, 0x83, 0x03, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, + 0x05, 0x12, 0x04, 0x84, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, + 0x04, 0x84, 0x03, 0x02, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x04, + 0x84, 0x03, 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x04, 0x84, + 0x03, 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, 0x04, 0x84, 0x03, + 0x1c, 0x44, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x84, 0x03, 0x1d, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, 0x04, 0x85, + 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x04, 0x85, 0x03, 0x02, + 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x04, 0x85, 0x03, 0x09, 0x1a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x04, 0x85, 0x03, 0x1d, 0x1e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x04, 0x85, 0x03, 0x1f, 0x47, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x02, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x85, 0x03, 0x20, 0x46, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x06, 0x12, 0x04, 0x86, 0x03, 0x02, 0x0c, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x04, 0x86, 0x03, 0x02, 0x46, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x04, 0x86, 0x03, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x04, 0x86, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x02, 0x08, 0x12, 0x04, 0x86, 0x03, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, + 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x86, 0x03, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x03, 0x06, 0x12, 0x04, 0x87, 0x03, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x02, 0x02, 0x03, 0x12, 0x04, 0x87, 0x03, 0x02, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x03, 0x01, 0x12, 0x04, 0x87, 0x03, 0x1a, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, + 0x03, 0x12, 0x04, 0x87, 0x03, 0x2a, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x08, + 0x12, 0x04, 0x87, 0x03, 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x03, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0x87, 0x03, 0x2d, 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, + 0x06, 0x12, 0x04, 0x88, 0x03, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, + 0x04, 0x88, 0x03, 0x02, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x04, + 0x88, 0x03, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x04, 0x88, + 0x03, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x08, 0x12, 0x04, 0x88, 0x03, + 0x2d, 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x88, 0x03, 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x06, 0x12, 0x04, 0x89, + 0x03, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x04, 0x89, 0x03, 0x02, + 0x57, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x04, 0x89, 0x03, 0x1c, 0x29, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x04, 0x89, 0x03, 0x2c, 0x2d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x08, 0x12, 0x04, 0x89, 0x03, 0x2e, 0x56, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x02, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x89, 0x03, 0x2f, 0x55, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x05, 0x12, 0x04, 0x8a, 0x03, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x06, 0x12, 0x04, 0x8a, 0x03, 0x02, 0x49, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x06, 0x01, 0x12, 0x04, 0x8a, 0x03, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x06, 0x03, 0x12, 0x04, 0x8a, 0x03, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x06, 0x08, 0x12, 0x04, 0x8a, 0x03, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, + 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8a, 0x03, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x07, 0x05, 0x12, 0x04, 0x8b, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x02, 0x02, 0x07, 0x12, 0x04, 0x8b, 0x03, 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x07, 0x01, 0x12, 0x04, 0x8b, 0x03, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, + 0x03, 0x12, 0x04, 0x8b, 0x03, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x08, + 0x12, 0x04, 0x8b, 0x03, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x07, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0x8b, 0x03, 0x22, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, + 0x05, 0x12, 0x04, 0x8c, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x08, 0x12, + 0x04, 0x8c, 0x03, 0x02, 0x4d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x01, 0x12, 0x04, + 0x8c, 0x03, 0x09, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x03, 0x12, 0x04, 0x8c, + 0x03, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x08, 0x12, 0x04, 0x8c, 0x03, + 0x24, 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x8c, 0x03, 0x25, 0x4b, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x06, 0x8f, 0x03, 0x00, 0x92, + 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x04, 0x8f, 0x03, 0x08, 0x1e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x04, 0x12, 0x04, 0x90, 0x03, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x04, 0x90, 0x03, 0x02, 0x20, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x00, 0x05, 0x12, 0x04, 0x90, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x00, 0x01, 0x12, 0x04, 0x90, 0x03, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x00, 0x03, 0x12, 0x04, 0x90, 0x03, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x01, 0x04, 0x12, 0x04, 0x91, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, + 0x12, 0x04, 0x91, 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x05, 0x12, + 0x04, 0x91, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x91, 0x03, 0x12, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, 0x12, 0x04, 0x91, + 0x03, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x06, 0x94, 0x03, 0x00, 0x96, 0x03, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x04, 0x94, 0x03, 0x08, 0x1a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x04, 0x12, 0x04, 0x95, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x04, 0x02, 0x00, 0x12, 0x04, 0x95, 0x03, 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x04, 0x02, 0x00, 0x06, 0x12, 0x04, 0x95, 0x03, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x95, 0x03, 0x1c, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x95, 0x03, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, + 0x08, 0x12, 0x04, 0x95, 0x03, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0x95, 0x03, 0x2a, 0x50, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x05, 0x12, + 0x06, 0x98, 0x03, 0x00, 0x9e, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x04, + 0x98, 0x03, 0x08, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x05, 0x12, 0x04, 0x99, + 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x04, 0x99, 0x03, 0x02, + 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x04, 0x99, 0x03, 0x09, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x04, 0x99, 0x03, 0x14, 0x15, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x08, 0x12, 0x04, 0x99, 0x03, 0x16, 0x3e, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x05, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x99, 0x03, 0x17, 0x3d, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x05, 0x12, 0x04, 0x9a, 0x03, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x01, 0x12, 0x04, 0x9a, 0x03, 0x02, 0x41, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x05, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9a, 0x03, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x05, 0x02, 0x01, 0x03, 0x12, 0x04, 0x9a, 0x03, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x05, 0x02, 0x01, 0x08, 0x12, 0x04, 0x9a, 0x03, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, + 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9a, 0x03, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x05, 0x02, 0x02, 0x05, 0x12, 0x04, 0x9c, 0x03, 0x02, 0x08, 0x0a, 0x5c, 0x0a, 0x04, 0x04, + 0x05, 0x02, 0x02, 0x12, 0x04, 0x9c, 0x03, 0x02, 0x43, 0x1a, 0x4e, 0x20, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, + 0x02, 0x01, 0x12, 0x04, 0x9c, 0x03, 0x09, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, + 0x03, 0x12, 0x04, 0x9c, 0x03, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x08, + 0x12, 0x04, 0x9c, 0x03, 0x1a, 0x42, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, 0x02, 0x02, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0x9c, 0x03, 0x1b, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, + 0x04, 0x12, 0x04, 0x9d, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x03, 0x12, + 0x04, 0x9d, 0x03, 0x02, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x05, 0x12, 0x04, + 0x9d, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x01, 0x12, 0x04, 0x9d, + 0x03, 0x12, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x03, 0x12, 0x04, 0x9d, 0x03, + 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x08, 0x12, 0x04, 0x9d, 0x03, 0x1c, + 0x44, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9d, + 0x03, 0x1d, 0x43, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x06, 0xa0, 0x03, 0x00, 0xb2, 0x03, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x04, 0xa0, 0x03, 0x08, 0x1a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x04, 0x12, 0x04, 0xa2, 0x03, 0x02, 0x0a, 0x0a, 0x47, 0x0a, + 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x04, 0xa2, 0x03, 0x02, 0x1c, 0x1a, 0x39, 0x20, 0x4d, 0x61, + 0x78, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x64, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xa2, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xa2, 0x03, 0x12, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa2, + 0x03, 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa4, 0x03, + 0x02, 0x08, 0x0a, 0x2f, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x04, 0xa4, 0x03, 0x02, 0x14, + 0x1a, 0x21, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x20, + 0x69, 0x66, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa4, 0x03, + 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa4, 0x03, 0x12, + 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x04, 0x12, 0x04, 0xa6, 0x03, 0x02, 0x0a, + 0x0a, 0x41, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, 0x04, 0xa6, 0x03, 0x02, 0x21, 0x1a, 0x33, + 0x20, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x20, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x62, 0x79, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x06, 0x12, 0x04, 0xa6, 0x03, + 0x0b, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x04, 0xa6, 0x03, 0x17, + 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x04, 0xa6, 0x03, 0x1f, 0x20, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x05, 0x12, 0x04, 0xa7, 0x03, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x03, 0x12, 0x04, 0xa7, 0x03, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa7, 0x03, 0x09, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa7, 0x03, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x04, 0x05, 0x12, 0x04, 0xa8, 0x03, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, + 0x02, 0x04, 0x12, 0x04, 0xa8, 0x03, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, + 0x01, 0x12, 0x04, 0xa8, 0x03, 0x07, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x03, + 0x12, 0x04, 0xa8, 0x03, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x05, 0x05, 0x12, + 0x04, 0xa9, 0x03, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x05, 0x12, 0x04, 0xa9, + 0x03, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x05, 0x01, 0x12, 0x04, 0xa9, 0x03, + 0x07, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x05, 0x03, 0x12, 0x04, 0xa9, 0x03, 0x10, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x06, 0x04, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x06, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x1f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x06, 0x02, 0x06, 0x05, 0x12, 0x04, 0xaa, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x06, 0x01, 0x12, 0x04, 0xaa, 0x03, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x06, 0x03, 0x12, 0x04, 0xaa, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x07, 0x04, 0x12, 0x04, 0xac, 0x03, 0x02, 0x0a, 0x0a, 0x42, 0x0a, 0x04, 0x04, 0x06, + 0x02, 0x07, 0x12, 0x04, 0xac, 0x03, 0x02, 0x1f, 0x1a, 0x34, 0x20, 0x49, 0x66, 0x20, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x69, 0x64, 0x73, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x06, 0x02, 0x07, 0x05, 0x12, 0x04, 0xac, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x07, 0x01, 0x12, 0x04, 0xac, 0x03, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x07, 0x03, 0x12, 0x04, 0xac, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x08, 0x04, 0x12, 0x04, 0xae, 0x03, 0x02, 0x0a, 0x0a, 0x51, 0x0a, 0x04, 0x04, 0x06, + 0x02, 0x08, 0x12, 0x04, 0xae, 0x03, 0x02, 0x20, 0x1a, 0x43, 0x20, 0x49, 0x66, 0x20, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, + 0x65, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x69, 0x64, 0x73, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x08, 0x05, 0x12, 0x04, 0xae, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x08, 0x01, 0x12, 0x04, 0xae, 0x03, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x08, 0x03, 0x12, 0x04, 0xae, 0x03, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, + 0x02, 0x09, 0x05, 0x12, 0x04, 0xaf, 0x03, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, + 0x09, 0x12, 0x04, 0xaf, 0x03, 0x02, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x09, 0x01, + 0x12, 0x04, 0xaf, 0x03, 0x07, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x09, 0x03, 0x12, + 0x04, 0xaf, 0x03, 0x19, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x0a, 0x06, 0x12, 0x04, + 0xb1, 0x03, 0x02, 0x24, 0x0a, 0x4f, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x0a, 0x12, 0x04, 0xb1, 0x03, + 0x02, 0x35, 0x1a, 0x41, 0x20, 0x49, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, + 0x2c, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, + 0x74, 0x61, 0x67, 0x73, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x0a, 0x01, 0x12, 0x04, + 0xb1, 0x03, 0x25, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x0a, 0x03, 0x12, 0x04, 0xb1, + 0x03, 0x32, 0x34, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x06, 0xb3, 0x03, 0x00, 0xb7, 0x03, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x04, 0xb3, 0x03, 0x05, 0x10, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb4, 0x03, 0x02, 0x1a, 0x0a, 0x0c, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x04, 0xb4, 0x03, 0x02, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0xb4, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xb4, 0x03, 0x1f, 0x32, 0x0a, 0x0e, 0x0a, 0x06, 0x05, 0x00, 0x02, + 0x00, 0x03, 0x01, 0x12, 0x04, 0xb4, 0x03, 0x20, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x01, 0x01, 0x12, 0x04, 0xb5, 0x03, 0x02, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, + 0x12, 0x04, 0xb5, 0x03, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, + 0x04, 0xb5, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, + 0xb6, 0x03, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x04, 0xb6, 0x03, + 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xb6, 0x03, 0x16, + 0x17, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x06, 0xb8, 0x03, 0x00, 0xbc, 0x03, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x04, 0xb8, 0x03, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb9, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x07, 0x02, 0x00, 0x12, 0x04, 0xb9, 0x03, 0x02, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, + 0x00, 0x01, 0x12, 0x04, 0xb9, 0x03, 0x09, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, + 0x03, 0x12, 0x04, 0xb9, 0x03, 0x11, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x08, + 0x12, 0x04, 0xb9, 0x03, 0x13, 0x3b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x07, 0x02, 0x00, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xb9, 0x03, 0x14, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, + 0x04, 0x12, 0x04, 0xbb, 0x03, 0x02, 0x0a, 0x0a, 0x6f, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, + 0x04, 0xbb, 0x03, 0x02, 0x43, 0x1a, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, + 0x06, 0x12, 0x04, 0xbb, 0x03, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xbb, 0x03, 0x10, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xbb, 0x03, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x08, 0x12, 0x04, + 0xbb, 0x03, 0x1a, 0x42, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x07, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xbb, 0x03, 0x1b, 0x41, 0x0a, 0x84, 0x01, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x06, 0xbf, + 0x03, 0x00, 0xc2, 0x03, 0x01, 0x1a, 0x76, 0x20, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, + 0x65, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, + 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x08, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x00, 0x05, 0x12, 0x04, 0xc0, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, + 0x00, 0x12, 0x04, 0xc0, 0x03, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xc0, 0x03, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xc0, 0x03, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x08, 0x12, 0x04, + 0xc0, 0x03, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xc0, 0x03, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xc1, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x04, 0xc1, + 0x03, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc1, 0x03, + 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc1, 0x03, 0x16, + 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x08, 0x12, 0x04, 0xc1, 0x03, 0x18, 0x40, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc1, 0x03, + 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x09, 0x12, 0x06, 0xc3, 0x03, 0x00, 0xc5, 0x03, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x04, 0xc3, 0x03, 0x08, 0x17, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x09, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc4, 0x03, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x09, 0x02, 0x00, 0x12, 0x04, 0xc4, 0x03, 0x02, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xc4, 0x03, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xc4, 0x03, 0x0e, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xc4, 0x03, 0x10, 0x38, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc4, 0x03, 0x11, 0x37, 0x0a, 0x96, 0x01, 0x0a, 0x02, 0x04, 0x0a, + 0x12, 0x06, 0xc8, 0x03, 0x00, 0xcb, 0x03, 0x01, 0x1a, 0x87, 0x01, 0x20, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x76, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, + 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0a, 0x01, 0x12, 0x04, 0xc8, 0x03, 0x08, 0x1c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x04, 0x12, 0x04, 0xc9, 0x03, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, 0xc9, 0x03, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0a, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc9, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0a, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc9, 0x03, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xc9, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, + 0x00, 0x08, 0x12, 0x04, 0xc9, 0x03, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0a, 0x02, 0x00, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc9, 0x03, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, + 0x02, 0x01, 0x04, 0x12, 0x04, 0xca, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, + 0x01, 0x12, 0x04, 0xca, 0x03, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x05, + 0x12, 0x04, 0xca, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xca, 0x03, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x03, 0x12, 0x04, + 0xca, 0x03, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x08, 0x12, 0x04, 0xca, + 0x03, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0a, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xca, 0x03, 0x23, 0x49, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0b, 0x12, 0x06, 0xcc, 0x03, 0x00, + 0xce, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0b, 0x01, 0x12, 0x04, 0xcc, 0x03, 0x08, 0x1d, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x04, 0x12, 0x04, 0xcd, 0x03, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x00, 0x12, 0x04, 0xcd, 0x03, 0x02, 0x43, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0b, 0x02, 0x00, 0x06, 0x12, 0x04, 0xcd, 0x03, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xcd, 0x03, 0x10, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xcd, 0x03, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, + 0x02, 0x00, 0x08, 0x12, 0x04, 0xcd, 0x03, 0x1a, 0x42, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0b, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcd, 0x03, 0x1b, 0x41, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x0c, 0x12, 0x06, 0xd0, 0x03, 0x00, 0xd2, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0c, 0x01, + 0x12, 0x04, 0xd0, 0x03, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x06, 0x12, + 0x04, 0xd1, 0x03, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x00, 0x12, 0x04, 0xd1, + 0x03, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd1, 0x03, + 0x14, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd1, 0x03, 0x1d, + 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd1, 0x03, 0x1f, 0x47, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0c, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd1, 0x03, + 0x20, 0x46, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x06, 0xd3, 0x03, 0x00, 0xd5, 0x03, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0d, 0x01, 0x12, 0x04, 0xd3, 0x03, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0d, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd4, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x0d, 0x02, 0x00, 0x12, 0x04, 0xd4, 0x03, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xd4, 0x03, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xd4, 0x03, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xd4, 0x03, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0d, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd4, 0x03, 0x16, 0x3c, 0x0a, 0xae, 0x01, 0x0a, 0x02, 0x04, 0x0e, + 0x12, 0x06, 0xd8, 0x03, 0x00, 0xfc, 0x03, 0x01, 0x1a, 0x9f, 0x01, 0x20, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, + 0x6f, 0x72, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x2e, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x20, 0x69, + 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x2c, 0x20, 0x61, 0x20, + 0x6e, 0x65, 0x77, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0e, + 0x01, 0x12, 0x04, 0xd8, 0x03, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x04, + 0x12, 0x04, 0xd9, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x00, 0x12, 0x04, + 0xd9, 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd9, + 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd9, 0x03, + 0x12, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd9, 0x03, 0x1c, + 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x05, 0x12, 0x04, 0xda, 0x03, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x01, 0x12, 0x04, 0xda, 0x03, 0x02, 0x3b, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x01, 0x12, 0x04, 0xda, 0x03, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0e, 0x02, 0x01, 0x03, 0x12, 0x04, 0xda, 0x03, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0e, 0x02, 0x01, 0x08, 0x12, 0x04, 0xda, 0x03, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x0e, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xda, 0x03, 0x13, 0x39, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0e, 0x02, 0x02, 0x05, 0x12, 0x04, 0xdb, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x0e, 0x02, 0x02, 0x12, 0x04, 0xdb, 0x03, 0x02, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, + 0x02, 0x02, 0x01, 0x12, 0x04, 0xdb, 0x03, 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, + 0x02, 0x03, 0x12, 0x04, 0xdb, 0x03, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, + 0x08, 0x12, 0x04, 0xdb, 0x03, 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x02, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdb, 0x03, 0x1a, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, + 0x03, 0x05, 0x12, 0x04, 0xde, 0x03, 0x02, 0x08, 0x0a, 0x3f, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x03, + 0x12, 0x06, 0xde, 0x03, 0x02, 0xe1, 0x03, 0x04, 0x1a, 0x2f, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, + 0x03, 0x01, 0x12, 0x04, 0xde, 0x03, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x03, + 0x03, 0x12, 0x04, 0xde, 0x03, 0x14, 0x15, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x03, 0x08, + 0x12, 0x06, 0xde, 0x03, 0x16, 0xe1, 0x03, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x03, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdf, 0x03, 0x04, 0x2a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0e, + 0x02, 0x03, 0x08, 0x03, 0x12, 0x04, 0xe0, 0x03, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, + 0x02, 0x04, 0x05, 0x12, 0x04, 0xe3, 0x03, 0x02, 0x06, 0x0a, 0x36, 0x0a, 0x04, 0x04, 0x0e, 0x02, + 0x04, 0x12, 0x06, 0xe3, 0x03, 0x02, 0xe6, 0x03, 0x04, 0x1a, 0x26, 0x20, 0x44, 0x65, 0x70, 0x72, + 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x04, 0x01, 0x12, 0x04, 0xe3, 0x03, 0x07, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x04, 0x03, 0x12, 0x04, 0xe3, 0x03, 0x14, 0x15, 0x0a, + 0x0f, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x04, 0x08, 0x12, 0x06, 0xe3, 0x03, 0x16, 0xe6, 0x03, 0x03, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe4, 0x03, + 0x04, 0x2a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0e, 0x02, 0x04, 0x08, 0x03, 0x12, 0x04, 0xe5, 0x03, + 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x05, 0x04, 0x12, 0x04, 0xe7, 0x03, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x05, 0x12, 0x04, 0xe7, 0x03, 0x02, 0x5a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x05, 0x06, 0x12, 0x04, 0xe7, 0x03, 0x0b, 0x21, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x05, 0x01, 0x12, 0x04, 0xe7, 0x03, 0x22, 0x2c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0e, 0x02, 0x05, 0x03, 0x12, 0x04, 0xe7, 0x03, 0x2f, 0x30, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0e, 0x02, 0x05, 0x08, 0x12, 0x04, 0xe7, 0x03, 0x31, 0x59, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x0e, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe7, 0x03, 0x32, 0x58, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0e, 0x02, 0x06, 0x05, 0x12, 0x04, 0xe8, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x0e, 0x02, 0x06, 0x12, 0x04, 0xe8, 0x03, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, + 0x02, 0x06, 0x01, 0x12, 0x04, 0xe8, 0x03, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, + 0x06, 0x03, 0x12, 0x04, 0xe8, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x07, + 0x05, 0x12, 0x04, 0xe9, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x07, 0x12, + 0x04, 0xe9, 0x03, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x07, 0x01, 0x12, 0x04, + 0xe9, 0x03, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x07, 0x03, 0x12, 0x04, 0xe9, + 0x03, 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x08, 0x04, 0x12, 0x04, 0xeb, 0x03, + 0x02, 0x0a, 0x0a, 0x68, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x08, 0x12, 0x04, 0xeb, 0x03, 0x02, 0x21, + 0x1a, 0x5a, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x64, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x20, 0x49, 0x74, 0x20, 0x69, + 0x73, 0x20, 0x69, 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x65, 0x74, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0e, 0x02, 0x08, 0x05, 0x12, 0x04, 0xeb, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0e, 0x02, 0x08, 0x01, 0x12, 0x04, 0xeb, 0x03, 0x12, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, + 0x02, 0x08, 0x03, 0x12, 0x04, 0xeb, 0x03, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, + 0x09, 0x06, 0x12, 0x04, 0xec, 0x03, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x09, + 0x12, 0x04, 0xec, 0x03, 0x02, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x09, 0x01, 0x12, + 0x04, 0xec, 0x03, 0x19, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x09, 0x03, 0x12, 0x04, + 0xec, 0x03, 0x2f, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0a, 0x06, 0x12, 0x04, 0xed, + 0x03, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x0a, 0x12, 0x04, 0xed, 0x03, 0x02, + 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xed, 0x03, 0x15, 0x28, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0a, 0x03, 0x12, 0x04, 0xed, 0x03, 0x2b, 0x2d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0b, 0x05, 0x12, 0x04, 0xee, 0x03, 0x02, 0x06, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x0b, 0x12, 0x04, 0xee, 0x03, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0e, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xee, 0x03, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0e, 0x02, 0x0b, 0x03, 0x12, 0x04, 0xee, 0x03, 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, + 0x02, 0x0c, 0x04, 0x12, 0x04, 0xef, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, + 0x0c, 0x12, 0x04, 0xef, 0x03, 0x02, 0x61, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0c, 0x06, + 0x12, 0x04, 0xef, 0x03, 0x0b, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0c, 0x01, 0x12, + 0x04, 0xef, 0x03, 0x2a, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0c, 0x03, 0x12, 0x04, + 0xef, 0x03, 0x35, 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0c, 0x08, 0x12, 0x04, 0xef, + 0x03, 0x38, 0x60, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x0c, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xef, 0x03, 0x39, 0x5f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0d, 0x05, 0x12, 0x04, + 0xf0, 0x03, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x0d, 0x12, 0x04, 0xf0, 0x03, + 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0d, 0x01, 0x12, 0x04, 0xf0, 0x03, 0x07, + 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0d, 0x03, 0x12, 0x04, 0xf0, 0x03, 0x15, 0x17, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0d, 0x08, 0x12, 0x04, 0xf0, 0x03, 0x18, 0x40, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x0d, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf0, 0x03, 0x19, + 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0e, 0x04, 0x12, 0x04, 0xfb, 0x03, 0x02, 0x0a, + 0x0a, 0xa3, 0x05, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x0e, 0x12, 0x04, 0xfb, 0x03, 0x02, 0x59, 0x1a, + 0x94, 0x05, 0x20, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x74, 0x72, + 0x75, 0x65, 0x60, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x6c, 0x69, 0x76, 0x65, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6c, 0x69, 0x76, + 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, + 0x61, 0x6e, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x2c, 0x20, 0x68, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x20, + 0x69, 0x73, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2c, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, + 0x65, 0x65, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, + 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x0a, 0x20, 0x60, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x20, 0x60, 0x74, 0x72, 0x75, 0x65, + 0x60, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x61, 0x6e, + 0x20, 0x62, 0x65, 0x0a, 0x20, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x66, 0x61, 0x6c, + 0x73, 0x65, 0x60, 0x20, 0x69, 0x66, 0x20, 0x55, 0x44, 0x46, 0x20, 0x69, 0x6e, 0x6c, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x73, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x0a, 0x20, 0x6c, 0x69, 0x76, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x29, 0x2e, 0x20, 0x52, 0x65, + 0x2d, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x6e, 0x64, 0x65, + 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x73, 0x75, 0x65, 0x20, 0x72, 0x65, 0x73, + 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x20, 0x2d, 0x2d, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x20, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x2d, + 0x2d, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6c, 0x69, 0x70, 0x20, 0x69, 0x74, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x20, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0e, 0x05, 0x12, + 0x04, 0xfb, 0x03, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0e, 0x01, 0x12, 0x04, + 0xfb, 0x03, 0x10, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0e, 0x03, 0x12, 0x04, 0xfb, + 0x03, 0x2d, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0e, 0x08, 0x12, 0x04, 0xfb, 0x03, + 0x30, 0x58, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x0e, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xfb, 0x03, 0x31, 0x57, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0f, 0x12, 0x06, 0xfe, 0x03, 0x00, 0x84, + 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0f, 0x01, 0x12, 0x04, 0xfe, 0x03, 0x08, 0x1e, 0x0a, + 0x56, 0x0a, 0x03, 0x04, 0x0f, 0x09, 0x12, 0x04, 0x80, 0x04, 0x02, 0x0d, 0x1a, 0x49, 0x20, 0x32, + 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6c, 0x79, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x09, 0x00, 0x12, + 0x04, 0x80, 0x04, 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x09, 0x00, 0x01, 0x12, 0x04, + 0x80, 0x04, 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x09, 0x00, 0x02, 0x12, 0x04, 0x80, + 0x04, 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x04, 0x12, 0x04, 0x81, 0x04, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x00, 0x12, 0x04, 0x81, 0x04, 0x02, 0x28, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x05, 0x12, 0x04, 0x81, 0x04, 0x0b, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x01, 0x12, 0x04, 0x81, 0x04, 0x12, 0x23, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x03, 0x12, 0x04, 0x81, 0x04, 0x26, 0x27, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0f, 0x02, 0x01, 0x06, 0x12, 0x04, 0x82, 0x04, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x0f, 0x02, 0x01, 0x12, 0x04, 0x82, 0x04, 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, + 0x02, 0x01, 0x01, 0x12, 0x04, 0x82, 0x04, 0x1a, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, + 0x01, 0x03, 0x12, 0x04, 0x82, 0x04, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, + 0x08, 0x12, 0x04, 0x82, 0x04, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x01, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0x82, 0x04, 0x2a, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, + 0x02, 0x04, 0x12, 0x04, 0x83, 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x02, + 0x12, 0x04, 0x83, 0x04, 0x02, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, 0x06, 0x12, + 0x04, 0x83, 0x04, 0x0b, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, 0x01, 0x12, 0x04, + 0x83, 0x04, 0x1f, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, 0x03, 0x12, 0x04, 0x83, + 0x04, 0x29, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, 0x08, 0x12, 0x04, 0x83, 0x04, + 0x2b, 0x53, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x83, 0x04, 0x2c, 0x52, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x10, 0x12, 0x06, 0x85, 0x04, 0x00, 0x89, + 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x10, 0x01, 0x12, 0x04, 0x85, 0x04, 0x08, 0x1b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x04, 0x12, 0x04, 0x86, 0x04, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x10, 0x02, 0x00, 0x12, 0x04, 0x86, 0x04, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x10, 0x02, 0x00, 0x05, 0x12, 0x04, 0x86, 0x04, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x10, 0x02, 0x00, 0x01, 0x12, 0x04, 0x86, 0x04, 0x12, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, + 0x02, 0x00, 0x03, 0x12, 0x04, 0x86, 0x04, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, + 0x01, 0x06, 0x12, 0x04, 0x87, 0x04, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x01, + 0x12, 0x04, 0x87, 0x04, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x01, 0x12, + 0x04, 0x87, 0x04, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x03, 0x12, 0x04, + 0x87, 0x04, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x08, 0x12, 0x04, 0x87, + 0x04, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x10, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0x87, 0x04, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x06, 0x12, 0x04, + 0x88, 0x04, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x02, 0x12, 0x04, 0x88, 0x04, + 0x02, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x01, 0x12, 0x04, 0x88, 0x04, 0x1a, + 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x03, 0x12, 0x04, 0x88, 0x04, 0x2a, 0x2b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x08, 0x12, 0x04, 0x88, 0x04, 0x2c, 0x54, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x10, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, 0x04, 0x2d, + 0x53, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x06, 0x8a, 0x04, 0x00, 0x8f, 0x04, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, 0x04, 0x8a, 0x04, 0x05, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8b, 0x04, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x05, + 0x01, 0x02, 0x00, 0x12, 0x04, 0x8b, 0x04, 0x02, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, + 0x00, 0x02, 0x12, 0x04, 0x8b, 0x04, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, + 0x03, 0x12, 0x04, 0x8b, 0x04, 0x1e, 0x31, 0x0a, 0x0e, 0x0a, 0x06, 0x05, 0x01, 0x02, 0x00, 0x03, + 0x01, 0x12, 0x04, 0x8b, 0x04, 0x1f, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x01, + 0x12, 0x04, 0x8c, 0x04, 0x02, 0x0e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x01, 0x12, 0x04, + 0x8c, 0x04, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x02, 0x12, 0x04, 0x8c, + 0x04, 0x11, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x01, 0x12, 0x04, 0x8d, 0x04, + 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x02, 0x12, 0x04, 0x8d, 0x04, 0x02, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x02, 0x12, 0x04, 0x8d, 0x04, 0x0f, 0x10, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0x8e, 0x04, 0x02, 0x09, 0x0a, 0x0c, + 0x0a, 0x04, 0x05, 0x01, 0x02, 0x03, 0x12, 0x04, 0x8e, 0x04, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x01, 0x02, 0x03, 0x02, 0x12, 0x04, 0x8e, 0x04, 0x0c, 0x0d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x11, 0x12, 0x06, 0x90, 0x04, 0x00, 0x92, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x11, 0x01, + 0x12, 0x04, 0x90, 0x04, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x05, 0x12, + 0x04, 0x91, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x00, 0x12, 0x04, 0x91, + 0x04, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x01, 0x12, 0x04, 0x91, 0x04, + 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x03, 0x12, 0x04, 0x91, 0x04, 0x13, + 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x08, 0x12, 0x04, 0x91, 0x04, 0x15, 0x3d, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x11, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x91, 0x04, + 0x16, 0x3c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x12, 0x12, 0x06, 0x94, 0x04, 0x00, 0xa1, 0x04, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x12, 0x01, 0x12, 0x04, 0x94, 0x04, 0x08, 0x18, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x12, 0x02, 0x00, 0x05, 0x12, 0x04, 0x95, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x12, 0x02, 0x00, 0x12, 0x04, 0x95, 0x04, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x95, 0x04, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x95, 0x04, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, + 0x08, 0x12, 0x04, 0x95, 0x04, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0x95, 0x04, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, + 0x01, 0x05, 0x12, 0x04, 0x96, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x01, + 0x12, 0x04, 0x96, 0x04, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x01, 0x12, + 0x04, 0x96, 0x04, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x03, 0x12, 0x04, + 0x96, 0x04, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x08, 0x12, 0x04, 0x96, + 0x04, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0x96, 0x04, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x02, 0x04, 0x12, 0x04, + 0x9a, 0x04, 0x02, 0x0a, 0x0a, 0xc7, 0x01, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x02, 0x12, 0x04, 0x9a, + 0x04, 0x02, 0x7c, 0x1a, 0xb8, 0x01, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x2c, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x0a, 0x20, + 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6c, 0x61, + 0x67, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x12, 0x02, 0x02, 0x06, 0x12, 0x04, 0x9a, 0x04, 0x0b, 0x2a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x12, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9a, 0x04, 0x2b, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x12, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9a, 0x04, 0x51, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x12, 0x02, 0x02, 0x08, 0x12, 0x04, 0x9a, 0x04, 0x53, 0x7b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, + 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9a, 0x04, 0x54, 0x7a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x12, 0x02, 0x03, 0x04, 0x12, 0x04, 0x9e, 0x04, 0x02, 0x0a, 0x0a, 0xb4, 0x01, 0x0a, 0x04, + 0x04, 0x12, 0x02, 0x03, 0x12, 0x04, 0x9e, 0x04, 0x02, 0x45, 0x1a, 0xa5, 0x01, 0x20, 0x49, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, 0x05, 0x12, 0x04, 0x9e, 0x04, 0x0b, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, 0x01, 0x12, 0x04, 0x9e, 0x04, 0x12, 0x17, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, 0x03, 0x12, 0x04, 0x9e, 0x04, 0x1a, 0x1b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, 0x08, 0x12, 0x04, 0x9e, 0x04, 0x1c, 0x44, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x12, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9e, 0x04, 0x1d, 0x43, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x04, 0x05, 0x12, 0x04, 0xa0, 0x04, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x04, 0x12, 0x04, 0xa0, 0x04, 0x02, 0x40, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x12, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa0, 0x04, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x12, 0x02, 0x04, 0x03, 0x12, 0x04, 0xa0, 0x04, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x12, 0x02, 0x04, 0x08, 0x12, 0x04, 0xa0, 0x04, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, + 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa0, 0x04, 0x18, 0x3e, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x13, 0x12, 0x06, 0xa3, 0x04, 0x00, 0xba, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x13, + 0x01, 0x12, 0x04, 0xa3, 0x04, 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x04, + 0x12, 0x04, 0xa5, 0x04, 0x02, 0x0a, 0x0a, 0x36, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x00, 0x12, 0x04, + 0xa5, 0x04, 0x02, 0x50, 0x1a, 0x28, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x61, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x06, 0x12, 0x04, 0xa5, 0x04, 0x0b, 0x1c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x13, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa5, 0x04, 0x1d, 0x22, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x13, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa5, 0x04, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x13, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa5, 0x04, 0x27, 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x13, + 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa5, 0x04, 0x28, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x13, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa8, 0x04, 0x02, 0x06, 0x0a, 0x6c, 0x0a, 0x04, 0x04, + 0x13, 0x02, 0x01, 0x12, 0x04, 0xa8, 0x04, 0x02, 0x42, 0x1a, 0x5e, 0x20, 0x49, 0x66, 0x20, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x73, 0x20, + 0x74, 0x72, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, + 0x01, 0x01, 0x12, 0x04, 0xa8, 0x04, 0x07, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, + 0x03, 0x12, 0x04, 0xa8, 0x04, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x08, + 0x12, 0x04, 0xa8, 0x04, 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x13, 0x02, 0x01, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xa8, 0x04, 0x1a, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, + 0x05, 0x12, 0x04, 0xb9, 0x04, 0x02, 0x06, 0x0a, 0xd7, 0x08, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x02, + 0x12, 0x04, 0xb9, 0x04, 0x02, 0x3e, 0x1a, 0xc8, 0x08, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, + 0x72, 0x61, 0x67, 0x65, 0x64, 0x20, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x68, 0x61, 0x74, + 0x63, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x20, 0x77, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x66, + 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x0a, 0x20, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2d, 0x73, 0x69, 0x64, 0x65, 0x2e, 0x20, 0x57, 0x68, 0x65, + 0x6e, 0x20, 0x60, 0x74, 0x72, 0x75, 0x65, 0x60, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x50, + 0x65, 0x72, 0x2d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x20, + 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x2d, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x20, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x60, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, + 0x62, 0x75, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x76, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, + 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x27, 0x73, 0x20, 0x55, 0x44, + 0x46, 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x20, 0x28, 0x74, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, + 0x63, 0x61, 0x75, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x6e, 0x27, 0x74, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, + 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x20, 0x79, 0x65, 0x74, 0x2c, 0x20, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, + 0x61, 0x6e, 0x79, 0x20, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2d, 0x69, 0x6e, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x20, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x29, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x69, 0x74, + 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x60, 0x20, 0x69, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x60, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x60, 0x2e, 0x20, 0x4c, 0x69, 0x76, 0x65, 0x20, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x6b, 0x69, 0x70, 0x20, + 0x69, 0x74, 0x3b, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, + 0x6e, 0x2d, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x20, 0x73, + 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x72, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, + 0x72, 0x75, 0x6e, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x0a, 0x20, 0x54, 0x6f, 0x20, 0x62, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x66, 0x69, 0x78, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, + 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x20, 0x28, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x69, + 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x79, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x29, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x72, 0x65, 0x69, 0x73, 0x73, 0x75, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x2e, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x14, 0x01, 0x12, 0x04, 0xed, 0x02, 0x07, 0x21, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x14, 0x03, 0x12, 0x04, 0xed, 0x02, 0x24, 0x26, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x14, 0x08, 0x12, 0x04, 0xed, 0x02, 0x27, 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x00, 0x02, 0x14, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xed, 0x02, 0x28, 0x4e, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x15, 0x05, 0x12, 0x04, 0xf0, 0x02, 0x02, 0x08, 0x0a, 0xa9, 0x01, 0x0a, - 0x04, 0x04, 0x00, 0x02, 0x15, 0x12, 0x04, 0xf0, 0x02, 0x02, 0x4a, 0x1a, 0x9a, 0x01, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x61, 0x73, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x15, - 0x01, 0x12, 0x04, 0xf0, 0x02, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x15, 0x03, - 0x12, 0x04, 0xf0, 0x02, 0x1e, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x15, 0x08, 0x12, - 0x04, 0xf0, 0x02, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x00, 0x02, 0x15, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xf0, 0x02, 0x22, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, 0x04, - 0x12, 0x04, 0xf3, 0x02, 0x02, 0x0a, 0x0a, 0x38, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x16, 0x12, 0x04, - 0xf3, 0x02, 0x02, 0x22, 0x1a, 0x2a, 0x20, 0x49, 0x64, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x2e, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, 0x05, 0x12, 0x04, 0xf3, 0x02, 0x0b, 0x11, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, 0x01, 0x12, 0x04, 0xf3, 0x02, 0x12, 0x1c, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x16, 0x03, 0x12, 0x04, 0xf3, 0x02, 0x1f, 0x21, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x01, 0x12, 0x06, 0xf6, 0x02, 0x00, 0x82, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x01, 0x01, 0x12, 0x04, 0xf6, 0x02, 0x08, 0x15, 0x0a, 0x5b, 0x0a, 0x03, 0x04, 0x01, 0x09, 0x12, - 0x04, 0xf8, 0x02, 0x02, 0x0d, 0x1a, 0x4e, 0x20, 0x34, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x22, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x6c, 0x69, 0x76, 0x65, 0x64, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x09, 0x00, 0x12, 0x04, 0xf8, - 0x02, 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x09, 0x00, 0x01, 0x12, 0x04, 0xf8, 0x02, - 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x09, 0x00, 0x02, 0x12, 0x04, 0xf8, 0x02, 0x0b, - 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf9, 0x02, 0x02, 0x08, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x04, 0xf9, 0x02, 0x02, 0x48, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf9, 0x02, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf9, 0x02, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x01, 0x02, 0x00, 0x08, 0x12, 0x04, 0xf9, 0x02, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x01, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf9, 0x02, 0x20, 0x46, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x04, 0xfa, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x01, 0x02, 0x01, 0x12, 0x04, 0xfa, 0x02, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, - 0x02, 0x01, 0x01, 0x12, 0x04, 0xfa, 0x02, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x01, 0x03, 0x12, 0x04, 0xfa, 0x02, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, - 0x08, 0x12, 0x04, 0xfa, 0x02, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x01, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfa, 0x02, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x02, 0x06, 0x12, 0x04, 0xfb, 0x02, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, - 0x12, 0x04, 0xfb, 0x02, 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, - 0x04, 0xfb, 0x02, 0x1a, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x04, - 0xfb, 0x02, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x08, 0x12, 0x04, 0xfb, - 0x02, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xfb, 0x02, 0x2a, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x06, 0x12, 0x04, - 0xfc, 0x02, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x04, 0xfc, 0x02, - 0x02, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0xfc, 0x02, 0x1c, - 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x04, 0xfc, 0x02, 0x2b, 0x2c, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x08, 0x12, 0x04, 0xfc, 0x02, 0x2d, 0x55, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfc, 0x02, 0x2e, - 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x06, 0x12, 0x04, 0xfd, 0x02, 0x02, 0x1b, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x04, 0x12, 0x04, 0xfd, 0x02, 0x02, 0x57, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0xfd, 0x02, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x04, 0x03, 0x12, 0x04, 0xfd, 0x02, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x01, 0x02, 0x04, 0x08, 0x12, 0x04, 0xfd, 0x02, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x01, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfd, 0x02, 0x2f, 0x55, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x05, 0x05, 0x12, 0x04, 0xfe, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x01, 0x02, 0x05, 0x12, 0x04, 0xfe, 0x02, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, - 0x02, 0x05, 0x01, 0x12, 0x04, 0xfe, 0x02, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x05, 0x03, 0x12, 0x04, 0xfe, 0x02, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, - 0x08, 0x12, 0x04, 0xfe, 0x02, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x05, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfe, 0x02, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, - 0x06, 0x05, 0x12, 0x04, 0xff, 0x02, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x06, - 0x12, 0x04, 0xff, 0x02, 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, - 0x04, 0xff, 0x02, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x04, - 0xff, 0x02, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x08, 0x12, 0x04, 0xff, - 0x02, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xff, 0x02, 0x22, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x04, 0x12, 0x04, - 0x80, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x04, 0x80, 0x03, - 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x06, 0x12, 0x04, 0x80, 0x03, 0x0b, - 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x01, 0x12, 0x04, 0x80, 0x03, 0x16, 0x1d, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x03, 0x12, 0x04, 0x80, 0x03, 0x20, 0x21, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x08, 0x12, 0x04, 0x80, 0x03, 0x22, 0x4a, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x01, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x80, 0x03, 0x23, 0x49, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x05, 0x12, 0x04, 0x81, 0x03, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x08, 0x12, 0x04, 0x81, 0x03, 0x02, 0x51, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, 0x04, 0x81, 0x03, 0x09, 0x22, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x04, 0x81, 0x03, 0x25, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x01, 0x02, 0x08, 0x08, 0x12, 0x04, 0x81, 0x03, 0x28, 0x50, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x01, - 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x81, 0x03, 0x29, 0x4f, 0x0a, 0x0c, 0x0a, 0x02, - 0x04, 0x02, 0x12, 0x06, 0x83, 0x03, 0x00, 0x8d, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x02, - 0x01, 0x12, 0x04, 0x83, 0x03, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x05, - 0x12, 0x04, 0x84, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x04, - 0x84, 0x03, 0x02, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x04, 0x84, - 0x03, 0x09, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x04, 0x84, 0x03, - 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, 0x04, 0x84, 0x03, 0x1c, - 0x44, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x84, - 0x03, 0x1d, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, 0x04, 0x85, 0x03, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x04, 0x85, 0x03, 0x02, 0x48, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x04, 0x85, 0x03, 0x09, 0x1a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x04, 0x85, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x04, 0x85, 0x03, 0x1f, 0x47, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x02, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x85, 0x03, 0x20, 0x46, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x06, 0x12, 0x04, 0x86, 0x03, 0x02, 0x0c, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x04, 0x86, 0x03, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x04, 0x86, 0x03, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x02, 0x03, 0x12, 0x04, 0x86, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, - 0x02, 0x02, 0x08, 0x12, 0x04, 0x86, 0x03, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, - 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x86, 0x03, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x03, 0x06, 0x12, 0x04, 0x87, 0x03, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, - 0x02, 0x03, 0x12, 0x04, 0x87, 0x03, 0x02, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, - 0x01, 0x12, 0x04, 0x87, 0x03, 0x1a, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x03, - 0x12, 0x04, 0x87, 0x03, 0x2a, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x08, 0x12, - 0x04, 0x87, 0x03, 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x03, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0x87, 0x03, 0x2d, 0x53, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x06, - 0x12, 0x04, 0x88, 0x03, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x04, - 0x88, 0x03, 0x02, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x04, 0x88, - 0x03, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x04, 0x88, 0x03, - 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x08, 0x12, 0x04, 0x88, 0x03, 0x2d, - 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, - 0x03, 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x06, 0x12, 0x04, 0x89, 0x03, - 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x04, 0x89, 0x03, 0x02, 0x57, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x04, 0x89, 0x03, 0x1c, 0x29, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x04, 0x89, 0x03, 0x2c, 0x2d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x08, 0x12, 0x04, 0x89, 0x03, 0x2e, 0x56, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x02, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x89, 0x03, 0x2f, 0x55, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x05, 0x12, 0x04, 0x8a, 0x03, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x02, 0x02, 0x06, 0x12, 0x04, 0x8a, 0x03, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x06, 0x01, 0x12, 0x04, 0x8a, 0x03, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x06, 0x03, 0x12, 0x04, 0x8a, 0x03, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, - 0x02, 0x06, 0x08, 0x12, 0x04, 0x8a, 0x03, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, - 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8a, 0x03, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x07, 0x05, 0x12, 0x04, 0x8b, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, - 0x02, 0x07, 0x12, 0x04, 0x8b, 0x03, 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, - 0x01, 0x12, 0x04, 0x8b, 0x03, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x03, - 0x12, 0x04, 0x8b, 0x03, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x08, 0x12, - 0x04, 0x8b, 0x03, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x07, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0x8b, 0x03, 0x22, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x05, - 0x12, 0x04, 0x8c, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x08, 0x12, 0x04, - 0x8c, 0x03, 0x02, 0x4d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x01, 0x12, 0x04, 0x8c, - 0x03, 0x09, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x03, 0x12, 0x04, 0x8c, 0x03, - 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x08, 0x12, 0x04, 0x8c, 0x03, 0x24, - 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x02, 0x08, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8c, - 0x03, 0x25, 0x4b, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x06, 0x8f, 0x03, 0x00, 0x92, 0x03, - 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x04, 0x8f, 0x03, 0x08, 0x1e, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x04, 0x12, 0x04, 0x90, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x04, 0x90, 0x03, 0x02, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x03, 0x02, 0x00, 0x05, 0x12, 0x04, 0x90, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, - 0x02, 0x00, 0x01, 0x12, 0x04, 0x90, 0x03, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, - 0x00, 0x03, 0x12, 0x04, 0x90, 0x03, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, - 0x04, 0x12, 0x04, 0x91, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, 0x12, - 0x04, 0x91, 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x05, 0x12, 0x04, - 0x91, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x04, 0x91, - 0x03, 0x12, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, 0x12, 0x04, 0x91, 0x03, - 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x06, 0x94, 0x03, 0x00, 0x96, 0x03, 0x01, - 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x04, 0x94, 0x03, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x04, 0x02, 0x00, 0x04, 0x12, 0x04, 0x95, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x04, 0x02, 0x00, 0x12, 0x04, 0x95, 0x03, 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, - 0x02, 0x00, 0x06, 0x12, 0x04, 0x95, 0x03, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, - 0x00, 0x01, 0x12, 0x04, 0x95, 0x03, 0x1c, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, - 0x03, 0x12, 0x04, 0x95, 0x03, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x08, - 0x12, 0x04, 0x95, 0x03, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x04, 0x02, 0x00, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0x95, 0x03, 0x2a, 0x50, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x05, 0x12, 0x06, - 0x98, 0x03, 0x00, 0x9e, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x04, 0x98, - 0x03, 0x08, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x05, 0x12, 0x04, 0x99, 0x03, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x04, 0x99, 0x03, 0x02, 0x3f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x04, 0x99, 0x03, 0x09, 0x11, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x04, 0x99, 0x03, 0x14, 0x15, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x08, 0x12, 0x04, 0x99, 0x03, 0x16, 0x3e, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x05, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x99, 0x03, 0x17, 0x3d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x05, 0x12, 0x04, 0x9a, 0x03, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x05, 0x02, 0x01, 0x12, 0x04, 0x9a, 0x03, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x05, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9a, 0x03, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x05, 0x02, 0x01, 0x03, 0x12, 0x04, 0x9a, 0x03, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, - 0x02, 0x01, 0x08, 0x12, 0x04, 0x9a, 0x03, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, 0x02, - 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9a, 0x03, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x05, 0x02, 0x02, 0x05, 0x12, 0x04, 0x9c, 0x03, 0x02, 0x08, 0x0a, 0x5c, 0x0a, 0x04, 0x04, 0x05, - 0x02, 0x02, 0x12, 0x04, 0x9c, 0x03, 0x02, 0x43, 0x1a, 0x4e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, - 0x61, 0x67, 0x5f, 0x69, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, - 0x01, 0x12, 0x04, 0x9c, 0x03, 0x09, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x03, - 0x12, 0x04, 0x9c, 0x03, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x08, 0x12, - 0x04, 0x9c, 0x03, 0x1a, 0x42, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, 0x02, 0x02, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0x9c, 0x03, 0x1b, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x04, - 0x12, 0x04, 0x9d, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x03, 0x12, 0x04, - 0x9d, 0x03, 0x02, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x05, 0x12, 0x04, 0x9d, - 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x01, 0x12, 0x04, 0x9d, 0x03, - 0x12, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x03, 0x12, 0x04, 0x9d, 0x03, 0x1a, - 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x08, 0x12, 0x04, 0x9d, 0x03, 0x1c, 0x44, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9d, 0x03, - 0x1d, 0x43, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x06, 0xa0, 0x03, 0x00, 0xb2, 0x03, 0x01, - 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x04, 0xa0, 0x03, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x06, 0x02, 0x00, 0x04, 0x12, 0x04, 0xa2, 0x03, 0x02, 0x0a, 0x0a, 0x47, 0x0a, 0x04, - 0x04, 0x06, 0x02, 0x00, 0x12, 0x04, 0xa2, 0x03, 0x02, 0x1c, 0x1a, 0x39, 0x20, 0x4d, 0x61, 0x78, + 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x2e, 0x0a, 0x0a, 0x20, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x60, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, + 0x73, 0x65, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x2a, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x2a, 0x0a, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x3b, 0x20, + 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x53, 0x44, 0x4b, 0x20, 0x63, 0x61, 0x6c, + 0x6c, 0x20, 0x73, 0x69, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x72, 0x65, 0x6c, + 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb9, 0x04, 0x07, 0x25, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb9, 0x04, 0x28, 0x29, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x08, 0x12, 0x04, 0xb9, 0x04, 0x2a, 0x3d, 0x0a, 0x0e, + 0x0a, 0x06, 0x04, 0x13, 0x02, 0x02, 0x08, 0x03, 0x12, 0x04, 0xb9, 0x04, 0x2b, 0x3c, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x14, 0x12, 0x06, 0xbb, 0x04, 0x00, 0xd2, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x14, 0x01, 0x12, 0x04, 0xbb, 0x04, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, + 0x00, 0x05, 0x12, 0x04, 0xbc, 0x04, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x00, + 0x12, 0x04, 0xbc, 0x04, 0x02, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xbc, 0x04, 0x07, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xbc, 0x04, 0x11, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x08, 0x12, 0x04, 0xbc, + 0x04, 0x13, 0x3b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xbc, 0x04, 0x14, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x05, 0x12, 0x04, + 0xbf, 0x04, 0x02, 0x07, 0x0a, 0x97, 0x01, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x01, 0x12, 0x04, 0xbf, + 0x04, 0x02, 0x49, 0x1a, 0x88, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x64, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, 0x04, - 0xa2, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa2, - 0x03, 0x12, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa2, 0x03, - 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa4, 0x03, 0x02, - 0x08, 0x0a, 0x2f, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x04, 0xa4, 0x03, 0x02, 0x14, 0x1a, - 0x21, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x20, 0x69, - 0x66, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa4, 0x03, 0x09, - 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa4, 0x03, 0x12, 0x13, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x04, 0x12, 0x04, 0xa6, 0x03, 0x02, 0x0a, 0x0a, - 0x41, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, 0x04, 0xa6, 0x03, 0x02, 0x21, 0x1a, 0x33, 0x20, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x20, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x62, 0x79, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x29, - 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x06, 0x12, 0x04, 0xa6, 0x03, 0x0b, - 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x04, 0xa6, 0x03, 0x17, 0x1c, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x04, 0xa6, 0x03, 0x1f, 0x20, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x05, 0x12, 0x04, 0xa7, 0x03, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x06, 0x02, 0x03, 0x12, 0x04, 0xa7, 0x03, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x06, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa7, 0x03, 0x09, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x06, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa7, 0x03, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, - 0x02, 0x04, 0x05, 0x12, 0x04, 0xa8, 0x03, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, - 0x04, 0x12, 0x04, 0xa8, 0x03, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x01, - 0x12, 0x04, 0xa8, 0x03, 0x07, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x03, 0x12, - 0x04, 0xa8, 0x03, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x05, 0x05, 0x12, 0x04, - 0xa9, 0x03, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x05, 0x12, 0x04, 0xa9, 0x03, - 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x05, 0x01, 0x12, 0x04, 0xa9, 0x03, 0x07, - 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x05, 0x03, 0x12, 0x04, 0xa9, 0x03, 0x10, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x06, 0x04, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x0a, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x06, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x06, 0x02, 0x06, 0x05, 0x12, 0x04, 0xaa, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x06, 0x02, 0x06, 0x01, 0x12, 0x04, 0xaa, 0x03, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x06, 0x02, 0x06, 0x03, 0x12, 0x04, 0xaa, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, - 0x02, 0x07, 0x04, 0x12, 0x04, 0xac, 0x03, 0x02, 0x0a, 0x0a, 0x42, 0x0a, 0x04, 0x04, 0x06, 0x02, - 0x07, 0x12, 0x04, 0xac, 0x03, 0x02, 0x1f, 0x1a, 0x34, 0x20, 0x49, 0x66, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x69, 0x64, 0x73, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x06, 0x02, 0x07, 0x05, 0x12, 0x04, 0xac, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x06, 0x02, 0x07, 0x01, 0x12, 0x04, 0xac, 0x03, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x06, 0x02, 0x07, 0x03, 0x12, 0x04, 0xac, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, - 0x02, 0x08, 0x04, 0x12, 0x04, 0xae, 0x03, 0x02, 0x0a, 0x0a, 0x51, 0x0a, 0x04, 0x04, 0x06, 0x02, - 0x08, 0x12, 0x04, 0xae, 0x03, 0x02, 0x20, 0x1a, 0x43, 0x20, 0x49, 0x66, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, - 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x69, 0x64, 0x73, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x06, 0x02, 0x08, 0x05, 0x12, 0x04, 0xae, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x06, 0x02, 0x08, 0x01, 0x12, 0x04, 0xae, 0x03, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, - 0x02, 0x08, 0x03, 0x12, 0x04, 0xae, 0x03, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, - 0x09, 0x05, 0x12, 0x04, 0xaf, 0x03, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x09, - 0x12, 0x04, 0xaf, 0x03, 0x02, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x09, 0x01, 0x12, - 0x04, 0xaf, 0x03, 0x07, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x09, 0x03, 0x12, 0x04, - 0xaf, 0x03, 0x19, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x0a, 0x06, 0x12, 0x04, 0xb1, - 0x03, 0x02, 0x24, 0x0a, 0x4f, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x0a, 0x12, 0x04, 0xb1, 0x03, 0x02, - 0x35, 0x1a, 0x41, 0x20, 0x49, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, - 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, - 0x61, 0x67, 0x73, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xb1, - 0x03, 0x25, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x0a, 0x03, 0x12, 0x04, 0xb1, 0x03, - 0x32, 0x34, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x06, 0xb3, 0x03, 0x00, 0xb7, 0x03, 0x01, - 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x04, 0xb3, 0x03, 0x05, 0x10, 0x0a, 0x0d, 0x0a, - 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb4, 0x03, 0x02, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, - 0x05, 0x00, 0x02, 0x00, 0x12, 0x04, 0xb4, 0x03, 0x02, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, - 0x02, 0x00, 0x02, 0x12, 0x04, 0xb4, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, - 0x00, 0x03, 0x12, 0x04, 0xb4, 0x03, 0x1f, 0x32, 0x0a, 0x0e, 0x0a, 0x06, 0x05, 0x00, 0x02, 0x00, - 0x03, 0x01, 0x12, 0x04, 0xb4, 0x03, 0x20, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, - 0x01, 0x12, 0x04, 0xb5, 0x03, 0x02, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, - 0x04, 0xb5, 0x03, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, - 0xb5, 0x03, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb6, - 0x03, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x04, 0xb6, 0x03, 0x02, - 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xb6, 0x03, 0x16, 0x17, - 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x06, 0xb8, 0x03, 0x00, 0xbc, 0x03, 0x01, 0x0a, 0x0b, - 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x04, 0xb8, 0x03, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x07, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb9, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x07, - 0x02, 0x00, 0x12, 0x04, 0xb9, 0x03, 0x02, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, - 0x01, 0x12, 0x04, 0xb9, 0x03, 0x09, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x03, - 0x12, 0x04, 0xb9, 0x03, 0x11, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x08, 0x12, - 0x04, 0xb9, 0x03, 0x13, 0x3b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x07, 0x02, 0x00, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xb9, 0x03, 0x14, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x04, - 0x12, 0x04, 0xbb, 0x03, 0x02, 0x0a, 0x0a, 0x6f, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, 0x04, - 0xbb, 0x03, 0x02, 0x43, 0x1a, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x06, - 0x12, 0x04, 0xbb, 0x03, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, 0x12, - 0x04, 0xbb, 0x03, 0x10, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, 0x04, - 0xbb, 0x03, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x08, 0x12, 0x04, 0xbb, - 0x03, 0x1a, 0x42, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x07, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xbb, 0x03, 0x1b, 0x41, 0x0a, 0x84, 0x01, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x06, 0xbf, 0x03, - 0x00, 0xc2, 0x03, 0x01, 0x1a, 0x76, 0x20, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, 0x75, + 0x65, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x62, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x01, 0x12, 0x04, 0xbf, 0x04, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x14, 0x02, 0x01, 0x03, 0x12, 0x04, 0xbf, 0x04, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x14, 0x02, 0x01, 0x08, 0x12, 0x04, 0xbf, 0x04, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x14, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbf, 0x04, 0x21, 0x47, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x14, 0x02, 0x02, 0x05, 0x12, 0x04, 0xc2, 0x04, 0x02, 0x07, 0x0a, 0x97, 0x01, 0x0a, + 0x04, 0x04, 0x14, 0x02, 0x02, 0x12, 0x04, 0xc2, 0x04, 0x02, 0x49, 0x1a, 0x88, 0x01, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x20, 0x49, 0x66, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x68, 0x6f, + 0x77, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x6f, 0x75, + 0x6c, 0x64, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, 0x01, 0x12, + 0x04, 0xc2, 0x04, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, 0x03, 0x12, 0x04, + 0xc2, 0x04, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, 0x08, 0x12, 0x04, 0xc2, + 0x04, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xc2, 0x04, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x05, 0x12, 0x04, + 0xc5, 0x04, 0x02, 0x06, 0x0a, 0x67, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x03, 0x12, 0x04, 0xc5, 0x04, + 0x02, 0x42, 0x1a, 0x59, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x74, 0x72, 0x75, 0x65, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x69, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x61, 0x76, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x14, 0x02, 0x03, 0x01, 0x12, 0x04, 0xc5, 0x04, 0x07, 0x14, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x14, 0x02, 0x03, 0x03, 0x12, 0x04, 0xc5, 0x04, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x14, 0x02, 0x03, 0x08, 0x12, 0x04, 0xc5, 0x04, 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, + 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc5, 0x04, 0x1a, 0x40, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x14, 0x02, 0x04, 0x04, 0x12, 0x04, 0xc8, 0x04, 0x02, 0x0a, 0x0a, 0x4d, 0x0a, 0x04, 0x04, + 0x14, 0x02, 0x04, 0x12, 0x04, 0xc8, 0x04, 0x02, 0x5c, 0x1a, 0x3f, 0x20, 0x4f, 0x6e, 0x65, 0x20, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x20, 0x70, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, + 0x02, 0x04, 0x06, 0x12, 0x04, 0xc8, 0x04, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, + 0x04, 0x01, 0x12, 0x04, 0xc8, 0x04, 0x1c, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x04, + 0x03, 0x12, 0x04, 0xc8, 0x04, 0x31, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x04, 0x08, + 0x12, 0x04, 0xc8, 0x04, 0x33, 0x5b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, 0x02, 0x04, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xc8, 0x04, 0x34, 0x5a, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x14, 0x03, 0x00, + 0x12, 0x06, 0xca, 0x04, 0x02, 0xce, 0x04, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x03, 0x00, + 0x01, 0x12, 0x04, 0xca, 0x04, 0x0a, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, + 0x00, 0x05, 0x12, 0x04, 0xcb, 0x04, 0x04, 0x0a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x14, 0x03, 0x00, + 0x02, 0x00, 0x12, 0x04, 0xcb, 0x04, 0x04, 0x40, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xcb, 0x04, 0x0b, 0x12, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, + 0x00, 0x02, 0x00, 0x03, 0x12, 0x04, 0xcb, 0x04, 0x15, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, + 0x03, 0x00, 0x02, 0x00, 0x08, 0x12, 0x04, 0xcb, 0x04, 0x17, 0x3f, 0x0a, 0x12, 0x0a, 0x0a, 0x04, + 0x14, 0x03, 0x00, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcb, 0x04, 0x18, 0x3e, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x05, 0x12, 0x04, 0xcc, 0x04, 0x04, 0x0a, + 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x12, 0x04, 0xcc, 0x04, 0x04, 0x3d, + 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcc, 0x04, 0x0b, + 0x0f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x03, 0x12, 0x04, 0xcc, 0x04, + 0x12, 0x13, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x08, 0x12, 0x04, 0xcc, + 0x04, 0x14, 0x3c, 0x0a, 0x12, 0x0a, 0x0a, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xcc, 0x04, 0x15, 0x3b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, + 0x02, 0x04, 0x12, 0x04, 0xcd, 0x04, 0x04, 0x0c, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x14, 0x03, 0x00, + 0x02, 0x02, 0x12, 0x04, 0xcd, 0x04, 0x04, 0x4c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, + 0x02, 0x02, 0x05, 0x12, 0x04, 0xcd, 0x04, 0x0d, 0x13, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, + 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xcd, 0x04, 0x14, 0x1e, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, + 0x03, 0x00, 0x02, 0x02, 0x03, 0x12, 0x04, 0xcd, 0x04, 0x21, 0x22, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x14, 0x03, 0x00, 0x02, 0x02, 0x08, 0x12, 0x04, 0xcd, 0x04, 0x23, 0x4b, 0x0a, 0x12, 0x0a, 0x0a, + 0x04, 0x14, 0x03, 0x00, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcd, 0x04, 0x24, 0x4a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x04, 0x12, 0x04, 0xd1, 0x04, 0x02, 0x0a, 0x0a, + 0x43, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x05, 0x12, 0x04, 0xd1, 0x04, 0x02, 0x61, 0x1a, 0x35, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, + 0x20, 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x6b, + 0x65, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x06, 0x12, 0x04, 0xd1, + 0x04, 0x0b, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x01, 0x12, 0x04, 0xd1, 0x04, + 0x1b, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x03, 0x12, 0x04, 0xd1, 0x04, 0x36, + 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x08, 0x12, 0x04, 0xd1, 0x04, 0x38, 0x60, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd1, 0x04, + 0x39, 0x5f, 0x0a, 0x85, 0x01, 0x0a, 0x02, 0x04, 0x15, 0x12, 0x06, 0xd5, 0x04, 0x00, 0xd8, 0x04, + 0x01, 0x1a, 0x77, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, - 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x62, 0x6f, - 0x74, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, - 0x04, 0x08, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, - 0x00, 0x05, 0x12, 0x04, 0xc0, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, - 0x12, 0x04, 0xc0, 0x03, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, - 0x04, 0xc0, 0x03, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, 0x12, 0x04, - 0xc0, 0x03, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc0, - 0x03, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xc0, 0x03, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x05, 0x12, 0x04, - 0xc1, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x04, 0xc1, 0x03, - 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc1, 0x03, 0x09, - 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc1, 0x03, 0x16, 0x17, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x08, 0x12, 0x04, 0xc1, 0x03, 0x18, 0x40, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc1, 0x03, 0x19, - 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x09, 0x12, 0x06, 0xc3, 0x03, 0x00, 0xc5, 0x03, 0x01, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x04, 0xc3, 0x03, 0x08, 0x17, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x09, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc4, 0x03, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x09, 0x02, 0x00, 0x12, 0x04, 0xc4, 0x03, 0x02, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, - 0x00, 0x01, 0x12, 0x04, 0xc4, 0x03, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, - 0x03, 0x12, 0x04, 0xc4, 0x03, 0x0e, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x08, - 0x12, 0x04, 0xc4, 0x03, 0x10, 0x38, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xc4, 0x03, 0x11, 0x37, 0x0a, 0x96, 0x01, 0x0a, 0x02, 0x04, 0x0a, 0x12, - 0x06, 0xc8, 0x03, 0x00, 0xcb, 0x03, 0x01, 0x1a, 0x87, 0x01, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, - 0x65, 0x76, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x69, 0x64, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x62, 0x6f, 0x74, 0x68, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, - 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, - 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0a, 0x01, 0x12, 0x04, 0xc8, 0x03, 0x08, 0x1c, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x04, 0x12, 0x04, 0xc9, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, 0xc9, 0x03, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0a, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc9, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, - 0x02, 0x00, 0x01, 0x12, 0x04, 0xc9, 0x03, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, - 0x00, 0x03, 0x12, 0x04, 0xc9, 0x03, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, - 0x08, 0x12, 0x04, 0xc9, 0x03, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0a, 0x02, 0x00, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc9, 0x03, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, - 0x01, 0x04, 0x12, 0x04, 0xca, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x01, - 0x12, 0x04, 0xca, 0x03, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x05, 0x12, - 0x04, 0xca, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x01, 0x12, 0x04, - 0xca, 0x03, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xca, - 0x03, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x08, 0x12, 0x04, 0xca, 0x03, - 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0a, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xca, 0x03, 0x23, 0x49, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0b, 0x12, 0x06, 0xcc, 0x03, 0x00, 0xce, - 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0b, 0x01, 0x12, 0x04, 0xcc, 0x03, 0x08, 0x1d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x04, 0x12, 0x04, 0xcd, 0x03, 0x02, 0x0a, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x00, 0x12, 0x04, 0xcd, 0x03, 0x02, 0x43, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0b, 0x02, 0x00, 0x06, 0x12, 0x04, 0xcd, 0x03, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xcd, 0x03, 0x10, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, - 0x02, 0x00, 0x03, 0x12, 0x04, 0xcd, 0x03, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, - 0x00, 0x08, 0x12, 0x04, 0xcd, 0x03, 0x1a, 0x42, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0b, 0x02, 0x00, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcd, 0x03, 0x1b, 0x41, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0c, - 0x12, 0x06, 0xd0, 0x03, 0x00, 0xd2, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0c, 0x01, 0x12, - 0x04, 0xd0, 0x03, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x06, 0x12, 0x04, - 0xd1, 0x03, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x00, 0x12, 0x04, 0xd1, 0x03, - 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd1, 0x03, 0x14, - 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd1, 0x03, 0x1d, 0x1e, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd1, 0x03, 0x1f, 0x47, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x0c, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd1, 0x03, 0x20, - 0x46, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x06, 0xd3, 0x03, 0x00, 0xd5, 0x03, 0x01, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x0d, 0x01, 0x12, 0x04, 0xd3, 0x03, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0d, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd4, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x0d, 0x02, 0x00, 0x12, 0x04, 0xd4, 0x03, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, - 0x00, 0x01, 0x12, 0x04, 0xd4, 0x03, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, - 0x03, 0x12, 0x04, 0xd4, 0x03, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x08, - 0x12, 0x04, 0xd4, 0x03, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0d, 0x02, 0x00, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xd4, 0x03, 0x16, 0x3c, 0x0a, 0xae, 0x01, 0x0a, 0x02, 0x04, 0x0e, 0x12, - 0x06, 0xd8, 0x03, 0x00, 0xfc, 0x03, 0x01, 0x1a, 0x9f, 0x01, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x6f, - 0x72, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, - 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, - 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x2c, 0x20, 0x61, 0x20, 0x6e, - 0x65, 0x77, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0e, 0x01, - 0x12, 0x04, 0xd8, 0x03, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x04, 0x12, - 0x04, 0xd9, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x00, 0x12, 0x04, 0xd9, - 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd9, 0x03, - 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd9, 0x03, 0x12, - 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd9, 0x03, 0x1c, 0x1d, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x05, 0x12, 0x04, 0xda, 0x03, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x01, 0x12, 0x04, 0xda, 0x03, 0x02, 0x3b, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0e, 0x02, 0x01, 0x01, 0x12, 0x04, 0xda, 0x03, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0e, 0x02, 0x01, 0x03, 0x12, 0x04, 0xda, 0x03, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0e, 0x02, 0x01, 0x08, 0x12, 0x04, 0xda, 0x03, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, - 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xda, 0x03, 0x13, 0x39, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0e, 0x02, 0x02, 0x05, 0x12, 0x04, 0xdb, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x0e, 0x02, 0x02, 0x12, 0x04, 0xdb, 0x03, 0x02, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, - 0x02, 0x01, 0x12, 0x04, 0xdb, 0x03, 0x09, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, - 0x03, 0x12, 0x04, 0xdb, 0x03, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x08, - 0x12, 0x04, 0xdb, 0x03, 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x02, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xdb, 0x03, 0x1a, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x03, - 0x05, 0x12, 0x04, 0xde, 0x03, 0x02, 0x08, 0x0a, 0x3f, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x03, 0x12, - 0x06, 0xde, 0x03, 0x02, 0xe1, 0x03, 0x04, 0x1a, 0x2f, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, - 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x03, - 0x01, 0x12, 0x04, 0xde, 0x03, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x03, 0x03, - 0x12, 0x04, 0xde, 0x03, 0x14, 0x15, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x03, 0x08, 0x12, - 0x06, 0xde, 0x03, 0x16, 0xe1, 0x03, 0x03, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x03, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdf, 0x03, 0x04, 0x2a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0e, 0x02, - 0x03, 0x08, 0x03, 0x12, 0x04, 0xe0, 0x03, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, - 0x04, 0x05, 0x12, 0x04, 0xe3, 0x03, 0x02, 0x06, 0x0a, 0x36, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x04, - 0x12, 0x06, 0xe3, 0x03, 0x02, 0xe6, 0x03, 0x04, 0x1a, 0x26, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, - 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x04, 0x01, 0x12, 0x04, 0xe3, 0x03, 0x07, 0x11, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x04, 0x03, 0x12, 0x04, 0xe3, 0x03, 0x14, 0x15, 0x0a, 0x0f, - 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x04, 0x08, 0x12, 0x06, 0xe3, 0x03, 0x16, 0xe6, 0x03, 0x03, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe4, 0x03, 0x04, - 0x2a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0e, 0x02, 0x04, 0x08, 0x03, 0x12, 0x04, 0xe5, 0x03, 0x04, - 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x05, 0x04, 0x12, 0x04, 0xe7, 0x03, 0x02, 0x0a, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x05, 0x12, 0x04, 0xe7, 0x03, 0x02, 0x5a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x05, 0x06, 0x12, 0x04, 0xe7, 0x03, 0x0b, 0x21, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0e, 0x02, 0x05, 0x01, 0x12, 0x04, 0xe7, 0x03, 0x22, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0e, 0x02, 0x05, 0x03, 0x12, 0x04, 0xe7, 0x03, 0x2f, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0e, 0x02, 0x05, 0x08, 0x12, 0x04, 0xe7, 0x03, 0x31, 0x59, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, - 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe7, 0x03, 0x32, 0x58, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0e, 0x02, 0x06, 0x05, 0x12, 0x04, 0xe8, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x0e, 0x02, 0x06, 0x12, 0x04, 0xe8, 0x03, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, - 0x06, 0x01, 0x12, 0x04, 0xe8, 0x03, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x06, - 0x03, 0x12, 0x04, 0xe8, 0x03, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x07, 0x05, - 0x12, 0x04, 0xe9, 0x03, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x07, 0x12, 0x04, - 0xe9, 0x03, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x07, 0x01, 0x12, 0x04, 0xe9, - 0x03, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x07, 0x03, 0x12, 0x04, 0xe9, 0x03, - 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x08, 0x04, 0x12, 0x04, 0xeb, 0x03, 0x02, - 0x0a, 0x0a, 0x68, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x08, 0x12, 0x04, 0xeb, 0x03, 0x02, 0x21, 0x1a, - 0x5a, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x73, 0x20, - 0x61, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x2e, 0x20, 0x49, 0x74, 0x20, 0x69, 0x73, - 0x20, 0x69, 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x65, 0x74, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0e, 0x02, 0x08, 0x05, 0x12, 0x04, 0xeb, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, - 0x02, 0x08, 0x01, 0x12, 0x04, 0xeb, 0x03, 0x12, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, - 0x08, 0x03, 0x12, 0x04, 0xeb, 0x03, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x09, - 0x06, 0x12, 0x04, 0xec, 0x03, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x09, 0x12, - 0x04, 0xec, 0x03, 0x02, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x09, 0x01, 0x12, 0x04, - 0xec, 0x03, 0x19, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x09, 0x03, 0x12, 0x04, 0xec, - 0x03, 0x2f, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0a, 0x06, 0x12, 0x04, 0xed, 0x03, - 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x0a, 0x12, 0x04, 0xed, 0x03, 0x02, 0x2e, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xed, 0x03, 0x15, 0x28, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0a, 0x03, 0x12, 0x04, 0xed, 0x03, 0x2b, 0x2d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0b, 0x05, 0x12, 0x04, 0xee, 0x03, 0x02, 0x06, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x0e, 0x02, 0x0b, 0x12, 0x04, 0xee, 0x03, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0e, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xee, 0x03, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, - 0x02, 0x0b, 0x03, 0x12, 0x04, 0xee, 0x03, 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, - 0x0c, 0x04, 0x12, 0x04, 0xef, 0x03, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x0c, - 0x12, 0x04, 0xef, 0x03, 0x02, 0x61, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0c, 0x06, 0x12, - 0x04, 0xef, 0x03, 0x0b, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0c, 0x01, 0x12, 0x04, - 0xef, 0x03, 0x2a, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0c, 0x03, 0x12, 0x04, 0xef, - 0x03, 0x35, 0x37, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0c, 0x08, 0x12, 0x04, 0xef, 0x03, - 0x38, 0x60, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x0c, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xef, 0x03, 0x39, 0x5f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0d, 0x05, 0x12, 0x04, 0xf0, - 0x03, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x0d, 0x12, 0x04, 0xf0, 0x03, 0x02, - 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0d, 0x01, 0x12, 0x04, 0xf0, 0x03, 0x07, 0x12, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0d, 0x03, 0x12, 0x04, 0xf0, 0x03, 0x15, 0x17, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0d, 0x08, 0x12, 0x04, 0xf0, 0x03, 0x18, 0x40, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x0d, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf0, 0x03, 0x19, 0x3f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0e, 0x04, 0x12, 0x04, 0xfb, 0x03, 0x02, 0x0a, 0x0a, - 0xa3, 0x05, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x0e, 0x12, 0x04, 0xfb, 0x03, 0x02, 0x59, 0x1a, 0x94, - 0x05, 0x20, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x74, 0x72, 0x75, - 0x65, 0x60, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x6c, 0x69, 0x76, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, - 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x6c, 0x69, 0x76, 0x65, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2c, - 0x20, 0x68, 0x6f, 0x77, 0x65, 0x76, 0x65, 0x72, 0x2c, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, - 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x20, 0x69, - 0x73, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, - 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2c, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, - 0x65, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x0a, 0x20, 0x60, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, - 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x20, 0x60, 0x74, 0x72, 0x75, 0x65, 0x60, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x62, 0x65, 0x0a, 0x20, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x60, 0x20, 0x69, 0x66, 0x20, 0x55, 0x44, 0x46, 0x20, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x73, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x65, 0x72, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x0a, 0x20, 0x6c, 0x69, 0x76, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x29, 0x2e, 0x20, 0x52, 0x65, 0x2d, - 0x73, 0x65, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x73, 0x75, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x64, 0x20, 0x2d, 0x2d, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x0a, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2c, - 0x20, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x2d, 0x2d, - 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6c, 0x69, 0x70, 0x20, 0x69, 0x74, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x20, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0e, 0x05, 0x12, 0x04, - 0xfb, 0x03, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0e, 0x01, 0x12, 0x04, 0xfb, - 0x03, 0x10, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0e, 0x03, 0x12, 0x04, 0xfb, 0x03, - 0x2d, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x0e, 0x08, 0x12, 0x04, 0xfb, 0x03, 0x30, - 0x58, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x0e, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfb, - 0x03, 0x31, 0x57, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0f, 0x12, 0x06, 0xfe, 0x03, 0x00, 0x84, 0x04, - 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0f, 0x01, 0x12, 0x04, 0xfe, 0x03, 0x08, 0x1e, 0x0a, 0x56, - 0x0a, 0x03, 0x04, 0x0f, 0x09, 0x12, 0x04, 0x80, 0x04, 0x02, 0x0d, 0x1a, 0x49, 0x20, 0x32, 0x20, - 0x69, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x6f, 0x6c, 0x64, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6c, 0x79, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x09, 0x00, 0x12, 0x04, - 0x80, 0x04, 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x09, 0x00, 0x01, 0x12, 0x04, 0x80, - 0x04, 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x09, 0x00, 0x02, 0x12, 0x04, 0x80, 0x04, - 0x0b, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x04, 0x12, 0x04, 0x81, 0x04, 0x02, - 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x00, 0x12, 0x04, 0x81, 0x04, 0x02, 0x28, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x05, 0x12, 0x04, 0x81, 0x04, 0x0b, 0x11, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x01, 0x12, 0x04, 0x81, 0x04, 0x12, 0x23, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0f, 0x02, 0x00, 0x03, 0x12, 0x04, 0x81, 0x04, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0f, 0x02, 0x01, 0x06, 0x12, 0x04, 0x82, 0x04, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x0f, 0x02, 0x01, 0x12, 0x04, 0x82, 0x04, 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, - 0x01, 0x01, 0x12, 0x04, 0x82, 0x04, 0x1a, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, - 0x03, 0x12, 0x04, 0x82, 0x04, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x08, - 0x12, 0x04, 0x82, 0x04, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x01, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0x82, 0x04, 0x2a, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, - 0x04, 0x12, 0x04, 0x83, 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x02, 0x12, - 0x04, 0x83, 0x04, 0x02, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, 0x06, 0x12, 0x04, - 0x83, 0x04, 0x0b, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, 0x01, 0x12, 0x04, 0x83, - 0x04, 0x1f, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, 0x03, 0x12, 0x04, 0x83, 0x04, - 0x29, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x02, 0x08, 0x12, 0x04, 0x83, 0x04, 0x2b, - 0x53, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x83, - 0x04, 0x2c, 0x52, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x10, 0x12, 0x06, 0x85, 0x04, 0x00, 0x89, 0x04, - 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x10, 0x01, 0x12, 0x04, 0x85, 0x04, 0x08, 0x1b, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x04, 0x12, 0x04, 0x86, 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x10, 0x02, 0x00, 0x12, 0x04, 0x86, 0x04, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x10, 0x02, 0x00, 0x05, 0x12, 0x04, 0x86, 0x04, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, - 0x02, 0x00, 0x01, 0x12, 0x04, 0x86, 0x04, 0x12, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, - 0x00, 0x03, 0x12, 0x04, 0x86, 0x04, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, - 0x06, 0x12, 0x04, 0x87, 0x04, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x01, 0x12, - 0x04, 0x87, 0x04, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x01, 0x12, 0x04, - 0x87, 0x04, 0x0d, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x03, 0x12, 0x04, 0x87, - 0x04, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x08, 0x12, 0x04, 0x87, 0x04, - 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x10, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0x87, 0x04, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x06, 0x12, 0x04, 0x88, - 0x04, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x02, 0x12, 0x04, 0x88, 0x04, 0x02, - 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x01, 0x12, 0x04, 0x88, 0x04, 0x1a, 0x27, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x03, 0x12, 0x04, 0x88, 0x04, 0x2a, 0x2b, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x08, 0x12, 0x04, 0x88, 0x04, 0x2c, 0x54, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x10, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, 0x04, 0x2d, 0x53, - 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x06, 0x8a, 0x04, 0x00, 0x8f, 0x04, 0x01, 0x0a, 0x0b, - 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, 0x04, 0x8a, 0x04, 0x05, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8b, 0x04, 0x02, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, - 0x02, 0x00, 0x12, 0x04, 0x8b, 0x04, 0x02, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, - 0x02, 0x12, 0x04, 0x8b, 0x04, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x03, - 0x12, 0x04, 0x8b, 0x04, 0x1e, 0x31, 0x0a, 0x0e, 0x0a, 0x06, 0x05, 0x01, 0x02, 0x00, 0x03, 0x01, - 0x12, 0x04, 0x8b, 0x04, 0x1f, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x01, 0x12, - 0x04, 0x8c, 0x04, 0x02, 0x0e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x01, 0x12, 0x04, 0x8c, - 0x04, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x02, 0x12, 0x04, 0x8c, 0x04, - 0x11, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x01, 0x12, 0x04, 0x8d, 0x04, 0x02, - 0x0c, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x02, 0x12, 0x04, 0x8d, 0x04, 0x02, 0x11, 0x0a, - 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x02, 0x12, 0x04, 0x8d, 0x04, 0x0f, 0x10, 0x0a, 0x0d, - 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0x8e, 0x04, 0x02, 0x09, 0x0a, 0x0c, 0x0a, - 0x04, 0x05, 0x01, 0x02, 0x03, 0x12, 0x04, 0x8e, 0x04, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x01, 0x02, 0x03, 0x02, 0x12, 0x04, 0x8e, 0x04, 0x0c, 0x0d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x11, - 0x12, 0x06, 0x90, 0x04, 0x00, 0x92, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x11, 0x01, 0x12, - 0x04, 0x90, 0x04, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x05, 0x12, 0x04, - 0x91, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x00, 0x12, 0x04, 0x91, 0x04, - 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x01, 0x12, 0x04, 0x91, 0x04, 0x09, - 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x03, 0x12, 0x04, 0x91, 0x04, 0x13, 0x14, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x08, 0x12, 0x04, 0x91, 0x04, 0x15, 0x3d, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x11, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x91, 0x04, 0x16, - 0x3c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x12, 0x12, 0x06, 0x94, 0x04, 0x00, 0xa1, 0x04, 0x01, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x12, 0x01, 0x12, 0x04, 0x94, 0x04, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x12, 0x02, 0x00, 0x05, 0x12, 0x04, 0x95, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x12, 0x02, 0x00, 0x12, 0x04, 0x95, 0x04, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, - 0x00, 0x01, 0x12, 0x04, 0x95, 0x04, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, - 0x03, 0x12, 0x04, 0x95, 0x04, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x08, - 0x12, 0x04, 0x95, 0x04, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, 0x00, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0x95, 0x04, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, - 0x05, 0x12, 0x04, 0x96, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x01, 0x12, - 0x04, 0x96, 0x04, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x01, 0x12, 0x04, - 0x96, 0x04, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x03, 0x12, 0x04, 0x96, - 0x04, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x08, 0x12, 0x04, 0x96, 0x04, - 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0x96, 0x04, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x02, 0x04, 0x12, 0x04, 0x9a, - 0x04, 0x02, 0x0a, 0x0a, 0xc7, 0x01, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x02, 0x12, 0x04, 0x9a, 0x04, - 0x02, 0x7c, 0x1a, 0xb8, 0x01, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2c, - 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x0a, 0x20, 0x73, - 0x61, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6c, 0x61, 0x67, - 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x12, 0x02, 0x02, 0x06, 0x12, 0x04, 0x9a, 0x04, 0x0b, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x12, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9a, 0x04, 0x2b, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x12, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9a, 0x04, 0x51, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, - 0x02, 0x02, 0x08, 0x12, 0x04, 0x9a, 0x04, 0x53, 0x7b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, - 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9a, 0x04, 0x54, 0x7a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x12, 0x02, 0x03, 0x04, 0x12, 0x04, 0x9e, 0x04, 0x02, 0x0a, 0x0a, 0xb4, 0x01, 0x0a, 0x04, 0x04, - 0x12, 0x02, 0x03, 0x12, 0x04, 0x9e, 0x04, 0x02, 0x45, 0x1a, 0xa5, 0x01, 0x20, 0x49, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, - 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, 0x05, 0x12, 0x04, 0x9e, 0x04, 0x0b, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, 0x01, 0x12, 0x04, 0x9e, 0x04, 0x12, 0x17, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, 0x03, 0x12, 0x04, 0x9e, 0x04, 0x1a, 0x1b, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x12, 0x02, 0x03, 0x08, 0x12, 0x04, 0x9e, 0x04, 0x1c, 0x44, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x12, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9e, 0x04, 0x1d, 0x43, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x04, 0x05, 0x12, 0x04, 0xa0, 0x04, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x12, 0x02, 0x04, 0x12, 0x04, 0xa0, 0x04, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x12, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa0, 0x04, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x12, 0x02, 0x04, 0x03, 0x12, 0x04, 0xa0, 0x04, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, - 0x02, 0x04, 0x08, 0x12, 0x04, 0xa0, 0x04, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x12, 0x02, - 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa0, 0x04, 0x18, 0x3e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, - 0x13, 0x12, 0x06, 0xa3, 0x04, 0x00, 0xba, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x13, 0x01, - 0x12, 0x04, 0xa3, 0x04, 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x04, 0x12, - 0x04, 0xa5, 0x04, 0x02, 0x0a, 0x0a, 0x36, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x00, 0x12, 0x04, 0xa5, - 0x04, 0x02, 0x50, 0x1a, 0x28, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x61, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x13, 0x02, 0x00, 0x06, 0x12, 0x04, 0xa5, 0x04, 0x0b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x13, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa5, 0x04, 0x1d, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x13, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa5, 0x04, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, - 0x02, 0x00, 0x08, 0x12, 0x04, 0xa5, 0x04, 0x27, 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x13, 0x02, - 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa5, 0x04, 0x28, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x13, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa8, 0x04, 0x02, 0x06, 0x0a, 0x6c, 0x0a, 0x04, 0x04, 0x13, - 0x02, 0x01, 0x12, 0x04, 0xa8, 0x04, 0x02, 0x42, 0x1a, 0x5e, 0x20, 0x49, 0x66, 0x20, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x73, 0x20, 0x74, - 0x72, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, - 0x01, 0x12, 0x04, 0xa8, 0x04, 0x07, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x03, - 0x12, 0x04, 0xa8, 0x04, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x01, 0x08, 0x12, - 0x04, 0xa8, 0x04, 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x13, 0x02, 0x01, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xa8, 0x04, 0x1a, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x05, - 0x12, 0x04, 0xb9, 0x04, 0x02, 0x06, 0x0a, 0xd7, 0x08, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x02, 0x12, - 0x04, 0xb9, 0x04, 0x02, 0x3e, 0x1a, 0xc8, 0x08, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x72, - 0x61, 0x67, 0x65, 0x64, 0x20, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x68, 0x61, 0x74, 0x63, - 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x20, 0x77, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x66, 0x75, - 0x6c, 0x6c, 0x79, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2d, 0x73, 0x69, 0x64, 0x65, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, - 0x20, 0x60, 0x74, 0x72, 0x75, 0x65, 0x60, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x50, 0x65, - 0x72, 0x2d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x2d, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x72, 0x65, 0x20, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x60, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x60, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x62, - 0x75, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x76, 0x65, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x49, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x27, 0x73, 0x20, 0x55, 0x44, 0x46, - 0x2f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x20, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x20, 0x28, 0x74, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x63, - 0x61, 0x75, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x6e, 0x27, 0x74, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x69, - 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x20, 0x79, 0x65, 0x74, 0x2c, 0x20, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x6f, 0x20, 0x6d, 0x61, - 0x6e, 0x79, 0x20, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2d, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x20, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x29, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x65, - 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x69, 0x74, 0x73, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x60, 0x20, 0x69, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x60, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x60, 0x2e, 0x20, 0x4c, 0x69, 0x76, 0x65, 0x20, 0x61, 0x6c, - 0x65, 0x72, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x6b, 0x69, 0x70, 0x20, 0x69, - 0x74, 0x3b, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x6e, - 0x2d, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x20, 0x73, 0x74, - 0x69, 0x6c, 0x6c, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x72, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, - 0x75, 0x6e, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x0a, 0x20, 0x54, 0x6f, 0x20, 0x62, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x20, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x66, 0x69, 0x78, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x70, - 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x20, 0x28, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x73, 0x69, 0x6d, - 0x70, 0x6c, 0x69, 0x66, 0x79, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x29, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x72, 0x65, 0x69, 0x73, 0x73, 0x75, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x2e, 0x0a, 0x0a, 0x20, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x60, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x60, 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, - 0x65, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x2a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, - 0x2a, 0x0a, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x3b, 0x20, 0x65, - 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x53, 0x44, 0x4b, 0x20, 0x63, 0x61, 0x6c, 0x6c, - 0x20, 0x73, 0x69, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x72, 0x65, 0x6c, 0x79, - 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb9, 0x04, 0x07, 0x25, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb9, 0x04, 0x28, 0x29, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x08, 0x12, 0x04, 0xb9, 0x04, 0x2a, 0x3d, 0x0a, 0x0e, 0x0a, - 0x06, 0x04, 0x13, 0x02, 0x02, 0x08, 0x03, 0x12, 0x04, 0xb9, 0x04, 0x2b, 0x3c, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x14, 0x12, 0x06, 0xbb, 0x04, 0x00, 0xd2, 0x04, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x14, 0x01, 0x12, 0x04, 0xbb, 0x04, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, - 0x05, 0x12, 0x04, 0xbc, 0x04, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x00, 0x12, - 0x04, 0xbc, 0x04, 0x02, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x01, 0x12, 0x04, - 0xbc, 0x04, 0x07, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x03, 0x12, 0x04, 0xbc, - 0x04, 0x11, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x08, 0x12, 0x04, 0xbc, 0x04, - 0x13, 0x3b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xbc, 0x04, 0x14, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x05, 0x12, 0x04, 0xbf, - 0x04, 0x02, 0x07, 0x0a, 0x97, 0x01, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x01, 0x12, 0x04, 0xbf, 0x04, - 0x02, 0x49, 0x1a, 0x88, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, 0x75, 0x65, - 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x69, 0x6e, 0x64, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x73, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, - 0x65, 0x65, 0x6e, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x14, 0x02, 0x01, 0x01, 0x12, 0x04, 0xbf, 0x04, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x14, 0x02, 0x01, 0x03, 0x12, 0x04, 0xbf, 0x04, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x14, 0x02, 0x01, 0x08, 0x12, 0x04, 0xbf, 0x04, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, - 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbf, 0x04, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x14, 0x02, 0x02, 0x05, 0x12, 0x04, 0xc2, 0x04, 0x02, 0x07, 0x0a, 0x97, 0x01, 0x0a, 0x04, - 0x04, 0x14, 0x02, 0x02, 0x12, 0x04, 0xc2, 0x04, 0x02, 0x49, 0x1a, 0x88, 0x01, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x20, - 0x49, 0x66, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x68, 0x6f, 0x77, - 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x6f, 0x75, 0x6c, - 0x64, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, 0x01, 0x12, 0x04, - 0xc2, 0x04, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, 0x03, 0x12, 0x04, 0xc2, - 0x04, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, 0x08, 0x12, 0x04, 0xc2, 0x04, - 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xc2, 0x04, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x05, 0x12, 0x04, 0xc5, - 0x04, 0x02, 0x06, 0x0a, 0x67, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x03, 0x12, 0x04, 0xc5, 0x04, 0x02, - 0x42, 0x1a, 0x59, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x74, 0x72, 0x75, 0x65, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x64, 0x69, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x61, 0x76, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x14, 0x02, 0x03, 0x01, 0x12, 0x04, 0xc5, 0x04, 0x07, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x14, 0x02, 0x03, 0x03, 0x12, 0x04, 0xc5, 0x04, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, - 0x02, 0x03, 0x08, 0x12, 0x04, 0xc5, 0x04, 0x19, 0x41, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, 0x02, - 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc5, 0x04, 0x1a, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x14, 0x02, 0x04, 0x04, 0x12, 0x04, 0xc8, 0x04, 0x02, 0x0a, 0x0a, 0x4d, 0x0a, 0x04, 0x04, 0x14, - 0x02, 0x04, 0x12, 0x04, 0xc8, 0x04, 0x02, 0x5c, 0x1a, 0x3f, 0x20, 0x4f, 0x6e, 0x65, 0x20, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, - 0x04, 0x06, 0x12, 0x04, 0xc8, 0x04, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x04, - 0x01, 0x12, 0x04, 0xc8, 0x04, 0x1c, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x04, 0x03, - 0x12, 0x04, 0xc8, 0x04, 0x31, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x04, 0x08, 0x12, - 0x04, 0xc8, 0x04, 0x33, 0x5b, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x14, 0x02, 0x04, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xc8, 0x04, 0x34, 0x5a, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x14, 0x03, 0x00, 0x12, - 0x06, 0xca, 0x04, 0x02, 0xce, 0x04, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x03, 0x00, 0x01, - 0x12, 0x04, 0xca, 0x04, 0x0a, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, 0x00, - 0x05, 0x12, 0x04, 0xcb, 0x04, 0x04, 0x0a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x14, 0x03, 0x00, 0x02, - 0x00, 0x12, 0x04, 0xcb, 0x04, 0x04, 0x40, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, - 0x00, 0x01, 0x12, 0x04, 0xcb, 0x04, 0x0b, 0x12, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, - 0x02, 0x00, 0x03, 0x12, 0x04, 0xcb, 0x04, 0x15, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, - 0x00, 0x02, 0x00, 0x08, 0x12, 0x04, 0xcb, 0x04, 0x17, 0x3f, 0x0a, 0x12, 0x0a, 0x0a, 0x04, 0x14, - 0x03, 0x00, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcb, 0x04, 0x18, 0x3e, 0x0a, 0x0f, - 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x05, 0x12, 0x04, 0xcc, 0x04, 0x04, 0x0a, 0x0a, - 0x0e, 0x0a, 0x06, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x12, 0x04, 0xcc, 0x04, 0x04, 0x3d, 0x0a, - 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcc, 0x04, 0x0b, 0x0f, - 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x03, 0x12, 0x04, 0xcc, 0x04, 0x12, - 0x13, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x08, 0x12, 0x04, 0xcc, 0x04, - 0x14, 0x3c, 0x0a, 0x12, 0x0a, 0x0a, 0x04, 0x14, 0x03, 0x00, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0xcc, 0x04, 0x15, 0x3b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, 0x02, - 0x04, 0x12, 0x04, 0xcd, 0x04, 0x04, 0x0c, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x14, 0x03, 0x00, 0x02, - 0x02, 0x12, 0x04, 0xcd, 0x04, 0x04, 0x4c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, 0x02, - 0x02, 0x05, 0x12, 0x04, 0xcd, 0x04, 0x0d, 0x13, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, 0x00, - 0x02, 0x02, 0x01, 0x12, 0x04, 0xcd, 0x04, 0x14, 0x1e, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, 0x03, - 0x00, 0x02, 0x02, 0x03, 0x12, 0x04, 0xcd, 0x04, 0x21, 0x22, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x14, - 0x03, 0x00, 0x02, 0x02, 0x08, 0x12, 0x04, 0xcd, 0x04, 0x23, 0x4b, 0x0a, 0x12, 0x0a, 0x0a, 0x04, - 0x14, 0x03, 0x00, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcd, 0x04, 0x24, 0x4a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x04, 0x12, 0x04, 0xd1, 0x04, 0x02, 0x0a, 0x0a, 0x43, - 0x0a, 0x04, 0x04, 0x14, 0x02, 0x05, 0x12, 0x04, 0xd1, 0x04, 0x02, 0x61, 0x1a, 0x35, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, - 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x6b, 0x65, - 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x06, 0x12, 0x04, 0xd1, 0x04, - 0x0b, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x01, 0x12, 0x04, 0xd1, 0x04, 0x1b, - 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x03, 0x12, 0x04, 0xd1, 0x04, 0x36, 0x37, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x05, 0x08, 0x12, 0x04, 0xd1, 0x04, 0x38, 0x60, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x14, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd1, 0x04, 0x39, - 0x5f, 0x0a, 0x85, 0x01, 0x0a, 0x02, 0x04, 0x15, 0x12, 0x06, 0xd5, 0x04, 0x00, 0xd8, 0x04, 0x01, - 0x1a, 0x77, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, 0x79, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x15, 0x01, - 0x12, 0x04, 0xd5, 0x04, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x05, 0x12, - 0x04, 0xd6, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x00, 0x12, 0x04, 0xd6, - 0x04, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd6, 0x04, - 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd6, 0x04, 0x13, - 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd6, 0x04, 0x15, 0x3d, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x15, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd6, 0x04, - 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd7, 0x04, 0x02, - 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x01, 0x12, 0x04, 0xd7, 0x04, 0x02, 0x41, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd7, 0x04, 0x09, 0x13, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd7, 0x04, 0x16, 0x17, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x15, 0x02, 0x01, 0x08, 0x12, 0x04, 0xd7, 0x04, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x15, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd7, 0x04, 0x19, 0x3f, 0x0a, 0x0a, - 0x0a, 0x02, 0x04, 0x16, 0x12, 0x04, 0xd9, 0x04, 0x00, 0x1d, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x16, - 0x01, 0x12, 0x04, 0xd9, 0x04, 0x08, 0x1a, 0x0a, 0x9a, 0x01, 0x0a, 0x02, 0x04, 0x17, 0x12, 0x06, - 0xdc, 0x04, 0x00, 0xdf, 0x04, 0x01, 0x1a, 0x8b, 0x01, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x20, 0x69, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x17, 0x01, 0x12, 0x04, 0xdc, 0x04, 0x08, - 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x04, 0x12, 0x04, 0xdd, 0x04, 0x02, 0x0a, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x00, 0x12, 0x04, 0xdd, 0x04, 0x02, 0x48, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x05, 0x12, 0x04, 0xdd, 0x04, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x17, 0x02, 0x00, 0x01, 0x12, 0x04, 0xdd, 0x04, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x17, 0x02, 0x00, 0x03, 0x12, 0x04, 0xdd, 0x04, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x17, 0x02, 0x00, 0x08, 0x12, 0x04, 0xdd, 0x04, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x17, - 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdd, 0x04, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x17, 0x02, 0x01, 0x04, 0x12, 0x04, 0xde, 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x17, 0x02, 0x01, 0x12, 0x04, 0xde, 0x04, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, - 0x01, 0x05, 0x12, 0x04, 0xde, 0x04, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, - 0x01, 0x12, 0x04, 0xde, 0x04, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x03, - 0x12, 0x04, 0xde, 0x04, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x08, 0x12, - 0x04, 0xde, 0x04, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x17, 0x02, 0x01, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xde, 0x04, 0x23, 0x49, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x18, 0x12, 0x04, 0xe0, - 0x04, 0x00, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x18, 0x01, 0x12, 0x04, 0xe0, 0x04, 0x08, 0x20, - 0x0a, 0x87, 0x01, 0x0a, 0x02, 0x04, 0x19, 0x12, 0x06, 0xe3, 0x04, 0x00, 0xe6, 0x04, 0x01, 0x1a, - 0x79, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, + 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x19, - 0x01, 0x12, 0x04, 0xe3, 0x04, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x05, - 0x12, 0x04, 0xe4, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x00, 0x12, 0x04, - 0xe4, 0x04, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe4, - 0x04, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe4, 0x04, - 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x08, 0x12, 0x04, 0xe4, 0x04, 0x15, - 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x19, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe4, - 0x04, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x05, 0x12, 0x04, 0xe5, 0x04, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x01, 0x12, 0x04, 0xe5, 0x04, 0x02, 0x41, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe5, 0x04, 0x09, 0x13, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe5, 0x04, 0x16, 0x17, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x08, 0x12, 0x04, 0xe5, 0x04, 0x18, 0x40, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x19, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe5, 0x04, 0x19, 0x3f, 0x0a, - 0x0a, 0x0a, 0x02, 0x04, 0x1a, 0x12, 0x04, 0xe7, 0x04, 0x00, 0x1e, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x1a, 0x01, 0x12, 0x04, 0xe7, 0x04, 0x08, 0x1b, 0x0a, 0x9c, 0x01, 0x0a, 0x02, 0x04, 0x1b, 0x12, - 0x06, 0xea, 0x04, 0x00, 0xed, 0x04, 0x01, 0x1a, 0x8d, 0x01, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, 0x79, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1b, 0x01, 0x12, 0x04, - 0xea, 0x04, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x04, 0x12, 0x04, 0xeb, - 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x00, 0x12, 0x04, 0xeb, 0x04, 0x02, - 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x05, 0x12, 0x04, 0xeb, 0x04, 0x0b, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xeb, 0x04, 0x12, 0x1a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xeb, 0x04, 0x1d, 0x1e, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x08, 0x12, 0x04, 0xeb, 0x04, 0x1f, 0x47, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x1b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xeb, 0x04, 0x20, 0x46, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x04, 0x12, 0x04, 0xec, 0x04, 0x02, 0x0a, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x01, 0x12, 0x04, 0xec, 0x04, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xec, 0x04, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x1b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xec, 0x04, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, - 0x02, 0x01, 0x03, 0x12, 0x04, 0xec, 0x04, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, - 0x01, 0x08, 0x12, 0x04, 0xec, 0x04, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x01, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xec, 0x04, 0x23, 0x49, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x1c, - 0x12, 0x04, 0xee, 0x04, 0x00, 0x24, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1c, 0x01, 0x12, 0x04, 0xee, - 0x04, 0x08, 0x21, 0x0a, 0x89, 0x01, 0x0a, 0x02, 0x04, 0x1d, 0x12, 0x06, 0xf1, 0x04, 0x00, 0xf4, - 0x04, 0x01, 0x1a, 0x7b, 0x20, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x15, + 0x01, 0x12, 0x04, 0xd5, 0x04, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x05, + 0x12, 0x04, 0xd6, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x00, 0x12, 0x04, + 0xd6, 0x04, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd6, + 0x04, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd6, 0x04, + 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd6, 0x04, 0x15, + 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x15, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd6, + 0x04, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd7, 0x04, + 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x01, 0x12, 0x04, 0xd7, 0x04, 0x02, 0x41, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd7, 0x04, 0x09, 0x13, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd7, 0x04, 0x16, 0x17, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x08, 0x12, 0x04, 0xd7, 0x04, 0x18, 0x40, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x15, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd7, 0x04, 0x19, 0x3f, 0x0a, + 0x0a, 0x0a, 0x02, 0x04, 0x16, 0x12, 0x04, 0xd9, 0x04, 0x00, 0x1d, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x16, 0x01, 0x12, 0x04, 0xd9, 0x04, 0x08, 0x1a, 0x0a, 0x9a, 0x01, 0x0a, 0x02, 0x04, 0x17, 0x12, + 0x06, 0xdc, 0x04, 0x00, 0xdf, 0x04, 0x01, 0x1a, 0x8b, 0x01, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, 0x79, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x20, 0x69, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, + 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x17, 0x01, 0x12, 0x04, 0xdc, 0x04, + 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x04, 0x12, 0x04, 0xdd, 0x04, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x00, 0x12, 0x04, 0xdd, 0x04, 0x02, 0x48, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x05, 0x12, 0x04, 0xdd, 0x04, 0x0b, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x01, 0x12, 0x04, 0xdd, 0x04, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x17, 0x02, 0x00, 0x03, 0x12, 0x04, 0xdd, 0x04, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x17, 0x02, 0x00, 0x08, 0x12, 0x04, 0xdd, 0x04, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x17, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdd, 0x04, 0x20, 0x46, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x17, 0x02, 0x01, 0x04, 0x12, 0x04, 0xde, 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x17, 0x02, 0x01, 0x12, 0x04, 0xde, 0x04, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, + 0x02, 0x01, 0x05, 0x12, 0x04, 0xde, 0x04, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, + 0x01, 0x01, 0x12, 0x04, 0xde, 0x04, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, + 0x03, 0x12, 0x04, 0xde, 0x04, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x08, + 0x12, 0x04, 0xde, 0x04, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x17, 0x02, 0x01, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xde, 0x04, 0x23, 0x49, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x18, 0x12, 0x04, + 0xe0, 0x04, 0x00, 0x23, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x18, 0x01, 0x12, 0x04, 0xe0, 0x04, 0x08, + 0x20, 0x0a, 0x87, 0x01, 0x0a, 0x02, 0x04, 0x19, 0x12, 0x06, 0xe3, 0x04, 0x00, 0xe6, 0x04, 0x01, + 0x1a, 0x79, 0x20, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, + 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, + 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x19, 0x01, 0x12, 0x04, 0xe3, 0x04, 0x08, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, + 0x05, 0x12, 0x04, 0xe4, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x00, 0x12, + 0x04, 0xe4, 0x04, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xe4, 0x04, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe4, + 0x04, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x08, 0x12, 0x04, 0xe4, 0x04, + 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x19, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xe4, 0x04, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x05, 0x12, 0x04, 0xe5, + 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x01, 0x12, 0x04, 0xe5, 0x04, 0x02, + 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe5, 0x04, 0x09, 0x13, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe5, 0x04, 0x16, 0x17, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x08, 0x12, 0x04, 0xe5, 0x04, 0x18, 0x40, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x19, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe5, 0x04, 0x19, 0x3f, + 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x1a, 0x12, 0x04, 0xe7, 0x04, 0x00, 0x1e, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x1a, 0x01, 0x12, 0x04, 0xe7, 0x04, 0x08, 0x1b, 0x0a, 0x9c, 0x01, 0x0a, 0x02, 0x04, 0x1b, + 0x12, 0x06, 0xea, 0x04, 0x00, 0xed, 0x04, 0x01, 0x1a, 0x8d, 0x01, 0x20, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, + 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1b, 0x01, 0x12, + 0x04, 0xea, 0x04, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x04, 0x12, 0x04, + 0xeb, 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x00, 0x12, 0x04, 0xeb, 0x04, + 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x05, 0x12, 0x04, 0xeb, 0x04, 0x0b, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xeb, 0x04, 0x12, 0x1a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xeb, 0x04, 0x1d, 0x1e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x00, 0x08, 0x12, 0x04, 0xeb, 0x04, 0x1f, 0x47, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x1b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xeb, 0x04, 0x20, 0x46, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x04, 0x12, 0x04, 0xec, 0x04, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x01, 0x12, 0x04, 0xec, 0x04, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xec, 0x04, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xec, 0x04, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xec, 0x04, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x01, 0x08, 0x12, 0x04, 0xec, 0x04, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1b, 0x02, + 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xec, 0x04, 0x23, 0x49, 0x0a, 0x0a, 0x0a, 0x02, 0x04, + 0x1c, 0x12, 0x04, 0xee, 0x04, 0x00, 0x24, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1c, 0x01, 0x12, 0x04, + 0xee, 0x04, 0x08, 0x21, 0x0a, 0x89, 0x01, 0x0a, 0x02, 0x04, 0x1d, 0x12, 0x06, 0xf1, 0x04, 0x00, + 0xf4, 0x04, 0x01, 0x1a, 0x7b, 0x20, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, + 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1d, 0x01, 0x12, 0x04, 0xf1, 0x04, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1d, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf2, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x1d, 0x02, 0x00, 0x12, 0x04, 0xf2, 0x04, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xf2, 0x04, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xf2, 0x04, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xf2, 0x04, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1d, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf2, 0x04, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, + 0x01, 0x05, 0x12, 0x04, 0xf3, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x01, + 0x12, 0x04, 0xf3, 0x04, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xf3, 0x04, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x03, 0x12, 0x04, + 0xf3, 0x04, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x08, 0x12, 0x04, 0xf3, + 0x04, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1d, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xf3, 0x04, 0x19, 0x3f, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x1e, 0x12, 0x04, 0xf5, 0x04, 0x00, + 0x1f, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1e, 0x01, 0x12, 0x04, 0xf5, 0x04, 0x08, 0x1c, 0x0a, 0x9c, + 0x01, 0x0a, 0x02, 0x04, 0x1f, 0x12, 0x06, 0xf8, 0x04, 0x00, 0xfb, 0x04, 0x01, 0x1a, 0x8d, 0x01, + 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, - 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x49, 0x66, - 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x1d, 0x01, 0x12, 0x04, 0xf1, 0x04, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x1d, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf2, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x1d, 0x02, 0x00, 0x12, 0x04, 0xf2, 0x04, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, - 0x00, 0x01, 0x12, 0x04, 0xf2, 0x04, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, - 0x03, 0x12, 0x04, 0xf2, 0x04, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x08, - 0x12, 0x04, 0xf2, 0x04, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1d, 0x02, 0x00, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xf2, 0x04, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, - 0x05, 0x12, 0x04, 0xf3, 0x04, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x01, 0x12, - 0x04, 0xf3, 0x04, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x01, 0x12, 0x04, - 0xf3, 0x04, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf3, - 0x04, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x01, 0x08, 0x12, 0x04, 0xf3, 0x04, - 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1d, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xf3, 0x04, 0x19, 0x3f, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x1e, 0x12, 0x04, 0xf5, 0x04, 0x00, 0x1f, - 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1e, 0x01, 0x12, 0x04, 0xf5, 0x04, 0x08, 0x1c, 0x0a, 0x9c, 0x01, - 0x0a, 0x02, 0x04, 0x1f, 0x12, 0x06, 0xf8, 0x04, 0x00, 0xfb, 0x04, 0x01, 0x1a, 0x8d, 0x01, 0x20, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, - 0x64, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, - 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x46, 0x6f, 0x72, - 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x66, 0x20, 0x62, 0x6f, - 0x74, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, - 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, - 0x04, 0x1f, 0x01, 0x12, 0x04, 0xf8, 0x04, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, - 0x00, 0x04, 0x12, 0x04, 0xf9, 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x00, - 0x12, 0x04, 0xf9, 0x04, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x05, 0x12, - 0x04, 0xf9, 0x04, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x01, 0x12, 0x04, - 0xf9, 0x04, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf9, - 0x04, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x08, 0x12, 0x04, 0xf9, 0x04, - 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1f, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xf9, 0x04, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x04, 0x12, 0x04, 0xfa, - 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x01, 0x12, 0x04, 0xfa, 0x04, 0x02, - 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x05, 0x12, 0x04, 0xfa, 0x04, 0x0b, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xfa, 0x04, 0x12, 0x1d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xfa, 0x04, 0x20, 0x21, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x08, 0x12, 0x04, 0xfa, 0x04, 0x22, 0x4a, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x1f, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfa, 0x04, 0x23, 0x49, 0x0a, - 0x0a, 0x0a, 0x02, 0x04, 0x20, 0x12, 0x04, 0xfc, 0x04, 0x00, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x20, 0x01, 0x12, 0x04, 0xfc, 0x04, 0x08, 0x22, 0x0a, 0x8b, 0x01, 0x0a, 0x02, 0x04, 0x21, 0x12, - 0x06, 0xff, 0x04, 0x00, 0x82, 0x05, 0x01, 0x1a, 0x7d, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, 0x79, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x21, 0x01, 0x12, 0x04, 0xff, - 0x04, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x05, 0x12, 0x04, 0x80, 0x05, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x21, 0x02, 0x00, 0x12, 0x04, 0x80, 0x05, 0x02, 0x3e, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x01, 0x12, 0x04, 0x80, 0x05, 0x09, 0x10, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x03, 0x12, 0x04, 0x80, 0x05, 0x13, 0x14, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x08, 0x12, 0x04, 0x80, 0x05, 0x15, 0x3d, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x21, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x80, 0x05, 0x16, 0x3c, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x01, 0x05, 0x12, 0x04, 0x81, 0x05, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x21, 0x02, 0x01, 0x12, 0x04, 0x81, 0x05, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x21, 0x02, 0x01, 0x01, 0x12, 0x04, 0x81, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x21, 0x02, 0x01, 0x03, 0x12, 0x04, 0x81, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, - 0x02, 0x01, 0x08, 0x12, 0x04, 0x81, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x21, 0x02, - 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x81, 0x05, 0x19, 0x3f, 0x0a, 0x0a, 0x0a, 0x02, 0x04, - 0x22, 0x12, 0x04, 0x83, 0x05, 0x00, 0x20, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x22, 0x01, 0x12, 0x04, - 0x83, 0x05, 0x08, 0x1d, 0x0a, 0xa0, 0x01, 0x0a, 0x02, 0x04, 0x23, 0x12, 0x06, 0x86, 0x05, 0x00, - 0x89, 0x05, 0x01, 0x1a, 0x91, 0x01, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, 0x79, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, + 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x46, 0x6f, + 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x66, 0x20, 0x62, + 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, + 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, + 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x1f, 0x01, 0x12, 0x04, 0xf8, 0x04, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, + 0x02, 0x00, 0x04, 0x12, 0x04, 0xf9, 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, + 0x00, 0x12, 0x04, 0xf9, 0x04, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x05, + 0x12, 0x04, 0xf9, 0x04, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xf9, 0x04, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xf9, 0x04, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x08, 0x12, 0x04, 0xf9, + 0x04, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x1f, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xf9, 0x04, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x04, 0x12, 0x04, + 0xfa, 0x04, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x01, 0x12, 0x04, 0xfa, 0x04, + 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x05, 0x12, 0x04, 0xfa, 0x04, 0x0b, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xfa, 0x04, 0x12, 0x1d, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xfa, 0x04, 0x20, 0x21, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x08, 0x12, 0x04, 0xfa, 0x04, 0x22, 0x4a, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x1f, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfa, 0x04, 0x23, 0x49, + 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x20, 0x12, 0x04, 0xfc, 0x04, 0x00, 0x25, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x20, 0x01, 0x12, 0x04, 0xfc, 0x04, 0x08, 0x22, 0x0a, 0x8b, 0x01, 0x0a, 0x02, 0x04, 0x21, + 0x12, 0x06, 0xff, 0x04, 0x00, 0x82, 0x05, 0x01, 0x1a, 0x7d, 0x20, 0x55, 0x6e, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, 0x79, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x23, 0x01, 0x12, 0x04, - 0x86, 0x05, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x04, 0x12, 0x04, 0x87, - 0x05, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x23, 0x02, 0x00, 0x12, 0x04, 0x87, 0x05, 0x02, - 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x05, 0x12, 0x04, 0x87, 0x05, 0x0b, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x01, 0x12, 0x04, 0x87, 0x05, 0x12, 0x1a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x03, 0x12, 0x04, 0x87, 0x05, 0x1d, 0x1e, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x08, 0x12, 0x04, 0x87, 0x05, 0x1f, 0x47, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x23, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x87, 0x05, 0x20, 0x46, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x01, 0x04, 0x12, 0x04, 0x88, 0x05, 0x02, 0x0a, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x23, 0x02, 0x01, 0x12, 0x04, 0x88, 0x05, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x23, 0x02, 0x01, 0x05, 0x12, 0x04, 0x88, 0x05, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x23, 0x02, 0x01, 0x01, 0x12, 0x04, 0x88, 0x05, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, - 0x02, 0x01, 0x03, 0x12, 0x04, 0x88, 0x05, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, - 0x01, 0x08, 0x12, 0x04, 0x88, 0x05, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x23, 0x02, 0x01, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, 0x05, 0x23, 0x49, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x24, - 0x12, 0x04, 0x8a, 0x05, 0x00, 0x26, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x24, 0x01, 0x12, 0x04, 0x8a, - 0x05, 0x08, 0x23, 0x0a, 0x36, 0x0a, 0x02, 0x04, 0x25, 0x12, 0x06, 0x8d, 0x05, 0x00, 0x90, 0x05, - 0x01, 0x1a, 0x28, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x25, 0x01, 0x12, 0x04, 0x8d, 0x05, 0x08, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x25, 0x07, 0x12, - 0x04, 0x8e, 0x05, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x25, 0x07, 0x03, 0x12, 0x04, 0x8e, - 0x05, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x05, 0x12, 0x04, 0x8f, 0x05, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x25, 0x02, 0x00, 0x12, 0x04, 0x8f, 0x05, 0x02, 0x3f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8f, 0x05, 0x09, 0x11, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x03, 0x12, 0x04, 0x8f, 0x05, 0x14, 0x15, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x08, 0x12, 0x04, 0x8f, 0x05, 0x16, 0x3e, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x25, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8f, 0x05, 0x17, 0x3d, 0x0a, - 0x37, 0x0a, 0x02, 0x04, 0x26, 0x12, 0x06, 0x93, 0x05, 0x00, 0x96, 0x05, 0x01, 0x1a, 0x29, 0x20, - 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x26, 0x01, 0x12, - 0x04, 0x93, 0x05, 0x08, 0x26, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x26, 0x07, 0x12, 0x04, 0x94, 0x05, - 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x26, 0x07, 0x03, 0x12, 0x04, 0x94, 0x05, 0x02, 0x1b, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x00, 0x05, 0x12, 0x04, 0x95, 0x05, 0x02, 0x08, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x26, 0x02, 0x00, 0x12, 0x04, 0x95, 0x05, 0x02, 0x41, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x26, 0x02, 0x00, 0x01, 0x12, 0x04, 0x95, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x26, 0x02, 0x00, 0x03, 0x12, 0x04, 0x95, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x26, 0x02, 0x00, 0x08, 0x12, 0x04, 0x95, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x26, - 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x95, 0x05, 0x19, 0x3f, 0x0a, 0x38, 0x0a, 0x02, - 0x04, 0x27, 0x12, 0x06, 0x99, 0x05, 0x00, 0x9e, 0x05, 0x01, 0x1a, 0x2a, 0x20, 0x44, 0x65, 0x70, - 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x27, 0x01, 0x12, 0x04, 0x99, - 0x05, 0x08, 0x27, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x27, 0x07, 0x12, 0x04, 0x9a, 0x05, 0x02, 0x1b, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x27, 0x07, 0x03, 0x12, 0x04, 0x9a, 0x05, 0x02, 0x1b, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x27, 0x02, 0x00, 0x05, 0x12, 0x04, 0x9b, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x27, 0x02, 0x00, 0x12, 0x04, 0x9b, 0x05, 0x02, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x27, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9b, 0x05, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, - 0x02, 0x00, 0x03, 0x12, 0x04, 0x9b, 0x05, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, - 0x00, 0x08, 0x12, 0x04, 0x9b, 0x05, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x27, 0x02, 0x00, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9b, 0x05, 0x17, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, - 0x02, 0x01, 0x05, 0x12, 0x04, 0x9c, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x27, 0x02, - 0x01, 0x12, 0x04, 0x9c, 0x05, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x01, - 0x12, 0x04, 0x9c, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x03, 0x12, - 0x04, 0x9c, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x08, 0x12, 0x04, - 0x9c, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x27, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0x9c, 0x05, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x02, 0x05, 0x12, - 0x04, 0x9d, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x27, 0x02, 0x02, 0x12, 0x04, 0x9d, - 0x05, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9d, 0x05, - 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9d, 0x05, 0x1b, - 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x02, 0x08, 0x12, 0x04, 0x9d, 0x05, 0x1d, 0x45, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x27, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9d, 0x05, - 0x1e, 0x44, 0x0a, 0x39, 0x0a, 0x02, 0x04, 0x28, 0x12, 0x06, 0xa1, 0x05, 0x00, 0xa6, 0x05, 0x01, - 0x1a, 0x2b, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, - 0x03, 0x04, 0x28, 0x01, 0x12, 0x04, 0xa1, 0x05, 0x08, 0x28, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x28, - 0x07, 0x12, 0x04, 0xa2, 0x05, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x07, 0x03, 0x12, - 0x04, 0xa2, 0x05, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, 0x05, 0x12, 0x04, - 0xa3, 0x05, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x00, 0x12, 0x04, 0xa3, 0x05, - 0x02, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa3, 0x05, 0x07, - 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa3, 0x05, 0x11, 0x12, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa3, 0x05, 0x13, 0x3b, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x28, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa3, 0x05, 0x14, - 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa4, 0x05, 0x02, 0x07, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x01, 0x12, 0x04, 0xa4, 0x05, 0x02, 0x41, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa4, 0x05, 0x08, 0x13, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x28, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa4, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x28, 0x02, 0x01, 0x08, 0x12, 0x04, 0xa4, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x28, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa4, 0x05, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x28, 0x02, 0x02, 0x05, 0x12, 0x04, 0xa5, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x28, 0x02, 0x02, 0x12, 0x04, 0xa5, 0x05, 0x02, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, - 0x02, 0x02, 0x01, 0x12, 0x04, 0xa5, 0x05, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, - 0x02, 0x03, 0x12, 0x04, 0xa5, 0x05, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x02, - 0x08, 0x12, 0x04, 0xa5, 0x05, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x28, 0x02, 0x02, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa5, 0x05, 0x17, 0x3d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x29, 0x12, - 0x06, 0xa8, 0x05, 0x00, 0xaa, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x29, 0x01, 0x12, 0x04, - 0xa8, 0x05, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa9, - 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x00, 0x12, 0x04, 0xa9, 0x05, 0x02, - 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa9, 0x05, 0x09, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa9, 0x05, 0x14, 0x15, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa9, 0x05, 0x16, 0x3e, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x29, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa9, 0x05, 0x17, 0x3d, - 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2a, 0x12, 0x06, 0xac, 0x05, 0x00, 0xae, 0x05, 0x01, 0x0a, 0x0b, - 0x0a, 0x03, 0x04, 0x2a, 0x01, 0x12, 0x04, 0xac, 0x05, 0x08, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x2a, 0x02, 0x00, 0x05, 0x12, 0x04, 0xad, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, - 0x02, 0x00, 0x12, 0x04, 0xad, 0x05, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, - 0x01, 0x12, 0x04, 0xad, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x03, - 0x12, 0x04, 0xad, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x08, 0x12, - 0x04, 0xad, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2a, 0x02, 0x00, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xad, 0x05, 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2b, 0x12, 0x06, 0xb0, - 0x05, 0x00, 0xb4, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2b, 0x01, 0x12, 0x04, 0xb0, 0x05, - 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb1, 0x05, 0x02, - 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x00, 0x12, 0x04, 0xb1, 0x05, 0x02, 0x3f, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb1, 0x05, 0x09, 0x11, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb1, 0x05, 0x14, 0x15, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x2b, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb1, 0x05, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x2b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb1, 0x05, 0x17, 0x3d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb2, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x2b, 0x02, 0x01, 0x12, 0x04, 0xb2, 0x05, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x2b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb2, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, - 0x02, 0x01, 0x03, 0x12, 0x04, 0xb2, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, - 0x01, 0x08, 0x12, 0x04, 0xb2, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2b, 0x02, 0x01, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb2, 0x05, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, - 0x02, 0x02, 0x05, 0x12, 0x04, 0xb3, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2b, 0x02, - 0x02, 0x12, 0x04, 0xb3, 0x05, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x02, 0x01, - 0x12, 0x04, 0xb3, 0x05, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x02, 0x03, 0x12, - 0x04, 0xb3, 0x05, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x02, 0x08, 0x12, 0x04, - 0xb3, 0x05, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2b, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0xb3, 0x05, 0x1e, 0x44, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2c, 0x12, 0x06, 0xb6, 0x05, - 0x00, 0xbd, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2c, 0x01, 0x12, 0x04, 0xb6, 0x05, 0x08, - 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb7, 0x05, 0x02, 0x06, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x00, 0x12, 0x04, 0xb7, 0x05, 0x02, 0x3c, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb7, 0x05, 0x07, 0x0e, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x2c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb7, 0x05, 0x11, 0x12, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x2c, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb7, 0x05, 0x13, 0x3b, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x2c, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb7, 0x05, 0x14, 0x3a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x2c, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb8, 0x05, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x2c, 0x02, 0x01, 0x12, 0x04, 0xb8, 0x05, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, - 0x02, 0x01, 0x01, 0x12, 0x04, 0xb8, 0x05, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, - 0x01, 0x03, 0x12, 0x04, 0xb8, 0x05, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, - 0x08, 0x12, 0x04, 0xb8, 0x05, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2c, 0x02, 0x01, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb8, 0x05, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, - 0x02, 0x05, 0x12, 0x04, 0xb9, 0x05, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x02, - 0x12, 0x04, 0xb9, 0x05, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x01, 0x12, - 0x04, 0xb9, 0x05, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x03, 0x12, 0x04, - 0xb9, 0x05, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x08, 0x12, 0x04, 0xb9, - 0x05, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2c, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xb9, 0x05, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x03, 0x05, 0x12, 0x04, - 0xba, 0x05, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x03, 0x12, 0x04, 0xba, 0x05, - 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x03, 0x01, 0x12, 0x04, 0xba, 0x05, 0x08, - 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x03, 0x03, 0x12, 0x04, 0xba, 0x05, 0x1e, 0x1f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x03, 0x08, 0x12, 0x04, 0xba, 0x05, 0x20, 0x48, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x2c, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xba, 0x05, 0x21, - 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x04, 0x05, 0x12, 0x04, 0xbb, 0x05, 0x02, 0x07, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x04, 0x12, 0x04, 0xbb, 0x05, 0x02, 0x49, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x04, 0x01, 0x12, 0x04, 0xbb, 0x05, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x2c, 0x02, 0x04, 0x03, 0x12, 0x04, 0xbb, 0x05, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x2c, 0x02, 0x04, 0x08, 0x12, 0x04, 0xbb, 0x05, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x2c, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbb, 0x05, 0x21, 0x47, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x2c, 0x02, 0x05, 0x04, 0x12, 0x04, 0xbc, 0x05, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x2c, 0x02, 0x05, 0x12, 0x04, 0xbc, 0x05, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, - 0x02, 0x05, 0x05, 0x12, 0x04, 0xbc, 0x05, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, - 0x05, 0x01, 0x12, 0x04, 0xbc, 0x05, 0x12, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x05, - 0x03, 0x12, 0x04, 0xbc, 0x05, 0x23, 0x24, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2d, 0x12, 0x06, 0xbf, - 0x05, 0x00, 0xc1, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2d, 0x01, 0x12, 0x04, 0xbf, 0x05, - 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc0, 0x05, 0x02, - 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x00, 0x12, 0x04, 0xc0, 0x05, 0x02, 0x48, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc0, 0x05, 0x13, 0x1a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc0, 0x05, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x2d, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc0, 0x05, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x2d, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc0, 0x05, 0x20, 0x46, 0x0a, 0x0c, - 0x0a, 0x02, 0x04, 0x2e, 0x12, 0x06, 0xc3, 0x05, 0x00, 0xc5, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, - 0x04, 0x2e, 0x01, 0x12, 0x04, 0xc3, 0x05, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, - 0x00, 0x06, 0x12, 0x04, 0xc4, 0x05, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2e, 0x02, 0x00, - 0x12, 0x04, 0xc4, 0x05, 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x00, 0x01, 0x12, - 0x04, 0xc4, 0x05, 0x14, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x00, 0x03, 0x12, 0x04, - 0xc4, 0x05, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc4, - 0x05, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2e, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xc4, 0x05, 0x22, 0x48, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2f, 0x12, 0x06, 0xc7, 0x05, 0x00, - 0xc9, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2f, 0x01, 0x12, 0x04, 0xc7, 0x05, 0x08, 0x1e, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc8, 0x05, 0x02, 0x12, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x2f, 0x02, 0x00, 0x12, 0x04, 0xc8, 0x05, 0x02, 0x48, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x2f, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc8, 0x05, 0x13, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x2f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc8, 0x05, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x2f, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc8, 0x05, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2f, - 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc8, 0x05, 0x20, 0x46, 0x0a, 0x0c, 0x0a, 0x02, - 0x04, 0x30, 0x12, 0x06, 0xcb, 0x05, 0x00, 0xcd, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x30, - 0x01, 0x12, 0x04, 0xcb, 0x05, 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x06, - 0x12, 0x04, 0xcc, 0x05, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x30, 0x02, 0x00, 0x12, 0x04, - 0xcc, 0x05, 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x01, 0x12, 0x04, 0xcc, - 0x05, 0x14, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x03, 0x12, 0x04, 0xcc, 0x05, - 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x08, 0x12, 0x04, 0xcc, 0x05, 0x21, - 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x30, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcc, - 0x05, 0x22, 0x48, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x31, 0x12, 0x06, 0xcf, 0x05, 0x00, 0xec, 0x05, - 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x31, 0x01, 0x12, 0x04, 0xcf, 0x05, 0x08, 0x18, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd4, 0x05, 0x02, 0x08, 0x0a, 0xe1, 0x01, - 0x0a, 0x04, 0x04, 0x31, 0x02, 0x00, 0x12, 0x04, 0xd4, 0x05, 0x02, 0x40, 0x1a, 0xd2, 0x01, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, + 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x21, 0x01, 0x12, 0x04, + 0xff, 0x04, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x05, 0x12, 0x04, 0x80, + 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x21, 0x02, 0x00, 0x12, 0x04, 0x80, 0x05, 0x02, + 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x01, 0x12, 0x04, 0x80, 0x05, 0x09, 0x10, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x03, 0x12, 0x04, 0x80, 0x05, 0x13, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x08, 0x12, 0x04, 0x80, 0x05, 0x15, 0x3d, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x21, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x80, 0x05, 0x16, 0x3c, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x01, 0x05, 0x12, 0x04, 0x81, 0x05, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x21, 0x02, 0x01, 0x12, 0x04, 0x81, 0x05, 0x02, 0x41, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x21, 0x02, 0x01, 0x01, 0x12, 0x04, 0x81, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x21, 0x02, 0x01, 0x03, 0x12, 0x04, 0x81, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x21, 0x02, 0x01, 0x08, 0x12, 0x04, 0x81, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x21, + 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x81, 0x05, 0x19, 0x3f, 0x0a, 0x0a, 0x0a, 0x02, + 0x04, 0x22, 0x12, 0x04, 0x83, 0x05, 0x00, 0x20, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x22, 0x01, 0x12, + 0x04, 0x83, 0x05, 0x08, 0x1d, 0x0a, 0xa0, 0x01, 0x0a, 0x02, 0x04, 0x23, 0x12, 0x06, 0x86, 0x05, + 0x00, 0x89, 0x05, 0x01, 0x1a, 0x91, 0x01, 0x20, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x62, + 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, + 0x68, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x69, 0x66, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c, + 0x79, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x23, 0x01, 0x12, + 0x04, 0x86, 0x05, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x04, 0x12, 0x04, + 0x87, 0x05, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x23, 0x02, 0x00, 0x12, 0x04, 0x87, 0x05, + 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x05, 0x12, 0x04, 0x87, 0x05, 0x0b, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x01, 0x12, 0x04, 0x87, 0x05, 0x12, 0x1a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x03, 0x12, 0x04, 0x87, 0x05, 0x1d, 0x1e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x08, 0x12, 0x04, 0x87, 0x05, 0x1f, 0x47, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x23, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x87, 0x05, 0x20, 0x46, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x01, 0x04, 0x12, 0x04, 0x88, 0x05, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x23, 0x02, 0x01, 0x12, 0x04, 0x88, 0x05, 0x02, 0x4b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x23, 0x02, 0x01, 0x05, 0x12, 0x04, 0x88, 0x05, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x23, 0x02, 0x01, 0x01, 0x12, 0x04, 0x88, 0x05, 0x12, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x23, 0x02, 0x01, 0x03, 0x12, 0x04, 0x88, 0x05, 0x20, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, + 0x02, 0x01, 0x08, 0x12, 0x04, 0x88, 0x05, 0x22, 0x4a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x23, 0x02, + 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, 0x05, 0x23, 0x49, 0x0a, 0x0a, 0x0a, 0x02, 0x04, + 0x24, 0x12, 0x04, 0x8a, 0x05, 0x00, 0x26, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x24, 0x01, 0x12, 0x04, + 0x8a, 0x05, 0x08, 0x23, 0x0a, 0x36, 0x0a, 0x02, 0x04, 0x25, 0x12, 0x06, 0x8d, 0x05, 0x00, 0x90, + 0x05, 0x01, 0x1a, 0x28, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x25, 0x01, 0x12, 0x04, 0x8d, 0x05, 0x08, 0x25, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x25, 0x07, + 0x12, 0x04, 0x8e, 0x05, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x25, 0x07, 0x03, 0x12, 0x04, + 0x8e, 0x05, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x05, 0x12, 0x04, 0x8f, + 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x25, 0x02, 0x00, 0x12, 0x04, 0x8f, 0x05, 0x02, + 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8f, 0x05, 0x09, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x03, 0x12, 0x04, 0x8f, 0x05, 0x14, 0x15, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x08, 0x12, 0x04, 0x8f, 0x05, 0x16, 0x3e, 0x0a, 0x10, + 0x0a, 0x08, 0x04, 0x25, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8f, 0x05, 0x17, 0x3d, + 0x0a, 0x37, 0x0a, 0x02, 0x04, 0x26, 0x12, 0x06, 0x93, 0x05, 0x00, 0x96, 0x05, 0x01, 0x1a, 0x29, + 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, + 0x65, 0x20, 0x56, 0x69, 0x65, 0x77, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x26, 0x01, + 0x12, 0x04, 0x93, 0x05, 0x08, 0x26, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x26, 0x07, 0x12, 0x04, 0x94, + 0x05, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x26, 0x07, 0x03, 0x12, 0x04, 0x94, 0x05, 0x02, + 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x00, 0x05, 0x12, 0x04, 0x95, 0x05, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x26, 0x02, 0x00, 0x12, 0x04, 0x95, 0x05, 0x02, 0x41, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x26, 0x02, 0x00, 0x01, 0x12, 0x04, 0x95, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x26, 0x02, 0x00, 0x03, 0x12, 0x04, 0x95, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x26, 0x02, 0x00, 0x08, 0x12, 0x04, 0x95, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x26, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x95, 0x05, 0x19, 0x3f, 0x0a, 0x38, 0x0a, + 0x02, 0x04, 0x27, 0x12, 0x06, 0x99, 0x05, 0x00, 0x9e, 0x05, 0x01, 0x1a, 0x2a, 0x20, 0x44, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x27, 0x01, 0x12, 0x04, + 0x99, 0x05, 0x08, 0x27, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x27, 0x07, 0x12, 0x04, 0x9a, 0x05, 0x02, + 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x27, 0x07, 0x03, 0x12, 0x04, 0x9a, 0x05, 0x02, 0x1b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x00, 0x05, 0x12, 0x04, 0x9b, 0x05, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x27, 0x02, 0x00, 0x12, 0x04, 0x9b, 0x05, 0x02, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x27, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9b, 0x05, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x27, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9b, 0x05, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, + 0x02, 0x00, 0x08, 0x12, 0x04, 0x9b, 0x05, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x27, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9b, 0x05, 0x17, 0x3d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x27, 0x02, 0x01, 0x05, 0x12, 0x04, 0x9c, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x27, + 0x02, 0x01, 0x12, 0x04, 0x9c, 0x05, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, + 0x01, 0x12, 0x04, 0x9c, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x03, + 0x12, 0x04, 0x9c, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x08, 0x12, + 0x04, 0x9c, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x27, 0x02, 0x01, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0x9c, 0x05, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x02, 0x05, + 0x12, 0x04, 0x9d, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x27, 0x02, 0x02, 0x12, 0x04, + 0x9d, 0x05, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9d, + 0x05, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9d, 0x05, + 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x02, 0x08, 0x12, 0x04, 0x9d, 0x05, 0x1d, + 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x27, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9d, + 0x05, 0x1e, 0x44, 0x0a, 0x39, 0x0a, 0x02, 0x04, 0x28, 0x12, 0x06, 0xa1, 0x05, 0x00, 0xa6, 0x05, + 0x01, 0x1a, 0x2b, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x28, 0x01, 0x12, 0x04, 0xa1, 0x05, 0x08, 0x28, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x28, 0x07, 0x12, 0x04, 0xa2, 0x05, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x07, 0x03, + 0x12, 0x04, 0xa2, 0x05, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xa3, 0x05, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x00, 0x12, 0x04, 0xa3, + 0x05, 0x02, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa3, 0x05, + 0x07, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa3, 0x05, 0x11, + 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa3, 0x05, 0x13, 0x3b, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x28, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa3, 0x05, + 0x14, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa4, 0x05, 0x02, + 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x01, 0x12, 0x04, 0xa4, 0x05, 0x02, 0x41, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa4, 0x05, 0x08, 0x13, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa4, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x28, 0x02, 0x01, 0x08, 0x12, 0x04, 0xa4, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x28, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa4, 0x05, 0x19, 0x3f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x28, 0x02, 0x02, 0x05, 0x12, 0x04, 0xa5, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x28, 0x02, 0x02, 0x12, 0x04, 0xa5, 0x05, 0x02, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x28, 0x02, 0x02, 0x01, 0x12, 0x04, 0xa5, 0x05, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, + 0x02, 0x02, 0x03, 0x12, 0x04, 0xa5, 0x05, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, + 0x02, 0x08, 0x12, 0x04, 0xa5, 0x05, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x28, 0x02, 0x02, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa5, 0x05, 0x17, 0x3d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x29, + 0x12, 0x06, 0xa8, 0x05, 0x00, 0xaa, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x29, 0x01, 0x12, + 0x04, 0xa8, 0x05, 0x08, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x05, 0x12, 0x04, + 0xa9, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x00, 0x12, 0x04, 0xa9, 0x05, + 0x02, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa9, 0x05, 0x09, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa9, 0x05, 0x14, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa9, 0x05, 0x16, 0x3e, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x29, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa9, 0x05, 0x17, + 0x3d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2a, 0x12, 0x06, 0xac, 0x05, 0x00, 0xae, 0x05, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x2a, 0x01, 0x12, 0x04, 0xac, 0x05, 0x08, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2a, 0x02, 0x00, 0x05, 0x12, 0x04, 0xad, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x2a, 0x02, 0x00, 0x12, 0x04, 0xad, 0x05, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, + 0x00, 0x01, 0x12, 0x04, 0xad, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, + 0x03, 0x12, 0x04, 0xad, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x08, + 0x12, 0x04, 0xad, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2a, 0x02, 0x00, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xad, 0x05, 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2b, 0x12, 0x06, + 0xb0, 0x05, 0x00, 0xb4, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2b, 0x01, 0x12, 0x04, 0xb0, + 0x05, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb1, 0x05, + 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x00, 0x12, 0x04, 0xb1, 0x05, 0x02, 0x3f, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb1, 0x05, 0x09, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb1, 0x05, 0x14, 0x15, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb1, 0x05, 0x16, 0x3e, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x2b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb1, 0x05, 0x17, 0x3d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb2, 0x05, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x01, 0x12, 0x04, 0xb2, 0x05, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb2, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb2, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, + 0x02, 0x01, 0x08, 0x12, 0x04, 0xb2, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2b, 0x02, + 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb2, 0x05, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2b, 0x02, 0x02, 0x05, 0x12, 0x04, 0xb3, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2b, + 0x02, 0x02, 0x12, 0x04, 0xb3, 0x05, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x02, + 0x01, 0x12, 0x04, 0xb3, 0x05, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x02, 0x03, + 0x12, 0x04, 0xb3, 0x05, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x02, 0x08, 0x12, + 0x04, 0xb3, 0x05, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2b, 0x02, 0x02, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xb3, 0x05, 0x1e, 0x44, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2c, 0x12, 0x06, 0xb6, + 0x05, 0x00, 0xbd, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2c, 0x01, 0x12, 0x04, 0xb6, 0x05, + 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb7, 0x05, 0x02, + 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x00, 0x12, 0x04, 0xb7, 0x05, 0x02, 0x3c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb7, 0x05, 0x07, 0x0e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb7, 0x05, 0x11, 0x12, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2c, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb7, 0x05, 0x13, 0x3b, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x2c, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb7, 0x05, 0x14, 0x3a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb8, 0x05, 0x02, 0x07, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x2c, 0x02, 0x01, 0x12, 0x04, 0xb8, 0x05, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2c, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb8, 0x05, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, + 0x02, 0x01, 0x03, 0x12, 0x04, 0xb8, 0x05, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, + 0x01, 0x08, 0x12, 0x04, 0xb8, 0x05, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2c, 0x02, 0x01, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb8, 0x05, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, + 0x02, 0x02, 0x05, 0x12, 0x04, 0xb9, 0x05, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, + 0x02, 0x12, 0x04, 0xb9, 0x05, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x01, + 0x12, 0x04, 0xb9, 0x05, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x03, 0x12, + 0x04, 0xb9, 0x05, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x08, 0x12, 0x04, + 0xb9, 0x05, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2c, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xb9, 0x05, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x03, 0x05, 0x12, + 0x04, 0xba, 0x05, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x03, 0x12, 0x04, 0xba, + 0x05, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x03, 0x01, 0x12, 0x04, 0xba, 0x05, + 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x03, 0x03, 0x12, 0x04, 0xba, 0x05, 0x1e, + 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x03, 0x08, 0x12, 0x04, 0xba, 0x05, 0x20, 0x48, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2c, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xba, 0x05, + 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x04, 0x05, 0x12, 0x04, 0xbb, 0x05, 0x02, + 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x04, 0x12, 0x04, 0xbb, 0x05, 0x02, 0x49, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x04, 0x01, 0x12, 0x04, 0xbb, 0x05, 0x08, 0x1b, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x04, 0x03, 0x12, 0x04, 0xbb, 0x05, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2c, 0x02, 0x04, 0x08, 0x12, 0x04, 0xbb, 0x05, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x2c, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbb, 0x05, 0x21, 0x47, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x05, 0x04, 0x12, 0x04, 0xbc, 0x05, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x2c, 0x02, 0x05, 0x12, 0x04, 0xbc, 0x05, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2c, 0x02, 0x05, 0x05, 0x12, 0x04, 0xbc, 0x05, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, + 0x02, 0x05, 0x01, 0x12, 0x04, 0xbc, 0x05, 0x12, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, + 0x05, 0x03, 0x12, 0x04, 0xbc, 0x05, 0x23, 0x24, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2d, 0x12, 0x06, + 0xbf, 0x05, 0x00, 0xc1, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2d, 0x01, 0x12, 0x04, 0xbf, + 0x05, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc0, 0x05, + 0x02, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x00, 0x12, 0x04, 0xc0, 0x05, 0x02, 0x48, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc0, 0x05, 0x13, 0x1a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc0, 0x05, 0x1d, 0x1e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc0, 0x05, 0x1f, 0x47, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x2d, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc0, 0x05, 0x20, 0x46, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x2e, 0x12, 0x06, 0xc3, 0x05, 0x00, 0xc5, 0x05, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x2e, 0x01, 0x12, 0x04, 0xc3, 0x05, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, + 0x02, 0x00, 0x06, 0x12, 0x04, 0xc4, 0x05, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2e, 0x02, + 0x00, 0x12, 0x04, 0xc4, 0x05, 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xc4, 0x05, 0x14, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xc4, 0x05, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x00, 0x08, 0x12, 0x04, + 0xc4, 0x05, 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x2e, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xc4, 0x05, 0x22, 0x48, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2f, 0x12, 0x06, 0xc7, 0x05, + 0x00, 0xc9, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2f, 0x01, 0x12, 0x04, 0xc7, 0x05, 0x08, + 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc8, 0x05, 0x02, 0x12, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2f, 0x02, 0x00, 0x12, 0x04, 0xc8, 0x05, 0x02, 0x48, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc8, 0x05, 0x13, 0x1a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc8, 0x05, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2f, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc8, 0x05, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x2f, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc8, 0x05, 0x20, 0x46, 0x0a, 0x0c, 0x0a, + 0x02, 0x04, 0x30, 0x12, 0x06, 0xcb, 0x05, 0x00, 0xcd, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x30, 0x01, 0x12, 0x04, 0xcb, 0x05, 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, + 0x06, 0x12, 0x04, 0xcc, 0x05, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x30, 0x02, 0x00, 0x12, + 0x04, 0xcc, 0x05, 0x02, 0x4a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xcc, 0x05, 0x14, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x03, 0x12, 0x04, 0xcc, + 0x05, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x08, 0x12, 0x04, 0xcc, 0x05, + 0x21, 0x49, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x30, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xcc, 0x05, 0x22, 0x48, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x31, 0x12, 0x06, 0xcf, 0x05, 0x00, 0xec, + 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x31, 0x01, 0x12, 0x04, 0xcf, 0x05, 0x08, 0x18, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd4, 0x05, 0x02, 0x08, 0x0a, 0xe1, + 0x01, 0x0a, 0x04, 0x04, 0x31, 0x02, 0x00, 0x12, 0x04, 0xd4, 0x05, 0x02, 0x40, 0x1a, 0xd2, 0x01, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, + 0x35, 0x30, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, + 0x6f, 0x76, 0x65, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, + 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd4, 0x05, 0x09, + 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd4, 0x05, 0x15, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd4, 0x05, 0x17, 0x3f, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x31, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd4, 0x05, 0x18, + 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x01, 0x05, 0x12, 0x04, 0xda, 0x05, 0x02, 0x08, + 0x0a, 0xea, 0x01, 0x0a, 0x04, 0x04, 0x31, 0x02, 0x01, 0x12, 0x04, 0xda, 0x05, 0x02, 0x41, 0x1a, + 0xdb, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, + 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, + 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, + 0x72, 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, + 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6c, 0x6c, + 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x60, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x31, 0x02, 0x01, 0x01, 0x12, 0x04, 0xda, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x31, 0x02, 0x01, 0x03, 0x12, 0x04, 0xda, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x31, 0x02, 0x01, 0x08, 0x12, 0x04, 0xda, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x31, + 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xda, 0x05, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x31, 0x02, 0x02, 0x05, 0x12, 0x04, 0xe6, 0x05, 0x02, 0x08, 0x0a, 0x9c, 0x08, 0x0a, 0x04, + 0x04, 0x31, 0x02, 0x02, 0x12, 0x04, 0xe6, 0x05, 0x02, 0x3d, 0x1a, 0x8d, 0x08, 0x20, 0x41, 0x20, + 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, + 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, + 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, + 0x64, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x60, + 0x2c, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x60, 0x2c, 0x20, 0x60, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x0a, 0x20, 0x60, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x60, 0x2c, + 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, + 0x2c, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x69, 0x73, + 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x60, 0x2e, 0x0a, 0x20, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x62, 0x79, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x60, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x7b, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x60, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x20, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x76, 0x69, 0x61, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x60, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x60, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x60, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x2e, 0x20, 0x42, 0x6f, 0x74, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x64, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x75, 0x6c, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x3b, 0x20, + 0x60, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x60, 0x20, + 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x64, 0x20, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x60, + 0x22, 0x3c, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x3e, 0x22, 0x20, 0x69, 0x6e, + 0x20, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x0a, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x60, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x60, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x72, 0x75, + 0x6c, 0x65, 0x73, 0x20, 0x77, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x73, 0x20, 0x61, 0x72, 0x65, 0x0a, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x6c, 0x64, + 0x65, 0x72, 0x73, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x61, 0x73, 0x20, 0x75, 0x6e, 0x63, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x29, 0x2e, 0x0a, 0x20, 0x46, 0x6f, + 0x72, 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, + 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, + 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, + 0x67, 0x64, 0x65, 0x66, 0x2e, 0x6d, 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, + 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x20, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, + 0x02, 0x02, 0x01, 0x12, 0x04, 0xe6, 0x05, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, + 0x02, 0x03, 0x12, 0x04, 0xe6, 0x05, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x02, + 0x08, 0x12, 0x04, 0xe6, 0x05, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x31, 0x02, 0x02, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xe6, 0x05, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, + 0x03, 0x05, 0x12, 0x04, 0xeb, 0x05, 0x02, 0x08, 0x0a, 0x94, 0x02, 0x0a, 0x04, 0x04, 0x31, 0x02, + 0x03, 0x12, 0x04, 0xeb, 0x05, 0x02, 0x3f, 0x1a, 0x85, 0x02, 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x22, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, + 0x41, 0x4d, 0x45, 0x5b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x5d, 0x2c, 0x2e, 0x2e, 0x2e, 0x22, 0x2e, + 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x20, 0x61, + 0x72, 0x65, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x60, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x60, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x65, + 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x28, + 0x6e, 0x65, 0x77, 0x65, 0x73, 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x29, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x03, 0x01, 0x12, 0x04, 0xeb, 0x05, 0x09, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x31, 0x02, 0x03, 0x03, 0x12, 0x04, 0xeb, 0x05, 0x14, 0x15, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x31, 0x02, 0x03, 0x08, 0x12, 0x04, 0xeb, 0x05, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x31, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xeb, 0x05, 0x17, 0x3d, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x32, 0x12, 0x06, 0xee, 0x05, 0x00, 0xf1, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x32, 0x01, 0x12, 0x04, 0xee, 0x05, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, + 0x00, 0x04, 0x12, 0x04, 0xef, 0x05, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, 0x02, 0x00, + 0x12, 0x04, 0xef, 0x05, 0x02, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x06, 0x12, + 0x04, 0xef, 0x05, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xef, 0x05, 0x10, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x03, 0x12, 0x04, 0xef, + 0x05, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x08, 0x12, 0x04, 0xef, 0x05, + 0x1a, 0x42, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x32, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xef, 0x05, 0x1b, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x01, 0x05, 0x12, 0x04, 0xf0, + 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, 0x02, 0x01, 0x12, 0x04, 0xf0, 0x05, 0x02, + 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf0, 0x05, 0x09, 0x18, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf0, 0x05, 0x1b, 0x1c, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x33, 0x12, 0x06, 0xf3, 0x05, 0x00, 0x86, 0x06, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x33, 0x01, 0x12, 0x04, 0xf3, 0x05, 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, + 0x02, 0x00, 0x05, 0x12, 0x04, 0xf4, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x33, 0x02, + 0x00, 0x12, 0x04, 0xf4, 0x05, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xf4, 0x05, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xf4, 0x05, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x08, 0x12, 0x04, + 0xf4, 0x05, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x33, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xf4, 0x05, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xfa, 0x05, 0x02, 0x08, 0x0a, 0xf1, 0x01, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x01, 0x12, 0x04, + 0xfa, 0x05, 0x02, 0x40, 0x1a, 0xe2, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x75, + 0x6c, 0x65, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x35, - 0x30, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, - 0x76, 0x65, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, - 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd4, 0x05, 0x09, 0x12, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd4, 0x05, 0x15, 0x16, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd4, 0x05, 0x17, 0x3f, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x31, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd4, 0x05, 0x18, 0x3e, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x01, 0x05, 0x12, 0x04, 0xda, 0x05, 0x02, 0x08, 0x0a, - 0xea, 0x01, 0x0a, 0x04, 0x04, 0x31, 0x02, 0x01, 0x12, 0x04, 0xda, 0x05, 0x02, 0x41, 0x1a, 0xdb, - 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, - 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, - 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x60, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x31, 0x02, 0x01, 0x01, 0x12, 0x04, 0xda, 0x05, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x31, 0x02, 0x01, 0x03, 0x12, 0x04, 0xda, 0x05, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, - 0x02, 0x01, 0x08, 0x12, 0x04, 0xda, 0x05, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x31, 0x02, - 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xda, 0x05, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x31, 0x02, 0x02, 0x05, 0x12, 0x04, 0xe6, 0x05, 0x02, 0x08, 0x0a, 0x9c, 0x08, 0x0a, 0x04, 0x04, - 0x31, 0x02, 0x02, 0x12, 0x04, 0xe6, 0x05, 0x02, 0x3d, 0x1a, 0x8d, 0x08, 0x20, 0x41, 0x20, 0x5b, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, - 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, - 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x60, 0x2c, 0x20, 0x60, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x60, 0x2c, - 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x60, 0x2c, 0x20, 0x60, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x0a, 0x20, 0x60, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x60, 0x2c, 0x20, 0x60, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x60, 0x2c, 0x20, - 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, - 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x64, 0x60, 0x2c, 0x20, 0x60, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x69, 0x73, 0x5f, - 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x60, 0x2e, 0x0a, 0x20, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x69, 0x6e, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x20, 0x62, 0x79, 0x20, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x20, 0x60, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x7b, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x60, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x20, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x76, 0x69, 0x61, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, - 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x60, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x60, 0x20, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x2e, 0x20, 0x42, 0x6f, 0x74, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69, 0x64, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x75, - 0x6c, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x3b, 0x20, 0x60, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x60, 0x20, 0x65, - 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, - 0x20, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x60, 0x22, - 0x3c, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x3e, 0x22, 0x20, 0x69, 0x6e, 0x20, - 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x0a, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x2c, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x60, 0x73, 0x69, 0x7a, 0x65, 0x28, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, - 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x60, 0x20, 0x74, 0x6f, - 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x20, 0x77, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x73, 0x20, 0x61, 0x72, 0x65, 0x0a, 0x20, 0x69, - 0x6e, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x6c, 0x64, 0x65, - 0x72, 0x73, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x61, 0x73, 0x20, 0x75, 0x6e, 0x63, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x29, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, - 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, 0x62, - 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, 0x67, - 0x64, 0x65, 0x66, 0x2e, 0x6d, 0x64, 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2d, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x0a, 0x20, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, - 0x02, 0x01, 0x12, 0x04, 0xe6, 0x05, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x02, - 0x03, 0x12, 0x04, 0xe6, 0x05, 0x12, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x02, 0x08, - 0x12, 0x04, 0xe6, 0x05, 0x14, 0x3c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x31, 0x02, 0x02, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xe6, 0x05, 0x15, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x03, - 0x05, 0x12, 0x04, 0xeb, 0x05, 0x02, 0x08, 0x0a, 0x94, 0x02, 0x0a, 0x04, 0x04, 0x31, 0x02, 0x03, - 0x12, 0x04, 0xeb, 0x05, 0x02, 0x3f, 0x1a, 0x85, 0x02, 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, 0x6f, - 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, - 0x65, 0x76, 0x65, 0x64, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x22, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, - 0x4d, 0x45, 0x5b, 0x20, 0x64, 0x65, 0x73, 0x63, 0x5d, 0x2c, 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, - 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x20, 0x61, 0x72, - 0x65, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x65, 0x73, - 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x28, 0x6e, - 0x65, 0x77, 0x65, 0x73, 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x29, 0x2e, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x31, 0x02, 0x03, 0x01, 0x12, 0x04, 0xeb, 0x05, 0x09, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x31, 0x02, 0x03, 0x03, 0x12, 0x04, 0xeb, 0x05, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x31, 0x02, 0x03, 0x08, 0x12, 0x04, 0xeb, 0x05, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x31, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xeb, 0x05, 0x17, 0x3d, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x32, 0x12, 0x06, 0xee, 0x05, 0x00, 0xf1, 0x05, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x32, 0x01, 0x12, 0x04, 0xee, 0x05, 0x08, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, - 0x04, 0x12, 0x04, 0xef, 0x05, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, 0x02, 0x00, 0x12, - 0x04, 0xef, 0x05, 0x02, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x06, 0x12, 0x04, - 0xef, 0x05, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x01, 0x12, 0x04, 0xef, - 0x05, 0x10, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x03, 0x12, 0x04, 0xef, 0x05, - 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x08, 0x12, 0x04, 0xef, 0x05, 0x1a, - 0x42, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x32, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xef, - 0x05, 0x1b, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x01, 0x05, 0x12, 0x04, 0xf0, 0x05, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, 0x02, 0x01, 0x12, 0x04, 0xf0, 0x05, 0x02, 0x1d, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf0, 0x05, 0x09, 0x18, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf0, 0x05, 0x1b, 0x1c, 0x0a, 0x0c, - 0x0a, 0x02, 0x04, 0x33, 0x12, 0x06, 0xf3, 0x05, 0x00, 0x86, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, - 0x04, 0x33, 0x01, 0x12, 0x04, 0xf3, 0x05, 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, - 0x00, 0x05, 0x12, 0x04, 0xf4, 0x05, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x00, - 0x12, 0x04, 0xf4, 0x05, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x01, 0x12, - 0x04, 0xf4, 0x05, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x03, 0x12, 0x04, - 0xf4, 0x05, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x08, 0x12, 0x04, 0xf4, - 0x05, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x33, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xf4, 0x05, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, 0x05, 0x12, 0x04, - 0xfa, 0x05, 0x02, 0x08, 0x0a, 0xf1, 0x01, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x01, 0x12, 0x04, 0xfa, - 0x05, 0x02, 0x40, 0x1a, 0xe2, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x75, 0x6c, - 0x65, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x65, - 0x77, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x35, 0x30, - 0x20, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, - 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, - 0x01, 0x12, 0x04, 0xfa, 0x05, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, 0x03, - 0x12, 0x04, 0xfa, 0x05, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, 0x08, 0x12, - 0x04, 0xfa, 0x05, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x33, 0x02, 0x01, 0x08, 0x9c, 0x08, - 0x00, 0x12, 0x04, 0xfa, 0x05, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x02, 0x05, - 0x12, 0x04, 0x80, 0x06, 0x02, 0x08, 0x0a, 0xf8, 0x01, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x02, 0x12, - 0x04, 0x80, 0x06, 0x02, 0x41, 0x1a, 0xe9, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x20, - 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, - 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x60, 0x20, 0x6d, 0x75, - 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, - 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x02, 0x01, 0x12, 0x04, 0x80, 0x06, 0x09, 0x13, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x02, 0x03, 0x12, 0x04, 0x80, 0x06, 0x16, 0x17, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x02, 0x08, 0x12, 0x04, 0x80, 0x06, 0x18, 0x40, 0x0a, 0x10, - 0x0a, 0x08, 0x04, 0x33, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x80, 0x06, 0x19, 0x3f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x03, 0x05, 0x12, 0x04, 0x85, 0x06, 0x02, 0x08, 0x0a, - 0xef, 0x02, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x03, 0x12, 0x04, 0x85, 0x06, 0x02, 0x14, 0x1a, 0xe0, - 0x02, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x20, - 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x72, 0x75, - 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, 0x20, - 0x60, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x60, 0x2c, 0x20, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x60, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, - 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, - 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x20, 0x67, 0x75, 0x69, 0x64, 0x65, - 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, - 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, - 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x64, 0x65, 0x66, 0x2e, 0x6d, 0x64, 0x23, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x03, 0x01, 0x12, 0x04, 0x85, 0x06, 0x09, 0x0f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x03, 0x03, 0x12, 0x04, 0x85, 0x06, 0x12, 0x13, 0x0a, - 0x0c, 0x0a, 0x02, 0x04, 0x34, 0x12, 0x06, 0x88, 0x06, 0x00, 0x99, 0x06, 0x01, 0x0a, 0x0b, 0x0a, - 0x03, 0x04, 0x34, 0x01, 0x12, 0x04, 0x88, 0x06, 0x08, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, - 0x02, 0x00, 0x05, 0x12, 0x04, 0x89, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, - 0x00, 0x12, 0x04, 0x89, 0x06, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x00, 0x01, - 0x12, 0x04, 0x89, 0x06, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x00, 0x03, 0x12, - 0x04, 0x89, 0x06, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x00, 0x08, 0x12, 0x04, - 0x89, 0x06, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0x89, 0x06, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x05, 0x12, - 0x04, 0x8a, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x01, 0x12, 0x04, 0x8a, - 0x06, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8a, 0x06, - 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8a, 0x06, 0x1b, - 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x08, 0x12, 0x04, 0x8a, 0x06, 0x1d, 0x45, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8a, 0x06, - 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x05, 0x12, 0x04, 0x8b, 0x06, 0x02, - 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x02, 0x12, 0x04, 0x8b, 0x06, 0x02, 0x3e, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x01, 0x12, 0x04, 0x8b, 0x06, 0x09, 0x10, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x03, 0x12, 0x04, 0x8b, 0x06, 0x13, 0x14, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x34, 0x02, 0x02, 0x08, 0x12, 0x04, 0x8b, 0x06, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x34, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8b, 0x06, 0x16, 0x3c, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x34, 0x02, 0x03, 0x06, 0x12, 0x04, 0x8c, 0x06, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x34, 0x02, 0x03, 0x12, 0x04, 0x8c, 0x06, 0x02, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x34, 0x02, 0x03, 0x01, 0x12, 0x04, 0x8c, 0x06, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, - 0x02, 0x03, 0x03, 0x12, 0x04, 0x8c, 0x06, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, - 0x03, 0x08, 0x12, 0x04, 0x8c, 0x06, 0x2d, 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x03, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8c, 0x06, 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, - 0x02, 0x04, 0x05, 0x12, 0x04, 0x8d, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, - 0x04, 0x12, 0x04, 0x8d, 0x06, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, 0x01, - 0x12, 0x04, 0x8d, 0x06, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, 0x03, 0x12, - 0x04, 0x8d, 0x06, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, 0x08, 0x12, 0x04, - 0x8d, 0x06, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0x8d, 0x06, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x05, 0x05, 0x12, - 0x04, 0x8e, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x05, 0x12, 0x04, 0x8e, - 0x06, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x05, 0x01, 0x12, 0x04, 0x8e, 0x06, - 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x05, 0x03, 0x12, 0x04, 0x8e, 0x06, 0x19, - 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x05, 0x08, 0x12, 0x04, 0x8e, 0x06, 0x1b, 0x43, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8e, 0x06, - 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x06, 0x05, 0x12, 0x04, 0x8f, 0x06, 0x02, - 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x06, 0x12, 0x04, 0x8f, 0x06, 0x02, 0x4f, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x06, 0x01, 0x12, 0x04, 0x8f, 0x06, 0x09, 0x21, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x34, 0x02, 0x06, 0x03, 0x12, 0x04, 0x8f, 0x06, 0x24, 0x25, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x34, 0x02, 0x06, 0x08, 0x12, 0x04, 0x8f, 0x06, 0x26, 0x4e, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x34, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8f, 0x06, 0x27, 0x4d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x34, 0x02, 0x07, 0x06, 0x12, 0x04, 0x90, 0x06, 0x02, 0x1b, 0x0a, 0x0e, 0x0a, - 0x04, 0x04, 0x34, 0x02, 0x07, 0x12, 0x06, 0x90, 0x06, 0x02, 0x93, 0x06, 0x04, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x34, 0x02, 0x07, 0x01, 0x12, 0x04, 0x90, 0x06, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x34, 0x02, 0x07, 0x03, 0x12, 0x04, 0x90, 0x06, 0x2b, 0x2c, 0x0a, 0x0f, 0x0a, 0x05, 0x04, - 0x34, 0x02, 0x07, 0x08, 0x12, 0x06, 0x90, 0x06, 0x2d, 0x93, 0x06, 0x03, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x34, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x91, 0x06, 0x04, 0x2a, 0x0a, 0x0e, - 0x0a, 0x06, 0x04, 0x34, 0x02, 0x07, 0x08, 0x03, 0x12, 0x04, 0x92, 0x06, 0x04, 0x15, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x34, 0x02, 0x08, 0x06, 0x12, 0x04, 0x95, 0x06, 0x02, 0x1b, 0x0a, 0x4a, 0x0a, - 0x04, 0x04, 0x34, 0x02, 0x08, 0x12, 0x04, 0x95, 0x06, 0x02, 0x57, 0x1a, 0x3c, 0x20, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x64, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, - 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x61, 0x73, 0x20, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, - 0x08, 0x01, 0x12, 0x04, 0x95, 0x06, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x08, - 0x03, 0x12, 0x04, 0x95, 0x06, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x08, 0x08, - 0x12, 0x04, 0x95, 0x06, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x08, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0x95, 0x06, 0x2f, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x09, - 0x05, 0x12, 0x04, 0x98, 0x06, 0x02, 0x06, 0x0a, 0x4b, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x09, 0x12, - 0x04, 0x98, 0x06, 0x02, 0x41, 0x1a, 0x3d, 0x20, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, - 0x76, 0x65, 0x64, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, - 0x75, 0x6c, 0x6c, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x09, 0x01, 0x12, 0x04, 0x98, - 0x06, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x09, 0x03, 0x12, 0x04, 0x98, 0x06, - 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x09, 0x08, 0x12, 0x04, 0x98, 0x06, 0x18, - 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x98, - 0x06, 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x35, 0x12, 0x06, 0x9b, 0x06, 0x00, 0x9e, 0x06, - 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x35, 0x01, 0x12, 0x04, 0x9b, 0x06, 0x08, 0x20, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x35, 0x02, 0x00, 0x04, 0x12, 0x04, 0x9c, 0x06, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x35, 0x02, 0x00, 0x12, 0x04, 0x9c, 0x06, 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x35, 0x02, 0x00, 0x06, 0x12, 0x04, 0x9c, 0x06, 0x0b, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, - 0x02, 0x00, 0x01, 0x12, 0x04, 0x9c, 0x06, 0x17, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, - 0x00, 0x03, 0x12, 0x04, 0x9c, 0x06, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, 0x00, - 0x08, 0x12, 0x04, 0x9c, 0x06, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x35, 0x02, 0x00, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9c, 0x06, 0x2a, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, - 0x01, 0x05, 0x12, 0x04, 0x9d, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x35, 0x02, 0x01, - 0x12, 0x04, 0x9d, 0x06, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, 0x01, 0x01, 0x12, - 0x04, 0x9d, 0x06, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, 0x01, 0x03, 0x12, 0x04, - 0x9d, 0x06, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x36, 0x12, 0x06, 0xa0, 0x06, 0x00, 0xa2, - 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x36, 0x01, 0x12, 0x04, 0xa0, 0x06, 0x08, 0x1d, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x36, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa1, 0x06, 0x02, 0x08, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x36, 0x02, 0x00, 0x12, 0x04, 0xa1, 0x06, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x36, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa1, 0x06, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x36, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa1, 0x06, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x36, - 0x02, 0x00, 0x08, 0x12, 0x04, 0xa1, 0x06, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x36, 0x02, - 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa1, 0x06, 0x1e, 0x44, 0x0a, 0x0c, 0x0a, 0x02, 0x04, - 0x37, 0x12, 0x06, 0xa4, 0x06, 0x00, 0xa6, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x37, 0x01, - 0x12, 0x04, 0xa4, 0x06, 0x08, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x06, 0x12, - 0x04, 0xa5, 0x06, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x37, 0x02, 0x00, 0x12, 0x04, 0xa5, - 0x06, 0x02, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa5, 0x06, - 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa5, 0x06, 0x0e, - 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa5, 0x06, 0x10, 0x38, - 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x37, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa5, 0x06, - 0x11, 0x37, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x38, 0x12, 0x06, 0xa8, 0x06, 0x00, 0xaa, 0x06, 0x01, - 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x38, 0x01, 0x12, 0x04, 0xa8, 0x06, 0x08, 0x23, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x38, 0x02, 0x00, 0x04, 0x12, 0x04, 0xa9, 0x06, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x38, 0x02, 0x00, 0x12, 0x04, 0xa9, 0x06, 0x02, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x38, - 0x02, 0x00, 0x05, 0x12, 0x04, 0xa9, 0x06, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x38, 0x02, - 0x00, 0x01, 0x12, 0x04, 0xa9, 0x06, 0x12, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x38, 0x02, 0x00, - 0x03, 0x12, 0x04, 0xa9, 0x06, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x38, 0x02, 0x00, 0x08, - 0x12, 0x04, 0xa9, 0x06, 0x27, 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x38, 0x02, 0x00, 0x08, 0x9c, - 0x08, 0x00, 0x12, 0x04, 0xa9, 0x06, 0x28, 0x4e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x39, 0x12, 0x06, - 0xac, 0x06, 0x00, 0xae, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x39, 0x01, 0x12, 0x04, 0xac, - 0x06, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x04, 0x12, 0x04, 0xad, 0x06, - 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x39, 0x02, 0x00, 0x12, 0x04, 0xad, 0x06, 0x02, 0x43, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x06, 0x12, 0x04, 0xad, 0x06, 0x0b, 0x0f, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x01, 0x12, 0x04, 0xad, 0x06, 0x10, 0x15, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x03, 0x12, 0x04, 0xad, 0x06, 0x18, 0x19, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x39, 0x02, 0x00, 0x08, 0x12, 0x04, 0xad, 0x06, 0x1a, 0x42, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x39, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xad, 0x06, 0x1b, 0x41, 0x0a, 0x0c, - 0x0a, 0x02, 0x04, 0x3a, 0x12, 0x06, 0xb0, 0x06, 0x00, 0xb5, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, - 0x04, 0x3a, 0x01, 0x12, 0x04, 0xb0, 0x06, 0x08, 0x1f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x3a, 0x08, - 0x00, 0x12, 0x06, 0xb1, 0x06, 0x02, 0xb4, 0x06, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x08, - 0x00, 0x01, 0x12, 0x04, 0xb1, 0x06, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x00, - 0x06, 0x12, 0x04, 0xb2, 0x06, 0x04, 0x25, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3a, 0x02, 0x00, 0x12, - 0x04, 0xb2, 0x06, 0x04, 0x58, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x00, 0x01, 0x12, 0x04, - 0xb2, 0x06, 0x26, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb2, - 0x06, 0x42, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb2, 0x06, - 0x44, 0x57, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x3a, 0x02, 0x00, 0x08, 0x03, 0x12, 0x04, 0xb2, 0x06, - 0x45, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x01, 0x06, 0x12, 0x04, 0xb3, 0x06, 0x04, - 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3a, 0x02, 0x01, 0x12, 0x04, 0xb3, 0x06, 0x04, 0x33, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb3, 0x06, 0x1c, 0x2e, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb3, 0x06, 0x31, 0x32, 0x0a, 0x39, 0x0a, - 0x02, 0x04, 0x3b, 0x12, 0x06, 0xb8, 0x06, 0x00, 0xc3, 0x06, 0x01, 0x1a, 0x2b, 0x20, 0x44, 0x65, - 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x43, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3b, 0x01, 0x12, - 0x04, 0xb8, 0x06, 0x08, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x00, 0x05, 0x12, 0x04, - 0xba, 0x06, 0x02, 0x08, 0x0a, 0x97, 0x01, 0x0a, 0x04, 0x04, 0x3b, 0x02, 0x00, 0x12, 0x04, 0xba, - 0x06, 0x02, 0x48, 0x1a, 0x88, 0x01, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x49, 0x66, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x60, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xba, 0x06, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x3b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xba, 0x06, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x3b, 0x02, 0x00, 0x08, 0x12, 0x04, 0xba, 0x06, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x3b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xba, 0x06, 0x20, 0x46, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x3b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xbb, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x3b, 0x02, 0x01, 0x12, 0x04, 0xbb, 0x06, 0x02, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, - 0x02, 0x01, 0x01, 0x12, 0x04, 0xbb, 0x06, 0x09, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, - 0x01, 0x03, 0x12, 0x04, 0xbb, 0x06, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x01, - 0x08, 0x12, 0x04, 0xbb, 0x06, 0x1a, 0x42, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3b, 0x02, 0x01, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbb, 0x06, 0x1b, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, - 0x02, 0x06, 0x12, 0x04, 0xbc, 0x06, 0x02, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3b, 0x02, 0x02, - 0x12, 0x04, 0xbc, 0x06, 0x02, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x02, 0x01, 0x12, - 0x04, 0xbc, 0x06, 0x16, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x02, 0x03, 0x12, 0x04, - 0xbc, 0x06, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x02, 0x08, 0x12, 0x04, 0xbc, - 0x06, 0x25, 0x4d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3b, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xbc, 0x06, 0x26, 0x4c, 0x0a, 0x9b, 0x01, 0x0a, 0x04, 0x04, 0x3b, 0x08, 0x00, 0x12, 0x06, - 0xbe, 0x06, 0x02, 0xc2, 0x06, 0x03, 0x1a, 0x8a, 0x01, 0x20, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x61, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x65, 0x6e, 0x63, 0x6f, 0x64, - 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x31, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x2e, 0x20, 0x45, 0x6e, - 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x08, 0x00, 0x01, 0x12, 0x04, 0xbe, 0x06, - 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x03, 0x05, 0x12, 0x04, 0xbf, 0x06, 0x04, - 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3b, 0x02, 0x03, 0x12, 0x04, 0xbf, 0x06, 0x04, 0x16, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x03, 0x01, 0x12, 0x04, 0xbf, 0x06, 0x0b, 0x11, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x03, 0x03, 0x12, 0x04, 0xbf, 0x06, 0x14, 0x15, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x3b, 0x02, 0x04, 0x05, 0x12, 0x04, 0xc0, 0x06, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x3b, 0x02, 0x04, 0x12, 0x04, 0xc0, 0x06, 0x04, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, - 0x02, 0x04, 0x01, 0x12, 0x04, 0xc0, 0x06, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, - 0x04, 0x03, 0x12, 0x04, 0xc0, 0x06, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x05, - 0x06, 0x12, 0x04, 0xc1, 0x06, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3b, 0x02, 0x05, 0x12, - 0x04, 0xc1, 0x06, 0x04, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x05, 0x01, 0x12, 0x04, - 0xc1, 0x06, 0x17, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x05, 0x03, 0x12, 0x04, 0xc1, - 0x06, 0x24, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x3c, 0x12, 0x04, 0xc4, 0x06, 0x00, 0x1d, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x3c, 0x01, 0x12, 0x04, 0xc4, 0x06, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x02, - 0x05, 0x02, 0x12, 0x06, 0xc5, 0x06, 0x00, 0xcd, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x02, - 0x01, 0x12, 0x04, 0xc5, 0x06, 0x05, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x00, 0x01, - 0x12, 0x04, 0xc6, 0x06, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x00, 0x12, 0x04, - 0xc6, 0x06, 0x02, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x00, 0x02, 0x12, 0x04, 0xc6, - 0x06, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc6, 0x06, - 0x27, 0x3a, 0x0a, 0x0e, 0x0a, 0x06, 0x05, 0x02, 0x02, 0x00, 0x03, 0x01, 0x12, 0x04, 0xc6, 0x06, - 0x28, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc7, 0x06, 0x02, - 0x0b, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc7, 0x06, 0x02, 0x10, 0x0a, - 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x01, 0x02, 0x12, 0x04, 0xc7, 0x06, 0x0e, 0x0f, 0x0a, 0x0d, - 0x0a, 0x05, 0x05, 0x02, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc8, 0x06, 0x02, 0x14, 0x0a, 0x0c, 0x0a, - 0x04, 0x05, 0x02, 0x02, 0x02, 0x12, 0x04, 0xc8, 0x06, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x02, 0x02, 0x02, 0x02, 0x12, 0x04, 0xc8, 0x06, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, - 0x02, 0x03, 0x01, 0x12, 0x04, 0xc9, 0x06, 0x02, 0x0e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x02, 0x02, - 0x03, 0x12, 0x04, 0xc9, 0x06, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x03, 0x02, - 0x12, 0x04, 0xc9, 0x06, 0x11, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x04, 0x01, 0x12, - 0x04, 0xca, 0x06, 0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x04, 0x12, 0x04, 0xca, - 0x06, 0x02, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x04, 0x02, 0x12, 0x04, 0xca, 0x06, - 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x05, 0x01, 0x12, 0x04, 0xcb, 0x06, 0x02, - 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x05, 0x12, 0x04, 0xcb, 0x06, 0x02, 0x0c, 0x0a, - 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x05, 0x02, 0x12, 0x04, 0xcb, 0x06, 0x0a, 0x0b, 0x0a, 0x0d, - 0x0a, 0x05, 0x05, 0x02, 0x02, 0x06, 0x01, 0x12, 0x04, 0xcc, 0x06, 0x02, 0x0b, 0x0a, 0x0c, 0x0a, - 0x04, 0x05, 0x02, 0x02, 0x06, 0x12, 0x04, 0xcc, 0x06, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x05, - 0x02, 0x02, 0x06, 0x02, 0x12, 0x04, 0xcc, 0x06, 0x0e, 0x0f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x3d, - 0x12, 0x06, 0xce, 0x06, 0x00, 0xd6, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3d, 0x01, 0x12, - 0x04, 0xce, 0x06, 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x06, 0x12, 0x04, - 0xcf, 0x06, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3d, 0x02, 0x00, 0x12, 0x04, 0xcf, 0x06, - 0x02, 0x60, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x01, 0x12, 0x04, 0xcf, 0x06, 0x20, - 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x03, 0x12, 0x04, 0xcf, 0x06, 0x35, 0x36, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x08, 0x12, 0x04, 0xcf, 0x06, 0x37, 0x5f, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x3d, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcf, 0x06, 0x38, - 0x5e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd0, 0x06, 0x02, 0x08, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3d, 0x02, 0x01, 0x12, 0x04, 0xd0, 0x06, 0x02, 0x41, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd0, 0x06, 0x09, 0x13, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x3d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd0, 0x06, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x3d, 0x02, 0x01, 0x08, 0x12, 0x04, 0xd0, 0x06, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x3d, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd0, 0x06, 0x19, 0x3f, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x3d, 0x02, 0x02, 0x04, 0x12, 0x04, 0xd2, 0x06, 0x02, 0x0a, 0x0a, 0x55, 0x0a, 0x04, - 0x04, 0x3d, 0x02, 0x02, 0x12, 0x04, 0xd2, 0x06, 0x02, 0x75, 0x1a, 0x47, 0x20, 0x54, 0x68, 0x69, - 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, - 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x02, 0x06, 0x12, 0x04, 0xd2, 0x06, - 0x0b, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x02, 0x01, 0x12, 0x04, 0xd2, 0x06, 0x32, - 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x02, 0x03, 0x12, 0x04, 0xd2, 0x06, 0x4a, 0x4b, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x02, 0x08, 0x12, 0x04, 0xd2, 0x06, 0x4c, 0x74, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x3d, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd2, 0x06, 0x4d, - 0x73, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x03, 0x04, 0x12, 0x04, 0xd5, 0x06, 0x02, 0x0a, - 0x0a, 0x97, 0x01, 0x0a, 0x04, 0x04, 0x3d, 0x02, 0x03, 0x12, 0x05, 0xd5, 0x06, 0x02, 0x8b, 0x01, - 0x1a, 0x87, 0x01, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, - 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2e, 0x0a, 0x20, 0x54, 0x72, 0x61, 0x63, 0x6b, - 0x73, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, - 0x02, 0x03, 0x06, 0x12, 0x04, 0xd5, 0x06, 0x0b, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, - 0x03, 0x01, 0x12, 0x04, 0xd5, 0x06, 0x3b, 0x5a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x03, - 0x03, 0x12, 0x04, 0xd5, 0x06, 0x5d, 0x5e, 0x0a, 0x0e, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x03, 0x08, - 0x12, 0x05, 0xd5, 0x06, 0x5f, 0x8a, 0x01, 0x0a, 0x11, 0x0a, 0x08, 0x04, 0x3d, 0x02, 0x03, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x05, 0xd5, 0x06, 0x60, 0x89, 0x01, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x3e, - 0x12, 0x06, 0xd7, 0x06, 0x00, 0xe0, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3e, 0x01, 0x12, - 0x04, 0xd7, 0x06, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x00, 0x05, 0x12, 0x04, - 0xd9, 0x06, 0x02, 0x08, 0x0a, 0x77, 0x0a, 0x04, 0x04, 0x3e, 0x02, 0x00, 0x12, 0x04, 0xd9, 0x06, - 0x02, 0x3b, 0x1a, 0x69, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x4d, 0x75, 0x73, - 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x68, 0x65, - 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x20, - 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x3e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd9, 0x06, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x3e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd9, 0x06, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x3e, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd9, 0x06, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3e, - 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd9, 0x06, 0x13, 0x39, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x3e, 0x02, 0x01, 0x05, 0x12, 0x04, 0xdc, 0x06, 0x02, 0x08, 0x0a, 0xb9, 0x01, 0x0a, 0x04, - 0x04, 0x3e, 0x02, 0x01, 0x12, 0x04, 0xdc, 0x06, 0x02, 0x40, 0x1a, 0xaa, 0x01, 0x20, 0x44, 0x65, - 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x49, 0x66, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x20, 0x61, 0x73, 0x20, 0x60, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x6e, - 0x61, 0x6d, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x01, 0x01, - 0x12, 0x04, 0xdc, 0x06, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x01, 0x03, 0x12, - 0x04, 0xdc, 0x06, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x01, 0x08, 0x12, 0x04, - 0xdc, 0x06, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3e, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, - 0x12, 0x04, 0xdc, 0x06, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x02, 0x04, 0x12, - 0x04, 0xdf, 0x06, 0x02, 0x0a, 0x0a, 0xc6, 0x01, 0x0a, 0x04, 0x04, 0x3e, 0x02, 0x02, 0x12, 0x04, - 0xdf, 0x06, 0x02, 0x5d, 0x1a, 0xb7, 0x01, 0x20, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x0a, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, 0x6f, - 0x66, 0x20, 0x6c, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x70, 0x20, 0x61, 0x20, 0x6e, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x62, 0x79, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x30, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, + 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x65, 0x72, 0x63, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, + 0x01, 0x01, 0x12, 0x04, 0xfa, 0x05, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, + 0x03, 0x12, 0x04, 0xfa, 0x05, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x01, 0x08, + 0x12, 0x04, 0xfa, 0x05, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x33, 0x02, 0x01, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xfa, 0x05, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x02, + 0x05, 0x12, 0x04, 0x80, 0x06, 0x02, 0x08, 0x0a, 0xf8, 0x01, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x02, + 0x12, 0x04, 0x80, 0x06, 0x02, 0x41, 0x1a, 0xe9, 0x01, 0x20, 0x41, 0x20, 0x70, 0x61, 0x67, 0x65, + 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x20, 0x60, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x60, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x20, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, 0x0a, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x60, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x02, 0x01, 0x12, 0x04, 0x80, 0x06, 0x09, + 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x02, 0x03, 0x12, 0x04, 0x80, 0x06, 0x16, 0x17, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x02, 0x08, 0x12, 0x04, 0x80, 0x06, 0x18, 0x40, 0x0a, + 0x10, 0x0a, 0x08, 0x04, 0x33, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x80, 0x06, 0x19, + 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x03, 0x05, 0x12, 0x04, 0x85, 0x06, 0x02, 0x08, + 0x0a, 0xef, 0x02, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x03, 0x12, 0x04, 0x85, 0x06, 0x02, 0x14, 0x1a, + 0xe0, 0x02, 0x20, 0x41, 0x20, 0x5b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x20, 0x28, 0x43, 0x45, 0x4c, 0x29, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x63, 0x65, 0x6c, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x29, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x20, 0x41, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x60, 0x2c, + 0x20, 0x60, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x60, 0x2c, 0x20, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x60, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, + 0x62, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x43, 0x45, 0x4c, 0x73, 0x2c, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x20, 0x67, 0x75, 0x69, 0x64, + 0x65, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x65, 0x6c, + 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x2f, 0x64, 0x6f, 0x63, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x64, 0x65, 0x66, 0x2e, 0x6d, 0x64, + 0x23, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x03, 0x01, 0x12, 0x04, 0x85, 0x06, 0x09, + 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x03, 0x03, 0x12, 0x04, 0x85, 0x06, 0x12, 0x13, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x34, 0x12, 0x06, 0x88, 0x06, 0x00, 0x99, 0x06, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x34, 0x01, 0x12, 0x04, 0x88, 0x06, 0x08, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x34, 0x02, 0x00, 0x05, 0x12, 0x04, 0x89, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, + 0x02, 0x00, 0x12, 0x04, 0x89, 0x06, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x00, + 0x01, 0x12, 0x04, 0x89, 0x06, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x00, 0x03, + 0x12, 0x04, 0x89, 0x06, 0x13, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x00, 0x08, 0x12, + 0x04, 0x89, 0x06, 0x15, 0x3d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x00, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0x89, 0x06, 0x16, 0x3c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x05, + 0x12, 0x04, 0x8a, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x01, 0x12, 0x04, + 0x8a, 0x06, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8a, + 0x06, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8a, 0x06, + 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x08, 0x12, 0x04, 0x8a, 0x06, 0x1d, + 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8a, + 0x06, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x05, 0x12, 0x04, 0x8b, 0x06, + 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x02, 0x12, 0x04, 0x8b, 0x06, 0x02, 0x3e, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x01, 0x12, 0x04, 0x8b, 0x06, 0x09, 0x10, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x03, 0x12, 0x04, 0x8b, 0x06, 0x13, 0x14, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x08, 0x12, 0x04, 0x8b, 0x06, 0x15, 0x3d, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x34, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8b, 0x06, 0x16, 0x3c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x03, 0x06, 0x12, 0x04, 0x8c, 0x06, 0x02, 0x1b, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x34, 0x02, 0x03, 0x12, 0x04, 0x8c, 0x06, 0x02, 0x56, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x34, 0x02, 0x03, 0x01, 0x12, 0x04, 0x8c, 0x06, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x34, 0x02, 0x03, 0x03, 0x12, 0x04, 0x8c, 0x06, 0x2b, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, + 0x02, 0x03, 0x08, 0x12, 0x04, 0x8c, 0x06, 0x2d, 0x55, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, + 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8c, 0x06, 0x2e, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x34, 0x02, 0x04, 0x05, 0x12, 0x04, 0x8d, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, + 0x02, 0x04, 0x12, 0x04, 0x8d, 0x06, 0x02, 0x49, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, + 0x01, 0x12, 0x04, 0x8d, 0x06, 0x09, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, 0x03, + 0x12, 0x04, 0x8d, 0x06, 0x1e, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, 0x08, 0x12, + 0x04, 0x8d, 0x06, 0x20, 0x48, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x04, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0x8d, 0x06, 0x21, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x05, 0x05, + 0x12, 0x04, 0x8e, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x05, 0x12, 0x04, + 0x8e, 0x06, 0x02, 0x44, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x05, 0x01, 0x12, 0x04, 0x8e, + 0x06, 0x09, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x05, 0x03, 0x12, 0x04, 0x8e, 0x06, + 0x19, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x05, 0x08, 0x12, 0x04, 0x8e, 0x06, 0x1b, + 0x43, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x05, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8e, + 0x06, 0x1c, 0x42, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x06, 0x05, 0x12, 0x04, 0x8f, 0x06, + 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x06, 0x12, 0x04, 0x8f, 0x06, 0x02, 0x4f, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x06, 0x01, 0x12, 0x04, 0x8f, 0x06, 0x09, 0x21, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x06, 0x03, 0x12, 0x04, 0x8f, 0x06, 0x24, 0x25, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x34, 0x02, 0x06, 0x08, 0x12, 0x04, 0x8f, 0x06, 0x26, 0x4e, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x34, 0x02, 0x06, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x8f, 0x06, 0x27, 0x4d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x07, 0x06, 0x12, 0x04, 0x90, 0x06, 0x02, 0x1b, 0x0a, 0x0e, + 0x0a, 0x04, 0x04, 0x34, 0x02, 0x07, 0x12, 0x06, 0x90, 0x06, 0x02, 0x93, 0x06, 0x04, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x34, 0x02, 0x07, 0x01, 0x12, 0x04, 0x90, 0x06, 0x1c, 0x28, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x34, 0x02, 0x07, 0x03, 0x12, 0x04, 0x90, 0x06, 0x2b, 0x2c, 0x0a, 0x0f, 0x0a, 0x05, + 0x04, 0x34, 0x02, 0x07, 0x08, 0x12, 0x06, 0x90, 0x06, 0x2d, 0x93, 0x06, 0x03, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x34, 0x02, 0x07, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x91, 0x06, 0x04, 0x2a, 0x0a, + 0x0e, 0x0a, 0x06, 0x04, 0x34, 0x02, 0x07, 0x08, 0x03, 0x12, 0x04, 0x92, 0x06, 0x04, 0x15, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x08, 0x06, 0x12, 0x04, 0x95, 0x06, 0x02, 0x1b, 0x0a, 0x4a, + 0x0a, 0x04, 0x04, 0x34, 0x02, 0x08, 0x12, 0x04, 0x95, 0x06, 0x02, 0x57, 0x1a, 0x3c, 0x20, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x72, 0x75, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x61, 0x73, + 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, + 0x02, 0x08, 0x01, 0x12, 0x04, 0x95, 0x06, 0x1c, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, + 0x08, 0x03, 0x12, 0x04, 0x95, 0x06, 0x2c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x08, + 0x08, 0x12, 0x04, 0x95, 0x06, 0x2e, 0x56, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x08, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0x95, 0x06, 0x2f, 0x55, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, + 0x09, 0x05, 0x12, 0x04, 0x98, 0x06, 0x02, 0x06, 0x0a, 0x4b, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x09, + 0x12, 0x04, 0x98, 0x06, 0x02, 0x41, 0x1a, 0x3d, 0x20, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x64, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, + 0x6e, 0x75, 0x6c, 0x6c, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x09, 0x01, 0x12, 0x04, + 0x98, 0x06, 0x07, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x09, 0x03, 0x12, 0x04, 0x98, + 0x06, 0x15, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x09, 0x08, 0x12, 0x04, 0x98, 0x06, + 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x34, 0x02, 0x09, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0x98, 0x06, 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x35, 0x12, 0x06, 0x9b, 0x06, 0x00, 0x9e, + 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x35, 0x01, 0x12, 0x04, 0x9b, 0x06, 0x08, 0x20, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, 0x00, 0x04, 0x12, 0x04, 0x9c, 0x06, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x35, 0x02, 0x00, 0x12, 0x04, 0x9c, 0x06, 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x35, 0x02, 0x00, 0x06, 0x12, 0x04, 0x9c, 0x06, 0x0b, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x35, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9c, 0x06, 0x17, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, + 0x02, 0x00, 0x03, 0x12, 0x04, 0x9c, 0x06, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, + 0x00, 0x08, 0x12, 0x04, 0x9c, 0x06, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x35, 0x02, 0x00, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9c, 0x06, 0x2a, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, + 0x02, 0x01, 0x05, 0x12, 0x04, 0x9d, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x35, 0x02, + 0x01, 0x12, 0x04, 0x9d, 0x06, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, 0x01, 0x01, + 0x12, 0x04, 0x9d, 0x06, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x35, 0x02, 0x01, 0x03, 0x12, + 0x04, 0x9d, 0x06, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x36, 0x12, 0x06, 0xa0, 0x06, 0x00, + 0xa2, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x36, 0x01, 0x12, 0x04, 0xa0, 0x06, 0x08, 0x1d, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x36, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa1, 0x06, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x36, 0x02, 0x00, 0x12, 0x04, 0xa1, 0x06, 0x02, 0x46, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x36, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa1, 0x06, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x36, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa1, 0x06, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x36, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa1, 0x06, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x36, + 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa1, 0x06, 0x1e, 0x44, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x37, 0x12, 0x06, 0xa4, 0x06, 0x00, 0xa6, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x37, + 0x01, 0x12, 0x04, 0xa4, 0x06, 0x08, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x06, + 0x12, 0x04, 0xa5, 0x06, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x37, 0x02, 0x00, 0x12, 0x04, + 0xa5, 0x06, 0x02, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa5, + 0x06, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa5, 0x06, + 0x0e, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x37, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa5, 0x06, 0x10, + 0x38, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x37, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa5, + 0x06, 0x11, 0x37, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x38, 0x12, 0x06, 0xa8, 0x06, 0x00, 0xaa, 0x06, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x38, 0x01, 0x12, 0x04, 0xa8, 0x06, 0x08, 0x23, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x38, 0x02, 0x00, 0x04, 0x12, 0x04, 0xa9, 0x06, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x38, 0x02, 0x00, 0x12, 0x04, 0xa9, 0x06, 0x02, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x38, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa9, 0x06, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x38, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xa9, 0x06, 0x12, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x38, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xa9, 0x06, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x38, 0x02, 0x00, + 0x08, 0x12, 0x04, 0xa9, 0x06, 0x27, 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x38, 0x02, 0x00, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa9, 0x06, 0x28, 0x4e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x39, 0x12, + 0x06, 0xac, 0x06, 0x00, 0xae, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x39, 0x01, 0x12, 0x04, + 0xac, 0x06, 0x08, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x04, 0x12, 0x04, 0xad, + 0x06, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x39, 0x02, 0x00, 0x12, 0x04, 0xad, 0x06, 0x02, + 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x06, 0x12, 0x04, 0xad, 0x06, 0x0b, 0x0f, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x01, 0x12, 0x04, 0xad, 0x06, 0x10, 0x15, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x03, 0x12, 0x04, 0xad, 0x06, 0x18, 0x19, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x39, 0x02, 0x00, 0x08, 0x12, 0x04, 0xad, 0x06, 0x1a, 0x42, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x39, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xad, 0x06, 0x1b, 0x41, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x3a, 0x12, 0x06, 0xb0, 0x06, 0x00, 0xb5, 0x06, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x3a, 0x01, 0x12, 0x04, 0xb0, 0x06, 0x08, 0x1f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x3a, + 0x08, 0x00, 0x12, 0x06, 0xb1, 0x06, 0x02, 0xb4, 0x06, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, + 0x08, 0x00, 0x01, 0x12, 0x04, 0xb1, 0x06, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, + 0x00, 0x06, 0x12, 0x04, 0xb2, 0x06, 0x04, 0x25, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3a, 0x02, 0x00, + 0x12, 0x04, 0xb2, 0x06, 0x04, 0x58, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xb2, 0x06, 0x26, 0x3f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xb2, 0x06, 0x42, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb2, + 0x06, 0x44, 0x57, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x3a, 0x02, 0x00, 0x08, 0x03, 0x12, 0x04, 0xb2, + 0x06, 0x45, 0x56, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x01, 0x06, 0x12, 0x04, 0xb3, 0x06, + 0x04, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3a, 0x02, 0x01, 0x12, 0x04, 0xb3, 0x06, 0x04, 0x33, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb3, 0x06, 0x1c, 0x2e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x3a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb3, 0x06, 0x31, 0x32, 0x0a, 0x39, + 0x0a, 0x02, 0x04, 0x3b, 0x12, 0x06, 0xb8, 0x06, 0x00, 0xc3, 0x06, 0x01, 0x1a, 0x2b, 0x20, 0x44, + 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3b, 0x01, + 0x12, 0x04, 0xb8, 0x06, 0x08, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xba, 0x06, 0x02, 0x08, 0x0a, 0x97, 0x01, 0x0a, 0x04, 0x04, 0x3b, 0x02, 0x00, 0x12, 0x04, + 0xba, 0x06, 0x02, 0x48, 0x1a, 0x88, 0x01, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x49, + 0x66, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x73, 0x20, 0x60, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x00, 0x01, 0x12, 0x04, 0xba, 0x06, 0x09, 0x1a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x00, 0x03, 0x12, 0x04, 0xba, 0x06, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x3b, 0x02, 0x00, 0x08, 0x12, 0x04, 0xba, 0x06, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x3b, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xba, 0x06, 0x20, 0x46, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xbb, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x3b, 0x02, 0x01, 0x12, 0x04, 0xbb, 0x06, 0x02, 0x43, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x3b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xbb, 0x06, 0x09, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, + 0x02, 0x01, 0x03, 0x12, 0x04, 0xbb, 0x06, 0x18, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, + 0x01, 0x08, 0x12, 0x04, 0xbb, 0x06, 0x1a, 0x42, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3b, 0x02, 0x01, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xbb, 0x06, 0x1b, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, + 0x02, 0x02, 0x06, 0x12, 0x04, 0xbc, 0x06, 0x02, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3b, 0x02, + 0x02, 0x12, 0x04, 0xbc, 0x06, 0x02, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x02, 0x01, + 0x12, 0x04, 0xbc, 0x06, 0x16, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x02, 0x03, 0x12, + 0x04, 0xbc, 0x06, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x02, 0x08, 0x12, 0x04, + 0xbc, 0x06, 0x25, 0x4d, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3b, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xbc, 0x06, 0x26, 0x4c, 0x0a, 0x9b, 0x01, 0x0a, 0x04, 0x04, 0x3b, 0x08, 0x00, 0x12, + 0x06, 0xbe, 0x06, 0x02, 0xc2, 0x06, 0x03, 0x1a, 0x8a, 0x01, 0x20, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x65, 0x69, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x61, 0x20, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x61, + 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x20, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x65, 0x6e, 0x63, 0x6f, + 0x64, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x31, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x2e, 0x20, 0x45, + 0x6e, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x08, 0x00, 0x01, 0x12, 0x04, 0xbe, + 0x06, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x03, 0x05, 0x12, 0x04, 0xbf, 0x06, + 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3b, 0x02, 0x03, 0x12, 0x04, 0xbf, 0x06, 0x04, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x03, 0x01, 0x12, 0x04, 0xbf, 0x06, 0x0b, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x03, 0x03, 0x12, 0x04, 0xbf, 0x06, 0x14, 0x15, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x04, 0x05, 0x12, 0x04, 0xc0, 0x06, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x3b, 0x02, 0x04, 0x12, 0x04, 0xc0, 0x06, 0x04, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x3b, 0x02, 0x04, 0x01, 0x12, 0x04, 0xc0, 0x06, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, + 0x02, 0x04, 0x03, 0x12, 0x04, 0xc0, 0x06, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, + 0x05, 0x06, 0x12, 0x04, 0xc1, 0x06, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3b, 0x02, 0x05, + 0x12, 0x04, 0xc1, 0x06, 0x04, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x05, 0x01, 0x12, + 0x04, 0xc1, 0x06, 0x17, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3b, 0x02, 0x05, 0x03, 0x12, 0x04, + 0xc1, 0x06, 0x24, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x3c, 0x12, 0x04, 0xc4, 0x06, 0x00, 0x1d, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3c, 0x01, 0x12, 0x04, 0xc4, 0x06, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, + 0x02, 0x05, 0x02, 0x12, 0x06, 0xc5, 0x06, 0x00, 0xcd, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, + 0x02, 0x01, 0x12, 0x04, 0xc5, 0x06, 0x05, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xc6, 0x06, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x00, 0x12, + 0x04, 0xc6, 0x06, 0x02, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x00, 0x02, 0x12, 0x04, + 0xc6, 0x06, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc6, + 0x06, 0x27, 0x3a, 0x0a, 0x0e, 0x0a, 0x06, 0x05, 0x02, 0x02, 0x00, 0x03, 0x01, 0x12, 0x04, 0xc6, + 0x06, 0x28, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc7, 0x06, + 0x02, 0x0b, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc7, 0x06, 0x02, 0x10, + 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x01, 0x02, 0x12, 0x04, 0xc7, 0x06, 0x0e, 0x0f, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc8, 0x06, 0x02, 0x14, 0x0a, 0x0c, + 0x0a, 0x04, 0x05, 0x02, 0x02, 0x02, 0x12, 0x04, 0xc8, 0x06, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x02, 0x02, 0x02, 0x02, 0x12, 0x04, 0xc8, 0x06, 0x17, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x02, 0x02, 0x03, 0x01, 0x12, 0x04, 0xc9, 0x06, 0x02, 0x0e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x02, + 0x02, 0x03, 0x12, 0x04, 0xc9, 0x06, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x03, + 0x02, 0x12, 0x04, 0xc9, 0x06, 0x11, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x04, 0x01, + 0x12, 0x04, 0xca, 0x06, 0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x04, 0x12, 0x04, + 0xca, 0x06, 0x02, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x04, 0x02, 0x12, 0x04, 0xca, + 0x06, 0x1a, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x05, 0x01, 0x12, 0x04, 0xcb, 0x06, + 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x05, 0x12, 0x04, 0xcb, 0x06, 0x02, 0x0c, + 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x05, 0x02, 0x12, 0x04, 0xcb, 0x06, 0x0a, 0x0b, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x06, 0x01, 0x12, 0x04, 0xcc, 0x06, 0x02, 0x0b, 0x0a, 0x0c, + 0x0a, 0x04, 0x05, 0x02, 0x02, 0x06, 0x12, 0x04, 0xcc, 0x06, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x02, 0x02, 0x06, 0x02, 0x12, 0x04, 0xcc, 0x06, 0x0e, 0x0f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x3d, 0x12, 0x06, 0xce, 0x06, 0x00, 0xd6, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3d, 0x01, + 0x12, 0x04, 0xce, 0x06, 0x08, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x06, 0x12, + 0x04, 0xcf, 0x06, 0x02, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3d, 0x02, 0x00, 0x12, 0x04, 0xcf, + 0x06, 0x02, 0x60, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x01, 0x12, 0x04, 0xcf, 0x06, + 0x20, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x03, 0x12, 0x04, 0xcf, 0x06, 0x35, + 0x36, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x00, 0x08, 0x12, 0x04, 0xcf, 0x06, 0x37, 0x5f, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3d, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xcf, 0x06, + 0x38, 0x5e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd0, 0x06, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3d, 0x02, 0x01, 0x12, 0x04, 0xd0, 0x06, 0x02, 0x41, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd0, 0x06, 0x09, 0x13, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd0, 0x06, 0x16, 0x17, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x3d, 0x02, 0x01, 0x08, 0x12, 0x04, 0xd0, 0x06, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x3d, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd0, 0x06, 0x19, 0x3f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x02, 0x04, 0x12, 0x04, 0xd2, 0x06, 0x02, 0x0a, 0x0a, 0x55, 0x0a, + 0x04, 0x04, 0x3d, 0x02, 0x02, 0x12, 0x04, 0xd2, 0x06, 0x02, 0x75, 0x1a, 0x47, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x02, 0x06, 0x12, 0x04, 0xd2, + 0x06, 0x0b, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x02, 0x01, 0x12, 0x04, 0xd2, 0x06, + 0x32, 0x47, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x02, 0x03, 0x12, 0x04, 0xd2, 0x06, 0x4a, + 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x02, 0x08, 0x12, 0x04, 0xd2, 0x06, 0x4c, 0x74, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3d, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd2, 0x06, + 0x4d, 0x73, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x03, 0x04, 0x12, 0x04, 0xd5, 0x06, 0x02, + 0x0a, 0x0a, 0x97, 0x01, 0x0a, 0x04, 0x04, 0x3d, 0x02, 0x03, 0x12, 0x05, 0xd5, 0x06, 0x02, 0x8b, + 0x01, 0x1a, 0x87, 0x01, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, + 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2e, 0x0a, 0x20, 0x54, 0x72, 0x61, 0x63, + 0x6b, 0x73, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x64, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x3d, 0x02, 0x03, 0x06, 0x12, 0x04, 0xd5, 0x06, 0x0b, 0x3a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, + 0x02, 0x03, 0x01, 0x12, 0x04, 0xd5, 0x06, 0x3b, 0x5a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3d, 0x02, + 0x03, 0x03, 0x12, 0x04, 0xd5, 0x06, 0x5d, 0x5e, 0x0a, 0x0e, 0x0a, 0x05, 0x04, 0x3d, 0x02, 0x03, + 0x08, 0x12, 0x05, 0xd5, 0x06, 0x5f, 0x8a, 0x01, 0x0a, 0x11, 0x0a, 0x08, 0x04, 0x3d, 0x02, 0x03, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x05, 0xd5, 0x06, 0x60, 0x89, 0x01, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x3e, 0x12, 0x06, 0xd7, 0x06, 0x00, 0xe0, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3e, 0x01, + 0x12, 0x04, 0xd7, 0x06, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xd9, 0x06, 0x02, 0x08, 0x0a, 0x77, 0x0a, 0x04, 0x04, 0x3e, 0x02, 0x00, 0x12, 0x04, 0xd9, + 0x06, 0x02, 0x3b, 0x1a, 0x69, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x4d, 0x75, + 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x68, + 0x65, 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x02, 0x05, 0x12, 0x04, 0xdf, 0x06, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x3e, 0x02, 0x02, 0x01, 0x12, 0x04, 0xdf, 0x06, 0x12, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x3e, 0x02, 0x02, 0x03, 0x12, 0x04, 0xdf, 0x06, 0x32, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x3e, 0x02, 0x02, 0x08, 0x12, 0x04, 0xdf, 0x06, 0x34, 0x5c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3e, - 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdf, 0x06, 0x35, 0x5b, 0x0a, 0x0c, 0x0a, 0x02, - 0x04, 0x3f, 0x12, 0x06, 0xe2, 0x06, 0x00, 0xe8, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x3f, - 0x01, 0x12, 0x04, 0xe2, 0x06, 0x08, 0x1f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x3f, 0x08, 0x00, 0x12, - 0x06, 0xe3, 0x06, 0x02, 0xe7, 0x06, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x08, 0x00, 0x01, - 0x12, 0x04, 0xe3, 0x06, 0x08, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x00, 0x06, 0x12, - 0x04, 0xe4, 0x06, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3f, 0x02, 0x00, 0x12, 0x04, 0xe4, - 0x06, 0x04, 0x35, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe4, 0x06, - 0x24, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe4, 0x06, 0x33, - 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x01, 0x06, 0x12, 0x04, 0xe5, 0x06, 0x04, 0x21, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3f, 0x02, 0x01, 0x12, 0x04, 0xe5, 0x06, 0x04, 0x31, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe5, 0x06, 0x22, 0x2c, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x3f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe5, 0x06, 0x2f, 0x30, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x3f, 0x02, 0x02, 0x06, 0x12, 0x04, 0xe6, 0x06, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x3f, 0x02, 0x02, 0x12, 0x04, 0xe6, 0x06, 0x04, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, - 0x02, 0x01, 0x12, 0x04, 0xe6, 0x06, 0x1f, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x02, - 0x03, 0x12, 0x04, 0xe6, 0x06, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x40, 0x12, 0x06, 0xea, - 0x06, 0x00, 0xec, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x40, 0x01, 0x12, 0x04, 0xea, 0x06, - 0x08, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x00, 0x04, 0x12, 0x04, 0xeb, 0x06, 0x02, - 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x40, 0x02, 0x00, 0x12, 0x04, 0xeb, 0x06, 0x02, 0x52, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x00, 0x05, 0x12, 0x04, 0xeb, 0x06, 0x0b, 0x11, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x40, 0x02, 0x00, 0x01, 0x12, 0x04, 0xeb, 0x06, 0x12, 0x24, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x40, 0x02, 0x00, 0x03, 0x12, 0x04, 0xeb, 0x06, 0x27, 0x28, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x40, 0x02, 0x00, 0x08, 0x12, 0x04, 0xeb, 0x06, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x40, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xeb, 0x06, 0x2a, 0x50, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x41, 0x12, 0x06, 0xee, 0x06, 0x00, 0xf0, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x41, 0x01, 0x12, 0x04, 0xee, 0x06, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x41, 0x02, 0x00, - 0x05, 0x12, 0x04, 0xef, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x41, 0x02, 0x00, 0x12, - 0x04, 0xef, 0x06, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x41, 0x02, 0x00, 0x01, 0x12, 0x04, - 0xef, 0x06, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x41, 0x02, 0x00, 0x03, 0x12, 0x04, 0xef, - 0x06, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x41, 0x02, 0x00, 0x08, 0x12, 0x04, 0xef, 0x06, - 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x41, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xef, 0x06, 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x42, 0x12, 0x06, 0xf2, 0x06, 0x00, 0xf7, - 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x42, 0x01, 0x12, 0x04, 0xf2, 0x06, 0x08, 0x25, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x00, 0x04, 0x12, 0x04, 0xf3, 0x06, 0x02, 0x0a, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x42, 0x02, 0x00, 0x12, 0x04, 0xf3, 0x06, 0x02, 0x47, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x42, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf3, 0x06, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x42, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf3, 0x06, 0x12, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, - 0x02, 0x00, 0x03, 0x12, 0x04, 0xf3, 0x06, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, - 0x00, 0x08, 0x12, 0x04, 0xf3, 0x06, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x42, 0x02, 0x00, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf3, 0x06, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, - 0x02, 0x01, 0x06, 0x12, 0x04, 0xf4, 0x06, 0x02, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x42, 0x02, - 0x01, 0x12, 0x04, 0xf4, 0x06, 0x02, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x01, 0x01, - 0x12, 0x04, 0xf4, 0x06, 0x25, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x01, 0x03, 0x12, - 0x04, 0xf4, 0x06, 0x37, 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x02, 0x04, 0x12, 0x04, - 0xf5, 0x06, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x42, 0x02, 0x02, 0x12, 0x04, 0xf5, 0x06, - 0x02, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x02, 0x05, 0x12, 0x04, 0xf5, 0x06, 0x0b, - 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf5, 0x06, 0x12, 0x25, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x02, 0x03, 0x12, 0x04, 0xf5, 0x06, 0x28, 0x29, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x03, 0x04, 0x12, 0x04, 0xf6, 0x06, 0x02, 0x0a, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x42, 0x02, 0x03, 0x12, 0x04, 0xf6, 0x06, 0x02, 0x37, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x42, 0x02, 0x03, 0x06, 0x12, 0x04, 0xf6, 0x06, 0x0b, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x42, 0x02, 0x03, 0x01, 0x12, 0x04, 0xf6, 0x06, 0x2a, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, - 0x02, 0x03, 0x03, 0x12, 0x04, 0xf6, 0x06, 0x35, 0x36, 0x0a, 0x3f, 0x0a, 0x02, 0x04, 0x43, 0x12, - 0x06, 0xfb, 0x06, 0x00, 0x84, 0x07, 0x01, 0x1a, 0x31, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x43, - 0x01, 0x12, 0x04, 0xfb, 0x06, 0x08, 0x1c, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x43, 0x07, 0x12, 0x04, - 0xfc, 0x06, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x43, 0x07, 0x03, 0x12, 0x04, 0xfc, 0x06, - 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x00, 0x04, 0x12, 0x04, 0xfd, 0x06, 0x02, - 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x43, 0x02, 0x00, 0x12, 0x04, 0xfd, 0x06, 0x02, 0x48, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x00, 0x05, 0x12, 0x04, 0xfd, 0x06, 0x0b, 0x11, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x43, 0x02, 0x00, 0x01, 0x12, 0x04, 0xfd, 0x06, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x43, 0x02, 0x00, 0x03, 0x12, 0x04, 0xfd, 0x06, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x43, 0x02, 0x00, 0x08, 0x12, 0x04, 0xfd, 0x06, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x43, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfd, 0x06, 0x20, 0x46, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x43, 0x02, 0x01, 0x06, 0x12, 0x04, 0xfe, 0x06, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x43, 0x02, 0x01, 0x12, 0x04, 0xfe, 0x06, 0x02, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, - 0x02, 0x01, 0x01, 0x12, 0x04, 0xfe, 0x06, 0x1d, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, - 0x01, 0x03, 0x12, 0x04, 0xfe, 0x06, 0x32, 0x33, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x43, 0x08, 0x00, - 0x12, 0x06, 0xff, 0x06, 0x02, 0x82, 0x07, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x08, 0x00, - 0x01, 0x12, 0x04, 0xff, 0x06, 0x08, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x02, 0x05, - 0x12, 0x04, 0x80, 0x07, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x43, 0x02, 0x02, 0x12, 0x04, - 0x80, 0x07, 0x04, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x02, 0x01, 0x12, 0x04, 0x80, - 0x07, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x02, 0x03, 0x12, 0x04, 0x80, 0x07, - 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x03, 0x06, 0x12, 0x04, 0x81, 0x07, 0x04, - 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x43, 0x02, 0x03, 0x12, 0x04, 0x81, 0x07, 0x04, 0x22, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x03, 0x01, 0x12, 0x04, 0x81, 0x07, 0x13, 0x1d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x43, 0x02, 0x03, 0x03, 0x12, 0x04, 0x81, 0x07, 0x20, 0x21, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x43, 0x02, 0x04, 0x05, 0x12, 0x04, 0x83, 0x07, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x43, 0x02, 0x04, 0x12, 0x04, 0x83, 0x07, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, - 0x02, 0x04, 0x01, 0x12, 0x04, 0x83, 0x07, 0x07, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, - 0x04, 0x03, 0x12, 0x04, 0x83, 0x07, 0x11, 0x12, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x44, 0x12, 0x06, - 0x85, 0x07, 0x00, 0x87, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x44, 0x01, 0x12, 0x04, 0x85, - 0x07, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x00, 0x04, 0x12, 0x04, 0x86, 0x07, - 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x44, 0x02, 0x00, 0x12, 0x04, 0x86, 0x07, 0x02, 0x1e, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x00, 0x05, 0x12, 0x04, 0x86, 0x07, 0x0b, 0x11, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x00, 0x01, 0x12, 0x04, 0x86, 0x07, 0x12, 0x19, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x44, 0x02, 0x00, 0x03, 0x12, 0x04, 0x86, 0x07, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, - 0x02, 0x04, 0x45, 0x12, 0x06, 0x88, 0x07, 0x00, 0x8b, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x45, 0x01, 0x12, 0x04, 0x88, 0x07, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x45, 0x02, 0x00, - 0x06, 0x12, 0x04, 0x89, 0x07, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x45, 0x02, 0x00, 0x12, - 0x04, 0x89, 0x07, 0x02, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x45, 0x02, 0x00, 0x01, 0x12, 0x04, - 0x89, 0x07, 0x1c, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x45, 0x02, 0x00, 0x03, 0x12, 0x04, 0x89, - 0x07, 0x29, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x45, 0x02, 0x01, 0x06, 0x12, 0x04, 0x8a, 0x07, - 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x45, 0x02, 0x01, 0x12, 0x04, 0x8a, 0x07, 0x02, 0x29, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x45, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8a, 0x07, 0x1c, 0x24, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x45, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8a, 0x07, 0x27, 0x28, 0x0a, 0x3f, - 0x0a, 0x02, 0x04, 0x46, 0x12, 0x06, 0x8e, 0x07, 0x00, 0x96, 0x07, 0x01, 0x1a, 0x31, 0x20, 0x44, + 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd9, 0x06, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x3e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd9, 0x06, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x3e, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd9, 0x06, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x3e, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xd9, 0x06, 0x13, 0x39, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x3e, 0x02, 0x01, 0x05, 0x12, 0x04, 0xdc, 0x06, 0x02, 0x08, 0x0a, 0xb9, 0x01, 0x0a, + 0x04, 0x04, 0x3e, 0x02, 0x01, 0x12, 0x04, 0xdc, 0x06, 0x02, 0x40, 0x1a, 0xaa, 0x01, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, - 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, - 0x0b, 0x0a, 0x03, 0x04, 0x46, 0x01, 0x12, 0x04, 0x8e, 0x07, 0x08, 0x1d, 0x0a, 0x0b, 0x0a, 0x03, - 0x04, 0x46, 0x07, 0x12, 0x04, 0x8f, 0x07, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x46, 0x07, - 0x03, 0x12, 0x04, 0x8f, 0x07, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x00, 0x05, - 0x12, 0x04, 0x90, 0x07, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x46, 0x02, 0x00, 0x12, 0x04, - 0x90, 0x07, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x00, 0x01, 0x12, 0x04, 0x90, - 0x07, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x00, 0x03, 0x12, 0x04, 0x90, 0x07, - 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x01, 0x04, 0x12, 0x04, 0x92, 0x07, 0x02, - 0x0a, 0x0a, 0x65, 0x0a, 0x04, 0x04, 0x46, 0x02, 0x01, 0x12, 0x04, 0x92, 0x07, 0x02, 0x34, 0x1a, - 0x57, 0x20, 0x49, 0x66, 0x20, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x73, 0x20, - 0x74, 0x72, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x01, - 0x06, 0x12, 0x04, 0x92, 0x07, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x01, 0x01, - 0x12, 0x04, 0x92, 0x07, 0x1c, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x01, 0x03, 0x12, - 0x04, 0x92, 0x07, 0x32, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x02, 0x04, 0x12, 0x04, - 0x94, 0x07, 0x02, 0x0a, 0x0a, 0x7b, 0x0a, 0x04, 0x04, 0x46, 0x02, 0x02, 0x12, 0x04, 0x94, 0x07, - 0x02, 0x1d, 0x1a, 0x6d, 0x20, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x6f, 0x62, - 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x73, - 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, - 0x20, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x6c, 0x79, 0x2e, - 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x02, 0x05, 0x12, 0x04, 0x94, 0x07, 0x0b, 0x11, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x02, 0x01, 0x12, 0x04, 0x94, 0x07, 0x12, 0x18, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x02, 0x03, 0x12, 0x04, 0x94, 0x07, 0x1b, 0x1c, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x46, 0x02, 0x03, 0x04, 0x12, 0x04, 0x95, 0x07, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x46, 0x02, 0x03, 0x12, 0x04, 0x95, 0x07, 0x02, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x46, 0x02, 0x03, 0x05, 0x12, 0x04, 0x95, 0x07, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, - 0x02, 0x03, 0x01, 0x12, 0x04, 0x95, 0x07, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, - 0x03, 0x03, 0x12, 0x04, 0x95, 0x07, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x47, 0x12, 0x06, - 0x98, 0x07, 0x00, 0x9e, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x47, 0x01, 0x12, 0x04, 0x98, - 0x07, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x00, 0x05, 0x12, 0x04, 0x99, 0x07, - 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x47, 0x02, 0x00, 0x12, 0x04, 0x99, 0x07, 0x02, 0x1a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x00, 0x01, 0x12, 0x04, 0x99, 0x07, 0x09, 0x15, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x00, 0x03, 0x12, 0x04, 0x99, 0x07, 0x18, 0x19, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x47, 0x02, 0x01, 0x05, 0x12, 0x04, 0x9a, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x47, 0x02, 0x01, 0x12, 0x04, 0x9a, 0x07, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x47, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9a, 0x07, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, - 0x02, 0x01, 0x03, 0x12, 0x04, 0x9a, 0x07, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, - 0x02, 0x06, 0x12, 0x04, 0x9b, 0x07, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x47, 0x02, 0x02, - 0x12, 0x04, 0x9b, 0x07, 0x02, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x02, 0x01, 0x12, - 0x04, 0x9b, 0x07, 0x1c, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x02, 0x03, 0x12, 0x04, - 0x9b, 0x07, 0x29, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x02, 0x08, 0x12, 0x04, 0x9b, - 0x07, 0x2b, 0x53, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x47, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0x9b, 0x07, 0x2c, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x03, 0x06, 0x12, 0x04, - 0x9c, 0x07, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x47, 0x02, 0x03, 0x12, 0x04, 0x9c, 0x07, - 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x03, 0x01, 0x12, 0x04, 0x9c, 0x07, 0x1c, - 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x03, 0x03, 0x12, 0x04, 0x9c, 0x07, 0x27, 0x28, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x03, 0x08, 0x12, 0x04, 0x9c, 0x07, 0x29, 0x51, 0x0a, - 0x10, 0x0a, 0x08, 0x04, 0x47, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x9c, 0x07, 0x2a, - 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x04, 0x05, 0x12, 0x04, 0x9d, 0x07, 0x02, 0x08, - 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x47, 0x02, 0x04, 0x12, 0x04, 0x9d, 0x07, 0x02, 0x22, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x47, 0x02, 0x04, 0x01, 0x12, 0x04, 0x9d, 0x07, 0x09, 0x1d, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x47, 0x02, 0x04, 0x03, 0x12, 0x04, 0x9d, 0x07, 0x20, 0x21, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x49, 0x66, + 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x20, 0x61, 0x73, 0x20, 0x60, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, + 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xdc, 0x06, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x01, 0x03, + 0x12, 0x04, 0xdc, 0x06, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x01, 0x08, 0x12, + 0x04, 0xdc, 0x06, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x3e, 0x02, 0x01, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xdc, 0x06, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x02, 0x04, + 0x12, 0x04, 0xdf, 0x06, 0x02, 0x0a, 0x0a, 0xc6, 0x01, 0x0a, 0x04, 0x04, 0x3e, 0x02, 0x02, 0x12, + 0x04, 0xdf, 0x06, 0x02, 0x5d, 0x1a, 0xb7, 0x01, 0x20, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x0a, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, + 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x70, 0x20, 0x61, 0x20, + 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x62, + 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x02, 0x05, 0x12, 0x04, 0xdf, 0x06, 0x0b, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x3e, 0x02, 0x02, 0x01, 0x12, 0x04, 0xdf, 0x06, 0x12, 0x2f, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x3e, 0x02, 0x02, 0x03, 0x12, 0x04, 0xdf, 0x06, 0x32, 0x33, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x3e, 0x02, 0x02, 0x08, 0x12, 0x04, 0xdf, 0x06, 0x34, 0x5c, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x3e, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xdf, 0x06, 0x35, 0x5b, 0x0a, 0x0c, 0x0a, + 0x02, 0x04, 0x3f, 0x12, 0x06, 0xe2, 0x06, 0x00, 0xe8, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x3f, 0x01, 0x12, 0x04, 0xe2, 0x06, 0x08, 0x1f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x3f, 0x08, 0x00, + 0x12, 0x06, 0xe3, 0x06, 0x02, 0xe7, 0x06, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x08, 0x00, + 0x01, 0x12, 0x04, 0xe3, 0x06, 0x08, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x00, 0x06, + 0x12, 0x04, 0xe4, 0x06, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3f, 0x02, 0x00, 0x12, 0x04, + 0xe4, 0x06, 0x04, 0x35, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe4, + 0x06, 0x24, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe4, 0x06, + 0x33, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x01, 0x06, 0x12, 0x04, 0xe5, 0x06, 0x04, + 0x21, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x3f, 0x02, 0x01, 0x12, 0x04, 0xe5, 0x06, 0x04, 0x31, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe5, 0x06, 0x22, 0x2c, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x3f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe5, 0x06, 0x2f, 0x30, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x3f, 0x02, 0x02, 0x06, 0x12, 0x04, 0xe6, 0x06, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x3f, 0x02, 0x02, 0x12, 0x04, 0xe6, 0x06, 0x04, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, + 0x02, 0x02, 0x01, 0x12, 0x04, 0xe6, 0x06, 0x1f, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x3f, 0x02, + 0x02, 0x03, 0x12, 0x04, 0xe6, 0x06, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x40, 0x12, 0x06, + 0xea, 0x06, 0x00, 0xec, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x40, 0x01, 0x12, 0x04, 0xea, + 0x06, 0x08, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x00, 0x04, 0x12, 0x04, 0xeb, 0x06, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x40, 0x02, 0x00, 0x12, 0x04, 0xeb, 0x06, 0x02, 0x52, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x00, 0x05, 0x12, 0x04, 0xeb, 0x06, 0x0b, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x40, 0x02, 0x00, 0x01, 0x12, 0x04, 0xeb, 0x06, 0x12, 0x24, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x40, 0x02, 0x00, 0x03, 0x12, 0x04, 0xeb, 0x06, 0x27, 0x28, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x40, 0x02, 0x00, 0x08, 0x12, 0x04, 0xeb, 0x06, 0x29, 0x51, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x40, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xeb, 0x06, 0x2a, 0x50, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x41, 0x12, 0x06, 0xee, 0x06, 0x00, 0xf0, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x41, 0x01, 0x12, 0x04, 0xee, 0x06, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x41, 0x02, + 0x00, 0x05, 0x12, 0x04, 0xef, 0x06, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x41, 0x02, 0x00, + 0x12, 0x04, 0xef, 0x06, 0x02, 0x41, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x41, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xef, 0x06, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x41, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xef, 0x06, 0x16, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x41, 0x02, 0x00, 0x08, 0x12, 0x04, 0xef, + 0x06, 0x18, 0x40, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x41, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0xef, 0x06, 0x19, 0x3f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x42, 0x12, 0x06, 0xf2, 0x06, 0x00, + 0xf7, 0x06, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x42, 0x01, 0x12, 0x04, 0xf2, 0x06, 0x08, 0x25, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x00, 0x04, 0x12, 0x04, 0xf3, 0x06, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x42, 0x02, 0x00, 0x12, 0x04, 0xf3, 0x06, 0x02, 0x47, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x42, 0x02, 0x00, 0x05, 0x12, 0x04, 0xf3, 0x06, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x42, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf3, 0x06, 0x12, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x42, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf3, 0x06, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, + 0x02, 0x00, 0x08, 0x12, 0x04, 0xf3, 0x06, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x42, 0x02, + 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xf3, 0x06, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x42, 0x02, 0x01, 0x06, 0x12, 0x04, 0xf4, 0x06, 0x02, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x42, + 0x02, 0x01, 0x12, 0x04, 0xf4, 0x06, 0x02, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xf4, 0x06, 0x25, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x01, 0x03, + 0x12, 0x04, 0xf4, 0x06, 0x37, 0x38, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x02, 0x04, 0x12, + 0x04, 0xf5, 0x06, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x42, 0x02, 0x02, 0x12, 0x04, 0xf5, + 0x06, 0x02, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x02, 0x05, 0x12, 0x04, 0xf5, 0x06, + 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf5, 0x06, 0x12, + 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x02, 0x03, 0x12, 0x04, 0xf5, 0x06, 0x28, 0x29, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x42, 0x02, 0x03, 0x04, 0x12, 0x04, 0xf6, 0x06, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x42, 0x02, 0x03, 0x12, 0x04, 0xf6, 0x06, 0x02, 0x37, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x42, 0x02, 0x03, 0x06, 0x12, 0x04, 0xf6, 0x06, 0x0b, 0x29, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x42, 0x02, 0x03, 0x01, 0x12, 0x04, 0xf6, 0x06, 0x2a, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x42, 0x02, 0x03, 0x03, 0x12, 0x04, 0xf6, 0x06, 0x35, 0x36, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x43, + 0x12, 0x06, 0xf9, 0x06, 0x00, 0x83, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x43, 0x01, 0x12, + 0x04, 0xf9, 0x06, 0x08, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x00, 0x05, 0x12, 0x04, + 0xfb, 0x06, 0x02, 0x08, 0x0a, 0x4a, 0x0a, 0x04, 0x04, 0x43, 0x02, 0x00, 0x12, 0x04, 0xfb, 0x06, + 0x02, 0x40, 0x1a, 0x3c, 0x20, 0x48, 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, + 0x73, 0x74, 0x61, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x24, 0x41, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x00, 0x01, 0x12, 0x04, 0xfb, 0x06, 0x09, 0x12, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x00, 0x03, 0x12, 0x04, 0xfb, 0x06, 0x15, 0x16, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x43, 0x02, 0x00, 0x08, 0x12, 0x04, 0xfb, 0x06, 0x17, 0x3f, 0x0a, 0x10, 0x0a, + 0x08, 0x04, 0x43, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfb, 0x06, 0x18, 0x3e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x01, 0x05, 0x12, 0x04, 0xfd, 0x06, 0x02, 0x08, 0x0a, 0x3a, + 0x0a, 0x04, 0x04, 0x43, 0x02, 0x01, 0x12, 0x04, 0xfd, 0x06, 0x02, 0x40, 0x1a, 0x2c, 0x20, 0x43, + 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x53, 0x69, 0x66, 0x74, 0x20, 0x52, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x20, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, + 0x02, 0x01, 0x01, 0x12, 0x04, 0xfd, 0x06, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, + 0x01, 0x03, 0x12, 0x04, 0xfd, 0x06, 0x15, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x01, + 0x08, 0x12, 0x04, 0xfd, 0x06, 0x17, 0x3f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x43, 0x02, 0x01, 0x08, + 0x9c, 0x08, 0x00, 0x12, 0x04, 0xfd, 0x06, 0x18, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, + 0x02, 0x05, 0x12, 0x04, 0xff, 0x06, 0x02, 0x08, 0x0a, 0x31, 0x0a, 0x04, 0x04, 0x43, 0x02, 0x02, + 0x12, 0x04, 0xff, 0x06, 0x02, 0x47, 0x1a, 0x23, 0x20, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x54, + 0x43, 0x2d, 0x54, 0x55, 0x52, 0x42, 0x2e, 0x61, 0x76, 0x67, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x43, 0x02, 0x02, 0x01, 0x12, 0x04, 0xff, 0x06, 0x09, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, + 0x02, 0x02, 0x03, 0x12, 0x04, 0xff, 0x06, 0x1c, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, + 0x02, 0x08, 0x12, 0x04, 0xff, 0x06, 0x1e, 0x46, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x43, 0x02, 0x02, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xff, 0x06, 0x1f, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, + 0x02, 0x03, 0x05, 0x12, 0x04, 0x80, 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x43, 0x02, + 0x03, 0x12, 0x04, 0x80, 0x07, 0x02, 0x4d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x03, 0x01, + 0x12, 0x04, 0x80, 0x07, 0x09, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x03, 0x03, 0x12, + 0x04, 0x80, 0x07, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x03, 0x08, 0x12, 0x04, + 0x80, 0x07, 0x24, 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x43, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0x80, 0x07, 0x25, 0x4b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, 0x04, 0x05, 0x12, + 0x04, 0x82, 0x07, 0x02, 0x08, 0x0a, 0x74, 0x0a, 0x04, 0x04, 0x43, 0x02, 0x04, 0x12, 0x04, 0x82, + 0x07, 0x02, 0x4d, 0x1a, 0x66, 0x20, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x62, 0x79, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x75, 0x70, 0x20, 0x2b, 0x2f, 0x2d, 0x20, 0x35, 0x73, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x43, 0x02, 0x04, 0x01, 0x12, 0x04, 0x82, 0x07, 0x09, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, + 0x02, 0x04, 0x03, 0x12, 0x04, 0x82, 0x07, 0x22, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x43, 0x02, + 0x04, 0x08, 0x12, 0x04, 0x82, 0x07, 0x24, 0x4c, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x43, 0x02, 0x04, + 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x82, 0x07, 0x25, 0x4b, 0x0a, 0x3f, 0x0a, 0x02, 0x04, 0x44, + 0x12, 0x06, 0x86, 0x07, 0x00, 0x8f, 0x07, 0x01, 0x1a, 0x31, 0x20, 0x44, 0x65, 0x70, 0x72, 0x65, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x20, 0x52, 0x75, 0x6c, 0x65, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x44, 0x01, 0x12, 0x04, 0x86, 0x07, 0x08, 0x1c, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x44, 0x07, 0x12, + 0x04, 0x87, 0x07, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x44, 0x07, 0x03, 0x12, 0x04, 0x87, + 0x07, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x00, 0x04, 0x12, 0x04, 0x88, 0x07, + 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x44, 0x02, 0x00, 0x12, 0x04, 0x88, 0x07, 0x02, 0x48, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x00, 0x05, 0x12, 0x04, 0x88, 0x07, 0x0b, 0x11, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x00, 0x01, 0x12, 0x04, 0x88, 0x07, 0x12, 0x1a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x44, 0x02, 0x00, 0x03, 0x12, 0x04, 0x88, 0x07, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x44, 0x02, 0x00, 0x08, 0x12, 0x04, 0x88, 0x07, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x44, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x88, 0x07, 0x20, 0x46, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x44, 0x02, 0x01, 0x06, 0x12, 0x04, 0x89, 0x07, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x44, 0x02, 0x01, 0x12, 0x04, 0x89, 0x07, 0x02, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x44, 0x02, 0x01, 0x01, 0x12, 0x04, 0x89, 0x07, 0x1d, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, + 0x02, 0x01, 0x03, 0x12, 0x04, 0x89, 0x07, 0x32, 0x33, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x44, 0x08, + 0x00, 0x12, 0x06, 0x8a, 0x07, 0x02, 0x8d, 0x07, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x08, + 0x00, 0x01, 0x12, 0x04, 0x8a, 0x07, 0x08, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x02, + 0x05, 0x12, 0x04, 0x8b, 0x07, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x44, 0x02, 0x02, 0x12, + 0x04, 0x8b, 0x07, 0x04, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x02, 0x01, 0x12, 0x04, + 0x8b, 0x07, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x02, 0x03, 0x12, 0x04, 0x8b, + 0x07, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x03, 0x06, 0x12, 0x04, 0x8c, 0x07, + 0x04, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x44, 0x02, 0x03, 0x12, 0x04, 0x8c, 0x07, 0x04, 0x22, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x03, 0x01, 0x12, 0x04, 0x8c, 0x07, 0x13, 0x1d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x44, 0x02, 0x03, 0x03, 0x12, 0x04, 0x8c, 0x07, 0x20, 0x21, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x44, 0x02, 0x04, 0x05, 0x12, 0x04, 0x8e, 0x07, 0x02, 0x06, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x44, 0x02, 0x04, 0x12, 0x04, 0x8e, 0x07, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x44, 0x02, 0x04, 0x01, 0x12, 0x04, 0x8e, 0x07, 0x07, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x44, + 0x02, 0x04, 0x03, 0x12, 0x04, 0x8e, 0x07, 0x11, 0x12, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x45, 0x12, + 0x06, 0x90, 0x07, 0x00, 0x92, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x45, 0x01, 0x12, 0x04, + 0x90, 0x07, 0x08, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x45, 0x02, 0x00, 0x04, 0x12, 0x04, 0x91, + 0x07, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x45, 0x02, 0x00, 0x12, 0x04, 0x91, 0x07, 0x02, + 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x45, 0x02, 0x00, 0x05, 0x12, 0x04, 0x91, 0x07, 0x0b, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x45, 0x02, 0x00, 0x01, 0x12, 0x04, 0x91, 0x07, 0x12, 0x19, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x45, 0x02, 0x00, 0x03, 0x12, 0x04, 0x91, 0x07, 0x1c, 0x1d, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x46, 0x12, 0x06, 0x93, 0x07, 0x00, 0x96, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x46, 0x01, 0x12, 0x04, 0x93, 0x07, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, + 0x00, 0x06, 0x12, 0x04, 0x94, 0x07, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x46, 0x02, 0x00, + 0x12, 0x04, 0x94, 0x07, 0x02, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x00, 0x01, 0x12, + 0x04, 0x94, 0x07, 0x1c, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x00, 0x03, 0x12, 0x04, + 0x94, 0x07, 0x29, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x01, 0x06, 0x12, 0x04, 0x95, + 0x07, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x46, 0x02, 0x01, 0x12, 0x04, 0x95, 0x07, 0x02, + 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x01, 0x01, 0x12, 0x04, 0x95, 0x07, 0x1c, 0x24, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x46, 0x02, 0x01, 0x03, 0x12, 0x04, 0x95, 0x07, 0x27, 0x28, 0x0a, + 0x3f, 0x0a, 0x02, 0x04, 0x47, 0x12, 0x06, 0x99, 0x07, 0x00, 0xa1, 0x07, 0x01, 0x1a, 0x31, 0x20, + 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x2d, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x0a, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x47, 0x01, 0x12, 0x04, 0x99, 0x07, 0x08, 0x1d, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x47, 0x07, 0x12, 0x04, 0x9a, 0x07, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x47, + 0x07, 0x03, 0x12, 0x04, 0x9a, 0x07, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x00, + 0x05, 0x12, 0x04, 0x9b, 0x07, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x47, 0x02, 0x00, 0x12, + 0x04, 0x9b, 0x07, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x00, 0x01, 0x12, 0x04, + 0x9b, 0x07, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9b, + 0x07, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x01, 0x04, 0x12, 0x04, 0x9d, 0x07, + 0x02, 0x0a, 0x0a, 0x65, 0x0a, 0x04, 0x04, 0x47, 0x02, 0x01, 0x12, 0x04, 0x9d, 0x07, 0x02, 0x34, + 0x1a, 0x57, 0x20, 0x49, 0x66, 0x20, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x62, 0x65, 0x20, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, + 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, + 0x01, 0x06, 0x12, 0x04, 0x9d, 0x07, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x01, + 0x01, 0x12, 0x04, 0x9d, 0x07, 0x1c, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x01, 0x03, + 0x12, 0x04, 0x9d, 0x07, 0x32, 0x33, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x02, 0x04, 0x12, + 0x04, 0x9f, 0x07, 0x02, 0x0a, 0x0a, 0x7b, 0x0a, 0x04, 0x04, 0x47, 0x02, 0x02, 0x12, 0x04, 0x9f, + 0x07, 0x02, 0x1d, 0x1a, 0x6d, 0x20, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x73, 0x65, 0x74, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6a, 0x6f, + 0x62, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, + 0x73, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, + 0x64, 0x20, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x6c, 0x79, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x02, 0x05, 0x12, 0x04, 0x9f, 0x07, 0x0b, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9f, 0x07, 0x12, 0x18, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9f, 0x07, 0x1b, 0x1c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x47, 0x02, 0x03, 0x04, 0x12, 0x04, 0xa0, 0x07, 0x02, 0x0a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x47, 0x02, 0x03, 0x12, 0x04, 0xa0, 0x07, 0x02, 0x20, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x47, 0x02, 0x03, 0x05, 0x12, 0x04, 0xa0, 0x07, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x47, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa0, 0x07, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x47, + 0x02, 0x03, 0x03, 0x12, 0x04, 0xa0, 0x07, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x48, 0x12, + 0x06, 0xa3, 0x07, 0x00, 0xa9, 0x07, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x48, 0x01, 0x12, 0x04, + 0xa3, 0x07, 0x08, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa4, + 0x07, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x48, 0x02, 0x00, 0x12, 0x04, 0xa4, 0x07, 0x02, + 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa4, 0x07, 0x09, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa4, 0x07, 0x18, 0x19, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa5, 0x07, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x48, 0x02, 0x01, 0x12, 0x04, 0xa5, 0x07, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x48, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa5, 0x07, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x48, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa5, 0x07, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, + 0x02, 0x02, 0x06, 0x12, 0x04, 0xa6, 0x07, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x48, 0x02, + 0x02, 0x12, 0x04, 0xa6, 0x07, 0x02, 0x54, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x02, 0x01, + 0x12, 0x04, 0xa6, 0x07, 0x1c, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x02, 0x03, 0x12, + 0x04, 0xa6, 0x07, 0x29, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x02, 0x08, 0x12, 0x04, + 0xa6, 0x07, 0x2b, 0x53, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x48, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, + 0x12, 0x04, 0xa6, 0x07, 0x2c, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x03, 0x06, 0x12, + 0x04, 0xa7, 0x07, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x48, 0x02, 0x03, 0x12, 0x04, 0xa7, + 0x07, 0x02, 0x52, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa7, 0x07, + 0x1c, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa7, 0x07, 0x27, + 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x03, 0x08, 0x12, 0x04, 0xa7, 0x07, 0x29, 0x51, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x48, 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa7, 0x07, + 0x2a, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x04, 0x05, 0x12, 0x04, 0xa8, 0x07, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x48, 0x02, 0x04, 0x12, 0x04, 0xa8, 0x07, 0x02, 0x22, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x48, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa8, 0x07, 0x09, 0x1d, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x48, 0x02, 0x04, 0x03, 0x12, 0x04, 0xa8, 0x07, 0x20, 0x21, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, ]; include!("sift.rules.v1.tonic.rs"); include!("sift.rules.v1.serde.rs"); diff --git a/rust/crates/sift_rs/src/gen/sift/rules/v1/sift.rules.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift/rules/v1/sift.rules.v1.serde.rs index e72228c677..13d355b7bd 100644 --- a/rust/crates/sift_rs/src/gen/sift/rules/v1/sift.rules.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift/rules/v1/sift.rules.v1.serde.rs @@ -3477,6 +3477,169 @@ impl<'de> serde::Deserialize<'de> for EvaluatedAnnotationOptions { deserializer.deserialize_struct("sift.rules.v1.EvaluatedAnnotationOptions", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for FamilyStatReference { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.reference.is_empty() { + len += 1; + } + if !self.family_id.is_empty() { + len += 1; + } + if !self.family_stat_name.is_empty() { + len += 1; + } + if !self.family_stat_expression.is_empty() { + len += 1; + } + if !self.family_stat_range_name.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("sift.rules.v1.FamilyStatReference", len)?; + if !self.reference.is_empty() { + struct_ser.serialize_field("reference", &self.reference)?; + } + if !self.family_id.is_empty() { + struct_ser.serialize_field("familyId", &self.family_id)?; + } + if !self.family_stat_name.is_empty() { + struct_ser.serialize_field("familyStatName", &self.family_stat_name)?; + } + if !self.family_stat_expression.is_empty() { + struct_ser.serialize_field("familyStatExpression", &self.family_stat_expression)?; + } + if !self.family_stat_range_name.is_empty() { + struct_ser.serialize_field("familyStatRangeName", &self.family_stat_range_name)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FamilyStatReference { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "reference", + "family_id", + "familyId", + "family_stat_name", + "familyStatName", + "family_stat_expression", + "familyStatExpression", + "family_stat_range_name", + "familyStatRangeName", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Reference, + FamilyId, + FamilyStatName, + FamilyStatExpression, + FamilyStatRangeName, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "reference" => Ok(GeneratedField::Reference), + "familyId" | "family_id" => Ok(GeneratedField::FamilyId), + "familyStatName" | "family_stat_name" => Ok(GeneratedField::FamilyStatName), + "familyStatExpression" | "family_stat_expression" => Ok(GeneratedField::FamilyStatExpression), + "familyStatRangeName" | "family_stat_range_name" => Ok(GeneratedField::FamilyStatRangeName), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FamilyStatReference; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct sift.rules.v1.FamilyStatReference") + } + + fn visit_map(self, mut map_: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut reference__ = None; + let mut family_id__ = None; + let mut family_stat_name__ = None; + let mut family_stat_expression__ = None; + let mut family_stat_range_name__ = None; + while let Some(k) = map_.next_key()? { + match k { + GeneratedField::Reference => { + if reference__.is_some() { + return Err(serde::de::Error::duplicate_field("reference")); + } + reference__ = Some(map_.next_value()?); + } + GeneratedField::FamilyId => { + if family_id__.is_some() { + return Err(serde::de::Error::duplicate_field("familyId")); + } + family_id__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStatName => { + if family_stat_name__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatName")); + } + family_stat_name__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStatExpression => { + if family_stat_expression__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatExpression")); + } + family_stat_expression__ = Some(map_.next_value()?); + } + GeneratedField::FamilyStatRangeName => { + if family_stat_range_name__.is_some() { + return Err(serde::de::Error::duplicate_field("familyStatRangeName")); + } + family_stat_range_name__ = Some(map_.next_value()?); + } + } + } + Ok(FamilyStatReference { + reference: reference__.unwrap_or_default(), + family_id: family_id__.unwrap_or_default(), + family_stat_name: family_stat_name__.unwrap_or_default(), + family_stat_expression: family_stat_expression__.unwrap_or_default(), + family_stat_range_name: family_stat_range_name__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("sift.rules.v1.FamilyStatReference", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for GetRuleRequest { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result diff --git a/rust/crates/sift_rs/src/gen/sift/saved_searches/v1/sift.saved_searches.v1.rs b/rust/crates/sift_rs/src/gen/sift/saved_searches/v1/sift.saved_searches.v1.rs index bd341b1762..9861469a5d 100644 --- a/rust/crates/sift_rs/src/gen/sift/saved_searches/v1/sift.saved_searches.v1.rs +++ b/rust/crates/sift_rs/src/gen/sift/saved_searches/v1/sift.saved_searches.v1.rs @@ -98,6 +98,8 @@ pub struct ListSavedSearchesRequest { pub filter: ::prost::alloc::string::String, #[prost(string, tag="4")] pub organization_id: ::prost::alloc::string::String, + #[prost(string, tag="5")] + pub order_by: ::prost::alloc::string::String, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ListSavedSearchesResponse { @@ -150,7 +152,7 @@ pub struct UpdateSavedSearchResponse { } /// Encoded file descriptor set for the `sift.saved_searches.v1` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0x90, 0x68, 0x0a, 0x2b, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, + 0x0a, 0xb9, 0x6c, 0x0a, 0x2b, 0x73, 0x69, 0x66, 0x74, 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x73, 0x69, 0x66, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, @@ -295,7 +297,7 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, - 0xab, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, + 0xcb, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, @@ -305,7 +307,9 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x8f, 0x01, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x8f, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, @@ -462,7 +466,7 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x53, 0x69, 0x66, 0x74, 0x3a, 0x3a, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x3a, - 0x3a, 0x56, 0x31, 0x4a, 0x85, 0x41, 0x0a, 0x07, 0x12, 0x05, 0x00, 0x00, 0xcb, 0x01, 0x01, 0x0a, + 0x3a, 0x56, 0x31, 0x4a, 0x8e, 0x45, 0x0a, 0x07, 0x12, 0x05, 0x00, 0x00, 0xd2, 0x01, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x1f, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x04, 0x00, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, @@ -749,7 +753,7 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x0e, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x04, 0x81, 0x01, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x08, 0x12, 0x04, 0x81, 0x01, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x05, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x81, 0x01, - 0x20, 0x46, 0x0a, 0x6c, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x06, 0x85, 0x01, 0x00, 0x99, 0x01, 0x01, + 0x20, 0x46, 0x0a, 0x6c, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x06, 0x85, 0x01, 0x00, 0xa0, 0x01, 0x01, 0x1a, 0x5e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, @@ -846,144 +850,176 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x05, 0x04, 0x06, 0x02, 0x03, 0x01, 0x12, 0x04, 0x98, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x03, 0x12, 0x04, 0x98, 0x01, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x08, 0x12, 0x04, 0x98, 0x01, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x06, - 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x98, 0x01, 0x1e, 0x44, 0x0a, 0x59, 0x0a, 0x02, - 0x04, 0x07, 0x12, 0x06, 0x9c, 0x01, 0x00, 0x9f, 0x01, 0x01, 0x1a, 0x4b, 0x20, 0x54, 0x68, 0x65, + 0x02, 0x03, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0x98, 0x01, 0x1e, 0x44, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x06, 0x02, 0x04, 0x05, 0x12, 0x04, 0x9f, 0x01, 0x02, 0x08, 0x0a, 0xb8, 0x03, 0x0a, 0x04, + 0x04, 0x06, 0x02, 0x04, 0x12, 0x04, 0x9f, 0x01, 0x02, 0x3f, 0x1a, 0xa9, 0x03, 0x20, 0x48, 0x6f, + 0x77, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, + 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x2d, 0x73, 0x65, + 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x69, + 0x2e, 0x65, 0x2e, 0x20, 0x22, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5b, + 0x20, 0x64, 0x65, 0x73, 0x63, 0x5d, 0x2c, 0x2e, 0x2e, 0x2e, 0x22, 0x2e, 0x0a, 0x20, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, + 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x2c, 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, + 0x6c, 0x65, 0x66, 0x74, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x60, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x60, 0x20, + 0x69, 0x6e, 0x20, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x20, 0x28, 0x6f, 0x6c, 0x64, 0x65, 0x73, 0x74, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x29, 0x2e, 0x0a, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x5b, 0x74, + 0x68, 0x69, 0x73, 0x5d, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x69, 0x70, 0x2e, 0x64, 0x65, 0x76, 0x2f, 0x31, 0x33, 0x32, 0x23, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x20, 0x45, 0x78, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x3a, 0x20, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x2c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x22, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x01, 0x12, + 0x04, 0x9f, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x03, 0x12, 0x04, + 0x9f, 0x01, 0x14, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x08, 0x12, 0x04, 0x9f, + 0x01, 0x16, 0x3e, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x06, 0x02, 0x04, 0x08, 0x9c, 0x08, 0x00, 0x12, + 0x04, 0x9f, 0x01, 0x17, 0x3d, 0x0a, 0x59, 0x0a, 0x02, 0x04, 0x07, 0x12, 0x06, 0xa3, 0x01, 0x00, + 0xa6, 0x01, 0x01, 0x1a, 0x4b, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x60, 0x2e, 0x0a, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x04, 0xa3, 0x01, 0x08, 0x21, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x07, 0x02, 0x00, 0x04, 0x12, 0x04, 0xa4, 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x07, 0x02, 0x00, 0x12, 0x04, 0xa4, 0x01, 0x02, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x00, 0x06, 0x12, 0x04, 0xa4, 0x01, 0x0b, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, + 0x00, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x17, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, + 0x03, 0x12, 0x04, 0xa4, 0x01, 0x28, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x05, + 0x12, 0x04, 0xa5, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, 0x04, + 0xa5, 0x01, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa5, + 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa5, 0x01, + 0x1b, 0x1c, 0x0a, 0x6a, 0x0a, 0x02, 0x04, 0x08, 0x12, 0x06, 0xa9, 0x01, 0x00, 0xae, 0x01, 0x01, + 0x1a, 0x5c, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, + 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x0a, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x04, 0xa9, 0x01, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x08, 0x02, 0x00, 0x05, 0x12, 0x04, 0xaa, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, + 0x02, 0x00, 0x12, 0x04, 0xaa, 0x01, 0x02, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xaa, 0x01, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xaa, 0x01, 0x10, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x08, 0x12, + 0x04, 0xaa, 0x01, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x00, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xaa, 0x01, 0x13, 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x06, + 0x12, 0x04, 0xab, 0x01, 0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x04, + 0xab, 0x01, 0x02, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x04, 0xab, + 0x01, 0x18, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x04, 0xab, 0x01, + 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x08, 0x12, 0x04, 0xab, 0x01, 0x27, + 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xab, + 0x01, 0x28, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x05, 0x12, 0x04, 0xad, 0x01, + 0x02, 0x08, 0x0a, 0x5b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x02, 0x12, 0x04, 0xad, 0x01, 0x02, 0x46, + 0x1a, 0x4d, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x73, + 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x69, + 0x66, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x62, 0x65, 0x6c, 0x6f, + 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x01, 0x12, 0x04, 0xad, 0x01, 0x09, 0x18, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x03, 0x12, 0x04, 0xad, 0x01, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x08, 0x02, 0x02, 0x08, 0x12, 0x04, 0xad, 0x01, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, + 0x04, 0x08, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xad, 0x01, 0x1e, 0x44, 0x0a, 0x54, + 0x0a, 0x02, 0x04, 0x09, 0x12, 0x06, 0xb1, 0x01, 0x00, 0xb3, 0x01, 0x01, 0x1a, 0x46, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, 0x04, 0xb1, 0x01, 0x08, + 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x06, 0x12, 0x04, 0xb2, 0x01, 0x02, 0x0d, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, 0x04, 0xb2, 0x01, 0x02, 0x48, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb2, 0x01, 0x0e, 0x1a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb2, 0x01, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x09, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb2, 0x01, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, + 0x09, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb2, 0x01, 0x20, 0x46, 0x0a, 0x6a, 0x0a, + 0x02, 0x04, 0x0a, 0x12, 0x06, 0xb6, 0x01, 0x00, 0xb8, 0x01, 0x01, 0x1a, 0x5c, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, + 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x60, 0x20, 0x74, + 0x6f, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, + 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0a, 0x01, + 0x12, 0x04, 0xb6, 0x01, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xb7, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, 0xb7, + 0x01, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb7, 0x01, + 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb7, 0x01, 0x1b, + 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, 0x08, 0x12, 0x04, 0xb7, 0x01, 0x1d, 0x45, + 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0a, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb7, 0x01, + 0x1e, 0x44, 0x0a, 0x4f, 0x0a, 0x02, 0x04, 0x0b, 0x12, 0x04, 0xbb, 0x01, 0x00, 0x24, 0x1a, 0x43, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0b, 0x01, 0x12, 0x04, 0xbb, 0x01, 0x08, 0x21, + 0x0a, 0x71, 0x0a, 0x02, 0x04, 0x0c, 0x12, 0x06, 0xbe, 0x01, 0x00, 0xc1, 0x01, 0x01, 0x1a, 0x63, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, + 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0c, 0x01, 0x12, 0x04, 0xbe, 0x01, 0x08, 0x27, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x04, 0x12, 0x04, 0xc0, 0x01, 0x02, 0x0a, 0x0a, + 0x30, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x00, 0x12, 0x04, 0xc0, 0x01, 0x02, 0x27, 0x1a, 0x22, 0x20, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc0, 0x01, 0x0b, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc0, 0x01, 0x12, 0x22, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc0, 0x01, 0x25, 0x26, 0x0a, 0x56, + 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x04, 0xc4, 0x01, 0x00, 0x2b, 0x1a, 0x4a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x04, - 0x9c, 0x01, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x04, 0x12, 0x04, 0x9d, - 0x01, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x04, 0x9d, 0x01, 0x02, - 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x06, 0x12, 0x04, 0x9d, 0x01, 0x0b, 0x16, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9d, 0x01, 0x17, 0x25, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9d, 0x01, 0x28, 0x29, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x05, 0x12, 0x04, 0x9e, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x07, 0x02, 0x01, 0x12, 0x04, 0x9e, 0x01, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x07, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9e, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x07, - 0x02, 0x01, 0x03, 0x12, 0x04, 0x9e, 0x01, 0x1b, 0x1c, 0x0a, 0x6a, 0x0a, 0x02, 0x04, 0x08, 0x12, - 0x06, 0xa2, 0x01, 0x00, 0xa7, 0x01, 0x01, 0x1a, 0x5c, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, - 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, - 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x04, 0xa2, 0x01, - 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa3, 0x01, 0x02, - 0x08, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x04, 0xa3, 0x01, 0x02, 0x3b, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa3, 0x01, 0x09, 0x0d, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa3, 0x01, 0x10, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x08, 0x02, 0x00, 0x08, 0x12, 0x04, 0xa3, 0x01, 0x12, 0x3a, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x08, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa3, 0x01, 0x13, 0x39, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x06, 0x12, 0x04, 0xa4, 0x01, 0x02, 0x17, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x02, 0x50, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x08, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x18, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, - 0x02, 0x01, 0x03, 0x12, 0x04, 0xa4, 0x01, 0x25, 0x26, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, - 0x01, 0x08, 0x12, 0x04, 0xa4, 0x01, 0x27, 0x4f, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x01, - 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xa4, 0x01, 0x28, 0x4e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, - 0x02, 0x02, 0x05, 0x12, 0x04, 0xa6, 0x01, 0x02, 0x08, 0x0a, 0x5b, 0x0a, 0x04, 0x04, 0x08, 0x02, - 0x02, 0x12, 0x04, 0xa6, 0x01, 0x02, 0x46, 0x1a, 0x4d, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x75, 0x73, - 0x65, 0x72, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x01, 0x12, - 0x04, 0xa6, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x03, 0x12, 0x04, - 0xa6, 0x01, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x02, 0x08, 0x12, 0x04, 0xa6, - 0x01, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x08, 0x02, 0x02, 0x08, 0x9c, 0x08, 0x00, 0x12, - 0x04, 0xa6, 0x01, 0x1e, 0x44, 0x0a, 0x54, 0x0a, 0x02, 0x04, 0x09, 0x12, 0x06, 0xaa, 0x01, 0x00, - 0xac, 0x01, 0x01, 0x1a, 0x46, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, - 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, - 0x09, 0x01, 0x12, 0x04, 0xaa, 0x01, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, - 0x06, 0x12, 0x04, 0xab, 0x01, 0x02, 0x0d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, - 0x04, 0xab, 0x01, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x04, - 0xab, 0x01, 0x0e, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x04, 0xab, - 0x01, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x08, 0x12, 0x04, 0xab, 0x01, - 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x09, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, - 0xab, 0x01, 0x20, 0x46, 0x0a, 0x6a, 0x0a, 0x02, 0x04, 0x0a, 0x12, 0x06, 0xaf, 0x01, 0x00, 0xb1, - 0x01, 0x01, 0x1a, 0x5c, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, - 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, - 0x61, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x0a, - 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0a, 0x01, 0x12, 0x04, 0xaf, 0x01, 0x08, 0x20, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0a, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb0, 0x01, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x04, - 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, 0xb0, 0x01, 0x02, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, - 0x02, 0x00, 0x01, 0x12, 0x04, 0xb0, 0x01, 0x09, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, - 0x00, 0x03, 0x12, 0x04, 0xb0, 0x01, 0x1b, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x00, - 0x08, 0x12, 0x04, 0xb0, 0x01, 0x1d, 0x45, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0a, 0x02, 0x00, 0x08, - 0x9c, 0x08, 0x00, 0x12, 0x04, 0xb0, 0x01, 0x1e, 0x44, 0x0a, 0x4f, 0x0a, 0x02, 0x04, 0x0b, 0x12, - 0x04, 0xb4, 0x01, 0x00, 0x24, 0x1a, 0x43, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, - 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0b, - 0x01, 0x12, 0x04, 0xb4, 0x01, 0x08, 0x21, 0x0a, 0x71, 0x0a, 0x02, 0x04, 0x0c, 0x12, 0x06, 0xb7, - 0x01, 0x00, 0xba, 0x01, 0x01, 0x1a, 0x63, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, - 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x60, 0x20, - 0x74, 0x6f, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0c, - 0x01, 0x12, 0x04, 0xb7, 0x01, 0x08, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x04, - 0x12, 0x04, 0xb9, 0x01, 0x02, 0x0a, 0x0a, 0x30, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x00, 0x12, 0x04, - 0xb9, 0x01, 0x02, 0x27, 0x1a, 0x22, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x31, 0x30, 0x30, 0x30, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x20, 0x70, 0x65, - 0x72, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, - 0x05, 0x12, 0x04, 0xb9, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, - 0x12, 0x04, 0xb9, 0x01, 0x12, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, - 0x04, 0xb9, 0x01, 0x25, 0x26, 0x0a, 0x56, 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x04, 0xbd, 0x01, 0x00, - 0x2b, 0x1a, 0x4a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, + 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0d, 0x01, 0x12, 0x04, 0xc4, + 0x01, 0x08, 0x28, 0x0a, 0x6a, 0x0a, 0x02, 0x04, 0x0e, 0x12, 0x06, 0xc7, 0x01, 0x00, 0xcd, 0x01, + 0x01, 0x1a, 0x5c, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x76, - 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x73, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, - 0x03, 0x04, 0x0d, 0x01, 0x12, 0x04, 0xbd, 0x01, 0x08, 0x28, 0x0a, 0x6a, 0x0a, 0x02, 0x04, 0x0e, - 0x12, 0x06, 0xc0, 0x01, 0x00, 0xc6, 0x01, 0x01, 0x1a, 0x5c, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, - 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, - 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0e, 0x01, 0x12, 0x04, 0xc0, - 0x01, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc2, 0x01, - 0x02, 0x0d, 0x0a, 0x2b, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x00, 0x12, 0x04, 0xc2, 0x01, 0x02, 0x48, - 0x1a, 0x1d, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc2, 0x01, 0x0e, 0x1a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc2, 0x01, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x0e, 0x02, 0x00, 0x08, 0x12, 0x04, 0xc2, 0x01, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, - 0x04, 0x0e, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc2, 0x01, 0x20, 0x46, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x06, 0x12, 0x04, 0xc5, 0x01, 0x02, 0x1b, 0x0a, 0x71, 0x0a, - 0x04, 0x04, 0x0e, 0x02, 0x01, 0x12, 0x04, 0xc5, 0x01, 0x02, 0x55, 0x1a, 0x63, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x20, 0x61, 0x72, 0x65, 0x20, 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x60, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x60, 0x2e, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc5, 0x01, 0x1c, 0x27, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc5, 0x01, 0x2a, 0x2b, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x08, 0x12, 0x04, 0xc5, 0x01, 0x2c, 0x54, 0x0a, 0x10, 0x0a, - 0x08, 0x04, 0x0e, 0x02, 0x01, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xc5, 0x01, 0x2d, 0x53, 0x0a, - 0x51, 0x0a, 0x02, 0x04, 0x0f, 0x12, 0x06, 0xc9, 0x01, 0x00, 0xcb, 0x01, 0x01, 0x1a, 0x43, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x60, - 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0f, 0x01, 0x12, 0x04, 0xc9, 0x01, 0x08, 0x21, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x06, 0x12, 0x04, 0xca, 0x01, 0x02, 0x0d, 0x0a, 0x0c, - 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x00, 0x12, 0x04, 0xca, 0x01, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x0f, 0x02, 0x00, 0x01, 0x12, 0x04, 0xca, 0x01, 0x0e, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x0f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xca, 0x01, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, - 0x02, 0x00, 0x08, 0x12, 0x04, 0xca, 0x01, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, - 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, 0xca, 0x01, 0x20, 0x46, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x65, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x60, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, + 0x20, 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x0a, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x0e, 0x01, 0x12, 0x04, 0xc7, 0x01, 0x08, 0x20, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0e, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc9, 0x01, 0x02, 0x0d, 0x0a, 0x2b, 0x0a, 0x04, 0x04, + 0x0e, 0x02, 0x00, 0x12, 0x04, 0xc9, 0x01, 0x02, 0x48, 0x1a, 0x1d, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x74, 0x6f, 0x20, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xc9, 0x01, 0x0e, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xc9, 0x01, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x00, 0x08, 0x12, + 0x04, 0xc9, 0x01, 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x00, 0x08, 0x9c, 0x08, + 0x00, 0x12, 0x04, 0xc9, 0x01, 0x20, 0x46, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x06, + 0x12, 0x04, 0xcc, 0x01, 0x02, 0x1b, 0x0a, 0x71, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x01, 0x12, 0x04, + 0xcc, 0x01, 0x02, 0x55, 0x1a, 0x63, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, + 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x60, 0x6e, 0x61, 0x6d, 0x65, 0x60, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x60, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x60, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, + 0x01, 0x01, 0x12, 0x04, 0xcc, 0x01, 0x1c, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, + 0x03, 0x12, 0x04, 0xcc, 0x01, 0x2a, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x08, + 0x12, 0x04, 0xcc, 0x01, 0x2c, 0x54, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0e, 0x02, 0x01, 0x08, 0x9c, + 0x08, 0x00, 0x12, 0x04, 0xcc, 0x01, 0x2d, 0x53, 0x0a, 0x51, 0x0a, 0x02, 0x04, 0x0f, 0x12, 0x06, + 0xd0, 0x01, 0x00, 0xd2, 0x01, 0x01, 0x1a, 0x43, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, + 0x74, 0x6f, 0x20, 0x60, 0x53, 0x61, 0x76, 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x76, + 0x65, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x60, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x0f, 0x01, 0x12, 0x04, 0xd0, 0x01, 0x08, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, + 0x06, 0x12, 0x04, 0xd1, 0x01, 0x02, 0x0d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x00, 0x12, + 0x04, 0xd1, 0x01, 0x02, 0x48, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xd1, 0x01, 0x0e, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd1, + 0x01, 0x1d, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x08, 0x12, 0x04, 0xd1, 0x01, + 0x1f, 0x47, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x0f, 0x02, 0x00, 0x08, 0x9c, 0x08, 0x00, 0x12, 0x04, + 0xd1, 0x01, 0x20, 0x46, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, ]; include!("sift.saved_searches.v1.tonic.rs"); include!("sift.saved_searches.v1.serde.rs"); diff --git a/rust/crates/sift_rs/src/gen/sift/saved_searches/v1/sift.saved_searches.v1.serde.rs b/rust/crates/sift_rs/src/gen/sift/saved_searches/v1/sift.saved_searches.v1.serde.rs index b860fa115a..3dfe72e77e 100644 --- a/rust/crates/sift_rs/src/gen/sift/saved_searches/v1/sift.saved_searches.v1.serde.rs +++ b/rust/crates/sift_rs/src/gen/sift/saved_searches/v1/sift.saved_searches.v1.serde.rs @@ -747,6 +747,9 @@ impl serde::Serialize for ListSavedSearchesRequest { if !self.organization_id.is_empty() { len += 1; } + if !self.order_by.is_empty() { + len += 1; + } let mut struct_ser = serializer.serialize_struct("sift.saved_searches.v1.ListSavedSearchesRequest", len)?; if self.page_size != 0 { struct_ser.serialize_field("pageSize", &self.page_size)?; @@ -760,6 +763,9 @@ impl serde::Serialize for ListSavedSearchesRequest { if !self.organization_id.is_empty() { struct_ser.serialize_field("organizationId", &self.organization_id)?; } + if !self.order_by.is_empty() { + struct_ser.serialize_field("orderBy", &self.order_by)?; + } struct_ser.end() } } @@ -777,6 +783,8 @@ impl<'de> serde::Deserialize<'de> for ListSavedSearchesRequest { "filter", "organization_id", "organizationId", + "order_by", + "orderBy", ]; #[allow(clippy::enum_variant_names)] @@ -785,6 +793,7 @@ impl<'de> serde::Deserialize<'de> for ListSavedSearchesRequest { PageToken, Filter, OrganizationId, + OrderBy, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -810,6 +819,7 @@ impl<'de> serde::Deserialize<'de> for ListSavedSearchesRequest { "pageToken" | "page_token" => Ok(GeneratedField::PageToken), "filter" => Ok(GeneratedField::Filter), "organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId), + "orderBy" | "order_by" => Ok(GeneratedField::OrderBy), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -833,6 +843,7 @@ impl<'de> serde::Deserialize<'de> for ListSavedSearchesRequest { let mut page_token__ = None; let mut filter__ = None; let mut organization_id__ = None; + let mut order_by__ = None; while let Some(k) = map_.next_key()? { match k { GeneratedField::PageSize => { @@ -861,6 +872,12 @@ impl<'de> serde::Deserialize<'de> for ListSavedSearchesRequest { } organization_id__ = Some(map_.next_value()?); } + GeneratedField::OrderBy => { + if order_by__.is_some() { + return Err(serde::de::Error::duplicate_field("orderBy")); + } + order_by__ = Some(map_.next_value()?); + } } } Ok(ListSavedSearchesRequest { @@ -868,6 +885,7 @@ impl<'de> serde::Deserialize<'de> for ListSavedSearchesRequest { page_token: page_token__.unwrap_or_default(), filter: filter__.unwrap_or_default(), organization_id: organization_id__.unwrap_or_default(), + order_by: order_by__.unwrap_or_default(), }) } }