diff --git a/.local-dev/config/ns.yaml b/.local-dev/config/ns.yaml index be36f0c0..55864f1e 100644 --- a/.local-dev/config/ns.yaml +++ b/.local-dev/config/ns.yaml @@ -135,6 +135,8 @@ components: enable: true url: http://sablier.sablier.svc.cluster.local sessionDuration: 5m + blocking: + timeout: 1m tls: type: traefik traefik: diff --git a/api/proto/neoshowcase/protobuf/gateway.proto b/api/proto/neoshowcase/protobuf/gateway.proto index dff270a0..0db10f97 100644 --- a/api/proto/neoshowcase/protobuf/gateway.proto +++ b/api/proto/neoshowcase/protobuf/gateway.proto @@ -99,12 +99,22 @@ enum DeployType { STATIC = 1; } +message AutoShutdownConfig { + enum StartupBehavior { + UNDEFINED = 0; + LOADING_PAGE = 1; + BLOCKING = 2; + } + bool enabled = 1; + StartupBehavior startup = 2; +} + message RuntimeConfig { bool use_mariadb = 1; bool use_mongodb = 2; string entrypoint = 3; string command = 4; - bool auto_shutdown = 5; + AutoShutdownConfig auto_shutdown = 5; } message BuildConfigRuntimeBuildpack { diff --git a/docs/dbschema/README.md b/docs/dbschema/README.md index 7f9df400..8463c259 100644 --- a/docs/dbschema/README.md +++ b/docs/dbschema/README.md @@ -5,7 +5,7 @@ | Name | Columns | Comment | Type | | ---- | ------- | ------- | ---- | | [applications](applications.md) | 12 | アプリケーションテーブル | BASE TABLE | -| [application_config](application_config.md) | 13 | アプリケーション詳細設定テーブル | BASE TABLE | +| [application_config](application_config.md) | 14 | アプリケーション詳細設定テーブル | BASE TABLE | | [application_owners](application_owners.md) | 2 | アプリケーション所有者テーブル | BASE TABLE | | [artifacts](artifacts.md) | 6 | 静的ファイル生成物テーブル | BASE TABLE | | [builds](builds.md) | 10 | ビルドテーブル | BASE TABLE | @@ -59,6 +59,7 @@ erDiagram tinyint_1_ use_mariadb tinyint_1_ use_mongodb tinyint_1_ auto_shutdown + enum__undefined___loading-page___blocking__ startup_behavior enum__runtime-buildpack___runtime-cmd___runtime-dockerfile___static-buildpack___static-cmd___static-dockerfile__ build_type varchar_1000_ base_image text build_cmd diff --git a/docs/dbschema/application_config.md b/docs/dbschema/application_config.md index a275cfd3..a1b1a8b4 100644 --- a/docs/dbschema/application_config.md +++ b/docs/dbschema/application_config.md @@ -13,6 +13,7 @@ CREATE TABLE `application_config` ( `use_mariadb` tinyint(1) NOT NULL COMMENT 'MariaDBを使用するか', `use_mongodb` tinyint(1) NOT NULL COMMENT 'MongoDBを使用するか', `auto_shutdown` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'アプリケーションの自動シャットダウン', + `startup_behavior` enum('undefined','loading-page','blocking') NOT NULL COMMENT 'アプリ起動時の振る舞い', `build_type` enum('runtime-buildpack','runtime-cmd','runtime-dockerfile','static-buildpack','static-cmd','static-dockerfile') NOT NULL COMMENT 'ビルドタイプ', `base_image` varchar(1000) NOT NULL COMMENT 'ベースイメージの名前', `build_cmd` text NOT NULL COMMENT 'ビルドコマンド', @@ -37,6 +38,7 @@ CREATE TABLE `application_config` ( | use_mariadb | tinyint(1) | | false | | | MariaDBを使用するか | | use_mongodb | tinyint(1) | | false | | | MongoDBを使用するか | | auto_shutdown | tinyint(1) | 0 | false | | | アプリケーションの自動シャットダウン | +| startup_behavior | enum('undefined','loading-page','blocking') | | false | | | アプリ起動時の振る舞い | | build_type | enum('runtime-buildpack','runtime-cmd','runtime-dockerfile','static-buildpack','static-cmd','static-dockerfile') | | false | | | ビルドタイプ | | base_image | varchar(1000) | | false | | | ベースイメージの名前 | | build_cmd | text | | false | | | ビルドコマンド | @@ -72,6 +74,7 @@ erDiagram tinyint_1_ use_mariadb tinyint_1_ use_mongodb tinyint_1_ auto_shutdown + enum__undefined___loading-page___blocking__ startup_behavior enum__runtime-buildpack___runtime-cmd___runtime-dockerfile___static-buildpack___static-cmd___static-dockerfile__ build_type varchar_1000_ base_image text build_cmd diff --git a/docs/dbschema/applications.md b/docs/dbschema/applications.md index 892262de..5ce495bf 100644 --- a/docs/dbschema/applications.md +++ b/docs/dbschema/applications.md @@ -92,6 +92,7 @@ erDiagram tinyint_1_ use_mariadb tinyint_1_ use_mongodb tinyint_1_ auto_shutdown + enum__undefined___loading-page___blocking__ startup_behavior enum__runtime-buildpack___runtime-cmd___runtime-dockerfile___static-buildpack___static-cmd___static-dockerfile__ build_type varchar_1000_ base_image text build_cmd diff --git a/migrations/schema.sql b/migrations/schema.sql index cd438da1..14023626 100644 --- a/migrations/schema.sql +++ b/migrations/schema.sql @@ -107,6 +107,11 @@ CREATE TABLE `application_config` `use_mariadb` TINYINT(1) NOT NULL COMMENT 'MariaDBを使用するか', `use_mongodb` TINYINT(1) NOT NULL COMMENT 'MongoDBを使用するか', `auto_shutdown` TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'アプリケーションの自動シャットダウン', + `startup_behavior` ENUM ( + 'undefined', + 'loading-page', + 'blocking' + ) NOT NULL COMMENT 'アプリ起動時の振る舞い', `build_type` ENUM ( 'runtime-buildpack', 'runtime-cmd', diff --git a/pkg/domain/app_build_config.go b/pkg/domain/app_build_config.go index 4c60956e..fa587579 100644 --- a/pkg/domain/app_build_config.go +++ b/pkg/domain/app_build_config.go @@ -36,9 +36,29 @@ type RuntimeConfig struct { UseMongoDB bool Entrypoint string Command string - AutoShutdown bool + AutoShutdown AutoShutdownConfig } +type AutoShutdownConfig struct { + Enabled bool + // Startup must be set if Enabled is true. + Startup StartupBehavior +} + +// StartupBehavior represents the behavior of the application when it starts up. +// This is used to determine how to handle the request until the application is ready. +type StartupBehavior int + +const ( + StartupBehaviorUndefined StartupBehavior = iota + // StartupBehaviorLoadingPage is a strategy that shows a loading page until the application is ready. + // This is suitable for web applications that are accessed from frontend. + StartupBehaviorLoadingPage + // StartupBehaviorBlocking is a strategy that blocks the request until the application is ready. + // This is suitable for API servers. + StartupBehaviorBlocking +) + const shellSpecialCharacters = "`" + `~#$&*()\|[]{};'"<>?!=` func ParseArgs(s string) ([]string, error) { @@ -65,6 +85,9 @@ func (rc *RuntimeConfig) Validate() error { if _, err := ParseArgs(rc.Command); err != nil { return errors.Wrap(err, "command") } + if rc.AutoShutdown.Enabled && rc.AutoShutdown.Startup == StartupBehaviorUndefined { + return errors.New("startup is required if auto shutdown is enabled") + } return nil } diff --git a/pkg/infrastructure/backend/k8simpl/backend.go b/pkg/infrastructure/backend/k8simpl/backend.go index e439f76f..bdd273ed 100644 --- a/pkg/infrastructure/backend/k8simpl/backend.go +++ b/pkg/infrastructure/backend/k8simpl/backend.go @@ -201,7 +201,7 @@ func sablierMiddlewareName(appID string) string { } func (b *Backend) useSablier(app *domain.Application) bool { - return app.DeployType == domain.DeployTypeRuntime && app.Config.BuildConfig.GetRuntimeConfig().AutoShutdown + return app.DeployType == domain.DeployTypeRuntime && app.Config.BuildConfig.GetRuntimeConfig().AutoShutdown.Enabled } func sablierGroupName(appID string) string { diff --git a/pkg/infrastructure/backend/k8simpl/config.go b/pkg/infrastructure/backend/k8simpl/config.go index 49585d46..348bd7ce 100644 --- a/pkg/infrastructure/backend/k8simpl/config.go +++ b/pkg/infrastructure/backend/k8simpl/config.go @@ -201,6 +201,10 @@ type Config struct { // // Example: "10m" SessionDuration string `mapstructure:"sessionDuration" yaml:"sessionDuration"` + Blocking struct { + // Timeout defines how long the blocking should last. + Timeout string `mapstructure:"timeout" yaml:"blockingTimeout"` + } `mapstructure:"blocking" yaml:"blocking"` } `mapstructure:"sablier" yaml:"sablier"` } // TLS section defines tls setting for user app ingress. diff --git a/pkg/infrastructure/backend/k8simpl/ingress.go b/pkg/infrastructure/backend/k8simpl/ingress.go index c19de642..5358376b 100644 --- a/pkg/infrastructure/backend/k8simpl/ingress.go +++ b/pkg/infrastructure/backend/k8simpl/ingress.go @@ -64,28 +64,48 @@ func (b *Backend) certificate(targetDomain string) *certmanagerv1.Certificate { } } -func (b *Backend) sablierMiddleware(app *domain.Application) *traefikv1alpha1.Middleware { +func (b *Backend) jsonSablierConfig(app *domain.Application) []byte { type DynamicConfig = struct { DisplayName string `json:"displayName"` ShowDetails string `json:"showDetails"` Theme string `json:"theme"` } - config := struct { - SablierURL string `json:"sablierURL"` - Group string `json:"group"` - SessionDuration string `json:"sessionDuration"` - Dynamic DynamicConfig `json:"dynamic"` - }{ - b.config.Middleware.Sablier.SablierURL, - sablierGroupName(app.ID), - b.config.Middleware.Sablier.SessionDuration, - DynamicConfig{ + type BlockingConfig = struct { + Timeout string `json:"timeout"` + } + type SablierConfig = struct { + SablierURL string `json:"sablierURL"` + Group string `json:"group"` + SessionDuration string `json:"sessionDuration"` + Dynamic *DynamicConfig `json:"dynamic,omitempty"` + Blocking *BlockingConfig `json:"blocking,omitempty"` + } + + config := SablierConfig{ + SablierURL: b.config.Middleware.Sablier.SablierURL, + Group: sablierGroupName(app.ID), + SessionDuration: b.config.Middleware.Sablier.SessionDuration, + } + + switch app.Config.BuildConfig.GetRuntimeConfig().AutoShutdown.Startup { + case domain.StartupBehaviorLoadingPage: + config.Dynamic = &DynamicConfig{ DisplayName: app.Name, ShowDetails: "true", Theme: "ghost", - }, + } + case domain.StartupBehaviorBlocking: + config.Blocking = &BlockingConfig{ + Timeout: b.config.Middleware.Sablier.Blocking.Timeout, + } } + data, _ := json.Marshal(config) + return data +} + +func (b *Backend) sablierMiddleware(app *domain.Application) *traefikv1alpha1.Middleware { + configData := b.jsonSablierConfig(app) return &traefikv1alpha1.Middleware{ TypeMeta: metav1.TypeMeta{ Kind: "Middleware", @@ -98,7 +118,7 @@ func (b *Backend) sablierMiddleware(app *domain.Application) *traefikv1alpha1.Mi }, Spec: traefikv1alpha1.MiddlewareSpec{ Plugin: map[string]v1.JSON{ - "sablier": {Raw: data}, + "sablier": {Raw: configData}, }, }, } diff --git a/pkg/infrastructure/grpc/pb/gateway.pb.go b/pkg/infrastructure/grpc/pb/gateway.pb.go index 2b1d5fbb..e6eca595 100644 --- a/pkg/infrastructure/grpc/pb/gateway.pb.go +++ b/pkg/infrastructure/grpc/pb/gateway.pb.go @@ -270,6 +270,55 @@ func (Repository_AuthMethod) EnumDescriptor() ([]byte, []int) { return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{7, 0} } +type AutoShutdownConfig_StartupBehavior int32 + +const ( + AutoShutdownConfig_UNDEFINED AutoShutdownConfig_StartupBehavior = 0 + AutoShutdownConfig_LOADING_PAGE AutoShutdownConfig_StartupBehavior = 1 + AutoShutdownConfig_BLOCKING AutoShutdownConfig_StartupBehavior = 2 +) + +// Enum value maps for AutoShutdownConfig_StartupBehavior. +var ( + AutoShutdownConfig_StartupBehavior_name = map[int32]string{ + 0: "UNDEFINED", + 1: "LOADING_PAGE", + 2: "BLOCKING", + } + AutoShutdownConfig_StartupBehavior_value = map[string]int32{ + "UNDEFINED": 0, + "LOADING_PAGE": 1, + "BLOCKING": 2, + } +) + +func (x AutoShutdownConfig_StartupBehavior) Enum() *AutoShutdownConfig_StartupBehavior { + p := new(AutoShutdownConfig_StartupBehavior) + *p = x + return p +} + +func (x AutoShutdownConfig_StartupBehavior) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AutoShutdownConfig_StartupBehavior) Descriptor() protoreflect.EnumDescriptor { + return file_neoshowcase_protobuf_gateway_proto_enumTypes[5].Descriptor() +} + +func (AutoShutdownConfig_StartupBehavior) Type() protoreflect.EnumType { + return &file_neoshowcase_protobuf_gateway_proto_enumTypes[5] +} + +func (x AutoShutdownConfig_StartupBehavior) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AutoShutdownConfig_StartupBehavior.Descriptor instead. +func (AutoShutdownConfig_StartupBehavior) EnumDescriptor() ([]byte, []int) { + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{9, 0} +} + type Application_ContainerState int32 const ( @@ -315,11 +364,11 @@ func (x Application_ContainerState) String() string { } func (Application_ContainerState) Descriptor() protoreflect.EnumDescriptor { - return file_neoshowcase_protobuf_gateway_proto_enumTypes[5].Descriptor() + return file_neoshowcase_protobuf_gateway_proto_enumTypes[6].Descriptor() } func (Application_ContainerState) Type() protoreflect.EnumType { - return &file_neoshowcase_protobuf_gateway_proto_enumTypes[5] + return &file_neoshowcase_protobuf_gateway_proto_enumTypes[6] } func (x Application_ContainerState) Number() protoreflect.EnumNumber { @@ -328,7 +377,7 @@ func (x Application_ContainerState) Number() protoreflect.EnumNumber { // Deprecated: Use Application_ContainerState.Descriptor instead. func (Application_ContainerState) EnumDescriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{20, 0} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{21, 0} } type GetRepositoriesRequest_Scope int32 @@ -368,11 +417,11 @@ func (x GetRepositoriesRequest_Scope) String() string { } func (GetRepositoriesRequest_Scope) Descriptor() protoreflect.EnumDescriptor { - return file_neoshowcase_protobuf_gateway_proto_enumTypes[6].Descriptor() + return file_neoshowcase_protobuf_gateway_proto_enumTypes[7].Descriptor() } func (GetRepositoriesRequest_Scope) Type() protoreflect.EnumType { - return &file_neoshowcase_protobuf_gateway_proto_enumTypes[6] + return &file_neoshowcase_protobuf_gateway_proto_enumTypes[7] } func (x GetRepositoriesRequest_Scope) Number() protoreflect.EnumNumber { @@ -381,7 +430,7 @@ func (x GetRepositoriesRequest_Scope) Number() protoreflect.EnumNumber { // Deprecated: Use GetRepositoriesRequest_Scope.Descriptor instead. func (GetRepositoriesRequest_Scope) EnumDescriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{43, 0} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{44, 0} } type GetApplicationsRequest_Scope int32 @@ -417,11 +466,11 @@ func (x GetApplicationsRequest_Scope) String() string { } func (GetApplicationsRequest_Scope) Descriptor() protoreflect.EnumDescriptor { - return file_neoshowcase_protobuf_gateway_proto_enumTypes[7].Descriptor() + return file_neoshowcase_protobuf_gateway_proto_enumTypes[8].Descriptor() } func (GetApplicationsRequest_Scope) Type() protoreflect.EnumType { - return &file_neoshowcase_protobuf_gateway_proto_enumTypes[7] + return &file_neoshowcase_protobuf_gateway_proto_enumTypes[8] } func (x GetApplicationsRequest_Scope) Number() protoreflect.EnumNumber { @@ -430,7 +479,7 @@ func (x GetApplicationsRequest_Scope) Number() protoreflect.EnumNumber { // Deprecated: Use GetApplicationsRequest_Scope.Descriptor instead. func (GetApplicationsRequest_Scope) EnumDescriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{51, 0} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{52, 0} } type SSHInfo struct { @@ -1070,21 +1119,74 @@ func (x *SimpleCommit) GetMessage() string { return "" } +type AutoShutdownConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` + Startup AutoShutdownConfig_StartupBehavior `protobuf:"varint,2,opt,name=startup,proto3,enum=neoshowcase.protobuf.AutoShutdownConfig_StartupBehavior" json:"startup,omitempty"` +} + +func (x *AutoShutdownConfig) Reset() { + *x = AutoShutdownConfig{} + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AutoShutdownConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AutoShutdownConfig) ProtoMessage() {} + +func (x *AutoShutdownConfig) ProtoReflect() protoreflect.Message { + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AutoShutdownConfig.ProtoReflect.Descriptor instead. +func (*AutoShutdownConfig) Descriptor() ([]byte, []int) { + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{9} +} + +func (x *AutoShutdownConfig) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +func (x *AutoShutdownConfig) GetStartup() AutoShutdownConfig_StartupBehavior { + if x != nil { + return x.Startup + } + return AutoShutdownConfig_UNDEFINED +} + type RuntimeConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UseMariadb bool `protobuf:"varint,1,opt,name=use_mariadb,json=useMariadb,proto3" json:"use_mariadb,omitempty"` - UseMongodb bool `protobuf:"varint,2,opt,name=use_mongodb,json=useMongodb,proto3" json:"use_mongodb,omitempty"` - Entrypoint string `protobuf:"bytes,3,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"` - Command string `protobuf:"bytes,4,opt,name=command,proto3" json:"command,omitempty"` - AutoShutdown bool `protobuf:"varint,5,opt,name=auto_shutdown,json=autoShutdown,proto3" json:"auto_shutdown,omitempty"` + UseMariadb bool `protobuf:"varint,1,opt,name=use_mariadb,json=useMariadb,proto3" json:"use_mariadb,omitempty"` + UseMongodb bool `protobuf:"varint,2,opt,name=use_mongodb,json=useMongodb,proto3" json:"use_mongodb,omitempty"` + Entrypoint string `protobuf:"bytes,3,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"` + Command string `protobuf:"bytes,4,opt,name=command,proto3" json:"command,omitempty"` + AutoShutdown *AutoShutdownConfig `protobuf:"bytes,5,opt,name=auto_shutdown,json=autoShutdown,proto3" json:"auto_shutdown,omitempty"` } func (x *RuntimeConfig) Reset() { *x = RuntimeConfig{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[9] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1096,7 +1198,7 @@ func (x *RuntimeConfig) String() string { func (*RuntimeConfig) ProtoMessage() {} func (x *RuntimeConfig) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[9] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1109,7 +1211,7 @@ func (x *RuntimeConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use RuntimeConfig.ProtoReflect.Descriptor instead. func (*RuntimeConfig) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{9} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{10} } func (x *RuntimeConfig) GetUseMariadb() bool { @@ -1140,11 +1242,11 @@ func (x *RuntimeConfig) GetCommand() string { return "" } -func (x *RuntimeConfig) GetAutoShutdown() bool { +func (x *RuntimeConfig) GetAutoShutdown() *AutoShutdownConfig { if x != nil { return x.AutoShutdown } - return false + return nil } type BuildConfigRuntimeBuildpack struct { @@ -1158,7 +1260,7 @@ type BuildConfigRuntimeBuildpack struct { func (x *BuildConfigRuntimeBuildpack) Reset() { *x = BuildConfigRuntimeBuildpack{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[10] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1170,7 +1272,7 @@ func (x *BuildConfigRuntimeBuildpack) String() string { func (*BuildConfigRuntimeBuildpack) ProtoMessage() {} func (x *BuildConfigRuntimeBuildpack) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[10] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1183,7 +1285,7 @@ func (x *BuildConfigRuntimeBuildpack) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildConfigRuntimeBuildpack.ProtoReflect.Descriptor instead. func (*BuildConfigRuntimeBuildpack) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{10} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{11} } func (x *BuildConfigRuntimeBuildpack) GetRuntimeConfig() *RuntimeConfig { @@ -1212,7 +1314,7 @@ type BuildConfigRuntimeCmd struct { func (x *BuildConfigRuntimeCmd) Reset() { *x = BuildConfigRuntimeCmd{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[11] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1224,7 +1326,7 @@ func (x *BuildConfigRuntimeCmd) String() string { func (*BuildConfigRuntimeCmd) ProtoMessage() {} func (x *BuildConfigRuntimeCmd) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[11] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1237,7 +1339,7 @@ func (x *BuildConfigRuntimeCmd) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildConfigRuntimeCmd.ProtoReflect.Descriptor instead. func (*BuildConfigRuntimeCmd) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{11} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{12} } func (x *BuildConfigRuntimeCmd) GetRuntimeConfig() *RuntimeConfig { @@ -1273,7 +1375,7 @@ type BuildConfigRuntimeDockerfile struct { func (x *BuildConfigRuntimeDockerfile) Reset() { *x = BuildConfigRuntimeDockerfile{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[12] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1285,7 +1387,7 @@ func (x *BuildConfigRuntimeDockerfile) String() string { func (*BuildConfigRuntimeDockerfile) ProtoMessage() {} func (x *BuildConfigRuntimeDockerfile) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[12] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1298,7 +1400,7 @@ func (x *BuildConfigRuntimeDockerfile) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildConfigRuntimeDockerfile.ProtoReflect.Descriptor instead. func (*BuildConfigRuntimeDockerfile) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{12} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{13} } func (x *BuildConfigRuntimeDockerfile) GetRuntimeConfig() *RuntimeConfig { @@ -1333,7 +1435,7 @@ type StaticConfig struct { func (x *StaticConfig) Reset() { *x = StaticConfig{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[13] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1345,7 +1447,7 @@ func (x *StaticConfig) String() string { func (*StaticConfig) ProtoMessage() {} func (x *StaticConfig) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[13] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1358,7 +1460,7 @@ func (x *StaticConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use StaticConfig.ProtoReflect.Descriptor instead. func (*StaticConfig) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{13} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{14} } func (x *StaticConfig) GetArtifactPath() string { @@ -1386,7 +1488,7 @@ type BuildConfigStaticBuildpack struct { func (x *BuildConfigStaticBuildpack) Reset() { *x = BuildConfigStaticBuildpack{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[14] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1398,7 +1500,7 @@ func (x *BuildConfigStaticBuildpack) String() string { func (*BuildConfigStaticBuildpack) ProtoMessage() {} func (x *BuildConfigStaticBuildpack) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[14] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1411,7 +1513,7 @@ func (x *BuildConfigStaticBuildpack) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildConfigStaticBuildpack.ProtoReflect.Descriptor instead. func (*BuildConfigStaticBuildpack) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{14} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{15} } func (x *BuildConfigStaticBuildpack) GetStaticConfig() *StaticConfig { @@ -1440,7 +1542,7 @@ type BuildConfigStaticCmd struct { func (x *BuildConfigStaticCmd) Reset() { *x = BuildConfigStaticCmd{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[15] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1452,7 +1554,7 @@ func (x *BuildConfigStaticCmd) String() string { func (*BuildConfigStaticCmd) ProtoMessage() {} func (x *BuildConfigStaticCmd) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[15] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1465,7 +1567,7 @@ func (x *BuildConfigStaticCmd) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildConfigStaticCmd.ProtoReflect.Descriptor instead. func (*BuildConfigStaticCmd) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{15} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{16} } func (x *BuildConfigStaticCmd) GetStaticConfig() *StaticConfig { @@ -1501,7 +1603,7 @@ type BuildConfigStaticDockerfile struct { func (x *BuildConfigStaticDockerfile) Reset() { *x = BuildConfigStaticDockerfile{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[16] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1513,7 +1615,7 @@ func (x *BuildConfigStaticDockerfile) String() string { func (*BuildConfigStaticDockerfile) ProtoMessage() {} func (x *BuildConfigStaticDockerfile) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[16] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1526,7 +1628,7 @@ func (x *BuildConfigStaticDockerfile) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildConfigStaticDockerfile.ProtoReflect.Descriptor instead. func (*BuildConfigStaticDockerfile) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{16} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{17} } func (x *BuildConfigStaticDockerfile) GetStaticConfig() *StaticConfig { @@ -1568,7 +1670,7 @@ type ApplicationConfig struct { func (x *ApplicationConfig) Reset() { *x = ApplicationConfig{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[17] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1580,7 +1682,7 @@ func (x *ApplicationConfig) String() string { func (*ApplicationConfig) ProtoMessage() {} func (x *ApplicationConfig) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[17] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1593,7 +1695,7 @@ func (x *ApplicationConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplicationConfig.ProtoReflect.Descriptor instead. func (*ApplicationConfig) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{17} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{18} } func (m *ApplicationConfig) GetBuildConfig() isApplicationConfig_BuildConfig { @@ -1702,7 +1804,7 @@ type Website struct { func (x *Website) Reset() { *x = Website{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[18] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1714,7 +1816,7 @@ func (x *Website) String() string { func (*Website) ProtoMessage() {} func (x *Website) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[18] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1727,7 +1829,7 @@ func (x *Website) ProtoReflect() protoreflect.Message { // Deprecated: Use Website.ProtoReflect.Descriptor instead. func (*Website) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{18} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{19} } func (x *Website) GetId() string { @@ -1798,7 +1900,7 @@ type PortPublication struct { func (x *PortPublication) Reset() { *x = PortPublication{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[19] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1810,7 +1912,7 @@ func (x *PortPublication) String() string { func (*PortPublication) ProtoMessage() {} func (x *PortPublication) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[19] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1823,7 +1925,7 @@ func (x *PortPublication) ProtoReflect() protoreflect.Message { // Deprecated: Use PortPublication.ProtoReflect.Descriptor instead. func (*PortPublication) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{19} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{20} } func (x *PortPublication) GetInternetPort() int32 { @@ -1873,7 +1975,7 @@ type Application struct { func (x *Application) Reset() { *x = Application{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[20] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1885,7 +1987,7 @@ func (x *Application) String() string { func (*Application) ProtoMessage() {} func (x *Application) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[20] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1898,7 +2000,7 @@ func (x *Application) ProtoReflect() protoreflect.Message { // Deprecated: Use Application.ProtoReflect.Descriptor instead. func (*Application) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{20} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{21} } func (x *Application) GetId() string { @@ -2033,7 +2135,7 @@ type ApplicationEnvVar struct { func (x *ApplicationEnvVar) Reset() { *x = ApplicationEnvVar{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[21] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2045,7 +2147,7 @@ func (x *ApplicationEnvVar) String() string { func (*ApplicationEnvVar) ProtoMessage() {} func (x *ApplicationEnvVar) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[21] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2058,7 +2160,7 @@ func (x *ApplicationEnvVar) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplicationEnvVar.ProtoReflect.Descriptor instead. func (*ApplicationEnvVar) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{21} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{22} } func (x *ApplicationEnvVar) GetApplicationId() string { @@ -2099,7 +2201,7 @@ type ApplicationEnvVars struct { func (x *ApplicationEnvVars) Reset() { *x = ApplicationEnvVars{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[22] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2111,7 +2213,7 @@ func (x *ApplicationEnvVars) String() string { func (*ApplicationEnvVars) ProtoMessage() {} func (x *ApplicationEnvVars) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[22] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2124,7 +2226,7 @@ func (x *ApplicationEnvVars) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplicationEnvVars.ProtoReflect.Descriptor instead. func (*ApplicationEnvVars) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{22} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{23} } func (x *ApplicationEnvVars) GetVariables() []*ApplicationEnvVar { @@ -2149,7 +2251,7 @@ type Artifact struct { func (x *Artifact) Reset() { *x = Artifact{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[23] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2161,7 +2263,7 @@ func (x *Artifact) String() string { func (*Artifact) ProtoMessage() {} func (x *Artifact) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[23] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2174,7 +2276,7 @@ func (x *Artifact) ProtoReflect() protoreflect.Message { // Deprecated: Use Artifact.ProtoReflect.Descriptor instead. func (*Artifact) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{23} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{24} } func (x *Artifact) GetId() string { @@ -2230,7 +2332,7 @@ type ArtifactContent struct { func (x *ArtifactContent) Reset() { *x = ArtifactContent{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[24] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2242,7 +2344,7 @@ func (x *ArtifactContent) String() string { func (*ArtifactContent) ProtoMessage() {} func (x *ArtifactContent) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[24] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2255,7 +2357,7 @@ func (x *ArtifactContent) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactContent.ProtoReflect.Descriptor instead. func (*ArtifactContent) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{24} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{25} } func (x *ArtifactContent) GetFilename() string { @@ -2285,7 +2387,7 @@ type RuntimeImage struct { func (x *RuntimeImage) Reset() { *x = RuntimeImage{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[25] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2297,7 +2399,7 @@ func (x *RuntimeImage) String() string { func (*RuntimeImage) ProtoMessage() {} func (x *RuntimeImage) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[25] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2310,7 +2412,7 @@ func (x *RuntimeImage) ProtoReflect() protoreflect.Message { // Deprecated: Use RuntimeImage.ProtoReflect.Descriptor instead. func (*RuntimeImage) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{25} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{26} } func (x *RuntimeImage) GetId() string { @@ -2351,7 +2453,7 @@ type AvailableMetrics struct { func (x *AvailableMetrics) Reset() { *x = AvailableMetrics{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[26] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2363,7 +2465,7 @@ func (x *AvailableMetrics) String() string { func (*AvailableMetrics) ProtoMessage() {} func (x *AvailableMetrics) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[26] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2376,7 +2478,7 @@ func (x *AvailableMetrics) ProtoReflect() protoreflect.Message { // Deprecated: Use AvailableMetrics.ProtoReflect.Descriptor instead. func (*AvailableMetrics) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{26} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{27} } func (x *AvailableMetrics) GetMetricsNames() []string { @@ -2397,7 +2499,7 @@ type ApplicationMetric struct { func (x *ApplicationMetric) Reset() { *x = ApplicationMetric{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[27] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2409,7 +2511,7 @@ func (x *ApplicationMetric) String() string { func (*ApplicationMetric) ProtoMessage() {} func (x *ApplicationMetric) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[27] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2422,7 +2524,7 @@ func (x *ApplicationMetric) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplicationMetric.ProtoReflect.Descriptor instead. func (*ApplicationMetric) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{27} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{28} } func (x *ApplicationMetric) GetTime() *timestamppb.Timestamp { @@ -2449,7 +2551,7 @@ type ApplicationMetrics struct { func (x *ApplicationMetrics) Reset() { *x = ApplicationMetrics{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[28] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2461,7 +2563,7 @@ func (x *ApplicationMetrics) String() string { func (*ApplicationMetrics) ProtoMessage() {} func (x *ApplicationMetrics) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[28] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2474,7 +2576,7 @@ func (x *ApplicationMetrics) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplicationMetrics.ProtoReflect.Descriptor instead. func (*ApplicationMetrics) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{28} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{29} } func (x *ApplicationMetrics) GetMetrics() []*ApplicationMetric { @@ -2495,7 +2597,7 @@ type ApplicationOutput struct { func (x *ApplicationOutput) Reset() { *x = ApplicationOutput{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[29] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2507,7 +2609,7 @@ func (x *ApplicationOutput) String() string { func (*ApplicationOutput) ProtoMessage() {} func (x *ApplicationOutput) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[29] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2520,7 +2622,7 @@ func (x *ApplicationOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplicationOutput.ProtoReflect.Descriptor instead. func (*ApplicationOutput) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{29} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{30} } func (x *ApplicationOutput) GetTime() *timestamppb.Timestamp { @@ -2547,7 +2649,7 @@ type ApplicationOutputs struct { func (x *ApplicationOutputs) Reset() { *x = ApplicationOutputs{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[30] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2559,7 +2661,7 @@ func (x *ApplicationOutputs) String() string { func (*ApplicationOutputs) ProtoMessage() {} func (x *ApplicationOutputs) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[30] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2572,7 +2674,7 @@ func (x *ApplicationOutputs) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplicationOutputs.ProtoReflect.Descriptor instead. func (*ApplicationOutputs) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{30} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{31} } func (x *ApplicationOutputs) GetOutputs() []*ApplicationOutput { @@ -2602,7 +2704,7 @@ type Build struct { func (x *Build) Reset() { *x = Build{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[31] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2614,7 +2716,7 @@ func (x *Build) String() string { func (*Build) ProtoMessage() {} func (x *Build) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[31] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2627,7 +2729,7 @@ func (x *Build) ProtoReflect() protoreflect.Message { // Deprecated: Use Build.ProtoReflect.Descriptor instead. func (*Build) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{31} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{32} } func (x *Build) GetId() string { @@ -2717,7 +2819,7 @@ type BuildLog struct { func (x *BuildLog) Reset() { *x = BuildLog{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[32] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2729,7 +2831,7 @@ func (x *BuildLog) String() string { func (*BuildLog) ProtoMessage() {} func (x *BuildLog) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[32] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2742,7 +2844,7 @@ func (x *BuildLog) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildLog.ProtoReflect.Descriptor instead. func (*BuildLog) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{32} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{33} } func (x *BuildLog) GetLog() []byte { @@ -2763,7 +2865,7 @@ type GitRef struct { func (x *GitRef) Reset() { *x = GitRef{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[33] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2775,7 +2877,7 @@ func (x *GitRef) String() string { func (*GitRef) ProtoMessage() {} func (x *GitRef) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[33] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2788,7 +2890,7 @@ func (x *GitRef) ProtoReflect() protoreflect.Message { // Deprecated: Use GitRef.ProtoReflect.Descriptor instead. func (*GitRef) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{33} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{34} } func (x *GitRef) GetRefName() string { @@ -2816,7 +2918,7 @@ type GenerateKeyPairResponse struct { func (x *GenerateKeyPairResponse) Reset() { *x = GenerateKeyPairResponse{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[34] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2828,7 +2930,7 @@ func (x *GenerateKeyPairResponse) String() string { func (*GenerateKeyPairResponse) ProtoMessage() {} func (x *GenerateKeyPairResponse) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[34] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2841,7 +2943,7 @@ func (x *GenerateKeyPairResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateKeyPairResponse.ProtoReflect.Descriptor instead. func (*GenerateKeyPairResponse) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{34} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{35} } func (x *GenerateKeyPairResponse) GetKeyId() string { @@ -2868,7 +2970,7 @@ type GetUsersResponse struct { func (x *GetUsersResponse) Reset() { *x = GetUsersResponse{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[35] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2880,7 +2982,7 @@ func (x *GetUsersResponse) String() string { func (*GetUsersResponse) ProtoMessage() {} func (x *GetUsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[35] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2893,7 +2995,7 @@ func (x *GetUsersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUsersResponse.ProtoReflect.Descriptor instead. func (*GetUsersResponse) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{35} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{36} } func (x *GetUsersResponse) GetUsers() []*User { @@ -2913,7 +3015,7 @@ type GetUserKeysResponse struct { func (x *GetUserKeysResponse) Reset() { *x = GetUserKeysResponse{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[36] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2925,7 +3027,7 @@ func (x *GetUserKeysResponse) String() string { func (*GetUserKeysResponse) ProtoMessage() {} func (x *GetUserKeysResponse) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[36] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2938,7 +3040,7 @@ func (x *GetUserKeysResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserKeysResponse.ProtoReflect.Descriptor instead. func (*GetUserKeysResponse) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{36} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{37} } func (x *GetUserKeysResponse) GetKeys() []*UserKey { @@ -2959,7 +3061,7 @@ type CreateUserKeyRequest struct { func (x *CreateUserKeyRequest) Reset() { *x = CreateUserKeyRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[37] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2971,7 +3073,7 @@ func (x *CreateUserKeyRequest) String() string { func (*CreateUserKeyRequest) ProtoMessage() {} func (x *CreateUserKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[37] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2984,7 +3086,7 @@ func (x *CreateUserKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateUserKeyRequest.ProtoReflect.Descriptor instead. func (*CreateUserKeyRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{37} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{38} } func (x *CreateUserKeyRequest) GetPublicKey() string { @@ -3011,7 +3113,7 @@ type DeleteUserKeyRequest struct { func (x *DeleteUserKeyRequest) Reset() { *x = DeleteUserKeyRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[38] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3023,7 +3125,7 @@ func (x *DeleteUserKeyRequest) String() string { func (*DeleteUserKeyRequest) ProtoMessage() {} func (x *DeleteUserKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[38] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3036,7 +3138,7 @@ func (x *DeleteUserKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUserKeyRequest.ProtoReflect.Descriptor instead. func (*DeleteUserKeyRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{38} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{39} } func (x *DeleteUserKeyRequest) GetKeyId() string { @@ -3057,7 +3159,7 @@ type CreateRepositoryAuthBasic struct { func (x *CreateRepositoryAuthBasic) Reset() { *x = CreateRepositoryAuthBasic{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[39] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3069,7 +3171,7 @@ func (x *CreateRepositoryAuthBasic) String() string { func (*CreateRepositoryAuthBasic) ProtoMessage() {} func (x *CreateRepositoryAuthBasic) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[39] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3082,7 +3184,7 @@ func (x *CreateRepositoryAuthBasic) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRepositoryAuthBasic.ProtoReflect.Descriptor instead. func (*CreateRepositoryAuthBasic) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{39} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{40} } func (x *CreateRepositoryAuthBasic) GetUsername() string { @@ -3109,7 +3211,7 @@ type CreateRepositoryAuthSSH struct { func (x *CreateRepositoryAuthSSH) Reset() { *x = CreateRepositoryAuthSSH{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[40] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3121,7 +3223,7 @@ func (x *CreateRepositoryAuthSSH) String() string { func (*CreateRepositoryAuthSSH) ProtoMessage() {} func (x *CreateRepositoryAuthSSH) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[40] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3134,7 +3236,7 @@ func (x *CreateRepositoryAuthSSH) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRepositoryAuthSSH.ProtoReflect.Descriptor instead. func (*CreateRepositoryAuthSSH) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{40} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{41} } func (x *CreateRepositoryAuthSSH) GetKeyId() string { @@ -3159,7 +3261,7 @@ type CreateRepositoryAuth struct { func (x *CreateRepositoryAuth) Reset() { *x = CreateRepositoryAuth{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[41] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3171,7 +3273,7 @@ func (x *CreateRepositoryAuth) String() string { func (*CreateRepositoryAuth) ProtoMessage() {} func (x *CreateRepositoryAuth) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[41] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3184,7 +3286,7 @@ func (x *CreateRepositoryAuth) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRepositoryAuth.ProtoReflect.Descriptor instead. func (*CreateRepositoryAuth) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{41} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{42} } func (m *CreateRepositoryAuth) GetAuth() isCreateRepositoryAuth_Auth { @@ -3249,7 +3351,7 @@ type CreateRepositoryRequest struct { func (x *CreateRepositoryRequest) Reset() { *x = CreateRepositoryRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[42] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3261,7 +3363,7 @@ func (x *CreateRepositoryRequest) String() string { func (*CreateRepositoryRequest) ProtoMessage() {} func (x *CreateRepositoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[42] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3274,7 +3376,7 @@ func (x *CreateRepositoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRepositoryRequest.ProtoReflect.Descriptor instead. func (*CreateRepositoryRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{42} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{43} } func (x *CreateRepositoryRequest) GetName() string { @@ -3308,7 +3410,7 @@ type GetRepositoriesRequest struct { func (x *GetRepositoriesRequest) Reset() { *x = GetRepositoriesRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[43] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3320,7 +3422,7 @@ func (x *GetRepositoriesRequest) String() string { func (*GetRepositoriesRequest) ProtoMessage() {} func (x *GetRepositoriesRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[43] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3333,7 +3435,7 @@ func (x *GetRepositoriesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoriesRequest.ProtoReflect.Descriptor instead. func (*GetRepositoriesRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{43} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{44} } func (x *GetRepositoriesRequest) GetScope() GetRepositoriesRequest_Scope { @@ -3357,7 +3459,7 @@ type UpdateRepositoryRequest struct { func (x *UpdateRepositoryRequest) Reset() { *x = UpdateRepositoryRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[44] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3369,7 +3471,7 @@ func (x *UpdateRepositoryRequest) String() string { func (*UpdateRepositoryRequest) ProtoMessage() {} func (x *UpdateRepositoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[44] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3382,7 +3484,7 @@ func (x *UpdateRepositoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRepositoryRequest.ProtoReflect.Descriptor instead. func (*UpdateRepositoryRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{44} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{45} } func (x *UpdateRepositoryRequest) GetId() string { @@ -3430,7 +3532,7 @@ type RepositoryIdRequest struct { func (x *RepositoryIdRequest) Reset() { *x = RepositoryIdRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[45] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3442,7 +3544,7 @@ func (x *RepositoryIdRequest) String() string { func (*RepositoryIdRequest) ProtoMessage() {} func (x *RepositoryIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[45] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3455,7 +3557,7 @@ func (x *RepositoryIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RepositoryIdRequest.ProtoReflect.Descriptor instead. func (*RepositoryIdRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{45} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{46} } func (x *RepositoryIdRequest) GetRepositoryId() string { @@ -3475,7 +3577,7 @@ type GetRepositoryCommitsRequest struct { func (x *GetRepositoryCommitsRequest) Reset() { *x = GetRepositoryCommitsRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[46] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3487,7 +3589,7 @@ func (x *GetRepositoryCommitsRequest) String() string { func (*GetRepositoryCommitsRequest) ProtoMessage() {} func (x *GetRepositoryCommitsRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[46] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3500,7 +3602,7 @@ func (x *GetRepositoryCommitsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoryCommitsRequest.ProtoReflect.Descriptor instead. func (*GetRepositoryCommitsRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{46} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{47} } func (x *GetRepositoryCommitsRequest) GetHashes() []string { @@ -3520,7 +3622,7 @@ type GetRepositoryCommitsResponse struct { func (x *GetRepositoryCommitsResponse) Reset() { *x = GetRepositoryCommitsResponse{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[47] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3532,7 +3634,7 @@ func (x *GetRepositoryCommitsResponse) String() string { func (*GetRepositoryCommitsResponse) ProtoMessage() {} func (x *GetRepositoryCommitsResponse) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[47] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3545,7 +3647,7 @@ func (x *GetRepositoryCommitsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoryCommitsResponse.ProtoReflect.Descriptor instead. func (*GetRepositoryCommitsResponse) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{47} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{48} } func (x *GetRepositoryCommitsResponse) GetCommits() []*SimpleCommit { @@ -3571,7 +3673,7 @@ type CreateWebsiteRequest struct { func (x *CreateWebsiteRequest) Reset() { *x = CreateWebsiteRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[48] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3583,7 +3685,7 @@ func (x *CreateWebsiteRequest) String() string { func (*CreateWebsiteRequest) ProtoMessage() {} func (x *CreateWebsiteRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[48] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3596,7 +3698,7 @@ func (x *CreateWebsiteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateWebsiteRequest.ProtoReflect.Descriptor instead. func (*CreateWebsiteRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{48} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{49} } func (x *CreateWebsiteRequest) GetFqdn() string { @@ -3658,7 +3760,7 @@ type DeleteWebsiteRequest struct { func (x *DeleteWebsiteRequest) Reset() { *x = DeleteWebsiteRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[49] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3670,7 +3772,7 @@ func (x *DeleteWebsiteRequest) String() string { func (*DeleteWebsiteRequest) ProtoMessage() {} func (x *DeleteWebsiteRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[49] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3683,7 +3785,7 @@ func (x *DeleteWebsiteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteWebsiteRequest.ProtoReflect.Descriptor instead. func (*DeleteWebsiteRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{49} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{50} } func (x *DeleteWebsiteRequest) GetId() string { @@ -3709,7 +3811,7 @@ type CreateApplicationRequest struct { func (x *CreateApplicationRequest) Reset() { *x = CreateApplicationRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[50] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3721,7 +3823,7 @@ func (x *CreateApplicationRequest) String() string { func (*CreateApplicationRequest) ProtoMessage() {} func (x *CreateApplicationRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[50] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3734,7 +3836,7 @@ func (x *CreateApplicationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateApplicationRequest.ProtoReflect.Descriptor instead. func (*CreateApplicationRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{50} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{51} } func (x *CreateApplicationRequest) GetName() string { @@ -3797,7 +3899,7 @@ type GetApplicationsRequest struct { func (x *GetApplicationsRequest) Reset() { *x = GetApplicationsRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[51] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3809,7 +3911,7 @@ func (x *GetApplicationsRequest) String() string { func (*GetApplicationsRequest) ProtoMessage() {} func (x *GetApplicationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[51] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3822,7 +3924,7 @@ func (x *GetApplicationsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetApplicationsRequest.ProtoReflect.Descriptor instead. func (*GetApplicationsRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{51} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{52} } func (x *GetApplicationsRequest) GetScope() GetApplicationsRequest_Scope { @@ -3856,7 +3958,7 @@ type UpdateApplicationRequest struct { func (x *UpdateApplicationRequest) Reset() { *x = UpdateApplicationRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[52] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3868,7 +3970,7 @@ func (x *UpdateApplicationRequest) String() string { func (*UpdateApplicationRequest) ProtoMessage() {} func (x *UpdateApplicationRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[52] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3881,7 +3983,7 @@ func (x *UpdateApplicationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateApplicationRequest.ProtoReflect.Descriptor instead. func (*UpdateApplicationRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{52} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{53} } func (x *UpdateApplicationRequest) GetId() string { @@ -3950,7 +4052,7 @@ type GetRepositoriesResponse struct { func (x *GetRepositoriesResponse) Reset() { *x = GetRepositoriesResponse{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[53] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3962,7 +4064,7 @@ func (x *GetRepositoriesResponse) String() string { func (*GetRepositoriesResponse) ProtoMessage() {} func (x *GetRepositoriesResponse) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[53] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3975,7 +4077,7 @@ func (x *GetRepositoriesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoriesResponse.ProtoReflect.Descriptor instead. func (*GetRepositoriesResponse) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{53} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{54} } func (x *GetRepositoriesResponse) GetRepositories() []*Repository { @@ -3995,7 +4097,7 @@ type GetApplicationsResponse struct { func (x *GetApplicationsResponse) Reset() { *x = GetApplicationsResponse{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[54] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4007,7 +4109,7 @@ func (x *GetApplicationsResponse) String() string { func (*GetApplicationsResponse) ProtoMessage() {} func (x *GetApplicationsResponse) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[54] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4020,7 +4122,7 @@ func (x *GetApplicationsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetApplicationsResponse.ProtoReflect.Descriptor instead. func (*GetApplicationsResponse) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{54} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{55} } func (x *GetApplicationsResponse) GetApplications() []*Application { @@ -4040,7 +4142,7 @@ type ApplicationIdRequest struct { func (x *ApplicationIdRequest) Reset() { *x = ApplicationIdRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[55] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4052,7 +4154,7 @@ func (x *ApplicationIdRequest) String() string { func (*ApplicationIdRequest) ProtoMessage() {} func (x *ApplicationIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[55] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4065,7 +4167,7 @@ func (x *ApplicationIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplicationIdRequest.ProtoReflect.Descriptor instead. func (*ApplicationIdRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{55} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{56} } func (x *ApplicationIdRequest) GetId() string { @@ -4087,7 +4189,7 @@ type GetAllBuildsRequest struct { func (x *GetAllBuildsRequest) Reset() { *x = GetAllBuildsRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[56] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4099,7 +4201,7 @@ func (x *GetAllBuildsRequest) String() string { func (*GetAllBuildsRequest) ProtoMessage() {} func (x *GetAllBuildsRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[56] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4112,7 +4214,7 @@ func (x *GetAllBuildsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAllBuildsRequest.ProtoReflect.Descriptor instead. func (*GetAllBuildsRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{56} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{57} } func (x *GetAllBuildsRequest) GetPage() int32 { @@ -4139,7 +4241,7 @@ type BuildIdRequest struct { func (x *BuildIdRequest) Reset() { *x = BuildIdRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[57] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4151,7 +4253,7 @@ func (x *BuildIdRequest) String() string { func (*BuildIdRequest) ProtoMessage() {} func (x *BuildIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[57] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4164,7 +4266,7 @@ func (x *BuildIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BuildIdRequest.ProtoReflect.Descriptor instead. func (*BuildIdRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{57} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{58} } func (x *BuildIdRequest) GetBuildId() string { @@ -4184,7 +4286,7 @@ type ArtifactIdRequest struct { func (x *ArtifactIdRequest) Reset() { *x = ArtifactIdRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[58] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4196,7 +4298,7 @@ func (x *ArtifactIdRequest) String() string { func (*ArtifactIdRequest) ProtoMessage() {} func (x *ArtifactIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[58] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4209,7 +4311,7 @@ func (x *ArtifactIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactIdRequest.ProtoReflect.Descriptor instead. func (*ArtifactIdRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{58} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{59} } func (x *ArtifactIdRequest) GetArtifactId() string { @@ -4229,7 +4331,7 @@ type GetBuildsResponse struct { func (x *GetBuildsResponse) Reset() { *x = GetBuildsResponse{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[59] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4241,7 +4343,7 @@ func (x *GetBuildsResponse) String() string { func (*GetBuildsResponse) ProtoMessage() {} func (x *GetBuildsResponse) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[59] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4254,7 +4356,7 @@ func (x *GetBuildsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBuildsResponse.ProtoReflect.Descriptor instead. func (*GetBuildsResponse) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{59} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{60} } func (x *GetBuildsResponse) GetBuilds() []*Build { @@ -4276,7 +4378,7 @@ type SetApplicationEnvVarRequest struct { func (x *SetApplicationEnvVarRequest) Reset() { *x = SetApplicationEnvVarRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[60] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4288,7 +4390,7 @@ func (x *SetApplicationEnvVarRequest) String() string { func (*SetApplicationEnvVarRequest) ProtoMessage() {} func (x *SetApplicationEnvVarRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[60] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4301,7 +4403,7 @@ func (x *SetApplicationEnvVarRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetApplicationEnvVarRequest.ProtoReflect.Descriptor instead. func (*SetApplicationEnvVarRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{60} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{61} } func (x *SetApplicationEnvVarRequest) GetApplicationId() string { @@ -4336,7 +4438,7 @@ type DeleteApplicationEnvVarRequest struct { func (x *DeleteApplicationEnvVarRequest) Reset() { *x = DeleteApplicationEnvVarRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[61] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4348,7 +4450,7 @@ func (x *DeleteApplicationEnvVarRequest) String() string { func (*DeleteApplicationEnvVarRequest) ProtoMessage() {} func (x *DeleteApplicationEnvVarRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[61] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4361,7 +4463,7 @@ func (x *DeleteApplicationEnvVarRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteApplicationEnvVarRequest.ProtoReflect.Descriptor instead. func (*DeleteApplicationEnvVarRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{61} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{62} } func (x *DeleteApplicationEnvVarRequest) GetApplicationId() string { @@ -4391,7 +4493,7 @@ type GetApplicationMetricsRequest struct { func (x *GetApplicationMetricsRequest) Reset() { *x = GetApplicationMetricsRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[62] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4403,7 +4505,7 @@ func (x *GetApplicationMetricsRequest) String() string { func (*GetApplicationMetricsRequest) ProtoMessage() {} func (x *GetApplicationMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[62] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4416,7 +4518,7 @@ func (x *GetApplicationMetricsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetApplicationMetricsRequest.ProtoReflect.Descriptor instead. func (*GetApplicationMetricsRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{62} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{63} } func (x *GetApplicationMetricsRequest) GetApplicationId() string { @@ -4459,7 +4561,7 @@ type GetOutputRequest struct { func (x *GetOutputRequest) Reset() { *x = GetOutputRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[63] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4471,7 +4573,7 @@ func (x *GetOutputRequest) String() string { func (*GetOutputRequest) ProtoMessage() {} func (x *GetOutputRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[63] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4484,7 +4586,7 @@ func (x *GetOutputRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetOutputRequest.ProtoReflect.Descriptor instead. func (*GetOutputRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{63} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{64} } func (x *GetOutputRequest) GetApplicationId() string { @@ -4519,7 +4621,7 @@ type GetOutputStreamRequest struct { func (x *GetOutputStreamRequest) Reset() { *x = GetOutputStreamRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[64] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4531,7 +4633,7 @@ func (x *GetOutputStreamRequest) String() string { func (*GetOutputStreamRequest) ProtoMessage() {} func (x *GetOutputStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[64] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4544,7 +4646,7 @@ func (x *GetOutputStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetOutputStreamRequest.ProtoReflect.Descriptor instead. func (*GetOutputStreamRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{64} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{65} } func (x *GetOutputStreamRequest) GetApplicationId() string { @@ -4572,7 +4674,7 @@ type RetryCommitBuildRequest struct { func (x *RetryCommitBuildRequest) Reset() { *x = RetryCommitBuildRequest{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[65] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4584,7 +4686,7 @@ func (x *RetryCommitBuildRequest) String() string { func (*RetryCommitBuildRequest) ProtoMessage() {} func (x *RetryCommitBuildRequest) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[65] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4597,7 +4699,7 @@ func (x *RetryCommitBuildRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RetryCommitBuildRequest.ProtoReflect.Descriptor instead. func (*RetryCommitBuildRequest) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{65} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{66} } func (x *RetryCommitBuildRequest) GetApplicationId() string { @@ -4624,7 +4726,7 @@ type GetRepositoryRefsResponse struct { func (x *GetRepositoryRefsResponse) Reset() { *x = GetRepositoryRefsResponse{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[66] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4636,7 +4738,7 @@ func (x *GetRepositoryRefsResponse) String() string { func (*GetRepositoryRefsResponse) ProtoMessage() {} func (x *GetRepositoryRefsResponse) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[66] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4649,7 +4751,7 @@ func (x *GetRepositoryRefsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepositoryRefsResponse.ProtoReflect.Descriptor instead. func (*GetRepositoryRefsResponse) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{66} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{67} } func (x *GetRepositoryRefsResponse) GetRefs() []*GitRef { @@ -4669,7 +4771,7 @@ type UpdateRepositoryRequest_UpdateOwners struct { func (x *UpdateRepositoryRequest_UpdateOwners) Reset() { *x = UpdateRepositoryRequest_UpdateOwners{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[67] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4681,7 +4783,7 @@ func (x *UpdateRepositoryRequest_UpdateOwners) String() string { func (*UpdateRepositoryRequest_UpdateOwners) ProtoMessage() {} func (x *UpdateRepositoryRequest_UpdateOwners) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[67] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4694,7 +4796,7 @@ func (x *UpdateRepositoryRequest_UpdateOwners) ProtoReflect() protoreflect.Messa // Deprecated: Use UpdateRepositoryRequest_UpdateOwners.ProtoReflect.Descriptor instead. func (*UpdateRepositoryRequest_UpdateOwners) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{44, 0} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{45, 0} } func (x *UpdateRepositoryRequest_UpdateOwners) GetOwnerIds() []string { @@ -4714,7 +4816,7 @@ type UpdateApplicationRequest_UpdateWebsites struct { func (x *UpdateApplicationRequest_UpdateWebsites) Reset() { *x = UpdateApplicationRequest_UpdateWebsites{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[68] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4726,7 +4828,7 @@ func (x *UpdateApplicationRequest_UpdateWebsites) String() string { func (*UpdateApplicationRequest_UpdateWebsites) ProtoMessage() {} func (x *UpdateApplicationRequest_UpdateWebsites) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[68] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4739,7 +4841,7 @@ func (x *UpdateApplicationRequest_UpdateWebsites) ProtoReflect() protoreflect.Me // Deprecated: Use UpdateApplicationRequest_UpdateWebsites.ProtoReflect.Descriptor instead. func (*UpdateApplicationRequest_UpdateWebsites) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{52, 0} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{53, 0} } func (x *UpdateApplicationRequest_UpdateWebsites) GetWebsites() []*CreateWebsiteRequest { @@ -4759,7 +4861,7 @@ type UpdateApplicationRequest_UpdatePorts struct { func (x *UpdateApplicationRequest_UpdatePorts) Reset() { *x = UpdateApplicationRequest_UpdatePorts{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[69] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4771,7 +4873,7 @@ func (x *UpdateApplicationRequest_UpdatePorts) String() string { func (*UpdateApplicationRequest_UpdatePorts) ProtoMessage() {} func (x *UpdateApplicationRequest_UpdatePorts) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[69] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4784,7 +4886,7 @@ func (x *UpdateApplicationRequest_UpdatePorts) ProtoReflect() protoreflect.Messa // Deprecated: Use UpdateApplicationRequest_UpdatePorts.ProtoReflect.Descriptor instead. func (*UpdateApplicationRequest_UpdatePorts) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{52, 1} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{53, 1} } func (x *UpdateApplicationRequest_UpdatePorts) GetPortPublications() []*PortPublication { @@ -4804,7 +4906,7 @@ type UpdateApplicationRequest_UpdateOwners struct { func (x *UpdateApplicationRequest_UpdateOwners) Reset() { *x = UpdateApplicationRequest_UpdateOwners{} - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[70] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4816,7 +4918,7 @@ func (x *UpdateApplicationRequest_UpdateOwners) String() string { func (*UpdateApplicationRequest_UpdateOwners) ProtoMessage() {} func (x *UpdateApplicationRequest_UpdateOwners) ProtoReflect() protoreflect.Message { - mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[70] + mi := &file_neoshowcase_protobuf_gateway_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4829,7 +4931,7 @@ func (x *UpdateApplicationRequest_UpdateOwners) ProtoReflect() protoreflect.Mess // Deprecated: Use UpdateApplicationRequest_UpdateOwners.ProtoReflect.Descriptor instead. func (*UpdateApplicationRequest_UpdateOwners) Descriptor() ([]byte, []int) { - return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{52, 2} + return file_neoshowcase_protobuf_gateway_proto_rawDescGZIP(), []int{53, 2} } func (x *UpdateApplicationRequest_UpdateOwners) GetOwnerIds() []string { @@ -4941,842 +5043,857 @@ var file_neoshowcase_protobuf_gateway_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0d, 0x52, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, - 0x6d, 0x61, 0x72, 0x69, 0x61, 0x64, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, - 0x73, 0x65, 0x4d, 0x61, 0x72, 0x69, 0x61, 0x64, 0x62, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, - 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, - 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x75, - 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x75, 0x74, - 0x6f, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x1b, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x42, 0x75, 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, - 0x9f, 0x01, 0x0a, 0x15, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6d, 0x64, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x73, 0x65, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6d, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6d, - 0x64, 0x22, 0xad, 0x01, 0x0a, 0x1c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, - 0x6c, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, - 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, - 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, - 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x22, 0x45, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x70, 0x61, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x03, 0x73, 0x70, 0x61, 0x22, 0x7f, 0x0a, 0x1a, 0x42, 0x75, 0x69, 0x6c, - 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x42, 0x75, 0x69, - 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x14, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, - 0x6d, 0x64, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x73, - 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x62, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6d, 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x1b, 0x42, 0x75, 0x69, 0x6c, - 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x44, 0x6f, 0x63, - 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x6f, 0x53, + 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, + 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, + 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x22, 0x40, 0x0a, 0x0f, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x0d, + 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, + 0x0c, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x22, 0xda, 0x01, + 0x0a, 0x0d, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x69, 0x61, 0x64, 0x62, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x4d, 0x61, 0x72, 0x69, 0x61, 0x64, 0x62, + 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, + 0x62, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x4d, 0x0a, 0x0d, 0x61, + 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, + 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x61, 0x75, + 0x74, 0x6f, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x1b, 0x42, + 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x22, 0x9f, 0x01, 0x0a, 0x15, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6d, 0x64, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x73, 0x65, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, + 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x43, + 0x6d, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x1c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, + 0x69, 0x6c, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, + 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x27, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, + 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x22, 0x45, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x70, 0x61, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x73, 0x70, 0x61, 0x22, 0x7f, 0x0a, 0x1a, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x42, 0x75, + 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x6f, 0x63, 0x6b, 0x65, - 0x72, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x22, 0xc8, 0x04, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x11, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x14, 0x42, + 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, + 0x43, 0x6d, 0x64, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, 0x6f, + 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x62, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6d, 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x1b, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x44, 0x6f, + 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x6f, 0x63, 0x6b, + 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x22, 0xc8, 0x04, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x11, 0x72, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, + 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, + 0x75, 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x10, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x12, 0x4e, 0x0a, 0x0b, + 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6d, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6d, 0x64, 0x48, 0x00, + 0x52, 0x0a, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6d, 0x64, 0x12, 0x63, 0x0a, 0x12, + 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, + 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x11, + 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, + 0x65, 0x12, 0x5d, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x70, 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6e, 0x65, + 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x63, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x48, 0x00, 0x52, + 0x0f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, + 0x12, 0x4b, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x63, 0x6d, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, - 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x10, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x12, 0x4e, 0x0a, 0x0b, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6d, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6d, 0x64, 0x48, 0x00, 0x52, - 0x0a, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6d, 0x64, 0x12, 0x63, 0x0a, 0x12, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, - 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, - 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x11, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, - 0x12, 0x5d, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x70, 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6e, 0x65, 0x6f, + 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6d, 0x64, + 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6d, 0x64, 0x12, 0x60, 0x0a, + 0x11, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, + 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, + 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x63, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x10, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x63, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x42, + 0x0e, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, + 0x88, 0x02, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, + 0x71, 0x64, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x12, + 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x74, 0x74, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x68, 0x74, 0x74, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x32, 0x63, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x32, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x68, + 0x74, 0x74, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x68, 0x74, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x01, 0x0a, 0x0f, 0x50, + 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, + 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x49, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xcb, 0x07, 0x0a, 0x0b, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x63, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x0f, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x70, 0x61, 0x63, 0x6b, 0x12, - 0x4b, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x63, 0x6d, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6d, 0x64, 0x48, - 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x43, 0x6d, 0x64, 0x12, 0x60, 0x0a, 0x11, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, - 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, - 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, - 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x10, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x63, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x0e, - 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x88, - 0x02, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x71, - 0x64, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x12, 0x1f, - 0x0a, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, + 0x66, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x12, 0x4e, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, + 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, + 0x75, 0x69, 0x6c, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 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, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, + 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x08, 0x77, + 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x08, 0x77, 0x65, + 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x56, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, + 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, + 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x22, + 0x6e, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, + 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, + 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x58, 0x49, + 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x45, 0x44, + 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x06, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x7a, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x12, 0x25, 0x0a, 0x0e, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x22, 0x5b, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, + 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x22, 0xdc, 0x01, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, 0x0a, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, + 0x47, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x0c, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x22, 0x37, 0x0a, 0x10, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x59, 0x0a, 0x11, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x12, 0x2e, 0x0a, 0x04, 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, 0x04, 0x74, 0x69, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x57, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x41, 0x0a, + 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x22, 0x55, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2e, 0x0a, 0x04, 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, + 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x22, 0x57, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x41, 0x0a, + 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, + 0x22, 0xd4, 0x04, 0x0a, 0x05, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x73, + 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x61, + 0x74, 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, 0x52, 0x08, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x42, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, + 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, + 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x72, + 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6e, + 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x1c, 0x0a, 0x08, 0x42, 0x75, 0x69, 0x6c, 0x64, + 0x4c, 0x6f, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x22, 0x3b, 0x0a, 0x06, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x12, + 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x22, 0x4f, 0x0a, 0x17, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, + 0x06, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6b, + 0x65, 0x79, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x4b, 0x65, 0x79, 0x22, 0x44, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, + 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x48, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x31, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, + 0x65, 0x79, 0x73, 0x22, 0x49, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2d, + 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x22, 0x53, 0x0a, + 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x41, 0x75, 0x74, 0x68, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x22, 0x30, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x53, 0x53, 0x48, 0x12, 0x15, 0x0a, + 0x06, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6b, + 0x65, 0x79, 0x49, 0x64, 0x22, 0xd8, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x12, 0x2c, 0x0a, + 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, 0x01, 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, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x47, 0x0a, 0x05, 0x62, + 0x61, 0x73, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6e, 0x65, 0x6f, + 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x42, 0x61, 0x73, 0x69, 0x63, 0x48, 0x00, 0x52, 0x05, 0x62, + 0x61, 0x73, 0x69, 0x63, 0x12, 0x41, 0x0a, 0x03, 0x73, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x53, 0x53, 0x48, + 0x48, 0x00, 0x52, 0x03, 0x73, 0x73, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x22, + 0x7f, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, + 0x12, 0x3e, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x52, 0x04, 0x61, 0x75, 0x74, 0x68, + 0x22, 0x99, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x05, 0x73, + 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6e, 0x65, 0x6f, + 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x05, + 0x73, 0x63, 0x6f, 0x70, 0x65, 0x22, 0x35, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x08, + 0x0a, 0x04, 0x4d, 0x49, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x52, 0x45, 0x41, + 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x55, 0x42, 0x4c, 0x49, + 0x43, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x03, 0x22, 0xd1, 0x02, 0x0a, + 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, + 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x75, + 0x74, 0x68, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, + 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x48, 0x03, 0x52, 0x08, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x0c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, + 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, + 0x22, 0x3a, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, 0x35, 0x0a, 0x1b, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x68, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, + 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x69, 0x6d, 0x70, + 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x73, 0x22, 0x85, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x73, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x71, + 0x64, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x12, 0x1f, + 0x0a, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x74, 0x74, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x74, 0x74, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x68, 0x74, 0x74, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x32, 0x63, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x32, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x74, - 0x74, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x68, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x32, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x74, + 0x74, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x01, 0x0a, 0x0f, 0x50, 0x6f, - 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, - 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x49, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xcb, 0x07, 0x0a, 0x0b, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, - 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x73, - 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x12, 0x4e, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x26, 0x0a, 0x14, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x22, 0xf3, 0x02, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x08, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, + 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x08, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, + 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x6f, + 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x70, + 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, + 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x32, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0d, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x49, 0x64, 0x88, 0x01, 0x01, 0x22, 0x2a, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, + 0x08, 0x0a, 0x04, 0x4d, 0x49, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, + 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x4f, 0x52, 0x59, + 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x5f, 0x69, 0x64, 0x22, 0xce, 0x06, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 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, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, - 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x52, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, - 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x08, 0x77, 0x65, - 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6e, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x03, 0x52, + 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x08, 0x77, 0x65, + 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x08, 0x77, 0x65, 0x62, - 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x77, 0x6e, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x56, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, - 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, - 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x22, 0x6e, - 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x52, - 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x52, - 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x58, 0x49, 0x54, - 0x45, 0x44, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x45, 0x44, 0x10, - 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x06, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x7a, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x22, 0x5b, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, - 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, - 0x76, 0x56, 0x61, 0x72, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, - 0xdc, 0x01, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, - 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, 0x0a, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x47, - 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x0c, 0x52, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x37, 0x0a, 0x10, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x59, 0x0a, 0x11, 0x41, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x2e, 0x0a, 0x04, 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, 0x04, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x57, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x41, 0x0a, 0x07, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, - 0x55, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x12, 0x2e, 0x0a, 0x04, 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, 0x04, - 0x74, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x22, 0x57, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x07, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, - 0xd4, 0x04, 0x0a, 0x05, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, - 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x61, 0x74, - 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, 0x52, 0x08, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x42, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, - 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x73, - 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, - 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, - 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, - 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6e, 0x65, - 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x1c, 0x0a, 0x08, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, - 0x6f, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x03, 0x6c, 0x6f, 0x67, 0x22, 0x3b, 0x0a, 0x06, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x12, 0x19, - 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x22, 0x4f, 0x0a, 0x17, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, - 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, - 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6b, 0x65, - 0x79, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, - 0x65, 0x79, 0x22, 0x44, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, - 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x48, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x31, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, - 0x79, 0x73, 0x22, 0x49, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2d, 0x0a, - 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x19, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x41, 0x75, 0x74, 0x68, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x22, 0x30, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x53, 0x53, 0x48, 0x12, 0x15, 0x0a, 0x06, - 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6b, 0x65, - 0x79, 0x49, 0x64, 0x22, 0xd8, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x04, - 0x6e, 0x6f, 0x6e, 0x65, 0x18, 0x01, 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, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x47, 0x0a, 0x05, 0x62, 0x61, - 0x73, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6e, 0x65, 0x6f, 0x73, - 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x41, 0x75, 0x74, 0x68, 0x42, 0x61, 0x73, 0x69, 0x63, 0x48, 0x00, 0x52, 0x05, 0x62, 0x61, - 0x73, 0x69, 0x63, 0x12, 0x41, 0x0a, 0x03, 0x73, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x53, 0x53, 0x48, 0x48, - 0x00, 0x52, 0x03, 0x73, 0x73, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x22, 0x7f, - 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, - 0x3e, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x52, 0x04, 0x61, 0x75, 0x74, 0x68, 0x22, - 0x99, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x63, - 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6e, 0x65, 0x6f, 0x73, - 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x05, 0x73, - 0x63, 0x6f, 0x70, 0x65, 0x22, 0x35, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x08, 0x0a, - 0x04, 0x4d, 0x49, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x52, 0x45, 0x41, 0x54, - 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, - 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x03, 0x22, 0xd1, 0x02, 0x0a, 0x17, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, - 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x75, 0x74, - 0x68, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x09, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x48, 0x03, 0x52, 0x08, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x0c, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, - 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x22, - 0x3a, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, 0x35, 0x0a, 0x1b, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, - 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x68, 0x61, 0x73, 0x68, - 0x65, 0x73, 0x22, 0x5c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, - 0x22, 0x85, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x71, 0x64, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x12, 0x1f, 0x0a, - 0x0b, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x21, - 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x74, 0x74, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x05, 0x68, 0x74, 0x74, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x32, 0x63, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x32, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x74, 0x74, - 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x68, 0x74, - 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, - 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x26, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x22, 0xf3, 0x02, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x46, 0x0a, 0x08, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, - 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x08, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x70, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x48, 0x04, 0x52, 0x08, 0x77, + 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x11, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, - 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x6f, 0x72, - 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x70, 0x6f, - 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x6e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x32, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, - 0x63, 0x6f, 0x70, 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x72, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x22, 0x2a, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x08, - 0x0a, 0x04, 0x4d, 0x49, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, - 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x4f, 0x52, 0x59, 0x10, - 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x5f, 0x69, 0x64, 0x22, 0xce, 0x06, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x03, 0x52, 0x06, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x08, 0x77, 0x65, 0x62, - 0x73, 0x69, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6e, 0x65, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, + 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x73, 0x48, 0x05, 0x52, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x48, 0x04, 0x52, 0x08, 0x77, 0x65, - 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x11, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, - 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, - 0x48, 0x05, 0x52, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6e, 0x65, 0x6f, - 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x48, 0x06, 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x49, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x58, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x08, 0x77, 0x65, 0x62, 0x73, - 0x69, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, - 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, - 0x1a, 0x61, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, - 0x52, 0x0a, 0x11, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, - 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x1a, 0x2b, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x77, 0x6e, - 0x65, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x73, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, - 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x73, 0x22, 0x5f, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x44, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, - 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x60, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x45, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, - 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x26, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, - 0x3f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x22, 0x2b, 0x0a, 0x0e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x34, 0x0a, - 0x11, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, - 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x06, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x22, 0x6c, 0x0a, - 0x1b, 0x53, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x59, 0x0a, 0x1e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x74, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x48, 0x06, 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x49, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x58, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x08, 0x77, 0x65, 0x62, + 0x73, 0x69, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6e, 0x65, + 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, + 0x73, 0x1a, 0x61, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, + 0x12, 0x52, 0x0a, 0x11, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, + 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x2b, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, + 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, + 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x73, 0x22, 0x5f, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x44, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, + 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x60, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, + 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x26, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x22, 0x3f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x22, 0x2b, 0x0a, 0x0e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x34, + 0x0a, 0x11, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x73, + 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x06, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x22, 0x6c, + 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xc1, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, - 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x32, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x59, 0x0a, 0x1e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, + 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xc1, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 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, 0x52, 0x06, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, + 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, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x22, 0x71, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 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, 0x06, 0x62, - 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x10, 0x47, - 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x62, + 0x65, 0x67, 0x69, 0x6e, 0x22, 0x58, 0x0a, 0x17, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 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, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x22, 0x71, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x30, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 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, 0x05, 0x62, 0x65, - 0x67, 0x69, 0x6e, 0x22, 0x58, 0x0a, 0x17, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, - 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x4d, 0x0a, - 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x72, 0x65, - 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, - 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x52, 0x04, 0x72, 0x65, 0x66, 0x73, 0x2a, 0x25, 0x0a, 0x0a, - 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, - 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x41, 0x54, 0x49, - 0x43, 0x10, 0x01, 0x2a, 0x31, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x46, 0x46, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4f, 0x46, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x48, 0x41, 0x52, 0x44, 0x10, 0x02, 0x2a, 0x2b, 0x0a, 0x17, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x43, 0x50, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x44, - 0x50, 0x10, 0x01, 0x2a, 0x5e, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, - 0x0a, 0x08, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, - 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, - 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, - 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, - 0x44, 0x10, 0x05, 0x32, 0xee, 0x1b, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x6e, 0x65, - 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x03, 0x90, - 0x02, 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2d, 0x2e, - 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, - 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x05, - 0x47, 0x65, 0x74, 0x4d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x4d, + 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x72, + 0x65, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6e, 0x65, 0x6f, 0x73, + 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x47, 0x69, 0x74, 0x52, 0x65, 0x66, 0x52, 0x04, 0x72, 0x65, 0x66, 0x73, 0x2a, 0x25, 0x0a, + 0x0a, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x52, + 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x41, 0x54, + 0x49, 0x43, 0x10, 0x01, 0x2a, 0x31, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x46, + 0x46, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4f, 0x46, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x48, 0x41, 0x52, 0x44, 0x10, 0x02, 0x2a, 0x2b, 0x0a, 0x17, 0x50, 0x6f, 0x72, 0x74, 0x50, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x43, 0x50, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x55, + 0x44, 0x50, 0x10, 0x01, 0x2a, 0x5e, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, + 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4b, 0x49, 0x50, 0x50, + 0x45, 0x44, 0x10, 0x05, 0x32, 0xee, 0x1b, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x6e, + 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x03, + 0x90, 0x02, 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4b, + 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2d, + 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, + 0x05, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, + 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, + 0x4f, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x26, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, + 0x12, 0x5a, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, + 0x79, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x4f, - 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x26, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, - 0x5a, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, - 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6e, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x55, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, + 0x90, 0x02, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x4b, 0x65, 0x79, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, + 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x63, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x55, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, - 0x02, 0x01, 0x12, 0x53, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x4b, 0x65, 0x79, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x63, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6e, 0x65, + 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6e, 0x65, 0x6f, - 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x73, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, - 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, - 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, - 0x01, 0x12, 0x82, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x6e, 0x65, 0x6f, + 0x75, 0x66, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x73, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, + 0x12, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, + 0x02, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x6e, 0x65, + 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, + 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x61, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, + 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x74, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x66, 0x73, 0x12, + 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, - 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x61, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, + 0x66, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, + 0x12, 0x59, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, + 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x56, 0x0a, 0x11, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x55, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x79, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x66, 0x73, 0x12, 0x29, - 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6e, 0x65, 0x6f, 0x73, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x66, 0x0a, 0x11, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2e, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x73, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, + 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x64, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, - 0x59, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, + 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x5b, 0x0a, + 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x56, 0x0a, 0x11, 0x52, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x57, 0x0a, 0x11, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x5a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x55, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, - 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x66, 0x0a, 0x11, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, - 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, - 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x73, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, - 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x64, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, + 0x74, 0x79, 0x1a, 0x26, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, + 0x7a, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, - 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x5b, 0x0a, 0x11, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x2e, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x57, 0x0a, 0x11, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, + 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6e, + 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x62, 0x0a, 0x09, 0x47, + 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x26, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, + 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x28, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, + 0x6a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x12, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x0a, 0x47, + 0x65, 0x74, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x73, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, + 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, + 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x73, 0x22, + 0x03, 0x90, 0x02, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x56, 0x61, + 0x72, 0x12, 0x31, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x5c, 0x0a, 0x0c, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x12, 0x34, 0x2e, 0x6e, + 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x56, 0x0a, 0x10, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x5a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x26, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x7a, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, - 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6e, 0x65, - 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x62, 0x0a, 0x09, 0x47, 0x65, - 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x26, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, - 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, - 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x28, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x6a, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x12, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, + 0x74, 0x79, 0x12, 0x55, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, + 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x41, 0x6c, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, + 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, + 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x42, + 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, + 0x02, 0x01, 0x12, 0x65, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, + 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x0a, 0x47, 0x65, - 0x74, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x73, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, - 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, - 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x73, 0x22, 0x03, - 0x90, 0x02, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, - 0x12, 0x31, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x5c, 0x0a, 0x0c, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x12, 0x34, 0x2e, 0x6e, 0x65, + 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x56, 0x0a, 0x10, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, - 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x55, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, - 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x52, 0x0a, 0x08, 0x47, 0x65, 0x74, + 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, + 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6e, 0x65, + 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x59, 0x0a, + 0x10, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x75, 0x69, 0x6c, + 0x64, 0x12, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, - 0x6c, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, - 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, - 0x01, 0x12, 0x65, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x2a, - 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6e, 0x65, 0x6f, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, + 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, + 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, + 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x52, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, - 0x75, 0x69, 0x6c, 0x64, 0x12, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, + 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, + 0x5b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x12, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, - 0x64, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, + 0x64, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x59, 0x0a, 0x10, - 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, - 0x12, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, - 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, - 0x4c, 0x6f, 0x67, 0x12, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x73, + 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x12, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x5b, - 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x12, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x73, - 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x10, 0x47, - 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, - 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x73, 0x68, - 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, - 0x03, 0x90, 0x02, 0x01, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x61, 0x50, 0x74, 0x69, 0x74, 0x65, 0x63, 0x68, 0x2f, 0x6e, 0x65, - 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x69, 0x6e, - 0x66, 0x72, 0x61, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x67, 0x72, 0x70, - 0x63, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x22, 0x03, 0x90, 0x02, 0x01, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x61, 0x50, 0x74, 0x69, 0x74, 0x65, 0x63, 0x68, 0x2f, 0x6e, + 0x65, 0x6f, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x69, + 0x6e, 0x66, 0x72, 0x61, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x67, 0x72, + 0x70, 0x63, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5791,245 +5908,249 @@ func file_neoshowcase_protobuf_gateway_proto_rawDescGZIP() []byte { return file_neoshowcase_protobuf_gateway_proto_rawDescData } -var file_neoshowcase_protobuf_gateway_proto_enumTypes = make([]protoimpl.EnumInfo, 8) -var file_neoshowcase_protobuf_gateway_proto_msgTypes = make([]protoimpl.MessageInfo, 71) +var file_neoshowcase_protobuf_gateway_proto_enumTypes = make([]protoimpl.EnumInfo, 9) +var file_neoshowcase_protobuf_gateway_proto_msgTypes = make([]protoimpl.MessageInfo, 72) var file_neoshowcase_protobuf_gateway_proto_goTypes = []any{ (DeployType)(0), // 0: neoshowcase.protobuf.DeployType (AuthenticationType)(0), // 1: neoshowcase.protobuf.AuthenticationType (PortPublicationProtocol)(0), // 2: neoshowcase.protobuf.PortPublicationProtocol (BuildStatus)(0), // 3: neoshowcase.protobuf.BuildStatus (Repository_AuthMethod)(0), // 4: neoshowcase.protobuf.Repository.AuthMethod - (Application_ContainerState)(0), // 5: neoshowcase.protobuf.Application.ContainerState - (GetRepositoriesRequest_Scope)(0), // 6: neoshowcase.protobuf.GetRepositoriesRequest.Scope - (GetApplicationsRequest_Scope)(0), // 7: neoshowcase.protobuf.GetApplicationsRequest.Scope - (*SSHInfo)(nil), // 8: neoshowcase.protobuf.SSHInfo - (*AvailableDomain)(nil), // 9: neoshowcase.protobuf.AvailableDomain - (*AvailablePort)(nil), // 10: neoshowcase.protobuf.AvailablePort - (*AdditionalLink)(nil), // 11: neoshowcase.protobuf.AdditionalLink - (*SystemInfo)(nil), // 12: neoshowcase.protobuf.SystemInfo - (*User)(nil), // 13: neoshowcase.protobuf.User - (*UserKey)(nil), // 14: neoshowcase.protobuf.UserKey - (*Repository)(nil), // 15: neoshowcase.protobuf.Repository - (*SimpleCommit)(nil), // 16: neoshowcase.protobuf.SimpleCommit - (*RuntimeConfig)(nil), // 17: neoshowcase.protobuf.RuntimeConfig - (*BuildConfigRuntimeBuildpack)(nil), // 18: neoshowcase.protobuf.BuildConfigRuntimeBuildpack - (*BuildConfigRuntimeCmd)(nil), // 19: neoshowcase.protobuf.BuildConfigRuntimeCmd - (*BuildConfigRuntimeDockerfile)(nil), // 20: neoshowcase.protobuf.BuildConfigRuntimeDockerfile - (*StaticConfig)(nil), // 21: neoshowcase.protobuf.StaticConfig - (*BuildConfigStaticBuildpack)(nil), // 22: neoshowcase.protobuf.BuildConfigStaticBuildpack - (*BuildConfigStaticCmd)(nil), // 23: neoshowcase.protobuf.BuildConfigStaticCmd - (*BuildConfigStaticDockerfile)(nil), // 24: neoshowcase.protobuf.BuildConfigStaticDockerfile - (*ApplicationConfig)(nil), // 25: neoshowcase.protobuf.ApplicationConfig - (*Website)(nil), // 26: neoshowcase.protobuf.Website - (*PortPublication)(nil), // 27: neoshowcase.protobuf.PortPublication - (*Application)(nil), // 28: neoshowcase.protobuf.Application - (*ApplicationEnvVar)(nil), // 29: neoshowcase.protobuf.ApplicationEnvVar - (*ApplicationEnvVars)(nil), // 30: neoshowcase.protobuf.ApplicationEnvVars - (*Artifact)(nil), // 31: neoshowcase.protobuf.Artifact - (*ArtifactContent)(nil), // 32: neoshowcase.protobuf.ArtifactContent - (*RuntimeImage)(nil), // 33: neoshowcase.protobuf.RuntimeImage - (*AvailableMetrics)(nil), // 34: neoshowcase.protobuf.AvailableMetrics - (*ApplicationMetric)(nil), // 35: neoshowcase.protobuf.ApplicationMetric - (*ApplicationMetrics)(nil), // 36: neoshowcase.protobuf.ApplicationMetrics - (*ApplicationOutput)(nil), // 37: neoshowcase.protobuf.ApplicationOutput - (*ApplicationOutputs)(nil), // 38: neoshowcase.protobuf.ApplicationOutputs - (*Build)(nil), // 39: neoshowcase.protobuf.Build - (*BuildLog)(nil), // 40: neoshowcase.protobuf.BuildLog - (*GitRef)(nil), // 41: neoshowcase.protobuf.GitRef - (*GenerateKeyPairResponse)(nil), // 42: neoshowcase.protobuf.GenerateKeyPairResponse - (*GetUsersResponse)(nil), // 43: neoshowcase.protobuf.GetUsersResponse - (*GetUserKeysResponse)(nil), // 44: neoshowcase.protobuf.GetUserKeysResponse - (*CreateUserKeyRequest)(nil), // 45: neoshowcase.protobuf.CreateUserKeyRequest - (*DeleteUserKeyRequest)(nil), // 46: neoshowcase.protobuf.DeleteUserKeyRequest - (*CreateRepositoryAuthBasic)(nil), // 47: neoshowcase.protobuf.CreateRepositoryAuthBasic - (*CreateRepositoryAuthSSH)(nil), // 48: neoshowcase.protobuf.CreateRepositoryAuthSSH - (*CreateRepositoryAuth)(nil), // 49: neoshowcase.protobuf.CreateRepositoryAuth - (*CreateRepositoryRequest)(nil), // 50: neoshowcase.protobuf.CreateRepositoryRequest - (*GetRepositoriesRequest)(nil), // 51: neoshowcase.protobuf.GetRepositoriesRequest - (*UpdateRepositoryRequest)(nil), // 52: neoshowcase.protobuf.UpdateRepositoryRequest - (*RepositoryIdRequest)(nil), // 53: neoshowcase.protobuf.RepositoryIdRequest - (*GetRepositoryCommitsRequest)(nil), // 54: neoshowcase.protobuf.GetRepositoryCommitsRequest - (*GetRepositoryCommitsResponse)(nil), // 55: neoshowcase.protobuf.GetRepositoryCommitsResponse - (*CreateWebsiteRequest)(nil), // 56: neoshowcase.protobuf.CreateWebsiteRequest - (*DeleteWebsiteRequest)(nil), // 57: neoshowcase.protobuf.DeleteWebsiteRequest - (*CreateApplicationRequest)(nil), // 58: neoshowcase.protobuf.CreateApplicationRequest - (*GetApplicationsRequest)(nil), // 59: neoshowcase.protobuf.GetApplicationsRequest - (*UpdateApplicationRequest)(nil), // 60: neoshowcase.protobuf.UpdateApplicationRequest - (*GetRepositoriesResponse)(nil), // 61: neoshowcase.protobuf.GetRepositoriesResponse - (*GetApplicationsResponse)(nil), // 62: neoshowcase.protobuf.GetApplicationsResponse - (*ApplicationIdRequest)(nil), // 63: neoshowcase.protobuf.ApplicationIdRequest - (*GetAllBuildsRequest)(nil), // 64: neoshowcase.protobuf.GetAllBuildsRequest - (*BuildIdRequest)(nil), // 65: neoshowcase.protobuf.BuildIdRequest - (*ArtifactIdRequest)(nil), // 66: neoshowcase.protobuf.ArtifactIdRequest - (*GetBuildsResponse)(nil), // 67: neoshowcase.protobuf.GetBuildsResponse - (*SetApplicationEnvVarRequest)(nil), // 68: neoshowcase.protobuf.SetApplicationEnvVarRequest - (*DeleteApplicationEnvVarRequest)(nil), // 69: neoshowcase.protobuf.DeleteApplicationEnvVarRequest - (*GetApplicationMetricsRequest)(nil), // 70: neoshowcase.protobuf.GetApplicationMetricsRequest - (*GetOutputRequest)(nil), // 71: neoshowcase.protobuf.GetOutputRequest - (*GetOutputStreamRequest)(nil), // 72: neoshowcase.protobuf.GetOutputStreamRequest - (*RetryCommitBuildRequest)(nil), // 73: neoshowcase.protobuf.RetryCommitBuildRequest - (*GetRepositoryRefsResponse)(nil), // 74: neoshowcase.protobuf.GetRepositoryRefsResponse - (*UpdateRepositoryRequest_UpdateOwners)(nil), // 75: neoshowcase.protobuf.UpdateRepositoryRequest.UpdateOwners - (*UpdateApplicationRequest_UpdateWebsites)(nil), // 76: neoshowcase.protobuf.UpdateApplicationRequest.UpdateWebsites - (*UpdateApplicationRequest_UpdatePorts)(nil), // 77: neoshowcase.protobuf.UpdateApplicationRequest.UpdatePorts - (*UpdateApplicationRequest_UpdateOwners)(nil), // 78: neoshowcase.protobuf.UpdateApplicationRequest.UpdateOwners - (*timestamppb.Timestamp)(nil), // 79: google.protobuf.Timestamp - (*NullTimestamp)(nil), // 80: neoshowcase.protobuf.NullTimestamp - (*emptypb.Empty)(nil), // 81: google.protobuf.Empty + (AutoShutdownConfig_StartupBehavior)(0), // 5: neoshowcase.protobuf.AutoShutdownConfig.StartupBehavior + (Application_ContainerState)(0), // 6: neoshowcase.protobuf.Application.ContainerState + (GetRepositoriesRequest_Scope)(0), // 7: neoshowcase.protobuf.GetRepositoriesRequest.Scope + (GetApplicationsRequest_Scope)(0), // 8: neoshowcase.protobuf.GetApplicationsRequest.Scope + (*SSHInfo)(nil), // 9: neoshowcase.protobuf.SSHInfo + (*AvailableDomain)(nil), // 10: neoshowcase.protobuf.AvailableDomain + (*AvailablePort)(nil), // 11: neoshowcase.protobuf.AvailablePort + (*AdditionalLink)(nil), // 12: neoshowcase.protobuf.AdditionalLink + (*SystemInfo)(nil), // 13: neoshowcase.protobuf.SystemInfo + (*User)(nil), // 14: neoshowcase.protobuf.User + (*UserKey)(nil), // 15: neoshowcase.protobuf.UserKey + (*Repository)(nil), // 16: neoshowcase.protobuf.Repository + (*SimpleCommit)(nil), // 17: neoshowcase.protobuf.SimpleCommit + (*AutoShutdownConfig)(nil), // 18: neoshowcase.protobuf.AutoShutdownConfig + (*RuntimeConfig)(nil), // 19: neoshowcase.protobuf.RuntimeConfig + (*BuildConfigRuntimeBuildpack)(nil), // 20: neoshowcase.protobuf.BuildConfigRuntimeBuildpack + (*BuildConfigRuntimeCmd)(nil), // 21: neoshowcase.protobuf.BuildConfigRuntimeCmd + (*BuildConfigRuntimeDockerfile)(nil), // 22: neoshowcase.protobuf.BuildConfigRuntimeDockerfile + (*StaticConfig)(nil), // 23: neoshowcase.protobuf.StaticConfig + (*BuildConfigStaticBuildpack)(nil), // 24: neoshowcase.protobuf.BuildConfigStaticBuildpack + (*BuildConfigStaticCmd)(nil), // 25: neoshowcase.protobuf.BuildConfigStaticCmd + (*BuildConfigStaticDockerfile)(nil), // 26: neoshowcase.protobuf.BuildConfigStaticDockerfile + (*ApplicationConfig)(nil), // 27: neoshowcase.protobuf.ApplicationConfig + (*Website)(nil), // 28: neoshowcase.protobuf.Website + (*PortPublication)(nil), // 29: neoshowcase.protobuf.PortPublication + (*Application)(nil), // 30: neoshowcase.protobuf.Application + (*ApplicationEnvVar)(nil), // 31: neoshowcase.protobuf.ApplicationEnvVar + (*ApplicationEnvVars)(nil), // 32: neoshowcase.protobuf.ApplicationEnvVars + (*Artifact)(nil), // 33: neoshowcase.protobuf.Artifact + (*ArtifactContent)(nil), // 34: neoshowcase.protobuf.ArtifactContent + (*RuntimeImage)(nil), // 35: neoshowcase.protobuf.RuntimeImage + (*AvailableMetrics)(nil), // 36: neoshowcase.protobuf.AvailableMetrics + (*ApplicationMetric)(nil), // 37: neoshowcase.protobuf.ApplicationMetric + (*ApplicationMetrics)(nil), // 38: neoshowcase.protobuf.ApplicationMetrics + (*ApplicationOutput)(nil), // 39: neoshowcase.protobuf.ApplicationOutput + (*ApplicationOutputs)(nil), // 40: neoshowcase.protobuf.ApplicationOutputs + (*Build)(nil), // 41: neoshowcase.protobuf.Build + (*BuildLog)(nil), // 42: neoshowcase.protobuf.BuildLog + (*GitRef)(nil), // 43: neoshowcase.protobuf.GitRef + (*GenerateKeyPairResponse)(nil), // 44: neoshowcase.protobuf.GenerateKeyPairResponse + (*GetUsersResponse)(nil), // 45: neoshowcase.protobuf.GetUsersResponse + (*GetUserKeysResponse)(nil), // 46: neoshowcase.protobuf.GetUserKeysResponse + (*CreateUserKeyRequest)(nil), // 47: neoshowcase.protobuf.CreateUserKeyRequest + (*DeleteUserKeyRequest)(nil), // 48: neoshowcase.protobuf.DeleteUserKeyRequest + (*CreateRepositoryAuthBasic)(nil), // 49: neoshowcase.protobuf.CreateRepositoryAuthBasic + (*CreateRepositoryAuthSSH)(nil), // 50: neoshowcase.protobuf.CreateRepositoryAuthSSH + (*CreateRepositoryAuth)(nil), // 51: neoshowcase.protobuf.CreateRepositoryAuth + (*CreateRepositoryRequest)(nil), // 52: neoshowcase.protobuf.CreateRepositoryRequest + (*GetRepositoriesRequest)(nil), // 53: neoshowcase.protobuf.GetRepositoriesRequest + (*UpdateRepositoryRequest)(nil), // 54: neoshowcase.protobuf.UpdateRepositoryRequest + (*RepositoryIdRequest)(nil), // 55: neoshowcase.protobuf.RepositoryIdRequest + (*GetRepositoryCommitsRequest)(nil), // 56: neoshowcase.protobuf.GetRepositoryCommitsRequest + (*GetRepositoryCommitsResponse)(nil), // 57: neoshowcase.protobuf.GetRepositoryCommitsResponse + (*CreateWebsiteRequest)(nil), // 58: neoshowcase.protobuf.CreateWebsiteRequest + (*DeleteWebsiteRequest)(nil), // 59: neoshowcase.protobuf.DeleteWebsiteRequest + (*CreateApplicationRequest)(nil), // 60: neoshowcase.protobuf.CreateApplicationRequest + (*GetApplicationsRequest)(nil), // 61: neoshowcase.protobuf.GetApplicationsRequest + (*UpdateApplicationRequest)(nil), // 62: neoshowcase.protobuf.UpdateApplicationRequest + (*GetRepositoriesResponse)(nil), // 63: neoshowcase.protobuf.GetRepositoriesResponse + (*GetApplicationsResponse)(nil), // 64: neoshowcase.protobuf.GetApplicationsResponse + (*ApplicationIdRequest)(nil), // 65: neoshowcase.protobuf.ApplicationIdRequest + (*GetAllBuildsRequest)(nil), // 66: neoshowcase.protobuf.GetAllBuildsRequest + (*BuildIdRequest)(nil), // 67: neoshowcase.protobuf.BuildIdRequest + (*ArtifactIdRequest)(nil), // 68: neoshowcase.protobuf.ArtifactIdRequest + (*GetBuildsResponse)(nil), // 69: neoshowcase.protobuf.GetBuildsResponse + (*SetApplicationEnvVarRequest)(nil), // 70: neoshowcase.protobuf.SetApplicationEnvVarRequest + (*DeleteApplicationEnvVarRequest)(nil), // 71: neoshowcase.protobuf.DeleteApplicationEnvVarRequest + (*GetApplicationMetricsRequest)(nil), // 72: neoshowcase.protobuf.GetApplicationMetricsRequest + (*GetOutputRequest)(nil), // 73: neoshowcase.protobuf.GetOutputRequest + (*GetOutputStreamRequest)(nil), // 74: neoshowcase.protobuf.GetOutputStreamRequest + (*RetryCommitBuildRequest)(nil), // 75: neoshowcase.protobuf.RetryCommitBuildRequest + (*GetRepositoryRefsResponse)(nil), // 76: neoshowcase.protobuf.GetRepositoryRefsResponse + (*UpdateRepositoryRequest_UpdateOwners)(nil), // 77: neoshowcase.protobuf.UpdateRepositoryRequest.UpdateOwners + (*UpdateApplicationRequest_UpdateWebsites)(nil), // 78: neoshowcase.protobuf.UpdateApplicationRequest.UpdateWebsites + (*UpdateApplicationRequest_UpdatePorts)(nil), // 79: neoshowcase.protobuf.UpdateApplicationRequest.UpdatePorts + (*UpdateApplicationRequest_UpdateOwners)(nil), // 80: neoshowcase.protobuf.UpdateApplicationRequest.UpdateOwners + (*timestamppb.Timestamp)(nil), // 81: google.protobuf.Timestamp + (*NullTimestamp)(nil), // 82: neoshowcase.protobuf.NullTimestamp + (*emptypb.Empty)(nil), // 83: google.protobuf.Empty } var file_neoshowcase_protobuf_gateway_proto_depIdxs = []int32{ 2, // 0: neoshowcase.protobuf.AvailablePort.protocol:type_name -> neoshowcase.protobuf.PortPublicationProtocol - 8, // 1: neoshowcase.protobuf.SystemInfo.ssh:type_name -> neoshowcase.protobuf.SSHInfo - 9, // 2: neoshowcase.protobuf.SystemInfo.domains:type_name -> neoshowcase.protobuf.AvailableDomain - 10, // 3: neoshowcase.protobuf.SystemInfo.ports:type_name -> neoshowcase.protobuf.AvailablePort - 11, // 4: neoshowcase.protobuf.SystemInfo.additional_links:type_name -> neoshowcase.protobuf.AdditionalLink - 79, // 5: neoshowcase.protobuf.UserKey.created_at:type_name -> google.protobuf.Timestamp + 9, // 1: neoshowcase.protobuf.SystemInfo.ssh:type_name -> neoshowcase.protobuf.SSHInfo + 10, // 2: neoshowcase.protobuf.SystemInfo.domains:type_name -> neoshowcase.protobuf.AvailableDomain + 11, // 3: neoshowcase.protobuf.SystemInfo.ports:type_name -> neoshowcase.protobuf.AvailablePort + 12, // 4: neoshowcase.protobuf.SystemInfo.additional_links:type_name -> neoshowcase.protobuf.AdditionalLink + 81, // 5: neoshowcase.protobuf.UserKey.created_at:type_name -> google.protobuf.Timestamp 4, // 6: neoshowcase.protobuf.Repository.auth_method:type_name -> neoshowcase.protobuf.Repository.AuthMethod - 79, // 7: neoshowcase.protobuf.SimpleCommit.commit_date:type_name -> google.protobuf.Timestamp - 17, // 8: neoshowcase.protobuf.BuildConfigRuntimeBuildpack.runtime_config:type_name -> neoshowcase.protobuf.RuntimeConfig - 17, // 9: neoshowcase.protobuf.BuildConfigRuntimeCmd.runtime_config:type_name -> neoshowcase.protobuf.RuntimeConfig - 17, // 10: neoshowcase.protobuf.BuildConfigRuntimeDockerfile.runtime_config:type_name -> neoshowcase.protobuf.RuntimeConfig - 21, // 11: neoshowcase.protobuf.BuildConfigStaticBuildpack.static_config:type_name -> neoshowcase.protobuf.StaticConfig - 21, // 12: neoshowcase.protobuf.BuildConfigStaticCmd.static_config:type_name -> neoshowcase.protobuf.StaticConfig - 21, // 13: neoshowcase.protobuf.BuildConfigStaticDockerfile.static_config:type_name -> neoshowcase.protobuf.StaticConfig - 18, // 14: neoshowcase.protobuf.ApplicationConfig.runtime_buildpack:type_name -> neoshowcase.protobuf.BuildConfigRuntimeBuildpack - 19, // 15: neoshowcase.protobuf.ApplicationConfig.runtime_cmd:type_name -> neoshowcase.protobuf.BuildConfigRuntimeCmd - 20, // 16: neoshowcase.protobuf.ApplicationConfig.runtime_dockerfile:type_name -> neoshowcase.protobuf.BuildConfigRuntimeDockerfile - 22, // 17: neoshowcase.protobuf.ApplicationConfig.static_buildpack:type_name -> neoshowcase.protobuf.BuildConfigStaticBuildpack - 23, // 18: neoshowcase.protobuf.ApplicationConfig.static_cmd:type_name -> neoshowcase.protobuf.BuildConfigStaticCmd - 24, // 19: neoshowcase.protobuf.ApplicationConfig.static_dockerfile:type_name -> neoshowcase.protobuf.BuildConfigStaticDockerfile - 1, // 20: neoshowcase.protobuf.Website.authentication:type_name -> neoshowcase.protobuf.AuthenticationType - 2, // 21: neoshowcase.protobuf.PortPublication.protocol:type_name -> neoshowcase.protobuf.PortPublicationProtocol - 0, // 22: neoshowcase.protobuf.Application.deploy_type:type_name -> neoshowcase.protobuf.DeployType - 5, // 23: neoshowcase.protobuf.Application.container:type_name -> neoshowcase.protobuf.Application.ContainerState - 79, // 24: neoshowcase.protobuf.Application.created_at:type_name -> google.protobuf.Timestamp - 79, // 25: neoshowcase.protobuf.Application.updated_at:type_name -> google.protobuf.Timestamp - 25, // 26: neoshowcase.protobuf.Application.config:type_name -> neoshowcase.protobuf.ApplicationConfig - 26, // 27: neoshowcase.protobuf.Application.websites:type_name -> neoshowcase.protobuf.Website - 27, // 28: neoshowcase.protobuf.Application.port_publications:type_name -> neoshowcase.protobuf.PortPublication - 3, // 29: neoshowcase.protobuf.Application.latest_build_status:type_name -> neoshowcase.protobuf.BuildStatus - 29, // 30: neoshowcase.protobuf.ApplicationEnvVars.variables:type_name -> neoshowcase.protobuf.ApplicationEnvVar - 79, // 31: neoshowcase.protobuf.Artifact.created_at:type_name -> google.protobuf.Timestamp - 80, // 32: neoshowcase.protobuf.Artifact.deleted_at:type_name -> neoshowcase.protobuf.NullTimestamp - 79, // 33: neoshowcase.protobuf.RuntimeImage.created_at:type_name -> google.protobuf.Timestamp - 79, // 34: neoshowcase.protobuf.ApplicationMetric.time:type_name -> google.protobuf.Timestamp - 35, // 35: neoshowcase.protobuf.ApplicationMetrics.metrics:type_name -> neoshowcase.protobuf.ApplicationMetric - 79, // 36: neoshowcase.protobuf.ApplicationOutput.time:type_name -> google.protobuf.Timestamp - 37, // 37: neoshowcase.protobuf.ApplicationOutputs.outputs:type_name -> neoshowcase.protobuf.ApplicationOutput - 3, // 38: neoshowcase.protobuf.Build.status:type_name -> neoshowcase.protobuf.BuildStatus - 79, // 39: neoshowcase.protobuf.Build.queued_at:type_name -> google.protobuf.Timestamp - 80, // 40: neoshowcase.protobuf.Build.started_at:type_name -> neoshowcase.protobuf.NullTimestamp - 80, // 41: neoshowcase.protobuf.Build.updated_at:type_name -> neoshowcase.protobuf.NullTimestamp - 80, // 42: neoshowcase.protobuf.Build.finished_at:type_name -> neoshowcase.protobuf.NullTimestamp - 31, // 43: neoshowcase.protobuf.Build.artifacts:type_name -> neoshowcase.protobuf.Artifact - 33, // 44: neoshowcase.protobuf.Build.runtime_image:type_name -> neoshowcase.protobuf.RuntimeImage - 13, // 45: neoshowcase.protobuf.GetUsersResponse.users:type_name -> neoshowcase.protobuf.User - 14, // 46: neoshowcase.protobuf.GetUserKeysResponse.keys:type_name -> neoshowcase.protobuf.UserKey - 81, // 47: neoshowcase.protobuf.CreateRepositoryAuth.none:type_name -> google.protobuf.Empty - 47, // 48: neoshowcase.protobuf.CreateRepositoryAuth.basic:type_name -> neoshowcase.protobuf.CreateRepositoryAuthBasic - 48, // 49: neoshowcase.protobuf.CreateRepositoryAuth.ssh:type_name -> neoshowcase.protobuf.CreateRepositoryAuthSSH - 49, // 50: neoshowcase.protobuf.CreateRepositoryRequest.auth:type_name -> neoshowcase.protobuf.CreateRepositoryAuth - 6, // 51: neoshowcase.protobuf.GetRepositoriesRequest.scope:type_name -> neoshowcase.protobuf.GetRepositoriesRequest.Scope - 49, // 52: neoshowcase.protobuf.UpdateRepositoryRequest.auth:type_name -> neoshowcase.protobuf.CreateRepositoryAuth - 75, // 53: neoshowcase.protobuf.UpdateRepositoryRequest.owner_ids:type_name -> neoshowcase.protobuf.UpdateRepositoryRequest.UpdateOwners - 16, // 54: neoshowcase.protobuf.GetRepositoryCommitsResponse.commits:type_name -> neoshowcase.protobuf.SimpleCommit - 1, // 55: neoshowcase.protobuf.CreateWebsiteRequest.authentication:type_name -> neoshowcase.protobuf.AuthenticationType - 25, // 56: neoshowcase.protobuf.CreateApplicationRequest.config:type_name -> neoshowcase.protobuf.ApplicationConfig - 56, // 57: neoshowcase.protobuf.CreateApplicationRequest.websites:type_name -> neoshowcase.protobuf.CreateWebsiteRequest - 27, // 58: neoshowcase.protobuf.CreateApplicationRequest.port_publications:type_name -> neoshowcase.protobuf.PortPublication - 7, // 59: neoshowcase.protobuf.GetApplicationsRequest.scope:type_name -> neoshowcase.protobuf.GetApplicationsRequest.Scope - 25, // 60: neoshowcase.protobuf.UpdateApplicationRequest.config:type_name -> neoshowcase.protobuf.ApplicationConfig - 76, // 61: neoshowcase.protobuf.UpdateApplicationRequest.websites:type_name -> neoshowcase.protobuf.UpdateApplicationRequest.UpdateWebsites - 77, // 62: neoshowcase.protobuf.UpdateApplicationRequest.port_publications:type_name -> neoshowcase.protobuf.UpdateApplicationRequest.UpdatePorts - 78, // 63: neoshowcase.protobuf.UpdateApplicationRequest.owner_ids:type_name -> neoshowcase.protobuf.UpdateApplicationRequest.UpdateOwners - 15, // 64: neoshowcase.protobuf.GetRepositoriesResponse.repositories:type_name -> neoshowcase.protobuf.Repository - 28, // 65: neoshowcase.protobuf.GetApplicationsResponse.applications:type_name -> neoshowcase.protobuf.Application - 39, // 66: neoshowcase.protobuf.GetBuildsResponse.builds:type_name -> neoshowcase.protobuf.Build - 79, // 67: neoshowcase.protobuf.GetApplicationMetricsRequest.before:type_name -> google.protobuf.Timestamp - 79, // 68: neoshowcase.protobuf.GetOutputRequest.before:type_name -> google.protobuf.Timestamp - 79, // 69: neoshowcase.protobuf.GetOutputStreamRequest.begin:type_name -> google.protobuf.Timestamp - 41, // 70: neoshowcase.protobuf.GetRepositoryRefsResponse.refs:type_name -> neoshowcase.protobuf.GitRef - 56, // 71: neoshowcase.protobuf.UpdateApplicationRequest.UpdateWebsites.websites:type_name -> neoshowcase.protobuf.CreateWebsiteRequest - 27, // 72: neoshowcase.protobuf.UpdateApplicationRequest.UpdatePorts.port_publications:type_name -> neoshowcase.protobuf.PortPublication - 81, // 73: neoshowcase.protobuf.APIService.GetSystemInfo:input_type -> google.protobuf.Empty - 81, // 74: neoshowcase.protobuf.APIService.GenerateKeyPair:input_type -> google.protobuf.Empty - 81, // 75: neoshowcase.protobuf.APIService.GetMe:input_type -> google.protobuf.Empty - 81, // 76: neoshowcase.protobuf.APIService.GetUsers:input_type -> google.protobuf.Empty - 45, // 77: neoshowcase.protobuf.APIService.CreateUserKey:input_type -> neoshowcase.protobuf.CreateUserKeyRequest - 81, // 78: neoshowcase.protobuf.APIService.GetUserKeys:input_type -> google.protobuf.Empty - 46, // 79: neoshowcase.protobuf.APIService.DeleteUserKey:input_type -> neoshowcase.protobuf.DeleteUserKeyRequest - 50, // 80: neoshowcase.protobuf.APIService.CreateRepository:input_type -> neoshowcase.protobuf.CreateRepositoryRequest - 51, // 81: neoshowcase.protobuf.APIService.GetRepositories:input_type -> neoshowcase.protobuf.GetRepositoriesRequest - 54, // 82: neoshowcase.protobuf.APIService.GetRepositoryCommits:input_type -> neoshowcase.protobuf.GetRepositoryCommitsRequest - 53, // 83: neoshowcase.protobuf.APIService.GetRepository:input_type -> neoshowcase.protobuf.RepositoryIdRequest - 53, // 84: neoshowcase.protobuf.APIService.GetRepositoryRefs:input_type -> neoshowcase.protobuf.RepositoryIdRequest - 52, // 85: neoshowcase.protobuf.APIService.UpdateRepository:input_type -> neoshowcase.protobuf.UpdateRepositoryRequest - 53, // 86: neoshowcase.protobuf.APIService.RefreshRepository:input_type -> neoshowcase.protobuf.RepositoryIdRequest - 53, // 87: neoshowcase.protobuf.APIService.DeleteRepository:input_type -> neoshowcase.protobuf.RepositoryIdRequest - 58, // 88: neoshowcase.protobuf.APIService.CreateApplication:input_type -> neoshowcase.protobuf.CreateApplicationRequest - 59, // 89: neoshowcase.protobuf.APIService.GetApplications:input_type -> neoshowcase.protobuf.GetApplicationsRequest - 63, // 90: neoshowcase.protobuf.APIService.GetApplication:input_type -> neoshowcase.protobuf.ApplicationIdRequest - 60, // 91: neoshowcase.protobuf.APIService.UpdateApplication:input_type -> neoshowcase.protobuf.UpdateApplicationRequest - 63, // 92: neoshowcase.protobuf.APIService.DeleteApplication:input_type -> neoshowcase.protobuf.ApplicationIdRequest - 81, // 93: neoshowcase.protobuf.APIService.GetAvailableMetrics:input_type -> google.protobuf.Empty - 70, // 94: neoshowcase.protobuf.APIService.GetApplicationMetrics:input_type -> neoshowcase.protobuf.GetApplicationMetricsRequest - 71, // 95: neoshowcase.protobuf.APIService.GetOutput:input_type -> neoshowcase.protobuf.GetOutputRequest - 72, // 96: neoshowcase.protobuf.APIService.GetOutputStream:input_type -> neoshowcase.protobuf.GetOutputStreamRequest - 63, // 97: neoshowcase.protobuf.APIService.GetEnvVars:input_type -> neoshowcase.protobuf.ApplicationIdRequest - 68, // 98: neoshowcase.protobuf.APIService.SetEnvVar:input_type -> neoshowcase.protobuf.SetApplicationEnvVarRequest - 69, // 99: neoshowcase.protobuf.APIService.DeleteEnvVar:input_type -> neoshowcase.protobuf.DeleteApplicationEnvVarRequest - 63, // 100: neoshowcase.protobuf.APIService.StartApplication:input_type -> neoshowcase.protobuf.ApplicationIdRequest - 63, // 101: neoshowcase.protobuf.APIService.StopApplication:input_type -> neoshowcase.protobuf.ApplicationIdRequest - 64, // 102: neoshowcase.protobuf.APIService.GetAllBuilds:input_type -> neoshowcase.protobuf.GetAllBuildsRequest - 63, // 103: neoshowcase.protobuf.APIService.GetBuilds:input_type -> neoshowcase.protobuf.ApplicationIdRequest - 65, // 104: neoshowcase.protobuf.APIService.GetBuild:input_type -> neoshowcase.protobuf.BuildIdRequest - 73, // 105: neoshowcase.protobuf.APIService.RetryCommitBuild:input_type -> neoshowcase.protobuf.RetryCommitBuildRequest - 65, // 106: neoshowcase.protobuf.APIService.CancelBuild:input_type -> neoshowcase.protobuf.BuildIdRequest - 65, // 107: neoshowcase.protobuf.APIService.GetBuildLog:input_type -> neoshowcase.protobuf.BuildIdRequest - 65, // 108: neoshowcase.protobuf.APIService.GetBuildLogStream:input_type -> neoshowcase.protobuf.BuildIdRequest - 66, // 109: neoshowcase.protobuf.APIService.GetBuildArtifact:input_type -> neoshowcase.protobuf.ArtifactIdRequest - 12, // 110: neoshowcase.protobuf.APIService.GetSystemInfo:output_type -> neoshowcase.protobuf.SystemInfo - 42, // 111: neoshowcase.protobuf.APIService.GenerateKeyPair:output_type -> neoshowcase.protobuf.GenerateKeyPairResponse - 13, // 112: neoshowcase.protobuf.APIService.GetMe:output_type -> neoshowcase.protobuf.User - 43, // 113: neoshowcase.protobuf.APIService.GetUsers:output_type -> neoshowcase.protobuf.GetUsersResponse - 14, // 114: neoshowcase.protobuf.APIService.CreateUserKey:output_type -> neoshowcase.protobuf.UserKey - 44, // 115: neoshowcase.protobuf.APIService.GetUserKeys:output_type -> neoshowcase.protobuf.GetUserKeysResponse - 81, // 116: neoshowcase.protobuf.APIService.DeleteUserKey:output_type -> google.protobuf.Empty - 15, // 117: neoshowcase.protobuf.APIService.CreateRepository:output_type -> neoshowcase.protobuf.Repository - 61, // 118: neoshowcase.protobuf.APIService.GetRepositories:output_type -> neoshowcase.protobuf.GetRepositoriesResponse - 55, // 119: neoshowcase.protobuf.APIService.GetRepositoryCommits:output_type -> neoshowcase.protobuf.GetRepositoryCommitsResponse - 15, // 120: neoshowcase.protobuf.APIService.GetRepository:output_type -> neoshowcase.protobuf.Repository - 74, // 121: neoshowcase.protobuf.APIService.GetRepositoryRefs:output_type -> neoshowcase.protobuf.GetRepositoryRefsResponse - 81, // 122: neoshowcase.protobuf.APIService.UpdateRepository:output_type -> google.protobuf.Empty - 81, // 123: neoshowcase.protobuf.APIService.RefreshRepository:output_type -> google.protobuf.Empty - 81, // 124: neoshowcase.protobuf.APIService.DeleteRepository:output_type -> google.protobuf.Empty - 28, // 125: neoshowcase.protobuf.APIService.CreateApplication:output_type -> neoshowcase.protobuf.Application - 62, // 126: neoshowcase.protobuf.APIService.GetApplications:output_type -> neoshowcase.protobuf.GetApplicationsResponse - 28, // 127: neoshowcase.protobuf.APIService.GetApplication:output_type -> neoshowcase.protobuf.Application - 81, // 128: neoshowcase.protobuf.APIService.UpdateApplication:output_type -> google.protobuf.Empty - 81, // 129: neoshowcase.protobuf.APIService.DeleteApplication:output_type -> google.protobuf.Empty - 34, // 130: neoshowcase.protobuf.APIService.GetAvailableMetrics:output_type -> neoshowcase.protobuf.AvailableMetrics - 36, // 131: neoshowcase.protobuf.APIService.GetApplicationMetrics:output_type -> neoshowcase.protobuf.ApplicationMetrics - 38, // 132: neoshowcase.protobuf.APIService.GetOutput:output_type -> neoshowcase.protobuf.ApplicationOutputs - 37, // 133: neoshowcase.protobuf.APIService.GetOutputStream:output_type -> neoshowcase.protobuf.ApplicationOutput - 30, // 134: neoshowcase.protobuf.APIService.GetEnvVars:output_type -> neoshowcase.protobuf.ApplicationEnvVars - 81, // 135: neoshowcase.protobuf.APIService.SetEnvVar:output_type -> google.protobuf.Empty - 81, // 136: neoshowcase.protobuf.APIService.DeleteEnvVar:output_type -> google.protobuf.Empty - 81, // 137: neoshowcase.protobuf.APIService.StartApplication:output_type -> google.protobuf.Empty - 81, // 138: neoshowcase.protobuf.APIService.StopApplication:output_type -> google.protobuf.Empty - 67, // 139: neoshowcase.protobuf.APIService.GetAllBuilds:output_type -> neoshowcase.protobuf.GetBuildsResponse - 67, // 140: neoshowcase.protobuf.APIService.GetBuilds:output_type -> neoshowcase.protobuf.GetBuildsResponse - 39, // 141: neoshowcase.protobuf.APIService.GetBuild:output_type -> neoshowcase.protobuf.Build - 81, // 142: neoshowcase.protobuf.APIService.RetryCommitBuild:output_type -> google.protobuf.Empty - 81, // 143: neoshowcase.protobuf.APIService.CancelBuild:output_type -> google.protobuf.Empty - 40, // 144: neoshowcase.protobuf.APIService.GetBuildLog:output_type -> neoshowcase.protobuf.BuildLog - 40, // 145: neoshowcase.protobuf.APIService.GetBuildLogStream:output_type -> neoshowcase.protobuf.BuildLog - 32, // 146: neoshowcase.protobuf.APIService.GetBuildArtifact:output_type -> neoshowcase.protobuf.ArtifactContent - 110, // [110:147] is the sub-list for method output_type - 73, // [73:110] is the sub-list for method input_type - 73, // [73:73] is the sub-list for extension type_name - 73, // [73:73] is the sub-list for extension extendee - 0, // [0:73] is the sub-list for field type_name + 81, // 7: neoshowcase.protobuf.SimpleCommit.commit_date:type_name -> google.protobuf.Timestamp + 5, // 8: neoshowcase.protobuf.AutoShutdownConfig.startup:type_name -> neoshowcase.protobuf.AutoShutdownConfig.StartupBehavior + 18, // 9: neoshowcase.protobuf.RuntimeConfig.auto_shutdown:type_name -> neoshowcase.protobuf.AutoShutdownConfig + 19, // 10: neoshowcase.protobuf.BuildConfigRuntimeBuildpack.runtime_config:type_name -> neoshowcase.protobuf.RuntimeConfig + 19, // 11: neoshowcase.protobuf.BuildConfigRuntimeCmd.runtime_config:type_name -> neoshowcase.protobuf.RuntimeConfig + 19, // 12: neoshowcase.protobuf.BuildConfigRuntimeDockerfile.runtime_config:type_name -> neoshowcase.protobuf.RuntimeConfig + 23, // 13: neoshowcase.protobuf.BuildConfigStaticBuildpack.static_config:type_name -> neoshowcase.protobuf.StaticConfig + 23, // 14: neoshowcase.protobuf.BuildConfigStaticCmd.static_config:type_name -> neoshowcase.protobuf.StaticConfig + 23, // 15: neoshowcase.protobuf.BuildConfigStaticDockerfile.static_config:type_name -> neoshowcase.protobuf.StaticConfig + 20, // 16: neoshowcase.protobuf.ApplicationConfig.runtime_buildpack:type_name -> neoshowcase.protobuf.BuildConfigRuntimeBuildpack + 21, // 17: neoshowcase.protobuf.ApplicationConfig.runtime_cmd:type_name -> neoshowcase.protobuf.BuildConfigRuntimeCmd + 22, // 18: neoshowcase.protobuf.ApplicationConfig.runtime_dockerfile:type_name -> neoshowcase.protobuf.BuildConfigRuntimeDockerfile + 24, // 19: neoshowcase.protobuf.ApplicationConfig.static_buildpack:type_name -> neoshowcase.protobuf.BuildConfigStaticBuildpack + 25, // 20: neoshowcase.protobuf.ApplicationConfig.static_cmd:type_name -> neoshowcase.protobuf.BuildConfigStaticCmd + 26, // 21: neoshowcase.protobuf.ApplicationConfig.static_dockerfile:type_name -> neoshowcase.protobuf.BuildConfigStaticDockerfile + 1, // 22: neoshowcase.protobuf.Website.authentication:type_name -> neoshowcase.protobuf.AuthenticationType + 2, // 23: neoshowcase.protobuf.PortPublication.protocol:type_name -> neoshowcase.protobuf.PortPublicationProtocol + 0, // 24: neoshowcase.protobuf.Application.deploy_type:type_name -> neoshowcase.protobuf.DeployType + 6, // 25: neoshowcase.protobuf.Application.container:type_name -> neoshowcase.protobuf.Application.ContainerState + 81, // 26: neoshowcase.protobuf.Application.created_at:type_name -> google.protobuf.Timestamp + 81, // 27: neoshowcase.protobuf.Application.updated_at:type_name -> google.protobuf.Timestamp + 27, // 28: neoshowcase.protobuf.Application.config:type_name -> neoshowcase.protobuf.ApplicationConfig + 28, // 29: neoshowcase.protobuf.Application.websites:type_name -> neoshowcase.protobuf.Website + 29, // 30: neoshowcase.protobuf.Application.port_publications:type_name -> neoshowcase.protobuf.PortPublication + 3, // 31: neoshowcase.protobuf.Application.latest_build_status:type_name -> neoshowcase.protobuf.BuildStatus + 31, // 32: neoshowcase.protobuf.ApplicationEnvVars.variables:type_name -> neoshowcase.protobuf.ApplicationEnvVar + 81, // 33: neoshowcase.protobuf.Artifact.created_at:type_name -> google.protobuf.Timestamp + 82, // 34: neoshowcase.protobuf.Artifact.deleted_at:type_name -> neoshowcase.protobuf.NullTimestamp + 81, // 35: neoshowcase.protobuf.RuntimeImage.created_at:type_name -> google.protobuf.Timestamp + 81, // 36: neoshowcase.protobuf.ApplicationMetric.time:type_name -> google.protobuf.Timestamp + 37, // 37: neoshowcase.protobuf.ApplicationMetrics.metrics:type_name -> neoshowcase.protobuf.ApplicationMetric + 81, // 38: neoshowcase.protobuf.ApplicationOutput.time:type_name -> google.protobuf.Timestamp + 39, // 39: neoshowcase.protobuf.ApplicationOutputs.outputs:type_name -> neoshowcase.protobuf.ApplicationOutput + 3, // 40: neoshowcase.protobuf.Build.status:type_name -> neoshowcase.protobuf.BuildStatus + 81, // 41: neoshowcase.protobuf.Build.queued_at:type_name -> google.protobuf.Timestamp + 82, // 42: neoshowcase.protobuf.Build.started_at:type_name -> neoshowcase.protobuf.NullTimestamp + 82, // 43: neoshowcase.protobuf.Build.updated_at:type_name -> neoshowcase.protobuf.NullTimestamp + 82, // 44: neoshowcase.protobuf.Build.finished_at:type_name -> neoshowcase.protobuf.NullTimestamp + 33, // 45: neoshowcase.protobuf.Build.artifacts:type_name -> neoshowcase.protobuf.Artifact + 35, // 46: neoshowcase.protobuf.Build.runtime_image:type_name -> neoshowcase.protobuf.RuntimeImage + 14, // 47: neoshowcase.protobuf.GetUsersResponse.users:type_name -> neoshowcase.protobuf.User + 15, // 48: neoshowcase.protobuf.GetUserKeysResponse.keys:type_name -> neoshowcase.protobuf.UserKey + 83, // 49: neoshowcase.protobuf.CreateRepositoryAuth.none:type_name -> google.protobuf.Empty + 49, // 50: neoshowcase.protobuf.CreateRepositoryAuth.basic:type_name -> neoshowcase.protobuf.CreateRepositoryAuthBasic + 50, // 51: neoshowcase.protobuf.CreateRepositoryAuth.ssh:type_name -> neoshowcase.protobuf.CreateRepositoryAuthSSH + 51, // 52: neoshowcase.protobuf.CreateRepositoryRequest.auth:type_name -> neoshowcase.protobuf.CreateRepositoryAuth + 7, // 53: neoshowcase.protobuf.GetRepositoriesRequest.scope:type_name -> neoshowcase.protobuf.GetRepositoriesRequest.Scope + 51, // 54: neoshowcase.protobuf.UpdateRepositoryRequest.auth:type_name -> neoshowcase.protobuf.CreateRepositoryAuth + 77, // 55: neoshowcase.protobuf.UpdateRepositoryRequest.owner_ids:type_name -> neoshowcase.protobuf.UpdateRepositoryRequest.UpdateOwners + 17, // 56: neoshowcase.protobuf.GetRepositoryCommitsResponse.commits:type_name -> neoshowcase.protobuf.SimpleCommit + 1, // 57: neoshowcase.protobuf.CreateWebsiteRequest.authentication:type_name -> neoshowcase.protobuf.AuthenticationType + 27, // 58: neoshowcase.protobuf.CreateApplicationRequest.config:type_name -> neoshowcase.protobuf.ApplicationConfig + 58, // 59: neoshowcase.protobuf.CreateApplicationRequest.websites:type_name -> neoshowcase.protobuf.CreateWebsiteRequest + 29, // 60: neoshowcase.protobuf.CreateApplicationRequest.port_publications:type_name -> neoshowcase.protobuf.PortPublication + 8, // 61: neoshowcase.protobuf.GetApplicationsRequest.scope:type_name -> neoshowcase.protobuf.GetApplicationsRequest.Scope + 27, // 62: neoshowcase.protobuf.UpdateApplicationRequest.config:type_name -> neoshowcase.protobuf.ApplicationConfig + 78, // 63: neoshowcase.protobuf.UpdateApplicationRequest.websites:type_name -> neoshowcase.protobuf.UpdateApplicationRequest.UpdateWebsites + 79, // 64: neoshowcase.protobuf.UpdateApplicationRequest.port_publications:type_name -> neoshowcase.protobuf.UpdateApplicationRequest.UpdatePorts + 80, // 65: neoshowcase.protobuf.UpdateApplicationRequest.owner_ids:type_name -> neoshowcase.protobuf.UpdateApplicationRequest.UpdateOwners + 16, // 66: neoshowcase.protobuf.GetRepositoriesResponse.repositories:type_name -> neoshowcase.protobuf.Repository + 30, // 67: neoshowcase.protobuf.GetApplicationsResponse.applications:type_name -> neoshowcase.protobuf.Application + 41, // 68: neoshowcase.protobuf.GetBuildsResponse.builds:type_name -> neoshowcase.protobuf.Build + 81, // 69: neoshowcase.protobuf.GetApplicationMetricsRequest.before:type_name -> google.protobuf.Timestamp + 81, // 70: neoshowcase.protobuf.GetOutputRequest.before:type_name -> google.protobuf.Timestamp + 81, // 71: neoshowcase.protobuf.GetOutputStreamRequest.begin:type_name -> google.protobuf.Timestamp + 43, // 72: neoshowcase.protobuf.GetRepositoryRefsResponse.refs:type_name -> neoshowcase.protobuf.GitRef + 58, // 73: neoshowcase.protobuf.UpdateApplicationRequest.UpdateWebsites.websites:type_name -> neoshowcase.protobuf.CreateWebsiteRequest + 29, // 74: neoshowcase.protobuf.UpdateApplicationRequest.UpdatePorts.port_publications:type_name -> neoshowcase.protobuf.PortPublication + 83, // 75: neoshowcase.protobuf.APIService.GetSystemInfo:input_type -> google.protobuf.Empty + 83, // 76: neoshowcase.protobuf.APIService.GenerateKeyPair:input_type -> google.protobuf.Empty + 83, // 77: neoshowcase.protobuf.APIService.GetMe:input_type -> google.protobuf.Empty + 83, // 78: neoshowcase.protobuf.APIService.GetUsers:input_type -> google.protobuf.Empty + 47, // 79: neoshowcase.protobuf.APIService.CreateUserKey:input_type -> neoshowcase.protobuf.CreateUserKeyRequest + 83, // 80: neoshowcase.protobuf.APIService.GetUserKeys:input_type -> google.protobuf.Empty + 48, // 81: neoshowcase.protobuf.APIService.DeleteUserKey:input_type -> neoshowcase.protobuf.DeleteUserKeyRequest + 52, // 82: neoshowcase.protobuf.APIService.CreateRepository:input_type -> neoshowcase.protobuf.CreateRepositoryRequest + 53, // 83: neoshowcase.protobuf.APIService.GetRepositories:input_type -> neoshowcase.protobuf.GetRepositoriesRequest + 56, // 84: neoshowcase.protobuf.APIService.GetRepositoryCommits:input_type -> neoshowcase.protobuf.GetRepositoryCommitsRequest + 55, // 85: neoshowcase.protobuf.APIService.GetRepository:input_type -> neoshowcase.protobuf.RepositoryIdRequest + 55, // 86: neoshowcase.protobuf.APIService.GetRepositoryRefs:input_type -> neoshowcase.protobuf.RepositoryIdRequest + 54, // 87: neoshowcase.protobuf.APIService.UpdateRepository:input_type -> neoshowcase.protobuf.UpdateRepositoryRequest + 55, // 88: neoshowcase.protobuf.APIService.RefreshRepository:input_type -> neoshowcase.protobuf.RepositoryIdRequest + 55, // 89: neoshowcase.protobuf.APIService.DeleteRepository:input_type -> neoshowcase.protobuf.RepositoryIdRequest + 60, // 90: neoshowcase.protobuf.APIService.CreateApplication:input_type -> neoshowcase.protobuf.CreateApplicationRequest + 61, // 91: neoshowcase.protobuf.APIService.GetApplications:input_type -> neoshowcase.protobuf.GetApplicationsRequest + 65, // 92: neoshowcase.protobuf.APIService.GetApplication:input_type -> neoshowcase.protobuf.ApplicationIdRequest + 62, // 93: neoshowcase.protobuf.APIService.UpdateApplication:input_type -> neoshowcase.protobuf.UpdateApplicationRequest + 65, // 94: neoshowcase.protobuf.APIService.DeleteApplication:input_type -> neoshowcase.protobuf.ApplicationIdRequest + 83, // 95: neoshowcase.protobuf.APIService.GetAvailableMetrics:input_type -> google.protobuf.Empty + 72, // 96: neoshowcase.protobuf.APIService.GetApplicationMetrics:input_type -> neoshowcase.protobuf.GetApplicationMetricsRequest + 73, // 97: neoshowcase.protobuf.APIService.GetOutput:input_type -> neoshowcase.protobuf.GetOutputRequest + 74, // 98: neoshowcase.protobuf.APIService.GetOutputStream:input_type -> neoshowcase.protobuf.GetOutputStreamRequest + 65, // 99: neoshowcase.protobuf.APIService.GetEnvVars:input_type -> neoshowcase.protobuf.ApplicationIdRequest + 70, // 100: neoshowcase.protobuf.APIService.SetEnvVar:input_type -> neoshowcase.protobuf.SetApplicationEnvVarRequest + 71, // 101: neoshowcase.protobuf.APIService.DeleteEnvVar:input_type -> neoshowcase.protobuf.DeleteApplicationEnvVarRequest + 65, // 102: neoshowcase.protobuf.APIService.StartApplication:input_type -> neoshowcase.protobuf.ApplicationIdRequest + 65, // 103: neoshowcase.protobuf.APIService.StopApplication:input_type -> neoshowcase.protobuf.ApplicationIdRequest + 66, // 104: neoshowcase.protobuf.APIService.GetAllBuilds:input_type -> neoshowcase.protobuf.GetAllBuildsRequest + 65, // 105: neoshowcase.protobuf.APIService.GetBuilds:input_type -> neoshowcase.protobuf.ApplicationIdRequest + 67, // 106: neoshowcase.protobuf.APIService.GetBuild:input_type -> neoshowcase.protobuf.BuildIdRequest + 75, // 107: neoshowcase.protobuf.APIService.RetryCommitBuild:input_type -> neoshowcase.protobuf.RetryCommitBuildRequest + 67, // 108: neoshowcase.protobuf.APIService.CancelBuild:input_type -> neoshowcase.protobuf.BuildIdRequest + 67, // 109: neoshowcase.protobuf.APIService.GetBuildLog:input_type -> neoshowcase.protobuf.BuildIdRequest + 67, // 110: neoshowcase.protobuf.APIService.GetBuildLogStream:input_type -> neoshowcase.protobuf.BuildIdRequest + 68, // 111: neoshowcase.protobuf.APIService.GetBuildArtifact:input_type -> neoshowcase.protobuf.ArtifactIdRequest + 13, // 112: neoshowcase.protobuf.APIService.GetSystemInfo:output_type -> neoshowcase.protobuf.SystemInfo + 44, // 113: neoshowcase.protobuf.APIService.GenerateKeyPair:output_type -> neoshowcase.protobuf.GenerateKeyPairResponse + 14, // 114: neoshowcase.protobuf.APIService.GetMe:output_type -> neoshowcase.protobuf.User + 45, // 115: neoshowcase.protobuf.APIService.GetUsers:output_type -> neoshowcase.protobuf.GetUsersResponse + 15, // 116: neoshowcase.protobuf.APIService.CreateUserKey:output_type -> neoshowcase.protobuf.UserKey + 46, // 117: neoshowcase.protobuf.APIService.GetUserKeys:output_type -> neoshowcase.protobuf.GetUserKeysResponse + 83, // 118: neoshowcase.protobuf.APIService.DeleteUserKey:output_type -> google.protobuf.Empty + 16, // 119: neoshowcase.protobuf.APIService.CreateRepository:output_type -> neoshowcase.protobuf.Repository + 63, // 120: neoshowcase.protobuf.APIService.GetRepositories:output_type -> neoshowcase.protobuf.GetRepositoriesResponse + 57, // 121: neoshowcase.protobuf.APIService.GetRepositoryCommits:output_type -> neoshowcase.protobuf.GetRepositoryCommitsResponse + 16, // 122: neoshowcase.protobuf.APIService.GetRepository:output_type -> neoshowcase.protobuf.Repository + 76, // 123: neoshowcase.protobuf.APIService.GetRepositoryRefs:output_type -> neoshowcase.protobuf.GetRepositoryRefsResponse + 83, // 124: neoshowcase.protobuf.APIService.UpdateRepository:output_type -> google.protobuf.Empty + 83, // 125: neoshowcase.protobuf.APIService.RefreshRepository:output_type -> google.protobuf.Empty + 83, // 126: neoshowcase.protobuf.APIService.DeleteRepository:output_type -> google.protobuf.Empty + 30, // 127: neoshowcase.protobuf.APIService.CreateApplication:output_type -> neoshowcase.protobuf.Application + 64, // 128: neoshowcase.protobuf.APIService.GetApplications:output_type -> neoshowcase.protobuf.GetApplicationsResponse + 30, // 129: neoshowcase.protobuf.APIService.GetApplication:output_type -> neoshowcase.protobuf.Application + 83, // 130: neoshowcase.protobuf.APIService.UpdateApplication:output_type -> google.protobuf.Empty + 83, // 131: neoshowcase.protobuf.APIService.DeleteApplication:output_type -> google.protobuf.Empty + 36, // 132: neoshowcase.protobuf.APIService.GetAvailableMetrics:output_type -> neoshowcase.protobuf.AvailableMetrics + 38, // 133: neoshowcase.protobuf.APIService.GetApplicationMetrics:output_type -> neoshowcase.protobuf.ApplicationMetrics + 40, // 134: neoshowcase.protobuf.APIService.GetOutput:output_type -> neoshowcase.protobuf.ApplicationOutputs + 39, // 135: neoshowcase.protobuf.APIService.GetOutputStream:output_type -> neoshowcase.protobuf.ApplicationOutput + 32, // 136: neoshowcase.protobuf.APIService.GetEnvVars:output_type -> neoshowcase.protobuf.ApplicationEnvVars + 83, // 137: neoshowcase.protobuf.APIService.SetEnvVar:output_type -> google.protobuf.Empty + 83, // 138: neoshowcase.protobuf.APIService.DeleteEnvVar:output_type -> google.protobuf.Empty + 83, // 139: neoshowcase.protobuf.APIService.StartApplication:output_type -> google.protobuf.Empty + 83, // 140: neoshowcase.protobuf.APIService.StopApplication:output_type -> google.protobuf.Empty + 69, // 141: neoshowcase.protobuf.APIService.GetAllBuilds:output_type -> neoshowcase.protobuf.GetBuildsResponse + 69, // 142: neoshowcase.protobuf.APIService.GetBuilds:output_type -> neoshowcase.protobuf.GetBuildsResponse + 41, // 143: neoshowcase.protobuf.APIService.GetBuild:output_type -> neoshowcase.protobuf.Build + 83, // 144: neoshowcase.protobuf.APIService.RetryCommitBuild:output_type -> google.protobuf.Empty + 83, // 145: neoshowcase.protobuf.APIService.CancelBuild:output_type -> google.protobuf.Empty + 42, // 146: neoshowcase.protobuf.APIService.GetBuildLog:output_type -> neoshowcase.protobuf.BuildLog + 42, // 147: neoshowcase.protobuf.APIService.GetBuildLogStream:output_type -> neoshowcase.protobuf.BuildLog + 34, // 148: neoshowcase.protobuf.APIService.GetBuildArtifact:output_type -> neoshowcase.protobuf.ArtifactContent + 112, // [112:149] is the sub-list for method output_type + 75, // [75:112] is the sub-list for method input_type + 75, // [75:75] is the sub-list for extension type_name + 75, // [75:75] is the sub-list for extension extendee + 0, // [0:75] is the sub-list for field type_name } func init() { file_neoshowcase_protobuf_gateway_proto_init() } @@ -6038,7 +6159,7 @@ func file_neoshowcase_protobuf_gateway_proto_init() { return } file_neoshowcase_protobuf_null_proto_init() - file_neoshowcase_protobuf_gateway_proto_msgTypes[17].OneofWrappers = []any{ + file_neoshowcase_protobuf_gateway_proto_msgTypes[18].OneofWrappers = []any{ (*ApplicationConfig_RuntimeBuildpack)(nil), (*ApplicationConfig_RuntimeCmd)(nil), (*ApplicationConfig_RuntimeDockerfile)(nil), @@ -6046,23 +6167,23 @@ func file_neoshowcase_protobuf_gateway_proto_init() { (*ApplicationConfig_StaticCmd)(nil), (*ApplicationConfig_StaticDockerfile)(nil), } - file_neoshowcase_protobuf_gateway_proto_msgTypes[20].OneofWrappers = []any{} - file_neoshowcase_protobuf_gateway_proto_msgTypes[31].OneofWrappers = []any{} - file_neoshowcase_protobuf_gateway_proto_msgTypes[41].OneofWrappers = []any{ + file_neoshowcase_protobuf_gateway_proto_msgTypes[21].OneofWrappers = []any{} + file_neoshowcase_protobuf_gateway_proto_msgTypes[32].OneofWrappers = []any{} + file_neoshowcase_protobuf_gateway_proto_msgTypes[42].OneofWrappers = []any{ (*CreateRepositoryAuth_None)(nil), (*CreateRepositoryAuth_Basic)(nil), (*CreateRepositoryAuth_Ssh)(nil), } - file_neoshowcase_protobuf_gateway_proto_msgTypes[44].OneofWrappers = []any{} - file_neoshowcase_protobuf_gateway_proto_msgTypes[51].OneofWrappers = []any{} + file_neoshowcase_protobuf_gateway_proto_msgTypes[45].OneofWrappers = []any{} file_neoshowcase_protobuf_gateway_proto_msgTypes[52].OneofWrappers = []any{} + file_neoshowcase_protobuf_gateway_proto_msgTypes[53].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_neoshowcase_protobuf_gateway_proto_rawDesc, - NumEnums: 8, - NumMessages: 71, + NumEnums: 9, + NumMessages: 72, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/infrastructure/grpc/pbconvert/application_config.go b/pkg/infrastructure/grpc/pbconvert/application_config.go index dab11ec0..aa3178ae 100644 --- a/pkg/infrastructure/grpc/pbconvert/application_config.go +++ b/pkg/infrastructure/grpc/pbconvert/application_config.go @@ -11,7 +11,7 @@ func FromPBRuntimeConfig(c *pb.RuntimeConfig) domain.RuntimeConfig { UseMongoDB: c.UseMongodb, Entrypoint: c.Entrypoint, Command: c.Command, - AutoShutdown: c.AutoShutdown, + AutoShutdown: FromPBAutoShutdown(c.AutoShutdown), } } @@ -21,7 +21,7 @@ func ToPBRuntimeConfig(c *domain.RuntimeConfig) *pb.RuntimeConfig { UseMongodb: c.UseMongoDB, Entrypoint: c.Entrypoint, Command: c.Command, - AutoShutdown: c.AutoShutdown, + AutoShutdown: ToPBAutoShutdown(c.AutoShutdown), } } @@ -138,3 +138,43 @@ func ToPBApplicationConfig(c domain.ApplicationConfig) *pb.ApplicationConfig { panic("unknown domain build config type") } } + +func FromPBAutoShutdown(as *pb.AutoShutdownConfig) domain.AutoShutdownConfig { + return domain.AutoShutdownConfig{ + Enabled: as.Enabled, + Startup: fromPBStartupBehavior(as.Startup), + } +} + +func fromPBStartupBehavior(sb pb.AutoShutdownConfig_StartupBehavior) domain.StartupBehavior { + switch sb { + case pb.AutoShutdownConfig_UNDEFINED: + return domain.StartupBehaviorUndefined + case pb.AutoShutdownConfig_LOADING_PAGE: + return domain.StartupBehaviorLoadingPage + case pb.AutoShutdownConfig_BLOCKING: + return domain.StartupBehaviorBlocking + default: + panic("unknown pb startup behavior") + } +} + +func ToPBAutoShutdown(as domain.AutoShutdownConfig) *pb.AutoShutdownConfig { + return &pb.AutoShutdownConfig{ + Enabled: as.Enabled, + Startup: toPBStartupBehavior(as.Startup), + } +} + +func toPBStartupBehavior(sb domain.StartupBehavior) pb.AutoShutdownConfig_StartupBehavior { + switch sb { + case domain.StartupBehaviorUndefined: + return pb.AutoShutdownConfig_UNDEFINED + case domain.StartupBehaviorLoadingPage: + return pb.AutoShutdownConfig_LOADING_PAGE + case domain.StartupBehaviorBlocking: + return pb.AutoShutdownConfig_BLOCKING + default: + panic("unknown domain startup behavior") + } +} diff --git a/pkg/infrastructure/repository/models/application_config.go b/pkg/infrastructure/repository/models/application_config.go index b529a2a7..458a5c2d 100644 --- a/pkg/infrastructure/repository/models/application_config.go +++ b/pkg/infrastructure/repository/models/application_config.go @@ -30,6 +30,8 @@ type ApplicationConfig struct { // アプリケーションID UseMongodb bool `boil:"use_mongodb" json:"use_mongodb" toml:"use_mongodb" yaml:"use_mongodb"` // アプリケーションの自動シャットダウン AutoShutdown bool `boil:"auto_shutdown" json:"auto_shutdown" toml:"auto_shutdown" yaml:"auto_shutdown"` + // アプリ起動時の振る舞い + StartupBehavior string `boil:"startup_behavior" json:"startup_behavior" toml:"startup_behavior" yaml:"startup_behavior"` // ビルドタイプ BuildType string `boil:"build_type" json:"build_type" toml:"build_type" yaml:"build_type"` // ベースイメージの名前 @@ -54,63 +56,67 @@ type ApplicationConfig struct { // アプリケーションID } var ApplicationConfigColumns = struct { - ApplicationID string - UseMariadb string - UseMongodb string - AutoShutdown string - BuildType string - BaseImage string - BuildCMD string - ArtifactPath string - Spa string - DockerfileName string - Context string - Entrypoint string - Command string + ApplicationID string + UseMariadb string + UseMongodb string + AutoShutdown string + StartupBehavior string + BuildType string + BaseImage string + BuildCMD string + ArtifactPath string + Spa string + DockerfileName string + Context string + Entrypoint string + Command string }{ - ApplicationID: "application_id", - UseMariadb: "use_mariadb", - UseMongodb: "use_mongodb", - AutoShutdown: "auto_shutdown", - BuildType: "build_type", - BaseImage: "base_image", - BuildCMD: "build_cmd", - ArtifactPath: "artifact_path", - Spa: "spa", - DockerfileName: "dockerfile_name", - Context: "context", - Entrypoint: "entrypoint", - Command: "command", + ApplicationID: "application_id", + UseMariadb: "use_mariadb", + UseMongodb: "use_mongodb", + AutoShutdown: "auto_shutdown", + StartupBehavior: "startup_behavior", + BuildType: "build_type", + BaseImage: "base_image", + BuildCMD: "build_cmd", + ArtifactPath: "artifact_path", + Spa: "spa", + DockerfileName: "dockerfile_name", + Context: "context", + Entrypoint: "entrypoint", + Command: "command", } var ApplicationConfigTableColumns = struct { - ApplicationID string - UseMariadb string - UseMongodb string - AutoShutdown string - BuildType string - BaseImage string - BuildCMD string - ArtifactPath string - Spa string - DockerfileName string - Context string - Entrypoint string - Command string + ApplicationID string + UseMariadb string + UseMongodb string + AutoShutdown string + StartupBehavior string + BuildType string + BaseImage string + BuildCMD string + ArtifactPath string + Spa string + DockerfileName string + Context string + Entrypoint string + Command string }{ - ApplicationID: "application_config.application_id", - UseMariadb: "application_config.use_mariadb", - UseMongodb: "application_config.use_mongodb", - AutoShutdown: "application_config.auto_shutdown", - BuildType: "application_config.build_type", - BaseImage: "application_config.base_image", - BuildCMD: "application_config.build_cmd", - ArtifactPath: "application_config.artifact_path", - Spa: "application_config.spa", - DockerfileName: "application_config.dockerfile_name", - Context: "application_config.context", - Entrypoint: "application_config.entrypoint", - Command: "application_config.command", + ApplicationID: "application_config.application_id", + UseMariadb: "application_config.use_mariadb", + UseMongodb: "application_config.use_mongodb", + AutoShutdown: "application_config.auto_shutdown", + StartupBehavior: "application_config.startup_behavior", + BuildType: "application_config.build_type", + BaseImage: "application_config.base_image", + BuildCMD: "application_config.build_cmd", + ArtifactPath: "application_config.artifact_path", + Spa: "application_config.spa", + DockerfileName: "application_config.dockerfile_name", + Context: "application_config.context", + Entrypoint: "application_config.entrypoint", + Command: "application_config.command", } // Generated where @@ -150,33 +156,35 @@ func (w whereHelperbool) GT(x bool) qm.QueryMod { return qmhelper.Where(w.field func (w whereHelperbool) GTE(x bool) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.GTE, x) } var ApplicationConfigWhere = struct { - ApplicationID whereHelperstring - UseMariadb whereHelperbool - UseMongodb whereHelperbool - AutoShutdown whereHelperbool - BuildType whereHelperstring - BaseImage whereHelperstring - BuildCMD whereHelperstring - ArtifactPath whereHelperstring - Spa whereHelperbool - DockerfileName whereHelperstring - Context whereHelperstring - Entrypoint whereHelperstring - Command whereHelperstring + ApplicationID whereHelperstring + UseMariadb whereHelperbool + UseMongodb whereHelperbool + AutoShutdown whereHelperbool + StartupBehavior whereHelperstring + BuildType whereHelperstring + BaseImage whereHelperstring + BuildCMD whereHelperstring + ArtifactPath whereHelperstring + Spa whereHelperbool + DockerfileName whereHelperstring + Context whereHelperstring + Entrypoint whereHelperstring + Command whereHelperstring }{ - ApplicationID: whereHelperstring{field: "`application_config`.`application_id`"}, - UseMariadb: whereHelperbool{field: "`application_config`.`use_mariadb`"}, - UseMongodb: whereHelperbool{field: "`application_config`.`use_mongodb`"}, - AutoShutdown: whereHelperbool{field: "`application_config`.`auto_shutdown`"}, - BuildType: whereHelperstring{field: "`application_config`.`build_type`"}, - BaseImage: whereHelperstring{field: "`application_config`.`base_image`"}, - BuildCMD: whereHelperstring{field: "`application_config`.`build_cmd`"}, - ArtifactPath: whereHelperstring{field: "`application_config`.`artifact_path`"}, - Spa: whereHelperbool{field: "`application_config`.`spa`"}, - DockerfileName: whereHelperstring{field: "`application_config`.`dockerfile_name`"}, - Context: whereHelperstring{field: "`application_config`.`context`"}, - Entrypoint: whereHelperstring{field: "`application_config`.`entrypoint`"}, - Command: whereHelperstring{field: "`application_config`.`command`"}, + ApplicationID: whereHelperstring{field: "`application_config`.`application_id`"}, + UseMariadb: whereHelperbool{field: "`application_config`.`use_mariadb`"}, + UseMongodb: whereHelperbool{field: "`application_config`.`use_mongodb`"}, + AutoShutdown: whereHelperbool{field: "`application_config`.`auto_shutdown`"}, + StartupBehavior: whereHelperstring{field: "`application_config`.`startup_behavior`"}, + BuildType: whereHelperstring{field: "`application_config`.`build_type`"}, + BaseImage: whereHelperstring{field: "`application_config`.`base_image`"}, + BuildCMD: whereHelperstring{field: "`application_config`.`build_cmd`"}, + ArtifactPath: whereHelperstring{field: "`application_config`.`artifact_path`"}, + Spa: whereHelperbool{field: "`application_config`.`spa`"}, + DockerfileName: whereHelperstring{field: "`application_config`.`dockerfile_name`"}, + Context: whereHelperstring{field: "`application_config`.`context`"}, + Entrypoint: whereHelperstring{field: "`application_config`.`entrypoint`"}, + Command: whereHelperstring{field: "`application_config`.`command`"}, } // ApplicationConfigRels is where relationship names are stored. @@ -207,8 +215,8 @@ func (r *applicationConfigR) GetApplication() *Application { type applicationConfigL struct{} var ( - applicationConfigAllColumns = []string{"application_id", "use_mariadb", "use_mongodb", "auto_shutdown", "build_type", "base_image", "build_cmd", "artifact_path", "spa", "dockerfile_name", "context", "entrypoint", "command"} - applicationConfigColumnsWithoutDefault = []string{"application_id", "use_mariadb", "use_mongodb", "build_type", "base_image", "build_cmd", "artifact_path", "spa", "dockerfile_name", "context", "entrypoint", "command"} + applicationConfigAllColumns = []string{"application_id", "use_mariadb", "use_mongodb", "auto_shutdown", "startup_behavior", "build_type", "base_image", "build_cmd", "artifact_path", "spa", "dockerfile_name", "context", "entrypoint", "command"} + applicationConfigColumnsWithoutDefault = []string{"application_id", "use_mariadb", "use_mongodb", "startup_behavior", "build_type", "base_image", "build_cmd", "artifact_path", "spa", "dockerfile_name", "context", "entrypoint", "command"} applicationConfigColumnsWithDefault = []string{"auto_shutdown"} applicationConfigPrimaryKeyColumns = []string{"application_id"} applicationConfigGeneratedColumns = []string{} diff --git a/pkg/infrastructure/repository/models/boil_types.go b/pkg/infrastructure/repository/models/boil_types.go index a7d3db28..ec1ae4a0 100644 --- a/pkg/infrastructure/repository/models/boil_types.go +++ b/pkg/infrastructure/repository/models/boil_types.go @@ -51,6 +51,21 @@ func makeCacheKey(cols boil.Columns, nzDefaults []string) string { return str } +// Enum values for ApplicationConfigStartupBehavior +const ( + ApplicationConfigStartupBehaviorUndefined string = "undefined" + ApplicationConfigStartupBehaviorLoadingPage string = "loading-page" + ApplicationConfigStartupBehaviorBlocking string = "blocking" +) + +func AllApplicationConfigStartupBehavior() []string { + return []string{ + ApplicationConfigStartupBehaviorUndefined, + ApplicationConfigStartupBehaviorLoadingPage, + ApplicationConfigStartupBehaviorBlocking, + } +} + // Enum values for ApplicationConfigBuildType const ( ApplicationConfigBuildTypeRuntimeBuildpack string = "runtime-buildpack" diff --git a/pkg/infrastructure/repository/repoconvert/application_config.go b/pkg/infrastructure/repository/repoconvert/application_config.go index df62eb80..3ec6d050 100644 --- a/pkg/infrastructure/repository/repoconvert/application_config.go +++ b/pkg/infrastructure/repository/repoconvert/application_config.go @@ -30,21 +30,31 @@ var BuildTypeMapper = mapper.MustNewValueMapper(map[string]domain.BuildType{ models.ApplicationConfigBuildTypeStaticDockerfile: domain.BuildTypeStaticDockerfile, }) +var StartupBehaviorMapper = mapper.MustNewValueMapper(map[string]domain.StartupBehavior{ + models.ApplicationConfigStartupBehaviorUndefined: domain.StartupBehaviorUndefined, + models.ApplicationConfigStartupBehaviorLoadingPage: domain.StartupBehaviorLoadingPage, + models.ApplicationConfigStartupBehaviorBlocking: domain.StartupBehaviorBlocking, +}) + func assignRuntimeConfig(mc *models.ApplicationConfig, c *domain.RuntimeConfig) { mc.UseMariadb = c.UseMariaDB mc.UseMongodb = c.UseMongoDB - mc.AutoShutdown = c.AutoShutdown + mc.AutoShutdown = c.AutoShutdown.Enabled + mc.StartupBehavior = StartupBehaviorMapper.FromMust(c.AutoShutdown.Startup) mc.Entrypoint = c.Entrypoint mc.Command = c.Command } func ToDomainRuntimeConfig(c *models.ApplicationConfig) domain.RuntimeConfig { return domain.RuntimeConfig{ - UseMariaDB: c.UseMariadb, - UseMongoDB: c.UseMongodb, - AutoShutdown: c.AutoShutdown, - Entrypoint: c.Entrypoint, - Command: c.Command, + UseMariaDB: c.UseMariadb, + UseMongoDB: c.UseMongodb, + AutoShutdown: domain.AutoShutdownConfig{ + Enabled: c.AutoShutdown, + Startup: StartupBehaviorMapper.IntoMust(c.StartupBehavior), + }, + Entrypoint: c.Entrypoint, + Command: c.Command, } }