From aff6f4469618db438e515e010c26e10f0138072a Mon Sep 17 00:00:00 2001 From: Nick Z <2420177+nickzelei@users.noreply.github.com> Date: Tue, 26 Nov 2024 14:04:16 -0800 Subject: [PATCH 1/3] Adds language --- .../go/protos/mgmt/v1alpha1/transformer.pb.go | 1163 +++++++++-------- .../protos/mgmt/v1alpha1/transformer.proto | 5 + .../mgmt/v1alpha1/anonymization.openapi.yaml | 22 + docs/openapi/mgmt/v1alpha1/job.openapi.yaml | 22 + .../mgmt/v1alpha1/transformer.openapi.yaml | 22 + docs/openapi/neosync.mgmt.v1alpha1.yaml | 22 + .../mgmt/v1alpha1/transformer.proto.mdx | 2 +- docs/protos/proto_docs.json | 14 +- .../client/mgmt/v1alpha1/transformer_pb.ts | 10 + .../neosync/mgmt/v1alpha1/transformer_pb2.py | 264 ++-- .../neosync/mgmt/v1alpha1/transformer_pb2.pyi | 6 +- 11 files changed, 842 insertions(+), 710 deletions(-) diff --git a/backend/gen/go/protos/mgmt/v1alpha1/transformer.pb.go b/backend/gen/go/protos/mgmt/v1alpha1/transformer.pb.go index a3cd4fac5e..02ae328613 100644 --- a/backend/gen/go/protos/mgmt/v1alpha1/transformer.pb.go +++ b/backend/gen/go/protos/mgmt/v1alpha1/transformer.pb.go @@ -2271,6 +2271,10 @@ type TransformPiiText struct { AllowedEntities []string `protobuf:"bytes,4,rep,name=allowed_entities,json=allowedEntities,proto3" json:"allowed_entities,omitempty"` // Exact match of PII phrases identified by the analysis engine. AllowedPhrases []string `protobuf:"bytes,5,rep,name=allowed_phrases,json=allowedPhrases,proto3" json:"allowed_phrases,omitempty"` + // Two characters for the desired language in ISO_639-1 format. + // If not provided, will use a default language if specified on the server. + // Depending on the server configuration, may attempt to autodetect from input. + Language *string `protobuf:"bytes,6,opt,name=language,proto3,oneof" json:"language,omitempty"` } func (x *TransformPiiText) Reset() { @@ -2338,6 +2342,13 @@ func (x *TransformPiiText) GetAllowedPhrases() []string { return nil } +func (x *TransformPiiText) GetLanguage() string { + if x != nil && x.Language != nil { + return *x.Language + } + return "" +} + type PiiDenyRecognizer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5434,7 +5445,7 @@ var file_mgmt_v1alpha1_transformer_proto_rawDesc = []byte{ 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x17, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x05, 0xba, 0x48, 0x02, - 0x08, 0x01, 0x22, 0xc8, 0x02, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x08, 0x01, 0x22, 0xf6, 0x02, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x69, 0x69, 0x54, 0x65, 0x78, 0x74, 0x12, 0x38, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x0f, 0xba, 0x48, 0x0c, 0x0a, 0x0a, 0x1d, 0x00, 0x00, 0x80, 0x3f, 0x2d, 0x00, 0x00, 0x00, @@ -5454,607 +5465,610 @@ var file_mgmt_v1alpha1_transformer_proto_rawDesc = []byte{ 0x02, 0x10, 0x01, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x73, 0x22, 0x70, 0x0a, - 0x11, 0x50, 0x69, 0x69, 0x44, 0x65, 0x6e, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, - 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x1a, 0xba, 0x48, 0x17, 0x72, 0x15, 0x32, 0x13, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, - 0x39, 0x2d, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x31, 0x30, 0x30, 0x7d, 0x24, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x0a, 0x64, 0x65, 0x6e, 0x79, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0c, 0xba, 0x48, 0x09, 0x92, 0x01, 0x06, 0x22, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x64, 0x65, 0x6e, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, - 0xad, 0x05, 0x0a, 0x0d, 0x50, 0x69, 0x69, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x7a, 0x65, - 0x72, 0x12, 0x40, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x50, 0x69, 0x69, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x50, 0x69, 0x69, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x64, 0x61, - 0x63, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x50, 0x69, 0x69, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x4d, - 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x37, 0x0a, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x67, 0x6d, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x69, 0x69, 0x41, 0x6e, 0x6f, - 0x6e, 0x79, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x48, 0x00, 0x52, 0x04, - 0x68, 0x61, 0x73, 0x68, 0x1a, 0x2e, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x08, 0x0a, 0x06, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x1a, 0xa7, - 0x01, 0x0a, 0x04, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x73, 0x6b, 0x69, - 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x0b, 0x6d, 0x61, 0x73, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x27, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x61, 0x73, 0x6b, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x73, 0x54, - 0x6f, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, - 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x07, 0x66, 0x72, - 0x6f, 0x6d, 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x73, - 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x68, - 0x61, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x1a, 0xba, 0x01, 0x0a, 0x04, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x50, 0x69, 0x69, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x48, 0x61, - 0x73, 0x68, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x61, - 0x6c, 0x67, 0x6f, 0x88, 0x01, 0x01, 0x22, 0x64, 0x0a, 0x08, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, - 0x0d, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x44, 0x35, 0x10, 0x01, - 0x12, 0x14, 0x0a, 0x10, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x48, - 0x41, 0x32, 0x35, 0x36, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, - 0x64, 0x0a, 0x0d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, - 0x12, 0x44, 0x0a, 0x0a, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, - 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x87, 0x03, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x6f, 0x72, 0x6d, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x44, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x01, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, - 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, - 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, - 0x44, 0x0a, 0x0a, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x14, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x03, 0x52, 0x12, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x0e, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x22, - 0x47, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x64, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6c, - 0x75, 0x68, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x4c, 0x75, 0x68, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x5f, 0x6c, 0x75, 0x68, 0x6e, 0x22, 0x0e, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x43, 0x69, 0x74, 0x79, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x57, 0x0a, 0x17, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x31, 0x36, 0x34, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, - 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, - 0x78, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x6d, 0x61, 0x78, 0x22, 0x13, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x46, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x0a, - 0x0e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, - 0x7a, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, - 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x09, 0x70, 0x72, - 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x15, 0x0a, 0x13, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x75, - 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x44, 0x0a, 0x0e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0a, 0x61, 0x62, 0x62, 0x72, - 0x65, 0x76, 0x69, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, - 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x69, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x69, 0x61, 0x74, 0x65, 0x22, 0x1a, 0x0a, 0x18, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x8c, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x53, - 0x69, 0x67, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, - 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x03, 0x6d, 0x61, - 0x78, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, - 0x7a, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x48, 0x61, 0x73, - 0x68, 0x22, 0x0d, 0x0a, 0x0b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x53, 0x4e, - 0x22, 0x59, 0x0a, 0x0d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x31, 0x0a, 0x12, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x75, - 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x22, 0x59, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, - 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x22, - 0x4e, 0x0a, 0x0e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, - 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x22, - 0x17, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x22, 0x50, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x55, 0x75, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x68, 0x79, 0x70, 0x68, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x79, 0x70, 0x68, 0x65, 0x6e, 0x73, 0x88, - 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, - 0x79, 0x70, 0x68, 0x65, 0x6e, 0x73, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x5a, 0x69, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x5c, 0x0a, 0x18, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x31, 0x36, 0x34, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x56, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x6f, 0x72, 0x6d, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, - 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xc4, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x46, 0x6c, 0x6f, - 0x61, 0x74, 0x36, 0x34, 0x12, 0x3b, 0x0a, 0x17, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x15, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x01, 0x48, 0x01, 0x52, 0x15, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, 0x1a, - 0x0a, 0x18, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x22, 0x55, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x6f, 0x72, 0x6d, 0x46, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x70, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x73, 0x12, 0x1f, 0x0a, + 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x70, 0x0a, 0x11, 0x50, + 0x69, 0x69, 0x44, 0x65, 0x6e, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, + 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, + 0xba, 0x48, 0x17, 0x72, 0x15, 0x32, 0x13, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x2d, + 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x31, 0x30, 0x30, 0x7d, 0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x2b, 0x0a, 0x0a, 0x64, 0x65, 0x6e, 0x79, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x42, 0x0c, 0xba, 0x48, 0x09, 0x92, 0x01, 0x06, 0x22, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x09, 0x64, 0x65, 0x6e, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0xad, 0x05, + 0x0a, 0x0d, 0x50, 0x69, 0x69, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x12, + 0x40, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x50, 0x69, 0x69, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x52, + 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x50, 0x69, 0x69, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x2e, + 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, + 0x12, 0x37, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, + 0x69, 0x69, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x73, + 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x37, 0x0a, 0x04, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x69, 0x69, 0x41, 0x6e, 0x6f, 0x6e, 0x79, + 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x48, 0x00, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x1a, 0x2e, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x1a, 0x08, 0x0a, 0x06, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x1a, 0xa7, 0x01, 0x0a, + 0x04, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x73, 0x6b, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x68, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6d, + 0x61, 0x73, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x72, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x0d, 0x63, 0x68, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x73, 0x54, 0x6f, 0x4d, + 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x65, + 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, + 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x69, + 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x68, 0x61, 0x72, + 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x72, + 0x6f, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x1a, 0xba, 0x01, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x43, 0x0a, 0x04, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x69, + 0x69, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x48, 0x61, 0x73, 0x68, + 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x61, 0x6c, 0x67, + 0x6f, 0x88, 0x01, 0x01, 0x22, 0x64, 0x0a, 0x08, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x19, 0x0a, 0x15, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x48, + 0x41, 0x53, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x44, 0x35, 0x10, 0x01, 0x12, 0x14, + 0x0a, 0x10, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x48, 0x41, 0x32, + 0x35, 0x36, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, + 0x6c, 0x67, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x64, 0x0a, + 0x0d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x44, + 0x0a, 0x0a, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x87, 0x03, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, + 0x6d, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, + 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x44, 0x0a, + 0x0a, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x20, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x14, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x03, 0x52, 0x12, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x45, + 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x0e, 0x0a, + 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x22, 0x47, 0x0a, + 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6c, 0x75, 0x68, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x4c, 0x75, 0x68, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x5f, 0x6c, 0x75, 0x68, 0x6e, 0x22, 0x0e, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x43, 0x69, 0x74, 0x79, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x57, 0x0a, 0x17, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x31, 0x36, 0x34, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, + 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, + 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, + 0x61, 0x78, 0x22, 0x13, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x69, + 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x0a, 0x0e, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, + 0x53, 0x69, 0x67, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, + 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x03, 0x6d, + 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6c, 0x6c, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x44, 0x0a, 0x0e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0a, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, + 0x69, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x62, + 0x62, 0x72, 0x65, 0x76, 0x69, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x69, 0x61, 0x74, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x8c, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x53, 0x69, 0x67, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, + 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, + 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, + 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x4c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x48, 0x61, 0x73, 0x68, 0x22, + 0x0d, 0x0a, 0x0b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x53, 0x4e, 0x22, 0x59, + 0x0a, 0x0d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x31, 0x0a, 0x12, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, + 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x59, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x03, + 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x22, 0x4e, 0x0a, + 0x0e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, + 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x03, + 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x22, 0x17, 0x0a, + 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x50, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x75, + 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x79, + 0x70, 0x68, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x79, 0x70, 0x68, 0x65, 0x6e, 0x73, 0x88, 0x01, 0x01, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x79, 0x70, + 0x68, 0x65, 0x6e, 0x73, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x5a, 0x69, 0x70, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x5c, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x31, 0x36, 0x34, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x56, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, + 0x72, 0x6d, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x5d, 0x0a, - 0x19, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc2, 0x01, 0x0a, - 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x01, + 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x36, 0x34, 0x12, 0x3b, 0x0a, 0x17, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x15, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x48, 0x00, 0x52, 0x15, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, - 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, - 0x15, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, 0x61, + 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x48, 0x01, 0x52, 0x15, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x6d, 0x61, 0x78, 0x22, 0x55, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, + 0x6d, 0x46, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x5d, 0x0a, 0x19, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc2, 0x01, 0x0a, 0x0e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x3b, 0x0a, + 0x17, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, + 0x52, 0x15, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x61, - 0x78, 0x22, 0x55, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x4c, 0x61, - 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x58, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, - 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x53, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x0d, 0x0a, 0x0b, 0x50, 0x61, 0x73, 0x73, 0x74, - 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x22, 0x06, 0x0a, 0x04, 0x4e, 0x75, 0x6c, 0x6c, 0x22, 0x29, - 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x4a, 0x61, 0x76, 0x61, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x38, 0x0a, 0x1c, 0x55, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, - 0x6d, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, - 0x02, 0x69, 0x64, 0x22, 0x5f, 0x0a, 0x21, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x4a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x22, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x4a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x22, 0x49, 0x0a, 0x13, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x65, - 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x63, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x69, 0x0a, 0x1a, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x53, 0x63, 0x72, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x52, 0x65, 0x67, 0x65, 0x78, 0x88, 0x01, 0x01, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x22, 0x28, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x4a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x22, 0x6d, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x67, 0x65, 0x78, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x2e, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, - 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x75, 0x73, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x52, 0x65, 0x67, 0x65, 0x78, 0x22, - 0x35, 0x0a, 0x1d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x67, 0x65, 0x78, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x22, 0x5b, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x31, 0x0a, 0x12, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x49, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x6f, 0x72, 0x6d, 0x50, 0x69, 0x69, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, - 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3d, - 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x69, - 0x69, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x16, 0x0a, - 0x14, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, - 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x63, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x69, 0x70, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x48, 0x00, 0x52, 0x06, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2a, 0xe0, 0x10, 0x0a, 0x11, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, - 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, - 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x54, - 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, - 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, - 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, - 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, - 0x4d, 0x5f, 0x4a, 0x41, 0x56, 0x41, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x10, 0x03, 0x12, 0x25, - 0x0a, 0x21, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, - 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4d, - 0x41, 0x49, 0x4c, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, - 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x05, 0x12, 0x24, 0x0a, - 0x20, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, 0x4f, - 0x4c, 0x10, 0x06, 0x12, 0x2b, 0x0a, 0x27, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, - 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, - 0x54, 0x45, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x07, - 0x12, 0x24, 0x0a, 0x20, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, - 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, - 0x43, 0x49, 0x54, 0x59, 0x10, 0x08, 0x12, 0x31, 0x0a, 0x2d, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, + 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x15, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x6d, 0x69, 0x6e, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x22, + 0x55, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x4c, 0x61, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x58, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, + 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x53, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x0d, 0x0a, 0x0b, 0x50, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, + 0x6f, 0x75, 0x67, 0x68, 0x22, 0x06, 0x0a, 0x04, 0x4e, 0x75, 0x6c, 0x6c, 0x22, 0x29, 0x0a, 0x13, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x4a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x38, 0x0a, 0x1c, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x02, 0x69, + 0x64, 0x22, 0x5f, 0x0a, 0x21, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x4a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x22, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x4a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x22, 0x49, + 0x0a, 0x13, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x69, 0x0a, 0x1a, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x53, + 0x63, 0x72, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x64, 0x52, 0x65, 0x67, 0x65, 0x78, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x5f, 0x72, + 0x65, 0x67, 0x65, 0x78, 0x22, 0x28, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x4a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x6d, + 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x67, 0x65, 0x78, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, + 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x5f, 0x72, + 0x65, 0x67, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x52, 0x65, 0x67, 0x65, 0x78, 0x22, 0x35, 0x0a, + 0x1d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, + 0x65, 0x78, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x22, 0x5b, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x31, 0x0a, 0x12, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, + 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x49, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, + 0x6d, 0x50, 0x69, 0x69, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, + 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x1f, + 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x69, 0x69, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x63, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, + 0x00, 0x52, 0x06, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2a, 0xe0, 0x10, 0x0a, 0x11, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, + 0x0a, 0x1e, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, + 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x54, 0x48, 0x52, + 0x4f, 0x55, 0x47, 0x48, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, - 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x31, 0x36, 0x34, 0x5f, 0x50, 0x48, 0x4f, 0x4e, 0x45, - 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x09, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, - 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, - 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4e, - 0x41, 0x4d, 0x45, 0x10, 0x0a, 0x12, 0x27, 0x0a, 0x23, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, - 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, - 0x52, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x36, 0x34, 0x10, 0x0b, 0x12, 0x2c, - 0x0a, 0x28, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, - 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x55, - 0x4c, 0x4c, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x0c, 0x12, 0x29, 0x0a, 0x25, + 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x02, 0x12, + 0x2b, 0x0a, 0x27, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, + 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, + 0x4a, 0x41, 0x56, 0x41, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, - 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, - 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x0d, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x52, 0x41, 0x4e, 0x53, - 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, - 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x0e, 0x12, - 0x32, 0x0a, 0x2e, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, - 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, - 0x4e, 0x54, 0x36, 0x34, 0x5f, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, - 0x52, 0x10, 0x0f, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, - 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, - 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x10, 0x12, 0x2c, 0x0a, 0x28, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, - 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x11, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, - 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, - 0x45, 0x10, 0x12, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, - 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, - 0x54, 0x45, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x48, 0x41, 0x53, 0x48, 0x10, 0x13, 0x12, - 0x23, 0x0a, 0x1f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, - 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x53, - 0x53, 0x4e, 0x10, 0x14, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, - 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, - 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x15, 0x12, 0x2e, 0x0a, 0x2a, 0x54, + 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4d, 0x41, 0x49, + 0x4c, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, + 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, + 0x4f, 0x52, 0x4d, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x05, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x45, - 0x54, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x16, 0x12, 0x33, 0x0a, 0x2f, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, - 0x47, 0x5f, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x17, - 0x12, 0x26, 0x0a, 0x22, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, - 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, - 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x18, 0x12, 0x2d, 0x0a, 0x29, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, - 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x53, - 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x19, 0x12, 0x2d, 0x0a, 0x29, 0x54, 0x52, 0x41, 0x4e, 0x53, - 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, - 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x58, 0x54, 0x49, 0x4d, 0x45, 0x53, - 0x54, 0x41, 0x4d, 0x50, 0x10, 0x1a, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, - 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, - 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x1b, - 0x12, 0x2c, 0x0a, 0x28, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, - 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, - 0x55, 0x54, 0x43, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x1c, 0x12, 0x24, + 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, + 0x06, 0x12, 0x2b, 0x0a, 0x27, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, + 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, + 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, - 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x55, - 0x49, 0x44, 0x10, 0x1d, 0x12, 0x27, 0x0a, 0x23, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x49, + 0x54, 0x59, 0x10, 0x08, 0x12, 0x31, 0x0a, 0x2d, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, - 0x41, 0x54, 0x45, 0x5f, 0x5a, 0x49, 0x50, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x1e, 0x12, 0x32, 0x0a, + 0x41, 0x54, 0x45, 0x5f, 0x45, 0x31, 0x36, 0x34, 0x5f, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x4e, + 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x09, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, + 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, + 0x45, 0x10, 0x0a, 0x12, 0x27, 0x0a, 0x23, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, + 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, + 0x54, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x36, 0x34, 0x10, 0x0b, 0x12, 0x2c, 0x0a, 0x28, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, + 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x0c, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, + 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4e, + 0x41, 0x4d, 0x45, 0x10, 0x0d, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, + 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, + 0x52, 0x41, 0x54, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x0e, 0x12, 0x32, 0x0a, 0x2e, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x45, 0x31, + 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x5f, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, - 0x1f, 0x12, 0x2b, 0x0a, 0x27, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, - 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, - 0x4d, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x20, 0x12, 0x28, - 0x0a, 0x24, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, - 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x46, - 0x4c, 0x4f, 0x41, 0x54, 0x36, 0x34, 0x10, 0x21, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4e, 0x41, - 0x4d, 0x45, 0x10, 0x22, 0x12, 0x33, 0x0a, 0x2f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, - 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, - 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x5f, 0x50, 0x48, 0x4f, 0x4e, 0x45, - 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x23, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x52, 0x41, + 0x0f, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, + 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, + 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x10, 0x12, 0x2c, 0x0a, 0x28, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, + 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x49, + 0x4e, 0x54, 0x36, 0x34, 0x10, 0x11, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, + 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, + 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, + 0x12, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, + 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, + 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x48, 0x41, 0x53, 0x48, 0x10, 0x13, 0x12, 0x23, 0x0a, + 0x1f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, + 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x53, 0x4e, + 0x10, 0x14, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, + 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x15, 0x12, 0x2e, 0x0a, 0x2a, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, - 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, - 0x24, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, - 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, - 0x4d, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x25, 0x12, 0x2d, 0x0a, - 0x29, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x48, - 0x4f, 0x4e, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x26, 0x12, 0x27, 0x0a, 0x23, - 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, - 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x53, 0x54, 0x52, - 0x49, 0x4e, 0x47, 0x10, 0x27, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, + 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x45, 0x54, 0x5f, + 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x16, 0x12, 0x33, 0x0a, 0x2f, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, + 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, + 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x17, 0x12, 0x26, + 0x0a, 0x22, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, + 0x52, 0x49, 0x4e, 0x47, 0x10, 0x18, 0x12, 0x2d, 0x0a, 0x29, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, + 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, + 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x53, 0x54, 0x52, + 0x49, 0x4e, 0x47, 0x10, 0x19, 0x12, 0x2d, 0x0a, 0x29, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, - 0x52, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x28, 0x12, 0x2b, 0x0a, 0x27, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, - 0x4f, 0x52, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x2a, 0x12, 0x33, 0x0a, 0x2f, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x41, 0x43, 0x54, - 0x45, 0x52, 0x5f, 0x53, 0x43, 0x52, 0x41, 0x4d, 0x42, 0x4c, 0x45, 0x10, 0x2b, 0x12, 0x23, 0x0a, - 0x1f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, - 0x10, 0x2c, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, + 0x52, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x58, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, + 0x4d, 0x50, 0x10, 0x1a, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, + 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, + 0x41, 0x54, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x1b, 0x12, 0x2c, + 0x0a, 0x28, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x54, + 0x43, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x1c, 0x12, 0x24, 0x0a, 0x20, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x55, 0x49, 0x44, + 0x10, 0x1d, 0x12, 0x27, 0x0a, 0x23, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, - 0x45, 0x5f, 0x4a, 0x41, 0x56, 0x41, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x10, 0x2d, 0x12, 0x27, - 0x0a, 0x23, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, - 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, - 0x55, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x2e, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x45, 0x5f, 0x5a, 0x49, 0x50, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x1e, 0x12, 0x32, 0x0a, 0x2e, 0x54, + 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, + 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x45, 0x31, 0x36, 0x34, + 0x5f, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x1f, 0x12, + 0x2b, 0x0a, 0x27, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, + 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, + 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x20, 0x12, 0x28, 0x0a, 0x24, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x46, 0x4c, 0x4f, + 0x41, 0x54, 0x36, 0x34, 0x10, 0x21, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, + 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4e, 0x41, 0x4d, 0x45, + 0x10, 0x22, 0x12, 0x33, 0x0a, 0x2f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, + 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, + 0x52, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x5f, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x4e, + 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x23, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x49, 0x49, 0x5f, 0x54, 0x45, 0x58, 0x54, - 0x10, 0x2f, 0x12, 0x2d, 0x0a, 0x29, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, - 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, - 0x45, 0x5f, 0x42, 0x55, 0x53, 0x49, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, - 0x30, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, - 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, - 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x31, 0x2a, 0xc4, 0x02, - 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, - 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, + 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x24, 0x12, + 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, + 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, + 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x25, 0x12, 0x2d, 0x0a, 0x29, 0x54, + 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, + 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x48, 0x4f, 0x4e, + 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x26, 0x12, 0x27, 0x0a, 0x23, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, + 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, + 0x47, 0x10, 0x27, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, + 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, + 0x54, 0x45, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x28, 0x12, 0x2b, 0x0a, 0x27, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, + 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, + 0x49, 0x43, 0x41, 0x4c, 0x10, 0x2a, 0x12, 0x33, 0x0a, 0x2f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, + 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x41, 0x43, 0x54, 0x45, 0x52, + 0x5f, 0x53, 0x43, 0x52, 0x41, 0x4d, 0x42, 0x4c, 0x45, 0x10, 0x2b, 0x12, 0x23, 0x0a, 0x1f, 0x54, + 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, + 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x2c, + 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, + 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, + 0x4a, 0x41, 0x56, 0x41, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x10, 0x2d, 0x12, 0x27, 0x0a, 0x23, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, + 0x54, 0x52, 0x59, 0x10, 0x2e, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, + 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x49, 0x49, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x2f, + 0x12, 0x2d, 0x0a, 0x29, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, + 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, + 0x42, 0x55, 0x53, 0x49, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x30, 0x12, + 0x2a, 0x0a, 0x26, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x53, + 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, + 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x31, 0x2a, 0xc4, 0x02, 0x0a, 0x13, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, + 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1f, - 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x44, 0x41, - 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x02, 0x12, - 0x21, 0x0a, 0x1d, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x44, - 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, - 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, - 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, - 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, - 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, - 0x55, 0x4c, 0x4c, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, - 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, - 0x4e, 0x59, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, - 0x4d, 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x49, - 0x4d, 0x45, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, - 0x4d, 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x55, - 0x49, 0x44, 0x10, 0x08, 0x2a, 0x74, 0x0a, 0x10, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x55, 0x50, 0x50, - 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, - 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x55, 0x50, - 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x10, 0x02, 0x2a, 0x7b, 0x0a, 0x11, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x23, 0x0a, 0x1f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4d, 0x41, 0x49, - 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, - 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x55, 0x49, 0x44, - 0x5f, 0x56, 0x34, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, - 0x45, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x55, 0x4c, - 0x4c, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x02, 0x2a, 0xc3, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, - 0x0a, 0x20, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, - 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x4a, - 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, - 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x55, - 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, - 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x53, - 0x53, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x10, 0x04, 0x2a, 0x8c, 0x03, - 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x47, 0x45, 0x4e, 0x45, 0x52, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x02, 0x12, 0x21, 0x0a, + 0x1d, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x03, + 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x52, 0x5f, + 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x36, + 0x34, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, + 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x55, 0x4c, + 0x4c, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, + 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x59, + 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, + 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, + 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x45, + 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x55, 0x49, 0x44, + 0x10, 0x08, 0x2a, 0x74, 0x0a, 0x10, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4a, + 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, + 0x54, 0x45, 0x44, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x55, + 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x55, 0x50, 0x50, 0x4f, + 0x52, 0x54, 0x45, 0x44, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, + 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x10, 0x02, 0x2a, 0x7b, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, + 0x1f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x45, + 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x55, 0x49, 0x44, 0x5f, 0x56, + 0x34, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, + 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x4e, + 0x41, 0x4d, 0x45, 0x10, 0x02, 0x2a, 0xc3, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x20, + 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x45, 0x4d, + 0x41, 0x49, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, + 0x54, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x45, + 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, + 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x45, 0x4d, + 0x41, 0x49, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x54, + 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x10, 0x04, 0x2a, 0x8c, 0x03, 0x0a, 0x15, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, + 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x26, 0x0a, 0x22, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, + 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x34, 0x5f, 0x50, + 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, - 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x34, - 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x47, 0x45, 0x4e, - 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x34, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, - 0x5f, 0x41, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, + 0x59, 0x50, 0x45, 0x5f, 0x56, 0x34, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x41, + 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, + 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, + 0x34, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x10, 0x03, 0x12, 0x29, 0x0a, + 0x25, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, + 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x34, 0x5f, 0x50, 0x52, 0x49, + 0x56, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x10, 0x04, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x45, 0x4e, 0x45, + 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x34, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4c, 0x4f, 0x43, + 0x41, 0x4c, 0x10, 0x05, 0x12, 0x29, 0x0a, 0x25, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x56, 0x34, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x10, 0x03, 0x12, - 0x29, 0x0a, 0x25, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, - 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x34, 0x5f, 0x50, - 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x10, 0x04, 0x12, 0x2a, 0x0a, 0x26, 0x47, 0x45, - 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, - 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x34, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x4c, - 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x05, 0x12, 0x29, 0x0a, 0x25, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, - 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x56, 0x34, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, - 0x06, 0x12, 0x28, 0x0a, 0x24, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, - 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x34, - 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x47, - 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, - 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x36, 0x10, 0x08, 0x32, 0xd1, 0x0b, 0x0a, - 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x73, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x2e, - 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x67, 0x6d, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x1c, 0x47, - 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, - 0x6d, 0x65, 0x72, 0x42, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x32, 0x2e, 0x6d, 0x67, + 0x5f, 0x56, 0x34, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0x06, 0x12, + 0x28, 0x0a, 0x24, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, + 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x34, 0x5f, 0x4c, + 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x47, 0x45, 0x4e, + 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x36, 0x10, 0x08, 0x32, 0xd1, 0x0b, 0x0a, 0x13, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, - 0x42, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x33, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, - 0x72, 0x6d, 0x65, 0x72, 0x42, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x83, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, - 0x72, 0x6d, 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, + 0x72, 0x42, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x32, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x42, 0x79, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x65, 0x72, 0x42, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x83, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8c, 0x01, 0x0a, - 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x33, - 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8c, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x1c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x33, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, - 0x72, 0x6d, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x83, 0x01, 0x0a, 0x1a, 0x49, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x30, + 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x33, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x34, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x1c, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, + 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x89, 0x01, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x65, 0x72, 0x12, 0x32, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, + 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x83, 0x01, + 0x0a, 0x1a, 0x49, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x30, 0x2e, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x31, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x49, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x83, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x30, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x83, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x4a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x30, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4a, + 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x4a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x15, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x65, 0x78, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x67, 0x65, 0x78, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x67, 0x65, 0x78, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x7d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, - 0x6d, 0x50, 0x69, 0x69, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x6d, - 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x69, 0x69, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x67, - 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x69, 0x69, 0x45, 0x6e, 0x74, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, - 0x42, 0xcc, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, - 0x6d, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x50, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x75, 0x73, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x6f, 0x73, 0x79, 0x6e, 0x63, 0x2f, 0x62, 0x61, 0x63, 0x6b, - 0x65, 0x6e, 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x73, 0x2f, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, - 0x6d, 0x67, 0x6d, 0x74, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x4d, - 0x58, 0x58, 0xaa, 0x02, 0x0d, 0x4d, 0x67, 0x6d, 0x74, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0xca, 0x02, 0x0d, 0x4d, 0x67, 0x6d, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0xe2, 0x02, 0x19, 0x4d, 0x67, 0x6d, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x0e, 0x4d, 0x67, 0x6d, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x15, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x65, 0x78, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x67, 0x65, 0x78, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x65, + 0x78, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x7d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x50, + 0x69, 0x69, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x69, 0x69, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x69, 0x69, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x42, 0xcc, + 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x42, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x65, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x50, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x75, 0x73, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2f, 0x6e, 0x65, 0x6f, 0x73, 0x79, 0x6e, 0x63, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, + 0x64, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, + 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x67, + 0x6d, 0x74, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x4d, 0x58, 0x58, + 0xaa, 0x02, 0x0d, 0x4d, 0x67, 0x6d, 0x74, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0xca, 0x02, 0x0d, 0x4d, 0x67, 0x6d, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0xe2, 0x02, 0x19, 0x4d, 0x67, 0x6d, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, + 0x67, 0x6d, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -6319,6 +6333,7 @@ func file_mgmt_v1alpha1_transformer_proto_init() { (*TransformerConfig_GenerateBusinessNameConfig)(nil), (*TransformerConfig_GenerateIpAddressConfig)(nil), } + file_mgmt_v1alpha1_transformer_proto_msgTypes[19].OneofWrappers = []any{} file_mgmt_v1alpha1_transformer_proto_msgTypes[21].OneofWrappers = []any{ (*PiiAnonymizer_Replace_)(nil), (*PiiAnonymizer_Redact_)(nil), diff --git a/backend/protos/mgmt/v1alpha1/transformer.proto b/backend/protos/mgmt/v1alpha1/transformer.proto index 798134ec5d..440ac8d487 100644 --- a/backend/protos/mgmt/v1alpha1/transformer.proto +++ b/backend/protos/mgmt/v1alpha1/transformer.proto @@ -248,6 +248,11 @@ message TransformPiiText { // Exact match of PII phrases identified by the analysis engine. repeated string allowed_phrases = 5; + + // Two characters for the desired language in ISO_639-1 format. + // If not provided, will use a default language if specified on the server. + // Depending on the server configuration, may attempt to autodetect from input. + optional string language = 6; } message PiiDenyRecognizer { diff --git a/docs/openapi/mgmt/v1alpha1/anonymization.openapi.yaml b/docs/openapi/mgmt/v1alpha1/anonymization.openapi.yaml index eac8ce8058..ba954691b7 100644 --- a/docs/openapi/mgmt/v1alpha1/anonymization.openapi.yaml +++ b/docs/openapi/mgmt/v1alpha1/anonymization.openapi.yaml @@ -1183,6 +1183,21 @@ components: additionalProperties: false mgmt.v1alpha1.TransformPiiText: type: object + allOf: + - anyOf: + - required: + - language + - not: + anyOf: + - required: + - language + anyOf: + - required: + - language + - not: + anyOf: + - required: + - language properties: scoreThreshold: type: number @@ -1215,6 +1230,13 @@ components: type: string title: allowed_phrases description: Exact match of PII phrases identified by the analysis engine. + language: + type: string + title: language + description: |- + Two characters for the desired language in ISO_639-1 format. + If not provided, will use a default language if specified on the server. + Depending on the server configuration, may attempt to autodetect from input. title: TransformPiiText additionalProperties: false description: NeosyncCloud/Enterprise only transformer for anonymizing PII Text diff --git a/docs/openapi/mgmt/v1alpha1/job.openapi.yaml b/docs/openapi/mgmt/v1alpha1/job.openapi.yaml index ca6563fcf2..553ca43be4 100644 --- a/docs/openapi/mgmt/v1alpha1/job.openapi.yaml +++ b/docs/openapi/mgmt/v1alpha1/job.openapi.yaml @@ -5056,6 +5056,21 @@ components: additionalProperties: false mgmt.v1alpha1.TransformPiiText: type: object + allOf: + - anyOf: + - required: + - language + - not: + anyOf: + - required: + - language + anyOf: + - required: + - language + - not: + anyOf: + - required: + - language properties: scoreThreshold: type: number @@ -5088,6 +5103,13 @@ components: type: string title: allowed_phrases description: Exact match of PII phrases identified by the analysis engine. + language: + type: string + title: language + description: |- + Two characters for the desired language in ISO_639-1 format. + If not provided, will use a default language if specified on the server. + Depending on the server configuration, may attempt to autodetect from input. title: TransformPiiText additionalProperties: false description: NeosyncCloud/Enterprise only transformer for anonymizing PII Text diff --git a/docs/openapi/mgmt/v1alpha1/transformer.openapi.yaml b/docs/openapi/mgmt/v1alpha1/transformer.openapi.yaml index 6b39ede718..1f8c5f28a8 100644 --- a/docs/openapi/mgmt/v1alpha1/transformer.openapi.yaml +++ b/docs/openapi/mgmt/v1alpha1/transformer.openapi.yaml @@ -1703,6 +1703,21 @@ components: additionalProperties: false mgmt.v1alpha1.TransformPiiText: type: object + allOf: + - anyOf: + - required: + - language + - not: + anyOf: + - required: + - language + anyOf: + - required: + - language + - not: + anyOf: + - required: + - language properties: scoreThreshold: type: number @@ -1735,6 +1750,13 @@ components: type: string title: allowed_phrases description: Exact match of PII phrases identified by the analysis engine. + language: + type: string + title: language + description: |- + Two characters for the desired language in ISO_639-1 format. + If not provided, will use a default language if specified on the server. + Depending on the server configuration, may attempt to autodetect from input. title: TransformPiiText additionalProperties: false description: NeosyncCloud/Enterprise only transformer for anonymizing PII Text diff --git a/docs/openapi/neosync.mgmt.v1alpha1.yaml b/docs/openapi/neosync.mgmt.v1alpha1.yaml index d90d7fadba..462fbbd42f 100644 --- a/docs/openapi/neosync.mgmt.v1alpha1.yaml +++ b/docs/openapi/neosync.mgmt.v1alpha1.yaml @@ -5155,6 +5155,21 @@ components: additionalProperties: false mgmt.v1alpha1.TransformPiiText: type: object + allOf: + - anyOf: + - required: + - language + - not: + anyOf: + - required: + - language + anyOf: + - required: + - language + - not: + anyOf: + - required: + - language properties: scoreThreshold: type: number @@ -5190,6 +5205,13 @@ components: type: string title: allowed_phrases description: Exact match of PII phrases identified by the analysis engine. + language: + type: string + title: language + description: |- + Two characters for the desired language in ISO_639-1 format. + If not provided, will use a default language if specified on the server. + Depending on the server configuration, may attempt to autodetect from input. title: TransformPiiText additionalProperties: false description: NeosyncCloud/Enterprise only transformer for anonymizing PII Text diff --git a/docs/protos/mgmt/v1alpha1/transformer.proto.mdx b/docs/protos/mgmt/v1alpha1/transformer.proto.mdx index 3ed81b7e9c..172aceda41 100644 --- a/docs/protos/mgmt/v1alpha1/transformer.proto.mdx +++ b/docs/protos/mgmt/v1alpha1/transformer.proto.mdx @@ -282,7 +282,7 @@ _**package** mgmt.v1alpha1_ ### `TransformPiiText` - + ### `TransformString` diff --git a/docs/protos/proto_docs.json b/docs/protos/proto_docs.json index 16bd04a165..bebf553cb4 100644 --- a/docs/protos/proto_docs.json +++ b/docs/protos/proto_docs.json @@ -2180,7 +2180,7 @@ "description": "NeosyncCloud/Enterprise only transformer for anonymizing PII Text", "hasExtensions": false, "hasFields": true, - "hasOneofs": false, + "hasOneofs": true, "extensions": [], "fields": [ { @@ -2242,6 +2242,18 @@ "isoneof": false, "oneofdecl": "", "defaultValue": "" + }, + { + "name": "language", + "description": "Two characters for the desired language in ISO_639-1 format.\nIf not provided, will use a default language if specified on the server.\nDepending on the server configuration, may attempt to autodetect from input.", + "label": "optional", + "type": "string", + "longType": "string", + "fullType": "string", + "ismap": false, + "isoneof": true, + "oneofdecl": "_language", + "defaultValue": "" } ] }, diff --git a/frontend/packages/sdk/src/client/mgmt/v1alpha1/transformer_pb.ts b/frontend/packages/sdk/src/client/mgmt/v1alpha1/transformer_pb.ts index 89d756776e..a793fb3b0a 100644 --- a/frontend/packages/sdk/src/client/mgmt/v1alpha1/transformer_pb.ts +++ b/frontend/packages/sdk/src/client/mgmt/v1alpha1/transformer_pb.ts @@ -1765,6 +1765,15 @@ export class TransformPiiText extends Message { */ allowedPhrases: string[] = []; + /** + * Two characters for the desired language in ISO_639-1 format. + * If not provided, will use a default language if specified on the server. + * Depending on the server configuration, may attempt to autodetect from input. + * + * @generated from field: optional string language = 6; + */ + language?: string; + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); @@ -1778,6 +1787,7 @@ export class TransformPiiText extends Message { { no: 3, name: "deny_recognizers", kind: "message", T: PiiDenyRecognizer, repeated: true }, { no: 4, name: "allowed_entities", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, { no: 5, name: "allowed_phrases", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 6, name: "language", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): TransformPiiText { diff --git a/python/src/neosync/mgmt/v1alpha1/transformer_pb2.py b/python/src/neosync/mgmt/v1alpha1/transformer_pb2.py index acbe91c394..85ead9ddbf 100644 --- a/python/src/neosync/mgmt/v1alpha1/transformer_pb2.py +++ b/python/src/neosync/mgmt/v1alpha1/transformer_pb2.py @@ -26,7 +26,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmgmt/v1alpha1/transformer.proto\x12\rmgmt.v1alpha1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x1e\n\x1cGetSystemTransformersRequest\"e\n\x1dGetSystemTransformersResponse\x12\x44\n\x0ctransformers\x18\x01 \x03(\x0b\x32 .mgmt.v1alpha1.SystemTransformerR\x0ctransformers\"_\n#GetSystemTransformerBySourceRequest\x12\x38\n\x06source\x18\x01 \x01(\x0e\x32 .mgmt.v1alpha1.TransformerSourceR\x06source\"j\n$GetSystemTransformerBySourceResponse\x12\x42\n\x0btransformer\x18\x01 \x01(\x0b\x32 .mgmt.v1alpha1.SystemTransformerR\x0btransformer\"L\n!GetUserDefinedTransformersRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\"o\n\"GetUserDefinedTransformersResponse\x12I\n\x0ctransformers\x18\x01 \x03(\x0b\x32%.mgmt.v1alpha1.UserDefinedTransformerR\x0ctransformers\"W\n$GetUserDefinedTransformerByIdRequest\x12/\n\x0etransformer_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\rtransformerId\"p\n%GetUserDefinedTransformerByIdResponse\x12G\n\x0btransformer\x18\x01 \x01(\x0b\x32%.mgmt.v1alpha1.UserDefinedTransformerR\x0btransformer\"\xbe\x02\n#CreateUserDefinedTransformerRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12-\n\x04name\x18\x02 \x01(\tB\x19\xbaH\x16r\x14\x32\x12^[a-z0-9-]{3,100}$R\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x12\n\x04type\x18\x04 \x01(\tR\x04type\x12\x38\n\x06source\x18\x05 \x01(\x0e\x32 .mgmt.v1alpha1.TransformerSourceR\x06source\x12O\n\x12transformer_config\x18\x06 \x01(\x0b\x32 .mgmt.v1alpha1.TransformerConfigR\x11transformerConfig\"o\n$CreateUserDefinedTransformerResponse\x12G\n\x0btransformer\x18\x01 \x01(\x0b\x32%.mgmt.v1alpha1.UserDefinedTransformerR\x0btransformer\"V\n#DeleteUserDefinedTransformerRequest\x12/\n\x0etransformer_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\rtransformerId\"&\n$DeleteUserDefinedTransformerResponse\"\xf8\x01\n#UpdateUserDefinedTransformerRequest\x12/\n\x0etransformer_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\rtransformerId\x12-\n\x04name\x18\x02 \x01(\tB\x19\xbaH\x16r\x14\x32\x12^[a-z0-9-]{3,100}$R\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12O\n\x12transformer_config\x18\x04 \x01(\x0b\x32 .mgmt.v1alpha1.TransformerConfigR\x11transformerConfig\"o\n$UpdateUserDefinedTransformerResponse\x12G\n\x0btransformer\x18\x01 \x01(\x0b\x32%.mgmt.v1alpha1.UserDefinedTransformerR\x0btransformer\"\x92\x01\n!IsTransformerNameAvailableRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\x44\n\x10transformer_name\x18\x02 \x01(\tB\x19\xbaH\x16r\x14\x32\x12^[a-z0-9-]{3,100}$R\x0ftransformerName\"G\n\"IsTransformerNameAvailableResponse\x12!\n\x0cis_available\x18\x01 \x01(\x08R\x0bisAvailable\"\xf5\x03\n\x16UserDefinedTransformer\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12?\n\tdata_type\x18\x05 \x01(\x0e\x32\".mgmt.v1alpha1.TransformerDataTypeR\x08\x64\x61taType\x12\x38\n\x06source\x18\x06 \x01(\x0e\x32 .mgmt.v1alpha1.TransformerSourceR\x06source\x12\x38\n\x06\x63onfig\x18\x07 \x01(\x0b\x32 .mgmt.v1alpha1.TransformerConfigR\x06\x63onfig\x12\x39\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x1d\n\naccount_id\x18\n \x01(\tR\taccountId\x12\x41\n\ndata_types\x18\x0b \x03(\x0e\x32\".mgmt.v1alpha1.TransformerDataTypeR\tdataTypes\"\x92\x03\n\x11SystemTransformer\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12?\n\tdata_type\x18\x03 \x01(\x0e\x32\".mgmt.v1alpha1.TransformerDataTypeR\x08\x64\x61taType\x12\x38\n\x06source\x18\x04 \x01(\x0e\x32 .mgmt.v1alpha1.TransformerSourceR\x06source\x12\x38\n\x06\x63onfig\x18\x05 \x01(\x0b\x32 .mgmt.v1alpha1.TransformerConfigR\x06\x63onfig\x12\x41\n\ndata_types\x18\x06 \x03(\x0e\x32\".mgmt.v1alpha1.TransformerDataTypeR\tdataTypes\x12O\n\x13supported_job_types\x18\x07 \x03(\x0e\x32\x1f.mgmt.v1alpha1.SupportedJobTypeR\x11supportedJobTypes\"\xfa\"\n\x11TransformerConfig\x12R\n\x15generate_email_config\x18\x01 \x01(\x0b\x32\x1c.mgmt.v1alpha1.GenerateEmailH\x00R\x13generateEmailConfig\x12U\n\x16transform_email_config\x18\x02 \x01(\x0b\x32\x1d.mgmt.v1alpha1.TransformEmailH\x00R\x14transformEmailConfig\x12O\n\x14generate_bool_config\x18\x03 \x01(\x0b\x32\x1b.mgmt.v1alpha1.GenerateBoolH\x00R\x12generateBoolConfig\x12\x62\n\x1bgenerate_card_number_config\x18\x04 \x01(\x0b\x32!.mgmt.v1alpha1.GenerateCardNumberH\x00R\x18generateCardNumberConfig\x12O\n\x14generate_city_config\x18\x05 \x01(\x0b\x32\x1b.mgmt.v1alpha1.GenerateCityH\x00R\x12generateCityConfig\x12r\n!generate_e164_phone_number_config\x18\x06 \x01(\x0b\x32&.mgmt.v1alpha1.GenerateE164PhoneNumberH\x00R\x1dgenerateE164PhoneNumberConfig\x12_\n\x1agenerate_first_name_config\x18\x07 \x01(\x0b\x32 .mgmt.v1alpha1.GenerateFirstNameH\x00R\x17generateFirstNameConfig\x12X\n\x17generate_float64_config\x18\x08 \x01(\x0b\x32\x1e.mgmt.v1alpha1.GenerateFloat64H\x00R\x15generateFloat64Config\x12\x65\n\x1cgenerate_full_address_config\x18\t \x01(\x0b\x32\".mgmt.v1alpha1.GenerateFullAddressH\x00R\x19generateFullAddressConfig\x12\\\n\x19generate_full_name_config\x18\n \x01(\x0b\x32\x1f.mgmt.v1alpha1.GenerateFullNameH\x00R\x16generateFullNameConfig\x12U\n\x16generate_gender_config\x18\x0b \x01(\x0b\x32\x1d.mgmt.v1alpha1.GenerateGenderH\x00R\x14generateGenderConfig\x12u\n\"generate_int64_phone_number_config\x18\x0c \x01(\x0b\x32\'.mgmt.v1alpha1.GenerateInt64PhoneNumberH\x00R\x1egenerateInt64PhoneNumberConfig\x12R\n\x15generate_int64_config\x18\r \x01(\x0b\x32\x1c.mgmt.v1alpha1.GenerateInt64H\x00R\x13generateInt64Config\x12\\\n\x19generate_last_name_config\x18\x0e \x01(\x0b\x32\x1f.mgmt.v1alpha1.GenerateLastNameH\x00R\x16generateLastNameConfig\x12\x61\n\x1agenerate_sha256hash_config\x18\x0f \x01(\x0b\x32!.mgmt.v1alpha1.GenerateSha256HashH\x00R\x18generateSha256hashConfig\x12L\n\x13generate_ssn_config\x18\x10 \x01(\x0b\x32\x1a.mgmt.v1alpha1.GenerateSSNH\x00R\x11generateSsnConfig\x12R\n\x15generate_state_config\x18\x11 \x01(\x0b\x32\x1c.mgmt.v1alpha1.GenerateStateH\x00R\x13generateStateConfig\x12k\n\x1egenerate_street_address_config\x18\x12 \x01(\x0b\x32$.mgmt.v1alpha1.GenerateStreetAddressH\x00R\x1bgenerateStreetAddressConfig\x12x\n#generate_string_phone_number_config\x18\x13 \x01(\x0b\x32(.mgmt.v1alpha1.GenerateStringPhoneNumberH\x00R\x1fgenerateStringPhoneNumberConfig\x12U\n\x16generate_string_config\x18\x14 \x01(\x0b\x32\x1d.mgmt.v1alpha1.GenerateStringH\x00R\x14generateStringConfig\x12j\n\x1dgenerate_unixtimestamp_config\x18\x15 \x01(\x0b\x32$.mgmt.v1alpha1.GenerateUnixTimestampH\x00R\x1bgenerateUnixtimestampConfig\x12[\n\x18generate_username_config\x18\x16 \x01(\x0b\x32\x1f.mgmt.v1alpha1.GenerateUsernameH\x00R\x16generateUsernameConfig\x12g\n\x1cgenerate_utctimestamp_config\x18\x17 \x01(\x0b\x32#.mgmt.v1alpha1.GenerateUtcTimestampH\x00R\x1agenerateUtctimestampConfig\x12O\n\x14generate_uuid_config\x18\x18 \x01(\x0b\x32\x1b.mgmt.v1alpha1.GenerateUuidH\x00R\x12generateUuidConfig\x12X\n\x17generate_zipcode_config\x18\x19 \x01(\x0b\x32\x1e.mgmt.v1alpha1.GenerateZipcodeH\x00R\x15generateZipcodeConfig\x12u\n\"transform_e164_phone_number_config\x18\x1a \x01(\x0b\x32\'.mgmt.v1alpha1.TransformE164PhoneNumberH\x00R\x1etransformE164PhoneNumberConfig\x12\x62\n\x1btransform_first_name_config\x18\x1b \x01(\x0b\x32!.mgmt.v1alpha1.TransformFirstNameH\x00R\x18transformFirstNameConfig\x12[\n\x18transform_float64_config\x18\x1c \x01(\x0b\x32\x1f.mgmt.v1alpha1.TransformFloat64H\x00R\x16transformFloat64Config\x12_\n\x1atransform_full_name_config\x18\x1d \x01(\x0b\x32 .mgmt.v1alpha1.TransformFullNameH\x00R\x17transformFullNameConfig\x12x\n#transform_int64_phone_number_config\x18\x1e \x01(\x0b\x32(.mgmt.v1alpha1.TransformInt64PhoneNumberH\x00R\x1ftransformInt64PhoneNumberConfig\x12U\n\x16transform_int64_config\x18\x1f \x01(\x0b\x32\x1d.mgmt.v1alpha1.TransformInt64H\x00R\x14transformInt64Config\x12_\n\x1atransform_last_name_config\x18 \x01(\x0b\x32 .mgmt.v1alpha1.TransformLastNameH\x00R\x17transformLastNameConfig\x12h\n\x1dtransform_phone_number_config\x18! \x01(\x0b\x32#.mgmt.v1alpha1.TransformPhoneNumberH\x00R\x1atransformPhoneNumberConfig\x12X\n\x17transform_string_config\x18\" \x01(\x0b\x32\x1e.mgmt.v1alpha1.TransformStringH\x00R\x15transformStringConfig\x12K\n\x12passthrough_config\x18# \x01(\x0b\x32\x1a.mgmt.v1alpha1.PassthroughH\x00R\x11passthroughConfig\x12\x35\n\nnullconfig\x18$ \x01(\x0b\x32\x13.mgmt.v1alpha1.NullH\x00R\nnullconfig\x12t\n\x1fuser_defined_transformer_config\x18% \x01(\x0b\x32+.mgmt.v1alpha1.UserDefinedTransformerConfigH\x00R\x1cuserDefinedTransformerConfig\x12X\n\x17generate_default_config\x18& \x01(\x0b\x32\x1e.mgmt.v1alpha1.GenerateDefaultH\x00R\x15generateDefaultConfig\x12\x64\n\x1btransform_javascript_config\x18\' \x01(\x0b\x32\".mgmt.v1alpha1.TransformJavascriptH\x00R\x19transformJavascriptConfig\x12\x64\n\x1bgenerate_categorical_config\x18( \x01(\x0b\x32\".mgmt.v1alpha1.GenerateCategoricalH\x00R\x19generateCategoricalConfig\x12z\n#transform_character_scramble_config\x18) \x01(\x0b\x32).mgmt.v1alpha1.TransformCharacterScrambleH\x00R transformCharacterScrambleConfig\x12\x61\n\x1agenerate_javascript_config\x18* \x01(\x0b\x32!.mgmt.v1alpha1.GenerateJavascriptH\x00R\x18generateJavascriptConfig\x12X\n\x17generate_country_config\x18+ \x01(\x0b\x32\x1e.mgmt.v1alpha1.GenerateCountryH\x00R\x15generateCountryConfig\x12\\\n\x19transform_pii_text_config\x18, \x01(\x0b\x32\x1f.mgmt.v1alpha1.TransformPiiTextH\x00R\x16transformPiiTextConfig\x12h\n\x1dgenerate_business_name_config\x18- \x01(\x0b\x32#.mgmt.v1alpha1.GenerateBusinessNameH\x00R\x1agenerateBusinessNameConfig\x12_\n\x1agenerate_ip_address_config\x18. \x01(\x0b\x32 .mgmt.v1alpha1.GenerateIpAddressH\x00R\x17generateIpAddressConfigB\x0f\n\x06\x63onfig\x12\x05\xbaH\x02\x08\x01\"\xc8\x02\n\x10TransformPiiText\x12\x38\n\x0fscore_threshold\x18\x01 \x01(\x02\x42\x0f\xbaH\x0c\n\n\x1d\x00\x00\x80?-\x00\x00\x00\x00R\x0escoreThreshold\x12K\n\x12\x64\x65\x66\x61ult_anonymizer\x18\x02 \x01(\x0b\x32\x1c.mgmt.v1alpha1.PiiAnonymizerR\x11\x64\x65\x66\x61ultAnonymizer\x12K\n\x10\x64\x65ny_recognizers\x18\x03 \x03(\x0b\x32 .mgmt.v1alpha1.PiiDenyRecognizerR\x0f\x64\x65nyRecognizers\x12\x37\n\x10\x61llowed_entities\x18\x04 \x03(\tB\x0c\xbaH\t\x92\x01\x06\"\x04r\x02\x10\x01R\x0f\x61llowedEntities\x12\'\n\x0f\x61llowed_phrases\x18\x05 \x03(\tR\x0e\x61llowedPhrases\"p\n\x11PiiDenyRecognizer\x12.\n\x04name\x18\x01 \x01(\tB\x1a\xbaH\x17r\x15\x32\x13^[a-z0-9-_]{1,100}$R\x04name\x12+\n\ndeny_words\x18\x02 \x03(\tB\x0c\xbaH\t\x92\x01\x06\"\x04r\x02\x10\x01R\tdenyWords\"\xad\x05\n\rPiiAnonymizer\x12@\n\x07replace\x18\x01 \x01(\x0b\x32$.mgmt.v1alpha1.PiiAnonymizer.ReplaceH\x00R\x07replace\x12=\n\x06redact\x18\x02 \x01(\x0b\x32#.mgmt.v1alpha1.PiiAnonymizer.RedactH\x00R\x06redact\x12\x37\n\x04mask\x18\x03 \x01(\x0b\x32!.mgmt.v1alpha1.PiiAnonymizer.MaskH\x00R\x04mask\x12\x37\n\x04hash\x18\x04 \x01(\x0b\x32!.mgmt.v1alpha1.PiiAnonymizer.HashH\x00R\x04hash\x1a.\n\x07Replace\x12\x19\n\x05value\x18\x01 \x01(\tH\x00R\x05value\x88\x01\x01\x42\x08\n\x06_value\x1a\x08\n\x06Redact\x1a\xa7\x01\n\x04Mask\x12&\n\x0cmasking_char\x18\x01 \x01(\tH\x00R\x0bmaskingChar\x88\x01\x01\x12\'\n\rchars_to_mask\x18\x02 \x01(\x05H\x01R\x0b\x63harsToMask\x88\x01\x01\x12\x1e\n\x08\x66rom_end\x18\x03 \x01(\x08H\x02R\x07\x66romEnd\x88\x01\x01\x42\x0f\n\r_masking_charB\x10\n\x0e_chars_to_maskB\x0b\n\t_from_end\x1a\xba\x01\n\x04Hash\x12\x43\n\x04\x61lgo\x18\x01 \x01(\x0e\x32*.mgmt.v1alpha1.PiiAnonymizer.Hash.HashTypeH\x00R\x04\x61lgo\x88\x01\x01\"d\n\x08HashType\x12\x19\n\x15HASH_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rHASH_TYPE_MD5\x10\x01\x12\x14\n\x10HASH_TYPE_SHA256\x10\x02\x12\x14\n\x10HASH_TYPE_SHA512\x10\x03\x42\x07\n\x05_algoB\x08\n\x06\x63onfig\"d\n\rGenerateEmail\x12\x44\n\nemail_type\x18\x01 \x01(\x0e\x32 .mgmt.v1alpha1.GenerateEmailTypeH\x00R\temailType\x88\x01\x01\x42\r\n\x0b_email_type\"\x87\x03\n\x0eTransformEmail\x12,\n\x0fpreserve_domain\x18\x01 \x01(\x08H\x00R\x0epreserveDomain\x88\x01\x01\x12,\n\x0fpreserve_length\x18\x02 \x01(\x08H\x01R\x0epreserveLength\x88\x01\x01\x12)\n\x10\x65xcluded_domains\x18\x03 \x03(\tR\x0f\x65xcludedDomains\x12\x44\n\nemail_type\x18\x04 \x01(\x0e\x32 .mgmt.v1alpha1.GenerateEmailTypeH\x02R\temailType\x88\x01\x01\x12X\n\x14invalid_email_action\x18\x05 \x01(\x0e\x32!.mgmt.v1alpha1.InvalidEmailActionH\x03R\x12invalidEmailAction\x88\x01\x01\x42\x12\n\x10_preserve_domainB\x12\n\x10_preserve_lengthB\r\n\x0b_email_typeB\x17\n\x15_invalid_email_action\"\x0e\n\x0cGenerateBool\"G\n\x12GenerateCardNumber\x12\"\n\nvalid_luhn\x18\x01 \x01(\x08H\x00R\tvalidLuhn\x88\x01\x01\x42\r\n\x0b_valid_luhn\"\x0e\n\x0cGenerateCity\"\x11\n\x0fGenerateDefault\"W\n\x17GenerateE164PhoneNumber\x12\x15\n\x03min\x18\x01 \x01(\x03H\x00R\x03min\x88\x01\x01\x12\x15\n\x03max\x18\x02 \x01(\x03H\x01R\x03max\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x13\n\x11GenerateFirstName\"\xbf\x01\n\x0fGenerateFloat64\x12*\n\x0erandomize_sign\x18\x01 \x01(\x08H\x00R\rrandomizeSign\x88\x01\x01\x12\x15\n\x03min\x18\x02 \x01(\x01H\x01R\x03min\x88\x01\x01\x12\x15\n\x03max\x18\x03 \x01(\x01H\x02R\x03max\x88\x01\x01\x12!\n\tprecision\x18\x04 \x01(\x03H\x03R\tprecision\x88\x01\x01\x42\x11\n\x0f_randomize_signB\x06\n\x04_minB\x06\n\x04_maxB\x0c\n\n_precision\"\x15\n\x13GenerateFullAddress\"\x12\n\x10GenerateFullName\"D\n\x0eGenerateGender\x12#\n\nabbreviate\x18\x01 \x01(\x08H\x00R\nabbreviate\x88\x01\x01\x42\r\n\x0b_abbreviate\"\x1a\n\x18GenerateInt64PhoneNumber\"\x8c\x01\n\rGenerateInt64\x12*\n\x0erandomize_sign\x18\x01 \x01(\x08H\x00R\rrandomizeSign\x88\x01\x01\x12\x15\n\x03min\x18\x02 \x01(\x03H\x01R\x03min\x88\x01\x01\x12\x15\n\x03max\x18\x03 \x01(\x03H\x02R\x03max\x88\x01\x01\x42\x11\n\x0f_randomize_signB\x06\n\x04_minB\x06\n\x04_max\"\x12\n\x10GenerateLastName\"\x14\n\x12GenerateSha256Hash\"\r\n\x0bGenerateSSN\"Y\n\rGenerateState\x12\x31\n\x12generate_full_name\x18\x01 \x01(\x08H\x00R\x10generateFullName\x88\x01\x01\x42\x15\n\x13_generate_full_name\"\x17\n\x15GenerateStreetAddress\"Y\n\x19GenerateStringPhoneNumber\x12\x15\n\x03min\x18\x02 \x01(\x03H\x00R\x03min\x88\x01\x01\x12\x15\n\x03max\x18\x03 \x01(\x03H\x01R\x03max\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"N\n\x0eGenerateString\x12\x15\n\x03min\x18\x01 \x01(\x03H\x00R\x03min\x88\x01\x01\x12\x15\n\x03max\x18\x02 \x01(\x03H\x01R\x03max\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x17\n\x15GenerateUnixTimestamp\"\x12\n\x10GenerateUsername\"\x16\n\x14GenerateUtcTimestamp\"P\n\x0cGenerateUuid\x12,\n\x0finclude_hyphens\x18\x01 \x01(\x08H\x00R\x0eincludeHyphens\x88\x01\x01\x42\x12\n\x10_include_hyphens\"\x11\n\x0fGenerateZipcode\"\\\n\x18TransformE164PhoneNumber\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"V\n\x12TransformFirstName\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"\xc4\x01\n\x10TransformFloat64\x12;\n\x17randomization_range_min\x18\x01 \x01(\x01H\x00R\x15randomizationRangeMin\x88\x01\x01\x12;\n\x17randomization_range_max\x18\x02 \x01(\x01H\x01R\x15randomizationRangeMax\x88\x01\x01\x42\x1a\n\x18_randomization_range_minB\x1a\n\x18_randomization_range_max\"U\n\x11TransformFullName\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"]\n\x19TransformInt64PhoneNumber\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"\xc2\x01\n\x0eTransformInt64\x12;\n\x17randomization_range_min\x18\x01 \x01(\x03H\x00R\x15randomizationRangeMin\x88\x01\x01\x12;\n\x17randomization_range_max\x18\x02 \x01(\x03H\x01R\x15randomizationRangeMax\x88\x01\x01\x42\x1a\n\x18_randomization_range_minB\x1a\n\x18_randomization_range_max\"U\n\x11TransformLastName\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"X\n\x14TransformPhoneNumber\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"S\n\x0fTransformString\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"\r\n\x0bPassthrough\"\x06\n\x04Null\")\n\x13TransformJavascript\x12\x12\n\x04\x63ode\x18\x01 \x01(\tR\x04\x63ode\"8\n\x1cUserDefinedTransformerConfig\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"_\n!ValidateUserJavascriptCodeRequest\x12\x1d\n\naccount_id\x18\x01 \x01(\tR\taccountId\x12\x1b\n\x04\x63ode\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04\x63ode\":\n\"ValidateUserJavascriptCodeResponse\x12\x14\n\x05valid\x18\x01 \x01(\x08R\x05valid\"I\n\x13GenerateCategorical\x12#\n\ncategories\x18\x01 \x01(\tH\x00R\ncategories\x88\x01\x01\x42\r\n\x0b_categories\"i\n\x1aTransformCharacterScramble\x12\x33\n\x13user_provided_regex\x18\x01 \x01(\tH\x00R\x11userProvidedRegex\x88\x01\x01\x42\x16\n\x14_user_provided_regex\"(\n\x12GenerateJavascript\x12\x12\n\x04\x63ode\x18\x01 \x01(\tR\x04\x63ode\"m\n\x1cValidateUserRegexCodeRequest\x12\x1d\n\naccount_id\x18\x01 \x01(\tR\taccountId\x12.\n\x13user_provided_regex\x18\x02 \x01(\tR\x11userProvidedRegex\"5\n\x1dValidateUserRegexCodeResponse\x12\x14\n\x05valid\x18\x01 \x01(\x08R\x05valid\"[\n\x0fGenerateCountry\x12\x31\n\x12generate_full_name\x18\x01 \x01(\x08H\x00R\x10generateFullName\x88\x01\x01\x42\x15\n\x13_generate_full_name\"I\n\x1eGetTransformPiiEntitiesRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\"=\n\x1fGetTransformPiiEntitiesResponse\x12\x1a\n\x08\x65ntities\x18\x01 \x03(\tR\x08\x65ntities\"\x16\n\x14GenerateBusinessName\"c\n\x11GenerateIpAddress\x12\x42\n\x07ip_type\x18\x01 \x01(\x0e\x32$.mgmt.v1alpha1.GenerateIpAddressTypeH\x00R\x06ipType\x88\x01\x01\x42\n\n\x08_ip_type*\xe0\x10\n\x11TransformerSource\x12\"\n\x1eTRANSFORMER_SOURCE_UNSPECIFIED\x10\x00\x12\"\n\x1eTRANSFORMER_SOURCE_PASSTHROUGH\x10\x01\x12\'\n#TRANSFORMER_SOURCE_GENERATE_DEFAULT\x10\x02\x12+\n\'TRANSFORMER_SOURCE_TRANSFORM_JAVASCRIPT\x10\x03\x12%\n!TRANSFORMER_SOURCE_GENERATE_EMAIL\x10\x04\x12&\n\"TRANSFORMER_SOURCE_TRANSFORM_EMAIL\x10\x05\x12$\n TRANSFORMER_SOURCE_GENERATE_BOOL\x10\x06\x12+\n\'TRANSFORMER_SOURCE_GENERATE_CARD_NUMBER\x10\x07\x12$\n TRANSFORMER_SOURCE_GENERATE_CITY\x10\x08\x12\x31\n-TRANSFORMER_SOURCE_GENERATE_E164_PHONE_NUMBER\x10\t\x12*\n&TRANSFORMER_SOURCE_GENERATE_FIRST_NAME\x10\n\x12\'\n#TRANSFORMER_SOURCE_GENERATE_FLOAT64\x10\x0b\x12,\n(TRANSFORMER_SOURCE_GENERATE_FULL_ADDRESS\x10\x0c\x12)\n%TRANSFORMER_SOURCE_GENERATE_FULL_NAME\x10\r\x12&\n\"TRANSFORMER_SOURCE_GENERATE_GENDER\x10\x0e\x12\x32\n.TRANSFORMER_SOURCE_GENERATE_INT64_PHONE_NUMBER\x10\x0f\x12%\n!TRANSFORMER_SOURCE_GENERATE_INT64\x10\x10\x12,\n(TRANSFORMER_SOURCE_GENERATE_RANDOM_INT64\x10\x11\x12)\n%TRANSFORMER_SOURCE_GENERATE_LAST_NAME\x10\x12\x12*\n&TRANSFORMER_SOURCE_GENERATE_SHA256HASH\x10\x13\x12#\n\x1fTRANSFORMER_SOURCE_GENERATE_SSN\x10\x14\x12%\n!TRANSFORMER_SOURCE_GENERATE_STATE\x10\x15\x12.\n*TRANSFORMER_SOURCE_GENERATE_STREET_ADDRESS\x10\x16\x12\x33\n/TRANSFORMER_SOURCE_GENERATE_STRING_PHONE_NUMBER\x10\x17\x12&\n\"TRANSFORMER_SOURCE_GENERATE_STRING\x10\x18\x12-\n)TRANSFORMER_SOURCE_GENERATE_RANDOM_STRING\x10\x19\x12-\n)TRANSFORMER_SOURCE_GENERATE_UNIXTIMESTAMP\x10\x1a\x12(\n$TRANSFORMER_SOURCE_GENERATE_USERNAME\x10\x1b\x12,\n(TRANSFORMER_SOURCE_GENERATE_UTCTIMESTAMP\x10\x1c\x12$\n TRANSFORMER_SOURCE_GENERATE_UUID\x10\x1d\x12\'\n#TRANSFORMER_SOURCE_GENERATE_ZIPCODE\x10\x1e\x12\x32\n.TRANSFORMER_SOURCE_TRANSFORM_E164_PHONE_NUMBER\x10\x1f\x12+\n\'TRANSFORMER_SOURCE_TRANSFORM_FIRST_NAME\x10 \x12(\n$TRANSFORMER_SOURCE_TRANSFORM_FLOAT64\x10!\x12*\n&TRANSFORMER_SOURCE_TRANSFORM_FULL_NAME\x10\"\x12\x33\n/TRANSFORMER_SOURCE_TRANSFORM_INT64_PHONE_NUMBER\x10#\x12&\n\"TRANSFORMER_SOURCE_TRANSFORM_INT64\x10$\x12*\n&TRANSFORMER_SOURCE_TRANSFORM_LAST_NAME\x10%\x12-\n)TRANSFORMER_SOURCE_TRANSFORM_PHONE_NUMBER\x10&\x12\'\n#TRANSFORMER_SOURCE_TRANSFORM_STRING\x10\'\x12$\n TRANSFORMER_SOURCE_GENERATE_NULL\x10(\x12+\n\'TRANSFORMER_SOURCE_GENERATE_CATEGORICAL\x10*\x12\x33\n/TRANSFORMER_SOURCE_TRANSFORM_CHARACTER_SCRAMBLE\x10+\x12#\n\x1fTRANSFORMER_SOURCE_USER_DEFINED\x10,\x12*\n&TRANSFORMER_SOURCE_GENERATE_JAVASCRIPT\x10-\x12\'\n#TRANSFORMER_SOURCE_GENERATE_COUNTRY\x10.\x12)\n%TRANSFORMER_SOURCE_TRANSFORM_PII_TEXT\x10/\x12-\n)TRANSFORMER_SOURCE_GENERATE_BUSINESS_NAME\x10\x30\x12*\n&TRANSFORMER_SOURCE_GENERATE_IP_ADDRESS\x10\x31*\xc4\x02\n\x13TransformerDataType\x12%\n!TRANSFORMER_DATA_TYPE_UNSPECIFIED\x10\x00\x12 \n\x1cTRANSFORMER_DATA_TYPE_STRING\x10\x01\x12\x1f\n\x1bTRANSFORMER_DATA_TYPE_INT64\x10\x02\x12!\n\x1dTRANSFORMER_DATA_TYPE_BOOLEAN\x10\x03\x12!\n\x1dTRANSFORMER_DATA_TYPE_FLOAT64\x10\x04\x12\x1e\n\x1aTRANSFORMER_DATA_TYPE_NULL\x10\x05\x12\x1d\n\x19TRANSFORMER_DATA_TYPE_ANY\x10\x06\x12\x1e\n\x1aTRANSFORMER_DATA_TYPE_TIME\x10\x07\x12\x1e\n\x1aTRANSFORMER_DATA_TYPE_UUID\x10\x08*t\n\x10SupportedJobType\x12\"\n\x1eSUPPORTED_JOB_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17SUPPORTED_JOB_TYPE_SYNC\x10\x01\x12\x1f\n\x1bSUPPORTED_JOB_TYPE_GENERATE\x10\x02*{\n\x11GenerateEmailType\x12#\n\x1fGENERATE_EMAIL_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bGENERATE_EMAIL_TYPE_UUID_V4\x10\x01\x12 \n\x1cGENERATE_EMAIL_TYPE_FULLNAME\x10\x02*\xc3\x01\n\x12InvalidEmailAction\x12$\n INVALID_EMAIL_ACTION_UNSPECIFIED\x10\x00\x12\x1f\n\x1bINVALID_EMAIL_ACTION_REJECT\x10\x01\x12\x1d\n\x19INVALID_EMAIL_ACTION_NULL\x10\x02\x12$\n INVALID_EMAIL_ACTION_PASSTHROUGH\x10\x03\x12!\n\x1dINVALID_EMAIL_ACTION_GENERATE\x10\x04*\x8c\x03\n\x15GenerateIpAddressType\x12(\n$GENERATE_IP_ADDRESS_TYPE_UNSPECIFIED\x10\x00\x12&\n\"GENERATE_IP_ADDRESS_TYPE_V4_PUBLIC\x10\x01\x12)\n%GENERATE_IP_ADDRESS_TYPE_V4_PRIVATE_A\x10\x02\x12)\n%GENERATE_IP_ADDRESS_TYPE_V4_PRIVATE_B\x10\x03\x12)\n%GENERATE_IP_ADDRESS_TYPE_V4_PRIVATE_C\x10\x04\x12*\n&GENERATE_IP_ADDRESS_TYPE_V4_LINK_LOCAL\x10\x05\x12)\n%GENERATE_IP_ADDRESS_TYPE_V4_MULTICAST\x10\x06\x12(\n$GENERATE_IP_ADDRESS_TYPE_V4_LOOPBACK\x10\x07\x12\x1f\n\x1bGENERATE_IP_ADDRESS_TYPE_V6\x10\x08\x32\xd1\x0b\n\x13TransformersService\x12t\n\x15GetSystemTransformers\x12+.mgmt.v1alpha1.GetSystemTransformersRequest\x1a,.mgmt.v1alpha1.GetSystemTransformersResponse\"\x00\x12\x89\x01\n\x1cGetSystemTransformerBySource\x12\x32.mgmt.v1alpha1.GetSystemTransformerBySourceRequest\x1a\x33.mgmt.v1alpha1.GetSystemTransformerBySourceResponse\"\x00\x12\x83\x01\n\x1aGetUserDefinedTransformers\x12\x30.mgmt.v1alpha1.GetUserDefinedTransformersRequest\x1a\x31.mgmt.v1alpha1.GetUserDefinedTransformersResponse\"\x00\x12\x8c\x01\n\x1dGetUserDefinedTransformerById\x12\x33.mgmt.v1alpha1.GetUserDefinedTransformerByIdRequest\x1a\x34.mgmt.v1alpha1.GetUserDefinedTransformerByIdResponse\"\x00\x12\x89\x01\n\x1c\x43reateUserDefinedTransformer\x12\x32.mgmt.v1alpha1.CreateUserDefinedTransformerRequest\x1a\x33.mgmt.v1alpha1.CreateUserDefinedTransformerResponse\"\x00\x12\x89\x01\n\x1c\x44\x65leteUserDefinedTransformer\x12\x32.mgmt.v1alpha1.DeleteUserDefinedTransformerRequest\x1a\x33.mgmt.v1alpha1.DeleteUserDefinedTransformerResponse\"\x00\x12\x89\x01\n\x1cUpdateUserDefinedTransformer\x12\x32.mgmt.v1alpha1.UpdateUserDefinedTransformerRequest\x1a\x33.mgmt.v1alpha1.UpdateUserDefinedTransformerResponse\"\x00\x12\x83\x01\n\x1aIsTransformerNameAvailable\x12\x30.mgmt.v1alpha1.IsTransformerNameAvailableRequest\x1a\x31.mgmt.v1alpha1.IsTransformerNameAvailableResponse\"\x00\x12\x83\x01\n\x1aValidateUserJavascriptCode\x12\x30.mgmt.v1alpha1.ValidateUserJavascriptCodeRequest\x1a\x31.mgmt.v1alpha1.ValidateUserJavascriptCodeResponse\"\x00\x12t\n\x15ValidateUserRegexCode\x12+.mgmt.v1alpha1.ValidateUserRegexCodeRequest\x1a,.mgmt.v1alpha1.ValidateUserRegexCodeResponse\"\x00\x12}\n\x17GetTransformPiiEntities\x12-.mgmt.v1alpha1.GetTransformPiiEntitiesRequest\x1a..mgmt.v1alpha1.GetTransformPiiEntitiesResponse\"\x03\x90\x02\x01\x42\xcc\x01\n\x11\x63om.mgmt.v1alpha1B\x10TransformerProtoP\x01ZPgithub.com/nucleuscloud/neosync/backend/gen/go/protos/mgmt/v1alpha1;mgmtv1alpha1\xa2\x02\x03MXX\xaa\x02\rMgmt.V1alpha1\xca\x02\rMgmt\\V1alpha1\xe2\x02\x19Mgmt\\V1alpha1\\GPBMetadata\xea\x02\x0eMgmt::V1alpha1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmgmt/v1alpha1/transformer.proto\x12\rmgmt.v1alpha1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x1e\n\x1cGetSystemTransformersRequest\"e\n\x1dGetSystemTransformersResponse\x12\x44\n\x0ctransformers\x18\x01 \x03(\x0b\x32 .mgmt.v1alpha1.SystemTransformerR\x0ctransformers\"_\n#GetSystemTransformerBySourceRequest\x12\x38\n\x06source\x18\x01 \x01(\x0e\x32 .mgmt.v1alpha1.TransformerSourceR\x06source\"j\n$GetSystemTransformerBySourceResponse\x12\x42\n\x0btransformer\x18\x01 \x01(\x0b\x32 .mgmt.v1alpha1.SystemTransformerR\x0btransformer\"L\n!GetUserDefinedTransformersRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\"o\n\"GetUserDefinedTransformersResponse\x12I\n\x0ctransformers\x18\x01 \x03(\x0b\x32%.mgmt.v1alpha1.UserDefinedTransformerR\x0ctransformers\"W\n$GetUserDefinedTransformerByIdRequest\x12/\n\x0etransformer_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\rtransformerId\"p\n%GetUserDefinedTransformerByIdResponse\x12G\n\x0btransformer\x18\x01 \x01(\x0b\x32%.mgmt.v1alpha1.UserDefinedTransformerR\x0btransformer\"\xbe\x02\n#CreateUserDefinedTransformerRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12-\n\x04name\x18\x02 \x01(\tB\x19\xbaH\x16r\x14\x32\x12^[a-z0-9-]{3,100}$R\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x12\n\x04type\x18\x04 \x01(\tR\x04type\x12\x38\n\x06source\x18\x05 \x01(\x0e\x32 .mgmt.v1alpha1.TransformerSourceR\x06source\x12O\n\x12transformer_config\x18\x06 \x01(\x0b\x32 .mgmt.v1alpha1.TransformerConfigR\x11transformerConfig\"o\n$CreateUserDefinedTransformerResponse\x12G\n\x0btransformer\x18\x01 \x01(\x0b\x32%.mgmt.v1alpha1.UserDefinedTransformerR\x0btransformer\"V\n#DeleteUserDefinedTransformerRequest\x12/\n\x0etransformer_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\rtransformerId\"&\n$DeleteUserDefinedTransformerResponse\"\xf8\x01\n#UpdateUserDefinedTransformerRequest\x12/\n\x0etransformer_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\rtransformerId\x12-\n\x04name\x18\x02 \x01(\tB\x19\xbaH\x16r\x14\x32\x12^[a-z0-9-]{3,100}$R\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12O\n\x12transformer_config\x18\x04 \x01(\x0b\x32 .mgmt.v1alpha1.TransformerConfigR\x11transformerConfig\"o\n$UpdateUserDefinedTransformerResponse\x12G\n\x0btransformer\x18\x01 \x01(\x0b\x32%.mgmt.v1alpha1.UserDefinedTransformerR\x0btransformer\"\x92\x01\n!IsTransformerNameAvailableRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\x44\n\x10transformer_name\x18\x02 \x01(\tB\x19\xbaH\x16r\x14\x32\x12^[a-z0-9-]{3,100}$R\x0ftransformerName\"G\n\"IsTransformerNameAvailableResponse\x12!\n\x0cis_available\x18\x01 \x01(\x08R\x0bisAvailable\"\xf5\x03\n\x16UserDefinedTransformer\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12?\n\tdata_type\x18\x05 \x01(\x0e\x32\".mgmt.v1alpha1.TransformerDataTypeR\x08\x64\x61taType\x12\x38\n\x06source\x18\x06 \x01(\x0e\x32 .mgmt.v1alpha1.TransformerSourceR\x06source\x12\x38\n\x06\x63onfig\x18\x07 \x01(\x0b\x32 .mgmt.v1alpha1.TransformerConfigR\x06\x63onfig\x12\x39\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x1d\n\naccount_id\x18\n \x01(\tR\taccountId\x12\x41\n\ndata_types\x18\x0b \x03(\x0e\x32\".mgmt.v1alpha1.TransformerDataTypeR\tdataTypes\"\x92\x03\n\x11SystemTransformer\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12?\n\tdata_type\x18\x03 \x01(\x0e\x32\".mgmt.v1alpha1.TransformerDataTypeR\x08\x64\x61taType\x12\x38\n\x06source\x18\x04 \x01(\x0e\x32 .mgmt.v1alpha1.TransformerSourceR\x06source\x12\x38\n\x06\x63onfig\x18\x05 \x01(\x0b\x32 .mgmt.v1alpha1.TransformerConfigR\x06\x63onfig\x12\x41\n\ndata_types\x18\x06 \x03(\x0e\x32\".mgmt.v1alpha1.TransformerDataTypeR\tdataTypes\x12O\n\x13supported_job_types\x18\x07 \x03(\x0e\x32\x1f.mgmt.v1alpha1.SupportedJobTypeR\x11supportedJobTypes\"\xfa\"\n\x11TransformerConfig\x12R\n\x15generate_email_config\x18\x01 \x01(\x0b\x32\x1c.mgmt.v1alpha1.GenerateEmailH\x00R\x13generateEmailConfig\x12U\n\x16transform_email_config\x18\x02 \x01(\x0b\x32\x1d.mgmt.v1alpha1.TransformEmailH\x00R\x14transformEmailConfig\x12O\n\x14generate_bool_config\x18\x03 \x01(\x0b\x32\x1b.mgmt.v1alpha1.GenerateBoolH\x00R\x12generateBoolConfig\x12\x62\n\x1bgenerate_card_number_config\x18\x04 \x01(\x0b\x32!.mgmt.v1alpha1.GenerateCardNumberH\x00R\x18generateCardNumberConfig\x12O\n\x14generate_city_config\x18\x05 \x01(\x0b\x32\x1b.mgmt.v1alpha1.GenerateCityH\x00R\x12generateCityConfig\x12r\n!generate_e164_phone_number_config\x18\x06 \x01(\x0b\x32&.mgmt.v1alpha1.GenerateE164PhoneNumberH\x00R\x1dgenerateE164PhoneNumberConfig\x12_\n\x1agenerate_first_name_config\x18\x07 \x01(\x0b\x32 .mgmt.v1alpha1.GenerateFirstNameH\x00R\x17generateFirstNameConfig\x12X\n\x17generate_float64_config\x18\x08 \x01(\x0b\x32\x1e.mgmt.v1alpha1.GenerateFloat64H\x00R\x15generateFloat64Config\x12\x65\n\x1cgenerate_full_address_config\x18\t \x01(\x0b\x32\".mgmt.v1alpha1.GenerateFullAddressH\x00R\x19generateFullAddressConfig\x12\\\n\x19generate_full_name_config\x18\n \x01(\x0b\x32\x1f.mgmt.v1alpha1.GenerateFullNameH\x00R\x16generateFullNameConfig\x12U\n\x16generate_gender_config\x18\x0b \x01(\x0b\x32\x1d.mgmt.v1alpha1.GenerateGenderH\x00R\x14generateGenderConfig\x12u\n\"generate_int64_phone_number_config\x18\x0c \x01(\x0b\x32\'.mgmt.v1alpha1.GenerateInt64PhoneNumberH\x00R\x1egenerateInt64PhoneNumberConfig\x12R\n\x15generate_int64_config\x18\r \x01(\x0b\x32\x1c.mgmt.v1alpha1.GenerateInt64H\x00R\x13generateInt64Config\x12\\\n\x19generate_last_name_config\x18\x0e \x01(\x0b\x32\x1f.mgmt.v1alpha1.GenerateLastNameH\x00R\x16generateLastNameConfig\x12\x61\n\x1agenerate_sha256hash_config\x18\x0f \x01(\x0b\x32!.mgmt.v1alpha1.GenerateSha256HashH\x00R\x18generateSha256hashConfig\x12L\n\x13generate_ssn_config\x18\x10 \x01(\x0b\x32\x1a.mgmt.v1alpha1.GenerateSSNH\x00R\x11generateSsnConfig\x12R\n\x15generate_state_config\x18\x11 \x01(\x0b\x32\x1c.mgmt.v1alpha1.GenerateStateH\x00R\x13generateStateConfig\x12k\n\x1egenerate_street_address_config\x18\x12 \x01(\x0b\x32$.mgmt.v1alpha1.GenerateStreetAddressH\x00R\x1bgenerateStreetAddressConfig\x12x\n#generate_string_phone_number_config\x18\x13 \x01(\x0b\x32(.mgmt.v1alpha1.GenerateStringPhoneNumberH\x00R\x1fgenerateStringPhoneNumberConfig\x12U\n\x16generate_string_config\x18\x14 \x01(\x0b\x32\x1d.mgmt.v1alpha1.GenerateStringH\x00R\x14generateStringConfig\x12j\n\x1dgenerate_unixtimestamp_config\x18\x15 \x01(\x0b\x32$.mgmt.v1alpha1.GenerateUnixTimestampH\x00R\x1bgenerateUnixtimestampConfig\x12[\n\x18generate_username_config\x18\x16 \x01(\x0b\x32\x1f.mgmt.v1alpha1.GenerateUsernameH\x00R\x16generateUsernameConfig\x12g\n\x1cgenerate_utctimestamp_config\x18\x17 \x01(\x0b\x32#.mgmt.v1alpha1.GenerateUtcTimestampH\x00R\x1agenerateUtctimestampConfig\x12O\n\x14generate_uuid_config\x18\x18 \x01(\x0b\x32\x1b.mgmt.v1alpha1.GenerateUuidH\x00R\x12generateUuidConfig\x12X\n\x17generate_zipcode_config\x18\x19 \x01(\x0b\x32\x1e.mgmt.v1alpha1.GenerateZipcodeH\x00R\x15generateZipcodeConfig\x12u\n\"transform_e164_phone_number_config\x18\x1a \x01(\x0b\x32\'.mgmt.v1alpha1.TransformE164PhoneNumberH\x00R\x1etransformE164PhoneNumberConfig\x12\x62\n\x1btransform_first_name_config\x18\x1b \x01(\x0b\x32!.mgmt.v1alpha1.TransformFirstNameH\x00R\x18transformFirstNameConfig\x12[\n\x18transform_float64_config\x18\x1c \x01(\x0b\x32\x1f.mgmt.v1alpha1.TransformFloat64H\x00R\x16transformFloat64Config\x12_\n\x1atransform_full_name_config\x18\x1d \x01(\x0b\x32 .mgmt.v1alpha1.TransformFullNameH\x00R\x17transformFullNameConfig\x12x\n#transform_int64_phone_number_config\x18\x1e \x01(\x0b\x32(.mgmt.v1alpha1.TransformInt64PhoneNumberH\x00R\x1ftransformInt64PhoneNumberConfig\x12U\n\x16transform_int64_config\x18\x1f \x01(\x0b\x32\x1d.mgmt.v1alpha1.TransformInt64H\x00R\x14transformInt64Config\x12_\n\x1atransform_last_name_config\x18 \x01(\x0b\x32 .mgmt.v1alpha1.TransformLastNameH\x00R\x17transformLastNameConfig\x12h\n\x1dtransform_phone_number_config\x18! \x01(\x0b\x32#.mgmt.v1alpha1.TransformPhoneNumberH\x00R\x1atransformPhoneNumberConfig\x12X\n\x17transform_string_config\x18\" \x01(\x0b\x32\x1e.mgmt.v1alpha1.TransformStringH\x00R\x15transformStringConfig\x12K\n\x12passthrough_config\x18# \x01(\x0b\x32\x1a.mgmt.v1alpha1.PassthroughH\x00R\x11passthroughConfig\x12\x35\n\nnullconfig\x18$ \x01(\x0b\x32\x13.mgmt.v1alpha1.NullH\x00R\nnullconfig\x12t\n\x1fuser_defined_transformer_config\x18% \x01(\x0b\x32+.mgmt.v1alpha1.UserDefinedTransformerConfigH\x00R\x1cuserDefinedTransformerConfig\x12X\n\x17generate_default_config\x18& \x01(\x0b\x32\x1e.mgmt.v1alpha1.GenerateDefaultH\x00R\x15generateDefaultConfig\x12\x64\n\x1btransform_javascript_config\x18\' \x01(\x0b\x32\".mgmt.v1alpha1.TransformJavascriptH\x00R\x19transformJavascriptConfig\x12\x64\n\x1bgenerate_categorical_config\x18( \x01(\x0b\x32\".mgmt.v1alpha1.GenerateCategoricalH\x00R\x19generateCategoricalConfig\x12z\n#transform_character_scramble_config\x18) \x01(\x0b\x32).mgmt.v1alpha1.TransformCharacterScrambleH\x00R transformCharacterScrambleConfig\x12\x61\n\x1agenerate_javascript_config\x18* \x01(\x0b\x32!.mgmt.v1alpha1.GenerateJavascriptH\x00R\x18generateJavascriptConfig\x12X\n\x17generate_country_config\x18+ \x01(\x0b\x32\x1e.mgmt.v1alpha1.GenerateCountryH\x00R\x15generateCountryConfig\x12\\\n\x19transform_pii_text_config\x18, \x01(\x0b\x32\x1f.mgmt.v1alpha1.TransformPiiTextH\x00R\x16transformPiiTextConfig\x12h\n\x1dgenerate_business_name_config\x18- \x01(\x0b\x32#.mgmt.v1alpha1.GenerateBusinessNameH\x00R\x1agenerateBusinessNameConfig\x12_\n\x1agenerate_ip_address_config\x18. \x01(\x0b\x32 .mgmt.v1alpha1.GenerateIpAddressH\x00R\x17generateIpAddressConfigB\x0f\n\x06\x63onfig\x12\x05\xbaH\x02\x08\x01\"\xf6\x02\n\x10TransformPiiText\x12\x38\n\x0fscore_threshold\x18\x01 \x01(\x02\x42\x0f\xbaH\x0c\n\n\x1d\x00\x00\x80?-\x00\x00\x00\x00R\x0escoreThreshold\x12K\n\x12\x64\x65\x66\x61ult_anonymizer\x18\x02 \x01(\x0b\x32\x1c.mgmt.v1alpha1.PiiAnonymizerR\x11\x64\x65\x66\x61ultAnonymizer\x12K\n\x10\x64\x65ny_recognizers\x18\x03 \x03(\x0b\x32 .mgmt.v1alpha1.PiiDenyRecognizerR\x0f\x64\x65nyRecognizers\x12\x37\n\x10\x61llowed_entities\x18\x04 \x03(\tB\x0c\xbaH\t\x92\x01\x06\"\x04r\x02\x10\x01R\x0f\x61llowedEntities\x12\'\n\x0f\x61llowed_phrases\x18\x05 \x03(\tR\x0e\x61llowedPhrases\x12\x1f\n\x08language\x18\x06 \x01(\tH\x00R\x08language\x88\x01\x01\x42\x0b\n\t_language\"p\n\x11PiiDenyRecognizer\x12.\n\x04name\x18\x01 \x01(\tB\x1a\xbaH\x17r\x15\x32\x13^[a-z0-9-_]{1,100}$R\x04name\x12+\n\ndeny_words\x18\x02 \x03(\tB\x0c\xbaH\t\x92\x01\x06\"\x04r\x02\x10\x01R\tdenyWords\"\xad\x05\n\rPiiAnonymizer\x12@\n\x07replace\x18\x01 \x01(\x0b\x32$.mgmt.v1alpha1.PiiAnonymizer.ReplaceH\x00R\x07replace\x12=\n\x06redact\x18\x02 \x01(\x0b\x32#.mgmt.v1alpha1.PiiAnonymizer.RedactH\x00R\x06redact\x12\x37\n\x04mask\x18\x03 \x01(\x0b\x32!.mgmt.v1alpha1.PiiAnonymizer.MaskH\x00R\x04mask\x12\x37\n\x04hash\x18\x04 \x01(\x0b\x32!.mgmt.v1alpha1.PiiAnonymizer.HashH\x00R\x04hash\x1a.\n\x07Replace\x12\x19\n\x05value\x18\x01 \x01(\tH\x00R\x05value\x88\x01\x01\x42\x08\n\x06_value\x1a\x08\n\x06Redact\x1a\xa7\x01\n\x04Mask\x12&\n\x0cmasking_char\x18\x01 \x01(\tH\x00R\x0bmaskingChar\x88\x01\x01\x12\'\n\rchars_to_mask\x18\x02 \x01(\x05H\x01R\x0b\x63harsToMask\x88\x01\x01\x12\x1e\n\x08\x66rom_end\x18\x03 \x01(\x08H\x02R\x07\x66romEnd\x88\x01\x01\x42\x0f\n\r_masking_charB\x10\n\x0e_chars_to_maskB\x0b\n\t_from_end\x1a\xba\x01\n\x04Hash\x12\x43\n\x04\x61lgo\x18\x01 \x01(\x0e\x32*.mgmt.v1alpha1.PiiAnonymizer.Hash.HashTypeH\x00R\x04\x61lgo\x88\x01\x01\"d\n\x08HashType\x12\x19\n\x15HASH_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rHASH_TYPE_MD5\x10\x01\x12\x14\n\x10HASH_TYPE_SHA256\x10\x02\x12\x14\n\x10HASH_TYPE_SHA512\x10\x03\x42\x07\n\x05_algoB\x08\n\x06\x63onfig\"d\n\rGenerateEmail\x12\x44\n\nemail_type\x18\x01 \x01(\x0e\x32 .mgmt.v1alpha1.GenerateEmailTypeH\x00R\temailType\x88\x01\x01\x42\r\n\x0b_email_type\"\x87\x03\n\x0eTransformEmail\x12,\n\x0fpreserve_domain\x18\x01 \x01(\x08H\x00R\x0epreserveDomain\x88\x01\x01\x12,\n\x0fpreserve_length\x18\x02 \x01(\x08H\x01R\x0epreserveLength\x88\x01\x01\x12)\n\x10\x65xcluded_domains\x18\x03 \x03(\tR\x0f\x65xcludedDomains\x12\x44\n\nemail_type\x18\x04 \x01(\x0e\x32 .mgmt.v1alpha1.GenerateEmailTypeH\x02R\temailType\x88\x01\x01\x12X\n\x14invalid_email_action\x18\x05 \x01(\x0e\x32!.mgmt.v1alpha1.InvalidEmailActionH\x03R\x12invalidEmailAction\x88\x01\x01\x42\x12\n\x10_preserve_domainB\x12\n\x10_preserve_lengthB\r\n\x0b_email_typeB\x17\n\x15_invalid_email_action\"\x0e\n\x0cGenerateBool\"G\n\x12GenerateCardNumber\x12\"\n\nvalid_luhn\x18\x01 \x01(\x08H\x00R\tvalidLuhn\x88\x01\x01\x42\r\n\x0b_valid_luhn\"\x0e\n\x0cGenerateCity\"\x11\n\x0fGenerateDefault\"W\n\x17GenerateE164PhoneNumber\x12\x15\n\x03min\x18\x01 \x01(\x03H\x00R\x03min\x88\x01\x01\x12\x15\n\x03max\x18\x02 \x01(\x03H\x01R\x03max\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x13\n\x11GenerateFirstName\"\xbf\x01\n\x0fGenerateFloat64\x12*\n\x0erandomize_sign\x18\x01 \x01(\x08H\x00R\rrandomizeSign\x88\x01\x01\x12\x15\n\x03min\x18\x02 \x01(\x01H\x01R\x03min\x88\x01\x01\x12\x15\n\x03max\x18\x03 \x01(\x01H\x02R\x03max\x88\x01\x01\x12!\n\tprecision\x18\x04 \x01(\x03H\x03R\tprecision\x88\x01\x01\x42\x11\n\x0f_randomize_signB\x06\n\x04_minB\x06\n\x04_maxB\x0c\n\n_precision\"\x15\n\x13GenerateFullAddress\"\x12\n\x10GenerateFullName\"D\n\x0eGenerateGender\x12#\n\nabbreviate\x18\x01 \x01(\x08H\x00R\nabbreviate\x88\x01\x01\x42\r\n\x0b_abbreviate\"\x1a\n\x18GenerateInt64PhoneNumber\"\x8c\x01\n\rGenerateInt64\x12*\n\x0erandomize_sign\x18\x01 \x01(\x08H\x00R\rrandomizeSign\x88\x01\x01\x12\x15\n\x03min\x18\x02 \x01(\x03H\x01R\x03min\x88\x01\x01\x12\x15\n\x03max\x18\x03 \x01(\x03H\x02R\x03max\x88\x01\x01\x42\x11\n\x0f_randomize_signB\x06\n\x04_minB\x06\n\x04_max\"\x12\n\x10GenerateLastName\"\x14\n\x12GenerateSha256Hash\"\r\n\x0bGenerateSSN\"Y\n\rGenerateState\x12\x31\n\x12generate_full_name\x18\x01 \x01(\x08H\x00R\x10generateFullName\x88\x01\x01\x42\x15\n\x13_generate_full_name\"\x17\n\x15GenerateStreetAddress\"Y\n\x19GenerateStringPhoneNumber\x12\x15\n\x03min\x18\x02 \x01(\x03H\x00R\x03min\x88\x01\x01\x12\x15\n\x03max\x18\x03 \x01(\x03H\x01R\x03max\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"N\n\x0eGenerateString\x12\x15\n\x03min\x18\x01 \x01(\x03H\x00R\x03min\x88\x01\x01\x12\x15\n\x03max\x18\x02 \x01(\x03H\x01R\x03max\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x17\n\x15GenerateUnixTimestamp\"\x12\n\x10GenerateUsername\"\x16\n\x14GenerateUtcTimestamp\"P\n\x0cGenerateUuid\x12,\n\x0finclude_hyphens\x18\x01 \x01(\x08H\x00R\x0eincludeHyphens\x88\x01\x01\x42\x12\n\x10_include_hyphens\"\x11\n\x0fGenerateZipcode\"\\\n\x18TransformE164PhoneNumber\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"V\n\x12TransformFirstName\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"\xc4\x01\n\x10TransformFloat64\x12;\n\x17randomization_range_min\x18\x01 \x01(\x01H\x00R\x15randomizationRangeMin\x88\x01\x01\x12;\n\x17randomization_range_max\x18\x02 \x01(\x01H\x01R\x15randomizationRangeMax\x88\x01\x01\x42\x1a\n\x18_randomization_range_minB\x1a\n\x18_randomization_range_max\"U\n\x11TransformFullName\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"]\n\x19TransformInt64PhoneNumber\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"\xc2\x01\n\x0eTransformInt64\x12;\n\x17randomization_range_min\x18\x01 \x01(\x03H\x00R\x15randomizationRangeMin\x88\x01\x01\x12;\n\x17randomization_range_max\x18\x02 \x01(\x03H\x01R\x15randomizationRangeMax\x88\x01\x01\x42\x1a\n\x18_randomization_range_minB\x1a\n\x18_randomization_range_max\"U\n\x11TransformLastName\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"X\n\x14TransformPhoneNumber\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"S\n\x0fTransformString\x12,\n\x0fpreserve_length\x18\x01 \x01(\x08H\x00R\x0epreserveLength\x88\x01\x01\x42\x12\n\x10_preserve_length\"\r\n\x0bPassthrough\"\x06\n\x04Null\")\n\x13TransformJavascript\x12\x12\n\x04\x63ode\x18\x01 \x01(\tR\x04\x63ode\"8\n\x1cUserDefinedTransformerConfig\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"_\n!ValidateUserJavascriptCodeRequest\x12\x1d\n\naccount_id\x18\x01 \x01(\tR\taccountId\x12\x1b\n\x04\x63ode\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04\x63ode\":\n\"ValidateUserJavascriptCodeResponse\x12\x14\n\x05valid\x18\x01 \x01(\x08R\x05valid\"I\n\x13GenerateCategorical\x12#\n\ncategories\x18\x01 \x01(\tH\x00R\ncategories\x88\x01\x01\x42\r\n\x0b_categories\"i\n\x1aTransformCharacterScramble\x12\x33\n\x13user_provided_regex\x18\x01 \x01(\tH\x00R\x11userProvidedRegex\x88\x01\x01\x42\x16\n\x14_user_provided_regex\"(\n\x12GenerateJavascript\x12\x12\n\x04\x63ode\x18\x01 \x01(\tR\x04\x63ode\"m\n\x1cValidateUserRegexCodeRequest\x12\x1d\n\naccount_id\x18\x01 \x01(\tR\taccountId\x12.\n\x13user_provided_regex\x18\x02 \x01(\tR\x11userProvidedRegex\"5\n\x1dValidateUserRegexCodeResponse\x12\x14\n\x05valid\x18\x01 \x01(\x08R\x05valid\"[\n\x0fGenerateCountry\x12\x31\n\x12generate_full_name\x18\x01 \x01(\x08H\x00R\x10generateFullName\x88\x01\x01\x42\x15\n\x13_generate_full_name\"I\n\x1eGetTransformPiiEntitiesRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\"=\n\x1fGetTransformPiiEntitiesResponse\x12\x1a\n\x08\x65ntities\x18\x01 \x03(\tR\x08\x65ntities\"\x16\n\x14GenerateBusinessName\"c\n\x11GenerateIpAddress\x12\x42\n\x07ip_type\x18\x01 \x01(\x0e\x32$.mgmt.v1alpha1.GenerateIpAddressTypeH\x00R\x06ipType\x88\x01\x01\x42\n\n\x08_ip_type*\xe0\x10\n\x11TransformerSource\x12\"\n\x1eTRANSFORMER_SOURCE_UNSPECIFIED\x10\x00\x12\"\n\x1eTRANSFORMER_SOURCE_PASSTHROUGH\x10\x01\x12\'\n#TRANSFORMER_SOURCE_GENERATE_DEFAULT\x10\x02\x12+\n\'TRANSFORMER_SOURCE_TRANSFORM_JAVASCRIPT\x10\x03\x12%\n!TRANSFORMER_SOURCE_GENERATE_EMAIL\x10\x04\x12&\n\"TRANSFORMER_SOURCE_TRANSFORM_EMAIL\x10\x05\x12$\n TRANSFORMER_SOURCE_GENERATE_BOOL\x10\x06\x12+\n\'TRANSFORMER_SOURCE_GENERATE_CARD_NUMBER\x10\x07\x12$\n TRANSFORMER_SOURCE_GENERATE_CITY\x10\x08\x12\x31\n-TRANSFORMER_SOURCE_GENERATE_E164_PHONE_NUMBER\x10\t\x12*\n&TRANSFORMER_SOURCE_GENERATE_FIRST_NAME\x10\n\x12\'\n#TRANSFORMER_SOURCE_GENERATE_FLOAT64\x10\x0b\x12,\n(TRANSFORMER_SOURCE_GENERATE_FULL_ADDRESS\x10\x0c\x12)\n%TRANSFORMER_SOURCE_GENERATE_FULL_NAME\x10\r\x12&\n\"TRANSFORMER_SOURCE_GENERATE_GENDER\x10\x0e\x12\x32\n.TRANSFORMER_SOURCE_GENERATE_INT64_PHONE_NUMBER\x10\x0f\x12%\n!TRANSFORMER_SOURCE_GENERATE_INT64\x10\x10\x12,\n(TRANSFORMER_SOURCE_GENERATE_RANDOM_INT64\x10\x11\x12)\n%TRANSFORMER_SOURCE_GENERATE_LAST_NAME\x10\x12\x12*\n&TRANSFORMER_SOURCE_GENERATE_SHA256HASH\x10\x13\x12#\n\x1fTRANSFORMER_SOURCE_GENERATE_SSN\x10\x14\x12%\n!TRANSFORMER_SOURCE_GENERATE_STATE\x10\x15\x12.\n*TRANSFORMER_SOURCE_GENERATE_STREET_ADDRESS\x10\x16\x12\x33\n/TRANSFORMER_SOURCE_GENERATE_STRING_PHONE_NUMBER\x10\x17\x12&\n\"TRANSFORMER_SOURCE_GENERATE_STRING\x10\x18\x12-\n)TRANSFORMER_SOURCE_GENERATE_RANDOM_STRING\x10\x19\x12-\n)TRANSFORMER_SOURCE_GENERATE_UNIXTIMESTAMP\x10\x1a\x12(\n$TRANSFORMER_SOURCE_GENERATE_USERNAME\x10\x1b\x12,\n(TRANSFORMER_SOURCE_GENERATE_UTCTIMESTAMP\x10\x1c\x12$\n TRANSFORMER_SOURCE_GENERATE_UUID\x10\x1d\x12\'\n#TRANSFORMER_SOURCE_GENERATE_ZIPCODE\x10\x1e\x12\x32\n.TRANSFORMER_SOURCE_TRANSFORM_E164_PHONE_NUMBER\x10\x1f\x12+\n\'TRANSFORMER_SOURCE_TRANSFORM_FIRST_NAME\x10 \x12(\n$TRANSFORMER_SOURCE_TRANSFORM_FLOAT64\x10!\x12*\n&TRANSFORMER_SOURCE_TRANSFORM_FULL_NAME\x10\"\x12\x33\n/TRANSFORMER_SOURCE_TRANSFORM_INT64_PHONE_NUMBER\x10#\x12&\n\"TRANSFORMER_SOURCE_TRANSFORM_INT64\x10$\x12*\n&TRANSFORMER_SOURCE_TRANSFORM_LAST_NAME\x10%\x12-\n)TRANSFORMER_SOURCE_TRANSFORM_PHONE_NUMBER\x10&\x12\'\n#TRANSFORMER_SOURCE_TRANSFORM_STRING\x10\'\x12$\n TRANSFORMER_SOURCE_GENERATE_NULL\x10(\x12+\n\'TRANSFORMER_SOURCE_GENERATE_CATEGORICAL\x10*\x12\x33\n/TRANSFORMER_SOURCE_TRANSFORM_CHARACTER_SCRAMBLE\x10+\x12#\n\x1fTRANSFORMER_SOURCE_USER_DEFINED\x10,\x12*\n&TRANSFORMER_SOURCE_GENERATE_JAVASCRIPT\x10-\x12\'\n#TRANSFORMER_SOURCE_GENERATE_COUNTRY\x10.\x12)\n%TRANSFORMER_SOURCE_TRANSFORM_PII_TEXT\x10/\x12-\n)TRANSFORMER_SOURCE_GENERATE_BUSINESS_NAME\x10\x30\x12*\n&TRANSFORMER_SOURCE_GENERATE_IP_ADDRESS\x10\x31*\xc4\x02\n\x13TransformerDataType\x12%\n!TRANSFORMER_DATA_TYPE_UNSPECIFIED\x10\x00\x12 \n\x1cTRANSFORMER_DATA_TYPE_STRING\x10\x01\x12\x1f\n\x1bTRANSFORMER_DATA_TYPE_INT64\x10\x02\x12!\n\x1dTRANSFORMER_DATA_TYPE_BOOLEAN\x10\x03\x12!\n\x1dTRANSFORMER_DATA_TYPE_FLOAT64\x10\x04\x12\x1e\n\x1aTRANSFORMER_DATA_TYPE_NULL\x10\x05\x12\x1d\n\x19TRANSFORMER_DATA_TYPE_ANY\x10\x06\x12\x1e\n\x1aTRANSFORMER_DATA_TYPE_TIME\x10\x07\x12\x1e\n\x1aTRANSFORMER_DATA_TYPE_UUID\x10\x08*t\n\x10SupportedJobType\x12\"\n\x1eSUPPORTED_JOB_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17SUPPORTED_JOB_TYPE_SYNC\x10\x01\x12\x1f\n\x1bSUPPORTED_JOB_TYPE_GENERATE\x10\x02*{\n\x11GenerateEmailType\x12#\n\x1fGENERATE_EMAIL_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bGENERATE_EMAIL_TYPE_UUID_V4\x10\x01\x12 \n\x1cGENERATE_EMAIL_TYPE_FULLNAME\x10\x02*\xc3\x01\n\x12InvalidEmailAction\x12$\n INVALID_EMAIL_ACTION_UNSPECIFIED\x10\x00\x12\x1f\n\x1bINVALID_EMAIL_ACTION_REJECT\x10\x01\x12\x1d\n\x19INVALID_EMAIL_ACTION_NULL\x10\x02\x12$\n INVALID_EMAIL_ACTION_PASSTHROUGH\x10\x03\x12!\n\x1dINVALID_EMAIL_ACTION_GENERATE\x10\x04*\x8c\x03\n\x15GenerateIpAddressType\x12(\n$GENERATE_IP_ADDRESS_TYPE_UNSPECIFIED\x10\x00\x12&\n\"GENERATE_IP_ADDRESS_TYPE_V4_PUBLIC\x10\x01\x12)\n%GENERATE_IP_ADDRESS_TYPE_V4_PRIVATE_A\x10\x02\x12)\n%GENERATE_IP_ADDRESS_TYPE_V4_PRIVATE_B\x10\x03\x12)\n%GENERATE_IP_ADDRESS_TYPE_V4_PRIVATE_C\x10\x04\x12*\n&GENERATE_IP_ADDRESS_TYPE_V4_LINK_LOCAL\x10\x05\x12)\n%GENERATE_IP_ADDRESS_TYPE_V4_MULTICAST\x10\x06\x12(\n$GENERATE_IP_ADDRESS_TYPE_V4_LOOPBACK\x10\x07\x12\x1f\n\x1bGENERATE_IP_ADDRESS_TYPE_V6\x10\x08\x32\xd1\x0b\n\x13TransformersService\x12t\n\x15GetSystemTransformers\x12+.mgmt.v1alpha1.GetSystemTransformersRequest\x1a,.mgmt.v1alpha1.GetSystemTransformersResponse\"\x00\x12\x89\x01\n\x1cGetSystemTransformerBySource\x12\x32.mgmt.v1alpha1.GetSystemTransformerBySourceRequest\x1a\x33.mgmt.v1alpha1.GetSystemTransformerBySourceResponse\"\x00\x12\x83\x01\n\x1aGetUserDefinedTransformers\x12\x30.mgmt.v1alpha1.GetUserDefinedTransformersRequest\x1a\x31.mgmt.v1alpha1.GetUserDefinedTransformersResponse\"\x00\x12\x8c\x01\n\x1dGetUserDefinedTransformerById\x12\x33.mgmt.v1alpha1.GetUserDefinedTransformerByIdRequest\x1a\x34.mgmt.v1alpha1.GetUserDefinedTransformerByIdResponse\"\x00\x12\x89\x01\n\x1c\x43reateUserDefinedTransformer\x12\x32.mgmt.v1alpha1.CreateUserDefinedTransformerRequest\x1a\x33.mgmt.v1alpha1.CreateUserDefinedTransformerResponse\"\x00\x12\x89\x01\n\x1c\x44\x65leteUserDefinedTransformer\x12\x32.mgmt.v1alpha1.DeleteUserDefinedTransformerRequest\x1a\x33.mgmt.v1alpha1.DeleteUserDefinedTransformerResponse\"\x00\x12\x89\x01\n\x1cUpdateUserDefinedTransformer\x12\x32.mgmt.v1alpha1.UpdateUserDefinedTransformerRequest\x1a\x33.mgmt.v1alpha1.UpdateUserDefinedTransformerResponse\"\x00\x12\x83\x01\n\x1aIsTransformerNameAvailable\x12\x30.mgmt.v1alpha1.IsTransformerNameAvailableRequest\x1a\x31.mgmt.v1alpha1.IsTransformerNameAvailableResponse\"\x00\x12\x83\x01\n\x1aValidateUserJavascriptCode\x12\x30.mgmt.v1alpha1.ValidateUserJavascriptCodeRequest\x1a\x31.mgmt.v1alpha1.ValidateUserJavascriptCodeResponse\"\x00\x12t\n\x15ValidateUserRegexCode\x12+.mgmt.v1alpha1.ValidateUserRegexCodeRequest\x1a,.mgmt.v1alpha1.ValidateUserRegexCodeResponse\"\x00\x12}\n\x17GetTransformPiiEntities\x12-.mgmt.v1alpha1.GetTransformPiiEntitiesRequest\x1a..mgmt.v1alpha1.GetTransformPiiEntitiesResponse\"\x03\x90\x02\x01\x42\xcc\x01\n\x11\x63om.mgmt.v1alpha1B\x10TransformerProtoP\x01ZPgithub.com/nucleuscloud/neosync/backend/gen/go/protos/mgmt/v1alpha1;mgmtv1alpha1\xa2\x02\x03MXX\xaa\x02\rMgmt.V1alpha1\xca\x02\rMgmt\\V1alpha1\xe2\x02\x19Mgmt\\V1alpha1\\GPBMetadata\xea\x02\x0eMgmt::V1alpha1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -72,18 +72,18 @@ _globals['_GETTRANSFORMPIIENTITIESREQUEST'].fields_by_name['account_id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_TRANSFORMERSSERVICE'].methods_by_name['GetTransformPiiEntities']._loaded_options = None _globals['_TRANSFORMERSSERVICE'].methods_by_name['GetTransformPiiEntities']._serialized_options = b'\220\002\001' - _globals['_TRANSFORMERSOURCE']._serialized_start=12285 - _globals['_TRANSFORMERSOURCE']._serialized_end=14429 - _globals['_TRANSFORMERDATATYPE']._serialized_start=14432 - _globals['_TRANSFORMERDATATYPE']._serialized_end=14756 - _globals['_SUPPORTEDJOBTYPE']._serialized_start=14758 - _globals['_SUPPORTEDJOBTYPE']._serialized_end=14874 - _globals['_GENERATEEMAILTYPE']._serialized_start=14876 - _globals['_GENERATEEMAILTYPE']._serialized_end=14999 - _globals['_INVALIDEMAILACTION']._serialized_start=15002 - _globals['_INVALIDEMAILACTION']._serialized_end=15197 - _globals['_GENERATEIPADDRESSTYPE']._serialized_start=15200 - _globals['_GENERATEIPADDRESSTYPE']._serialized_end=15596 + _globals['_TRANSFORMERSOURCE']._serialized_start=12331 + _globals['_TRANSFORMERSOURCE']._serialized_end=14475 + _globals['_TRANSFORMERDATATYPE']._serialized_start=14478 + _globals['_TRANSFORMERDATATYPE']._serialized_end=14802 + _globals['_SUPPORTEDJOBTYPE']._serialized_start=14804 + _globals['_SUPPORTEDJOBTYPE']._serialized_end=14920 + _globals['_GENERATEEMAILTYPE']._serialized_start=14922 + _globals['_GENERATEEMAILTYPE']._serialized_end=15045 + _globals['_INVALIDEMAILACTION']._serialized_start=15048 + _globals['_INVALIDEMAILACTION']._serialized_end=15243 + _globals['_GENERATEIPADDRESSTYPE']._serialized_start=15246 + _globals['_GENERATEIPADDRESSTYPE']._serialized_end=15642 _globals['_GETSYSTEMTRANSFORMERSREQUEST']._serialized_start=112 _globals['_GETSYSTEMTRANSFORMERSREQUEST']._serialized_end=142 _globals['_GETSYSTEMTRANSFORMERSRESPONSE']._serialized_start=144 @@ -123,123 +123,123 @@ _globals['_TRANSFORMERCONFIG']._serialized_start=2904 _globals['_TRANSFORMERCONFIG']._serialized_end=7378 _globals['_TRANSFORMPIITEXT']._serialized_start=7381 - _globals['_TRANSFORMPIITEXT']._serialized_end=7709 - _globals['_PIIDENYRECOGNIZER']._serialized_start=7711 - _globals['_PIIDENYRECOGNIZER']._serialized_end=7823 - _globals['_PIIANONYMIZER']._serialized_start=7826 - _globals['_PIIANONYMIZER']._serialized_end=8511 - _globals['_PIIANONYMIZER_REPLACE']._serialized_start=8086 - _globals['_PIIANONYMIZER_REPLACE']._serialized_end=8132 - _globals['_PIIANONYMIZER_REDACT']._serialized_start=8134 - _globals['_PIIANONYMIZER_REDACT']._serialized_end=8142 - _globals['_PIIANONYMIZER_MASK']._serialized_start=8145 - _globals['_PIIANONYMIZER_MASK']._serialized_end=8312 - _globals['_PIIANONYMIZER_HASH']._serialized_start=8315 - _globals['_PIIANONYMIZER_HASH']._serialized_end=8501 - _globals['_PIIANONYMIZER_HASH_HASHTYPE']._serialized_start=8392 - _globals['_PIIANONYMIZER_HASH_HASHTYPE']._serialized_end=8492 - _globals['_GENERATEEMAIL']._serialized_start=8513 - _globals['_GENERATEEMAIL']._serialized_end=8613 - _globals['_TRANSFORMEMAIL']._serialized_start=8616 - _globals['_TRANSFORMEMAIL']._serialized_end=9007 - _globals['_GENERATEBOOL']._serialized_start=9009 - _globals['_GENERATEBOOL']._serialized_end=9023 - _globals['_GENERATECARDNUMBER']._serialized_start=9025 - _globals['_GENERATECARDNUMBER']._serialized_end=9096 - _globals['_GENERATECITY']._serialized_start=9098 - _globals['_GENERATECITY']._serialized_end=9112 - _globals['_GENERATEDEFAULT']._serialized_start=9114 - _globals['_GENERATEDEFAULT']._serialized_end=9131 - _globals['_GENERATEE164PHONENUMBER']._serialized_start=9133 - _globals['_GENERATEE164PHONENUMBER']._serialized_end=9220 - _globals['_GENERATEFIRSTNAME']._serialized_start=9222 - _globals['_GENERATEFIRSTNAME']._serialized_end=9241 - _globals['_GENERATEFLOAT64']._serialized_start=9244 - _globals['_GENERATEFLOAT64']._serialized_end=9435 - _globals['_GENERATEFULLADDRESS']._serialized_start=9437 - _globals['_GENERATEFULLADDRESS']._serialized_end=9458 - _globals['_GENERATEFULLNAME']._serialized_start=9460 - _globals['_GENERATEFULLNAME']._serialized_end=9478 - _globals['_GENERATEGENDER']._serialized_start=9480 - _globals['_GENERATEGENDER']._serialized_end=9548 - _globals['_GENERATEINT64PHONENUMBER']._serialized_start=9550 - _globals['_GENERATEINT64PHONENUMBER']._serialized_end=9576 - _globals['_GENERATEINT64']._serialized_start=9579 - _globals['_GENERATEINT64']._serialized_end=9719 - _globals['_GENERATELASTNAME']._serialized_start=9721 - _globals['_GENERATELASTNAME']._serialized_end=9739 - _globals['_GENERATESHA256HASH']._serialized_start=9741 - _globals['_GENERATESHA256HASH']._serialized_end=9761 - _globals['_GENERATESSN']._serialized_start=9763 - _globals['_GENERATESSN']._serialized_end=9776 - _globals['_GENERATESTATE']._serialized_start=9778 - _globals['_GENERATESTATE']._serialized_end=9867 - _globals['_GENERATESTREETADDRESS']._serialized_start=9869 - _globals['_GENERATESTREETADDRESS']._serialized_end=9892 - _globals['_GENERATESTRINGPHONENUMBER']._serialized_start=9894 - _globals['_GENERATESTRINGPHONENUMBER']._serialized_end=9983 - _globals['_GENERATESTRING']._serialized_start=9985 - _globals['_GENERATESTRING']._serialized_end=10063 - _globals['_GENERATEUNIXTIMESTAMP']._serialized_start=10065 - _globals['_GENERATEUNIXTIMESTAMP']._serialized_end=10088 - _globals['_GENERATEUSERNAME']._serialized_start=10090 - _globals['_GENERATEUSERNAME']._serialized_end=10108 - _globals['_GENERATEUTCTIMESTAMP']._serialized_start=10110 - _globals['_GENERATEUTCTIMESTAMP']._serialized_end=10132 - _globals['_GENERATEUUID']._serialized_start=10134 - _globals['_GENERATEUUID']._serialized_end=10214 - _globals['_GENERATEZIPCODE']._serialized_start=10216 - _globals['_GENERATEZIPCODE']._serialized_end=10233 - _globals['_TRANSFORME164PHONENUMBER']._serialized_start=10235 - _globals['_TRANSFORME164PHONENUMBER']._serialized_end=10327 - _globals['_TRANSFORMFIRSTNAME']._serialized_start=10329 - _globals['_TRANSFORMFIRSTNAME']._serialized_end=10415 - _globals['_TRANSFORMFLOAT64']._serialized_start=10418 - _globals['_TRANSFORMFLOAT64']._serialized_end=10614 - _globals['_TRANSFORMFULLNAME']._serialized_start=10616 - _globals['_TRANSFORMFULLNAME']._serialized_end=10701 - _globals['_TRANSFORMINT64PHONENUMBER']._serialized_start=10703 - _globals['_TRANSFORMINT64PHONENUMBER']._serialized_end=10796 - _globals['_TRANSFORMINT64']._serialized_start=10799 - _globals['_TRANSFORMINT64']._serialized_end=10993 - _globals['_TRANSFORMLASTNAME']._serialized_start=10995 - _globals['_TRANSFORMLASTNAME']._serialized_end=11080 - _globals['_TRANSFORMPHONENUMBER']._serialized_start=11082 - _globals['_TRANSFORMPHONENUMBER']._serialized_end=11170 - _globals['_TRANSFORMSTRING']._serialized_start=11172 - _globals['_TRANSFORMSTRING']._serialized_end=11255 - _globals['_PASSTHROUGH']._serialized_start=11257 - _globals['_PASSTHROUGH']._serialized_end=11270 - _globals['_NULL']._serialized_start=11272 - _globals['_NULL']._serialized_end=11278 - _globals['_TRANSFORMJAVASCRIPT']._serialized_start=11280 - _globals['_TRANSFORMJAVASCRIPT']._serialized_end=11321 - _globals['_USERDEFINEDTRANSFORMERCONFIG']._serialized_start=11323 - _globals['_USERDEFINEDTRANSFORMERCONFIG']._serialized_end=11379 - _globals['_VALIDATEUSERJAVASCRIPTCODEREQUEST']._serialized_start=11381 - _globals['_VALIDATEUSERJAVASCRIPTCODEREQUEST']._serialized_end=11476 - _globals['_VALIDATEUSERJAVASCRIPTCODERESPONSE']._serialized_start=11478 - _globals['_VALIDATEUSERJAVASCRIPTCODERESPONSE']._serialized_end=11536 - _globals['_GENERATECATEGORICAL']._serialized_start=11538 - _globals['_GENERATECATEGORICAL']._serialized_end=11611 - _globals['_TRANSFORMCHARACTERSCRAMBLE']._serialized_start=11613 - _globals['_TRANSFORMCHARACTERSCRAMBLE']._serialized_end=11718 - _globals['_GENERATEJAVASCRIPT']._serialized_start=11720 - _globals['_GENERATEJAVASCRIPT']._serialized_end=11760 - _globals['_VALIDATEUSERREGEXCODEREQUEST']._serialized_start=11762 - _globals['_VALIDATEUSERREGEXCODEREQUEST']._serialized_end=11871 - _globals['_VALIDATEUSERREGEXCODERESPONSE']._serialized_start=11873 - _globals['_VALIDATEUSERREGEXCODERESPONSE']._serialized_end=11926 - _globals['_GENERATECOUNTRY']._serialized_start=11928 - _globals['_GENERATECOUNTRY']._serialized_end=12019 - _globals['_GETTRANSFORMPIIENTITIESREQUEST']._serialized_start=12021 - _globals['_GETTRANSFORMPIIENTITIESREQUEST']._serialized_end=12094 - _globals['_GETTRANSFORMPIIENTITIESRESPONSE']._serialized_start=12096 - _globals['_GETTRANSFORMPIIENTITIESRESPONSE']._serialized_end=12157 - _globals['_GENERATEBUSINESSNAME']._serialized_start=12159 - _globals['_GENERATEBUSINESSNAME']._serialized_end=12181 - _globals['_GENERATEIPADDRESS']._serialized_start=12183 - _globals['_GENERATEIPADDRESS']._serialized_end=12282 - _globals['_TRANSFORMERSSERVICE']._serialized_start=15599 - _globals['_TRANSFORMERSSERVICE']._serialized_end=17088 + _globals['_TRANSFORMPIITEXT']._serialized_end=7755 + _globals['_PIIDENYRECOGNIZER']._serialized_start=7757 + _globals['_PIIDENYRECOGNIZER']._serialized_end=7869 + _globals['_PIIANONYMIZER']._serialized_start=7872 + _globals['_PIIANONYMIZER']._serialized_end=8557 + _globals['_PIIANONYMIZER_REPLACE']._serialized_start=8132 + _globals['_PIIANONYMIZER_REPLACE']._serialized_end=8178 + _globals['_PIIANONYMIZER_REDACT']._serialized_start=8180 + _globals['_PIIANONYMIZER_REDACT']._serialized_end=8188 + _globals['_PIIANONYMIZER_MASK']._serialized_start=8191 + _globals['_PIIANONYMIZER_MASK']._serialized_end=8358 + _globals['_PIIANONYMIZER_HASH']._serialized_start=8361 + _globals['_PIIANONYMIZER_HASH']._serialized_end=8547 + _globals['_PIIANONYMIZER_HASH_HASHTYPE']._serialized_start=8438 + _globals['_PIIANONYMIZER_HASH_HASHTYPE']._serialized_end=8538 + _globals['_GENERATEEMAIL']._serialized_start=8559 + _globals['_GENERATEEMAIL']._serialized_end=8659 + _globals['_TRANSFORMEMAIL']._serialized_start=8662 + _globals['_TRANSFORMEMAIL']._serialized_end=9053 + _globals['_GENERATEBOOL']._serialized_start=9055 + _globals['_GENERATEBOOL']._serialized_end=9069 + _globals['_GENERATECARDNUMBER']._serialized_start=9071 + _globals['_GENERATECARDNUMBER']._serialized_end=9142 + _globals['_GENERATECITY']._serialized_start=9144 + _globals['_GENERATECITY']._serialized_end=9158 + _globals['_GENERATEDEFAULT']._serialized_start=9160 + _globals['_GENERATEDEFAULT']._serialized_end=9177 + _globals['_GENERATEE164PHONENUMBER']._serialized_start=9179 + _globals['_GENERATEE164PHONENUMBER']._serialized_end=9266 + _globals['_GENERATEFIRSTNAME']._serialized_start=9268 + _globals['_GENERATEFIRSTNAME']._serialized_end=9287 + _globals['_GENERATEFLOAT64']._serialized_start=9290 + _globals['_GENERATEFLOAT64']._serialized_end=9481 + _globals['_GENERATEFULLADDRESS']._serialized_start=9483 + _globals['_GENERATEFULLADDRESS']._serialized_end=9504 + _globals['_GENERATEFULLNAME']._serialized_start=9506 + _globals['_GENERATEFULLNAME']._serialized_end=9524 + _globals['_GENERATEGENDER']._serialized_start=9526 + _globals['_GENERATEGENDER']._serialized_end=9594 + _globals['_GENERATEINT64PHONENUMBER']._serialized_start=9596 + _globals['_GENERATEINT64PHONENUMBER']._serialized_end=9622 + _globals['_GENERATEINT64']._serialized_start=9625 + _globals['_GENERATEINT64']._serialized_end=9765 + _globals['_GENERATELASTNAME']._serialized_start=9767 + _globals['_GENERATELASTNAME']._serialized_end=9785 + _globals['_GENERATESHA256HASH']._serialized_start=9787 + _globals['_GENERATESHA256HASH']._serialized_end=9807 + _globals['_GENERATESSN']._serialized_start=9809 + _globals['_GENERATESSN']._serialized_end=9822 + _globals['_GENERATESTATE']._serialized_start=9824 + _globals['_GENERATESTATE']._serialized_end=9913 + _globals['_GENERATESTREETADDRESS']._serialized_start=9915 + _globals['_GENERATESTREETADDRESS']._serialized_end=9938 + _globals['_GENERATESTRINGPHONENUMBER']._serialized_start=9940 + _globals['_GENERATESTRINGPHONENUMBER']._serialized_end=10029 + _globals['_GENERATESTRING']._serialized_start=10031 + _globals['_GENERATESTRING']._serialized_end=10109 + _globals['_GENERATEUNIXTIMESTAMP']._serialized_start=10111 + _globals['_GENERATEUNIXTIMESTAMP']._serialized_end=10134 + _globals['_GENERATEUSERNAME']._serialized_start=10136 + _globals['_GENERATEUSERNAME']._serialized_end=10154 + _globals['_GENERATEUTCTIMESTAMP']._serialized_start=10156 + _globals['_GENERATEUTCTIMESTAMP']._serialized_end=10178 + _globals['_GENERATEUUID']._serialized_start=10180 + _globals['_GENERATEUUID']._serialized_end=10260 + _globals['_GENERATEZIPCODE']._serialized_start=10262 + _globals['_GENERATEZIPCODE']._serialized_end=10279 + _globals['_TRANSFORME164PHONENUMBER']._serialized_start=10281 + _globals['_TRANSFORME164PHONENUMBER']._serialized_end=10373 + _globals['_TRANSFORMFIRSTNAME']._serialized_start=10375 + _globals['_TRANSFORMFIRSTNAME']._serialized_end=10461 + _globals['_TRANSFORMFLOAT64']._serialized_start=10464 + _globals['_TRANSFORMFLOAT64']._serialized_end=10660 + _globals['_TRANSFORMFULLNAME']._serialized_start=10662 + _globals['_TRANSFORMFULLNAME']._serialized_end=10747 + _globals['_TRANSFORMINT64PHONENUMBER']._serialized_start=10749 + _globals['_TRANSFORMINT64PHONENUMBER']._serialized_end=10842 + _globals['_TRANSFORMINT64']._serialized_start=10845 + _globals['_TRANSFORMINT64']._serialized_end=11039 + _globals['_TRANSFORMLASTNAME']._serialized_start=11041 + _globals['_TRANSFORMLASTNAME']._serialized_end=11126 + _globals['_TRANSFORMPHONENUMBER']._serialized_start=11128 + _globals['_TRANSFORMPHONENUMBER']._serialized_end=11216 + _globals['_TRANSFORMSTRING']._serialized_start=11218 + _globals['_TRANSFORMSTRING']._serialized_end=11301 + _globals['_PASSTHROUGH']._serialized_start=11303 + _globals['_PASSTHROUGH']._serialized_end=11316 + _globals['_NULL']._serialized_start=11318 + _globals['_NULL']._serialized_end=11324 + _globals['_TRANSFORMJAVASCRIPT']._serialized_start=11326 + _globals['_TRANSFORMJAVASCRIPT']._serialized_end=11367 + _globals['_USERDEFINEDTRANSFORMERCONFIG']._serialized_start=11369 + _globals['_USERDEFINEDTRANSFORMERCONFIG']._serialized_end=11425 + _globals['_VALIDATEUSERJAVASCRIPTCODEREQUEST']._serialized_start=11427 + _globals['_VALIDATEUSERJAVASCRIPTCODEREQUEST']._serialized_end=11522 + _globals['_VALIDATEUSERJAVASCRIPTCODERESPONSE']._serialized_start=11524 + _globals['_VALIDATEUSERJAVASCRIPTCODERESPONSE']._serialized_end=11582 + _globals['_GENERATECATEGORICAL']._serialized_start=11584 + _globals['_GENERATECATEGORICAL']._serialized_end=11657 + _globals['_TRANSFORMCHARACTERSCRAMBLE']._serialized_start=11659 + _globals['_TRANSFORMCHARACTERSCRAMBLE']._serialized_end=11764 + _globals['_GENERATEJAVASCRIPT']._serialized_start=11766 + _globals['_GENERATEJAVASCRIPT']._serialized_end=11806 + _globals['_VALIDATEUSERREGEXCODEREQUEST']._serialized_start=11808 + _globals['_VALIDATEUSERREGEXCODEREQUEST']._serialized_end=11917 + _globals['_VALIDATEUSERREGEXCODERESPONSE']._serialized_start=11919 + _globals['_VALIDATEUSERREGEXCODERESPONSE']._serialized_end=11972 + _globals['_GENERATECOUNTRY']._serialized_start=11974 + _globals['_GENERATECOUNTRY']._serialized_end=12065 + _globals['_GETTRANSFORMPIIENTITIESREQUEST']._serialized_start=12067 + _globals['_GETTRANSFORMPIIENTITIESREQUEST']._serialized_end=12140 + _globals['_GETTRANSFORMPIIENTITIESRESPONSE']._serialized_start=12142 + _globals['_GETTRANSFORMPIIENTITIESRESPONSE']._serialized_end=12203 + _globals['_GENERATEBUSINESSNAME']._serialized_start=12205 + _globals['_GENERATEBUSINESSNAME']._serialized_end=12227 + _globals['_GENERATEIPADDRESS']._serialized_start=12229 + _globals['_GENERATEIPADDRESS']._serialized_end=12328 + _globals['_TRANSFORMERSSERVICE']._serialized_start=15645 + _globals['_TRANSFORMERSSERVICE']._serialized_end=17134 # @@protoc_insertion_point(module_scope) diff --git a/python/src/neosync/mgmt/v1alpha1/transformer_pb2.pyi b/python/src/neosync/mgmt/v1alpha1/transformer_pb2.pyi index ed45459202..49416250b1 100644 --- a/python/src/neosync/mgmt/v1alpha1/transformer_pb2.pyi +++ b/python/src/neosync/mgmt/v1alpha1/transformer_pb2.pyi @@ -431,18 +431,20 @@ class TransformerConfig(_message.Message): def __init__(self, generate_email_config: _Optional[_Union[GenerateEmail, _Mapping]] = ..., transform_email_config: _Optional[_Union[TransformEmail, _Mapping]] = ..., generate_bool_config: _Optional[_Union[GenerateBool, _Mapping]] = ..., generate_card_number_config: _Optional[_Union[GenerateCardNumber, _Mapping]] = ..., generate_city_config: _Optional[_Union[GenerateCity, _Mapping]] = ..., generate_e164_phone_number_config: _Optional[_Union[GenerateE164PhoneNumber, _Mapping]] = ..., generate_first_name_config: _Optional[_Union[GenerateFirstName, _Mapping]] = ..., generate_float64_config: _Optional[_Union[GenerateFloat64, _Mapping]] = ..., generate_full_address_config: _Optional[_Union[GenerateFullAddress, _Mapping]] = ..., generate_full_name_config: _Optional[_Union[GenerateFullName, _Mapping]] = ..., generate_gender_config: _Optional[_Union[GenerateGender, _Mapping]] = ..., generate_int64_phone_number_config: _Optional[_Union[GenerateInt64PhoneNumber, _Mapping]] = ..., generate_int64_config: _Optional[_Union[GenerateInt64, _Mapping]] = ..., generate_last_name_config: _Optional[_Union[GenerateLastName, _Mapping]] = ..., generate_sha256hash_config: _Optional[_Union[GenerateSha256Hash, _Mapping]] = ..., generate_ssn_config: _Optional[_Union[GenerateSSN, _Mapping]] = ..., generate_state_config: _Optional[_Union[GenerateState, _Mapping]] = ..., generate_street_address_config: _Optional[_Union[GenerateStreetAddress, _Mapping]] = ..., generate_string_phone_number_config: _Optional[_Union[GenerateStringPhoneNumber, _Mapping]] = ..., generate_string_config: _Optional[_Union[GenerateString, _Mapping]] = ..., generate_unixtimestamp_config: _Optional[_Union[GenerateUnixTimestamp, _Mapping]] = ..., generate_username_config: _Optional[_Union[GenerateUsername, _Mapping]] = ..., generate_utctimestamp_config: _Optional[_Union[GenerateUtcTimestamp, _Mapping]] = ..., generate_uuid_config: _Optional[_Union[GenerateUuid, _Mapping]] = ..., generate_zipcode_config: _Optional[_Union[GenerateZipcode, _Mapping]] = ..., transform_e164_phone_number_config: _Optional[_Union[TransformE164PhoneNumber, _Mapping]] = ..., transform_first_name_config: _Optional[_Union[TransformFirstName, _Mapping]] = ..., transform_float64_config: _Optional[_Union[TransformFloat64, _Mapping]] = ..., transform_full_name_config: _Optional[_Union[TransformFullName, _Mapping]] = ..., transform_int64_phone_number_config: _Optional[_Union[TransformInt64PhoneNumber, _Mapping]] = ..., transform_int64_config: _Optional[_Union[TransformInt64, _Mapping]] = ..., transform_last_name_config: _Optional[_Union[TransformLastName, _Mapping]] = ..., transform_phone_number_config: _Optional[_Union[TransformPhoneNumber, _Mapping]] = ..., transform_string_config: _Optional[_Union[TransformString, _Mapping]] = ..., passthrough_config: _Optional[_Union[Passthrough, _Mapping]] = ..., nullconfig: _Optional[_Union[Null, _Mapping]] = ..., user_defined_transformer_config: _Optional[_Union[UserDefinedTransformerConfig, _Mapping]] = ..., generate_default_config: _Optional[_Union[GenerateDefault, _Mapping]] = ..., transform_javascript_config: _Optional[_Union[TransformJavascript, _Mapping]] = ..., generate_categorical_config: _Optional[_Union[GenerateCategorical, _Mapping]] = ..., transform_character_scramble_config: _Optional[_Union[TransformCharacterScramble, _Mapping]] = ..., generate_javascript_config: _Optional[_Union[GenerateJavascript, _Mapping]] = ..., generate_country_config: _Optional[_Union[GenerateCountry, _Mapping]] = ..., transform_pii_text_config: _Optional[_Union[TransformPiiText, _Mapping]] = ..., generate_business_name_config: _Optional[_Union[GenerateBusinessName, _Mapping]] = ..., generate_ip_address_config: _Optional[_Union[GenerateIpAddress, _Mapping]] = ...) -> None: ... class TransformPiiText(_message.Message): - __slots__ = ("score_threshold", "default_anonymizer", "deny_recognizers", "allowed_entities", "allowed_phrases") + __slots__ = ("score_threshold", "default_anonymizer", "deny_recognizers", "allowed_entities", "allowed_phrases", "language") SCORE_THRESHOLD_FIELD_NUMBER: _ClassVar[int] DEFAULT_ANONYMIZER_FIELD_NUMBER: _ClassVar[int] DENY_RECOGNIZERS_FIELD_NUMBER: _ClassVar[int] ALLOWED_ENTITIES_FIELD_NUMBER: _ClassVar[int] ALLOWED_PHRASES_FIELD_NUMBER: _ClassVar[int] + LANGUAGE_FIELD_NUMBER: _ClassVar[int] score_threshold: float default_anonymizer: PiiAnonymizer deny_recognizers: _containers.RepeatedCompositeFieldContainer[PiiDenyRecognizer] allowed_entities: _containers.RepeatedScalarFieldContainer[str] allowed_phrases: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, score_threshold: _Optional[float] = ..., default_anonymizer: _Optional[_Union[PiiAnonymizer, _Mapping]] = ..., deny_recognizers: _Optional[_Iterable[_Union[PiiDenyRecognizer, _Mapping]]] = ..., allowed_entities: _Optional[_Iterable[str]] = ..., allowed_phrases: _Optional[_Iterable[str]] = ...) -> None: ... + language: str + def __init__(self, score_threshold: _Optional[float] = ..., default_anonymizer: _Optional[_Union[PiiAnonymizer, _Mapping]] = ..., deny_recognizers: _Optional[_Iterable[_Union[PiiDenyRecognizer, _Mapping]]] = ..., allowed_entities: _Optional[_Iterable[str]] = ..., allowed_phrases: _Optional[_Iterable[str]] = ..., language: _Optional[str] = ...) -> None: ... class PiiDenyRecognizer(_message.Message): __slots__ = ("name", "deny_words") From e23f6d3c6de6cc056825b297a991a86ac38aebf7 Mon Sep 17 00:00:00 2001 From: Nick Z <2420177+nickzelei@users.noreply.github.com> Date: Tue, 26 Nov 2024 14:12:40 -0800 Subject: [PATCH 2/3] adds ability to specify default presidio language --- backend/internal/cmds/mgmt/serve/connect/cmd.go | 15 ++++++++++++--- .../anonymization-service/anonymization.go | 4 ++-- .../v1alpha1/anonymization-service/service.go | 7 ++++--- internal/ee/transformers/functions/functions.go | 2 +- internal/json-anonymizer/json-anonymizer.go | 16 +++++++++------- .../transformers/transformer_initializer.go | 15 +++++++++++---- .../transformers/transformer_initializer_test.go | 7 ++++--- 7 files changed, 43 insertions(+), 23 deletions(-) diff --git a/backend/internal/cmds/mgmt/serve/connect/cmd.go b/backend/internal/cmds/mgmt/serve/connect/cmd.go index d770ea4758..23d8fe5c9b 100644 --- a/backend/internal/cmds/mgmt/serve/connect/cmd.go +++ b/backend/internal/cmds/mgmt/serve/connect/cmd.go @@ -560,9 +560,10 @@ func serve(ctx context.Context) error { ) anonymizationService := v1alpha1_anonymizationservice.New(&v1alpha1_anonymizationservice.Config{ - IsPresidioEnabled: ncloudlicense.IsValid(), - IsAuthEnabled: isAuthEnabled, - IsNeosyncCloud: ncloudlicense.IsValid(), + IsPresidioEnabled: ncloudlicense.IsValid(), + PresidioDefaultLanguage: getPresidioDefaultLanguage(), + IsAuthEnabled: isAuthEnabled, + IsNeosyncCloud: ncloudlicense.IsValid(), }, anonymizerMeter, useraccountService, presAnalyzeClient, presAnonClient, db) api.Handle( mgmtv1alpha1connect.NewAnonymizationServiceHandler( @@ -632,6 +633,14 @@ func serve(ctx context.Context) error { return nil } +func getPresidioDefaultLanguage() *string { + lang := viper.GetString("PRESIDIO_DEFAULT_LANGUAGE") + if lang == "" { + return nil + } + return &lang +} + func getPromClientFromEnvironment() (promapi.Client, error) { roundTripper := promapi.DefaultRoundTripper promApiKey := getPromApiKey() diff --git a/backend/services/mgmt/v1alpha1/anonymization-service/anonymization.go b/backend/services/mgmt/v1alpha1/anonymization-service/anonymization.go index e74f7359d6..5f46f5a2f9 100644 --- a/backend/services/mgmt/v1alpha1/anonymization-service/anonymization.go +++ b/backend/services/mgmt/v1alpha1/anonymization-service/anonymization.go @@ -67,7 +67,7 @@ func (s *Service) AnonymizeMany( jsonanonymizer.WithTransformerMappings(req.Msg.TransformerMappings), jsonanonymizer.WithDefaultTransformers(req.Msg.DefaultTransformers), jsonanonymizer.WithHaltOnFailure(req.Msg.HaltOnFailure), - jsonanonymizer.WithConditionalAnonymizeConfig(s.cfg.IsPresidioEnabled, s.analyze, s.anonymize), + jsonanonymizer.WithConditionalAnonymizeConfig(s.cfg.IsPresidioEnabled, s.analyze, s.anonymize, s.cfg.PresidioDefaultLanguage), ) if err != nil { return nil, err @@ -165,7 +165,7 @@ func (s *Service) AnonymizeSingle( anonymizer, err := jsonanonymizer.NewAnonymizer( jsonanonymizer.WithTransformerMappings(req.Msg.TransformerMappings), jsonanonymizer.WithDefaultTransformers(req.Msg.DefaultTransformers), - jsonanonymizer.WithConditionalAnonymizeConfig(s.cfg.IsPresidioEnabled, s.analyze, s.anonymize), + jsonanonymizer.WithConditionalAnonymizeConfig(s.cfg.IsPresidioEnabled, s.analyze, s.anonymize, s.cfg.PresidioDefaultLanguage), ) if err != nil { return nil, err diff --git a/backend/services/mgmt/v1alpha1/anonymization-service/service.go b/backend/services/mgmt/v1alpha1/anonymization-service/service.go index 372abf004b..61648d91aa 100644 --- a/backend/services/mgmt/v1alpha1/anonymization-service/service.go +++ b/backend/services/mgmt/v1alpha1/anonymization-service/service.go @@ -17,9 +17,10 @@ type Service struct { } type Config struct { - IsAuthEnabled bool - IsPresidioEnabled bool - IsNeosyncCloud bool + IsAuthEnabled bool + IsPresidioEnabled bool + PresidioDefaultLanguage *string + IsNeosyncCloud bool } func New( diff --git a/internal/ee/transformers/functions/functions.go b/internal/ee/transformers/functions/functions.go index d8343c9872..c442bb81ac 100644 --- a/internal/ee/transformers/functions/functions.go +++ b/internal/ee/transformers/functions/functions.go @@ -28,7 +28,7 @@ func TransformPiiText( allowedEntities := config.GetAllowedEntities() analyzeResp, err := analyzeClient.PostAnalyzeWithResponse(ctx, presidioapi.AnalyzeRequest{ Text: value, - Language: supportedLanguage, + Language: config.GetLanguage(), ScoreThreshold: &threshold, AdHocRecognizers: &adhocRecognizers, Entities: &allowedEntities, diff --git a/internal/json-anonymizer/json-anonymizer.go b/internal/json-anonymizer/json-anonymizer.go index 47fc4420e8..3cc04e9b77 100644 --- a/internal/json-anonymizer/json-anonymizer.go +++ b/internal/json-anonymizer/json-anonymizer.go @@ -30,8 +30,9 @@ type JsonAnonymizer struct { } type anonymizeConfig struct { - analyze presidioapi.AnalyzeInterface - anonymize presidioapi.AnonymizeInterface + analyze presidioapi.AnalyzeInterface + anonymize presidioapi.AnonymizeInterface + defaultLanguage *string } // Option is a functional option for configuring the Anonymizer @@ -73,12 +74,13 @@ func NewAnonymizer(opts ...Option) (*JsonAnonymizer, error) { } // WithAnonymizeConfig sets the analyze and anonymize clients for use by the presidio transformers only if isEnabled is true -func WithConditionalAnonymizeConfig(isEnabled bool, analyze presidioapi.AnalyzeInterface, anonymize presidioapi.AnonymizeInterface) Option { +func WithConditionalAnonymizeConfig(isEnabled bool, analyze presidioapi.AnalyzeInterface, anonymize presidioapi.AnonymizeInterface, defaultLanguage *string) Option { return func(ja *JsonAnonymizer) { if isEnabled && analyze != nil && anonymize != nil { ja.anonymizeConfig = &anonymizeConfig{ - analyze: analyze, - anonymize: anonymize, + analyze: analyze, + anonymize: anonymize, + defaultLanguage: defaultLanguage, } } } @@ -330,7 +332,7 @@ func initTransformerExecutors( executors := []*transformer.TransformerExecutor{} execOpts := []transformer.TransformerExecutorOption{} if anonymizeConfig != nil && anonymizeConfig.analyze != nil && anonymizeConfig.anonymize != nil { - execOpts = append(execOpts, transformer.WithTransformPiiTextConfig(anonymizeConfig.analyze, anonymizeConfig.anonymize)) + execOpts = append(execOpts, transformer.WithTransformPiiTextConfig(anonymizeConfig.analyze, anonymizeConfig.anonymize, anonymizeConfig.defaultLanguage)) } for _, mapping := range transformerMappings { @@ -356,7 +358,7 @@ func initDefaultTransformerExecutors( ) (*DefaultExecutors, error) { execOpts := []transformer.TransformerExecutorOption{} if anonymizeConfig != nil && anonymizeConfig.analyze != nil && anonymizeConfig.anonymize != nil { - execOpts = append(execOpts, transformer.WithTransformPiiTextConfig(anonymizeConfig.analyze, anonymizeConfig.anonymize)) + execOpts = append(execOpts, transformer.WithTransformPiiTextConfig(anonymizeConfig.analyze, anonymizeConfig.anonymize, anonymizeConfig.defaultLanguage)) } var stringExecutor, numberExecutor, booleanExecutor *transformer.TransformerExecutor diff --git a/worker/pkg/benthos/transformers/transformer_initializer.go b/worker/pkg/benthos/transformers/transformer_initializer.go index ddc2318802..9d27105161 100644 --- a/worker/pkg/benthos/transformers/transformer_initializer.go +++ b/worker/pkg/benthos/transformers/transformer_initializer.go @@ -24,13 +24,16 @@ type TransformerExecutorConfig struct { type transformPiiTextConfig struct { analyze presidioapi.AnalyzeInterface anonymize presidioapi.AnonymizeInterface + + defaultLanguage *string } -func WithTransformPiiTextConfig(analyze presidioapi.AnalyzeInterface, anonymize presidioapi.AnonymizeInterface) TransformerExecutorOption { +func WithTransformPiiTextConfig(analyze presidioapi.AnalyzeInterface, anonymize presidioapi.AnonymizeInterface, defaultLanguage *string) TransformerExecutorOption { return func(c *TransformerExecutorConfig) { c.transformPiiText = &transformPiiTextConfig{ - analyze: analyze, - anonymize: anonymize, + analyze: analyze, + anonymize: anonymize, + defaultLanguage: defaultLanguage, } } } @@ -592,6 +595,9 @@ func InitializeTransformerByConfigType(transformerConfig *mgmtv1alpha1.Transform return nil, fmt.Errorf("transformer: TransformPiiText is not enabled: %w", errors.ErrUnsupported) } config := transformerConfig.GetTransformPiiTextConfig() + if config.GetLanguage() == "" && execCfg.transformPiiText.defaultLanguage != nil { + config.Language = execCfg.transformPiiText.defaultLanguage + } return &TransformerExecutor{ Opts: nil, @@ -603,7 +609,8 @@ func InitializeTransformerByConfigType(transformerConfig *mgmtv1alpha1.Transform return ee_transformer_fns.TransformPiiText( context.Background(), execCfg.transformPiiText.analyze, execCfg.transformPiiText.anonymize, - config, valueStr, + config, + valueStr, ) }, }, nil diff --git a/worker/pkg/benthos/transformers/transformer_initializer_test.go b/worker/pkg/benthos/transformers/transformer_initializer_test.go index fef2fed919..29396bd19a 100644 --- a/worker/pkg/benthos/transformers/transformer_initializer_test.go +++ b/worker/pkg/benthos/transformers/transformer_initializer_test.go @@ -1565,9 +1565,10 @@ func Test_InitializeTransformerByConfigType(t *testing.T) { Return(&presidioapi.PostAnonymizeResponse{ JSON200: &presidioapi.AnonymizeResponse{Text: &mockText}, }, nil) + defaultLan := "en" execOpts := []TransformerExecutorOption{ - WithTransformPiiTextConfig(mockanalyze, mockanon), + WithTransformPiiTextConfig(mockanalyze, mockanon, &defaultLan), } executor, err := InitializeTransformerByConfigType(config, execOpts...) require.NoError(t, err) @@ -1601,9 +1602,9 @@ func Test_InitializeTransformerByConfigType(t *testing.T) { Return(&presidioapi.PostAnonymizeResponse{ JSON200: &presidioapi.AnonymizeResponse{Text: &mockText}, }, nil) - + defaultLan := "en" execOpts := []TransformerExecutorOption{ - WithTransformPiiTextConfig(mockanalyze, mockanon), + WithTransformPiiTextConfig(mockanalyze, mockanon, &defaultLan), } executor, err := InitializeTransformerByConfigType(config, execOpts...) require.NoError(t, err) From 6ab8bce1a07961445dd0e9c7d51f6ee01875c428 Mon Sep 17 00:00:00 2001 From: Nick Z <2420177+nickzelei@users.noreply.github.com> Date: Tue, 26 Nov 2024 14:25:42 -0800 Subject: [PATCH 3/3] fixes test --- worker/pkg/benthos/transformers/transformer_initializer.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/worker/pkg/benthos/transformers/transformer_initializer.go b/worker/pkg/benthos/transformers/transformer_initializer.go index 9d27105161..ce08356fcd 100644 --- a/worker/pkg/benthos/transformers/transformer_initializer.go +++ b/worker/pkg/benthos/transformers/transformer_initializer.go @@ -595,6 +595,9 @@ func InitializeTransformerByConfigType(transformerConfig *mgmtv1alpha1.Transform return nil, fmt.Errorf("transformer: TransformPiiText is not enabled: %w", errors.ErrUnsupported) } config := transformerConfig.GetTransformPiiTextConfig() + if config == nil { + config = &mgmtv1alpha1.TransformPiiText{} + } if config.GetLanguage() == "" && execCfg.transformPiiText.defaultLanguage != nil { config.Language = execCfg.transformPiiText.defaultLanguage }