diff --git a/api/v1/README.md b/api/v1/README.md
index e4b4831b595..13b6a97daf5 100644
--- a/api/v1/README.md
+++ b/api/v1/README.md
@@ -18,6 +18,7 @@
- [Container](#tetragon-Container)
- [CreateContainer](#tetragon-CreateContainer)
- [CreateContainer.AnnotationsEntry](#tetragon-CreateContainer-AnnotationsEntry)
+ - [EnvVar](#tetragon-EnvVar)
- [FileProperties](#tetragon-FileProperties)
- [GetHealthStatusRequest](#tetragon-GetHealthStatusRequest)
- [GetHealthStatusResponse](#tetragon-GetHealthStatusResponse)
@@ -460,6 +461,22 @@ found.
+
+
+### EnvVar
+Environment variable
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| Key | [string](#string) | | |
+| Value | [string](#string) | | |
+
+
+
+
+
+
### FileProperties
@@ -1032,6 +1049,7 @@ found.
| binary_properties | [BinaryProperties](#tetragon-BinaryProperties) | | Executed binary properties. This field is only available on ProcessExec events. |
| user | [UserRecord](#tetragon-UserRecord) | | UserRecord contains user information about the event. It is only supported when i) Tetragon is running as a systemd service or directly on the host, and ii) when the flag `--username-metadata` is set to "unix". In this case, the information is retrieved from the traditional user database `/etc/passwd` and no name services lookups are performed. The resolution will only be attempted for processes in the host namespace. Note that this resolution happens in user-space, which means that mapping might have changed between the in-kernel BPF hook being executed and the username resolution. |
| in_init_tree | [google.protobuf.BoolValue](#google-protobuf-BoolValue) | | If set to true, this process is containerized and is a member of the process tree rooted at pid=1 in its PID namespace. This is useful if, for example, you wish to discern whether a process was spawned using a tool like nsenter or kubectl exec. |
+| environment_variables | [EnvVar](#tetragon-EnvVar) | repeated | Environment variables passed to the binary at execution. |
diff --git a/api/v1/tetragon/codegen/eventchecker/eventchecker.pb.go b/api/v1/tetragon/codegen/eventchecker/eventchecker.pb.go
index 9178f9a610a..be027fd81a1 100644
--- a/api/v1/tetragon/codegen/eventchecker/eventchecker.pb.go
+++ b/api/v1/tetragon/codegen/eventchecker/eventchecker.pb.go
@@ -4532,28 +4532,92 @@ func (checker *UserRecordChecker) FromUserRecord(event *tetragon.UserRecord) *Us
return checker
}
+// EnvVarChecker implements a checker struct to check a EnvVar field
+type EnvVarChecker struct {
+ Key *stringmatcher.StringMatcher `json:"Key,omitempty"`
+ Value *stringmatcher.StringMatcher `json:"Value,omitempty"`
+}
+
+// NewEnvVarChecker creates a new EnvVarChecker
+func NewEnvVarChecker() *EnvVarChecker {
+ return &EnvVarChecker{}
+}
+
+// Get the type of the checker as a string
+func (checker *EnvVarChecker) GetCheckerType() string {
+ return "EnvVarChecker"
+}
+
+// Check checks a EnvVar field
+func (checker *EnvVarChecker) Check(event *tetragon.EnvVar) error {
+ if event == nil {
+ return fmt.Errorf("%s: EnvVar field is nil", CheckerLogPrefix(checker))
+ }
+
+ fieldChecks := func() error {
+ if checker.Key != nil {
+ if err := checker.Key.Match(event.Key); err != nil {
+ return fmt.Errorf("Key check failed: %w", err)
+ }
+ }
+ if checker.Value != nil {
+ if err := checker.Value.Match(event.Value); err != nil {
+ return fmt.Errorf("Value check failed: %w", err)
+ }
+ }
+ return nil
+ }
+ if err := fieldChecks(); err != nil {
+ return fmt.Errorf("%s: %w", CheckerLogPrefix(checker), err)
+ }
+ return nil
+}
+
+// WithKey adds a Key check to the EnvVarChecker
+func (checker *EnvVarChecker) WithKey(check *stringmatcher.StringMatcher) *EnvVarChecker {
+ checker.Key = check
+ return checker
+}
+
+// WithValue adds a Value check to the EnvVarChecker
+func (checker *EnvVarChecker) WithValue(check *stringmatcher.StringMatcher) *EnvVarChecker {
+ checker.Value = check
+ return checker
+}
+
+//FromEnvVar populates the EnvVarChecker using data from a EnvVar field
+func (checker *EnvVarChecker) FromEnvVar(event *tetragon.EnvVar) *EnvVarChecker {
+ if event == nil {
+ return checker
+ }
+ checker.Key = stringmatcher.Full(event.Key)
+ checker.Value = stringmatcher.Full(event.Value)
+ return checker
+}
+
// ProcessChecker implements a checker struct to check a Process field
type ProcessChecker struct {
- ExecId *stringmatcher.StringMatcher `json:"execId,omitempty"`
- Pid *uint32 `json:"pid,omitempty"`
- Uid *uint32 `json:"uid,omitempty"`
- Cwd *stringmatcher.StringMatcher `json:"cwd,omitempty"`
- Binary *stringmatcher.StringMatcher `json:"binary,omitempty"`
- Arguments *stringmatcher.StringMatcher `json:"arguments,omitempty"`
- Flags *stringmatcher.StringMatcher `json:"flags,omitempty"`
- StartTime *timestampmatcher.TimestampMatcher `json:"startTime,omitempty"`
- Auid *uint32 `json:"auid,omitempty"`
- Pod *PodChecker `json:"pod,omitempty"`
- Docker *stringmatcher.StringMatcher `json:"docker,omitempty"`
- ParentExecId *stringmatcher.StringMatcher `json:"parentExecId,omitempty"`
- Refcnt *uint32 `json:"refcnt,omitempty"`
- Cap *CapabilitiesChecker `json:"cap,omitempty"`
- Ns *NamespacesChecker `json:"ns,omitempty"`
- Tid *uint32 `json:"tid,omitempty"`
- ProcessCredentials *ProcessCredentialsChecker `json:"processCredentials,omitempty"`
- BinaryProperties *BinaryPropertiesChecker `json:"binaryProperties,omitempty"`
- User *UserRecordChecker `json:"user,omitempty"`
- InInitTree *bool `json:"inInitTree,omitempty"`
+ ExecId *stringmatcher.StringMatcher `json:"execId,omitempty"`
+ Pid *uint32 `json:"pid,omitempty"`
+ Uid *uint32 `json:"uid,omitempty"`
+ Cwd *stringmatcher.StringMatcher `json:"cwd,omitempty"`
+ Binary *stringmatcher.StringMatcher `json:"binary,omitempty"`
+ Arguments *stringmatcher.StringMatcher `json:"arguments,omitempty"`
+ Flags *stringmatcher.StringMatcher `json:"flags,omitempty"`
+ StartTime *timestampmatcher.TimestampMatcher `json:"startTime,omitempty"`
+ Auid *uint32 `json:"auid,omitempty"`
+ Pod *PodChecker `json:"pod,omitempty"`
+ Docker *stringmatcher.StringMatcher `json:"docker,omitempty"`
+ ParentExecId *stringmatcher.StringMatcher `json:"parentExecId,omitempty"`
+ Refcnt *uint32 `json:"refcnt,omitempty"`
+ Cap *CapabilitiesChecker `json:"cap,omitempty"`
+ Ns *NamespacesChecker `json:"ns,omitempty"`
+ Tid *uint32 `json:"tid,omitempty"`
+ ProcessCredentials *ProcessCredentialsChecker `json:"processCredentials,omitempty"`
+ BinaryProperties *BinaryPropertiesChecker `json:"binaryProperties,omitempty"`
+ User *UserRecordChecker `json:"user,omitempty"`
+ InInitTree *bool `json:"inInitTree,omitempty"`
+ EnvironmentVariables *EnvVarListMatcher `json:"environmentVariables,omitempty"`
}
// NewProcessChecker creates a new ProcessChecker
@@ -4688,6 +4752,11 @@ func (checker *ProcessChecker) Check(event *tetragon.Process) error {
return fmt.Errorf("InInitTree has value %v which does not match expected value %v", event.InInitTree.Value, *checker.InInitTree)
}
}
+ if checker.EnvironmentVariables != nil {
+ if err := checker.EnvironmentVariables.Check(event.EnvironmentVariables); err != nil {
+ return fmt.Errorf("EnvironmentVariables check failed: %w", err)
+ }
+ }
return nil
}
if err := fieldChecks(); err != nil {
@@ -4816,6 +4885,12 @@ func (checker *ProcessChecker) WithInInitTree(check bool) *ProcessChecker {
return checker
}
+// WithEnvironmentVariables adds a EnvironmentVariables check to the ProcessChecker
+func (checker *ProcessChecker) WithEnvironmentVariables(check *EnvVarListMatcher) *ProcessChecker {
+ checker.EnvironmentVariables = check
+ return checker
+}
+
//FromProcess populates the ProcessChecker using data from a Process field
func (checker *ProcessChecker) FromProcess(event *tetragon.Process) *ProcessChecker {
if event == nil {
@@ -4872,9 +4947,122 @@ func (checker *ProcessChecker) FromProcess(event *tetragon.Process) *ProcessChec
val := event.InInitTree.Value
checker.InInitTree = &val
}
+ {
+ var checks []*EnvVarChecker
+ for _, check := range event.EnvironmentVariables {
+ var convertedCheck *EnvVarChecker
+ if check != nil {
+ convertedCheck = NewEnvVarChecker().FromEnvVar(check)
+ }
+ checks = append(checks, convertedCheck)
+ }
+ lm := NewEnvVarListMatcher().WithOperator(listmatcher.Ordered).
+ WithValues(checks...)
+ checker.EnvironmentVariables = lm
+ }
+ return checker
+}
+
+// EnvVarListMatcher checks a list of *tetragon.EnvVar fields
+type EnvVarListMatcher struct {
+ Operator listmatcher.Operator `json:"operator"`
+ Values []*EnvVarChecker `json:"values"`
+}
+
+// NewEnvVarListMatcher creates a new EnvVarListMatcher. The checker defaults to a subset checker unless otherwise specified using WithOperator()
+func NewEnvVarListMatcher() *EnvVarListMatcher {
+ return &EnvVarListMatcher{
+ Operator: listmatcher.Subset,
+ }
+}
+
+// WithOperator sets the match kind for the EnvVarListMatcher
+func (checker *EnvVarListMatcher) WithOperator(operator listmatcher.Operator) *EnvVarListMatcher {
+ checker.Operator = operator
+ return checker
+}
+
+// WithValues sets the checkers that the EnvVarListMatcher should use
+func (checker *EnvVarListMatcher) WithValues(values ...*EnvVarChecker) *EnvVarListMatcher {
+ checker.Values = values
return checker
}
+// Check checks a list of *tetragon.EnvVar fields
+func (checker *EnvVarListMatcher) Check(values []*tetragon.EnvVar) error {
+ switch checker.Operator {
+ case listmatcher.Ordered:
+ return checker.orderedCheck(values)
+ case listmatcher.Unordered:
+ return checker.unorderedCheck(values)
+ case listmatcher.Subset:
+ return checker.subsetCheck(values)
+ default:
+ return fmt.Errorf("Unhandled ListMatcher operator %s", checker.Operator)
+ }
+}
+
+// orderedCheck checks a list of ordered *tetragon.EnvVar fields
+func (checker *EnvVarListMatcher) orderedCheck(values []*tetragon.EnvVar) error {
+ innerCheck := func(check *EnvVarChecker, value *tetragon.EnvVar) error {
+ if err := check.Check(value); err != nil {
+ return fmt.Errorf("EnvironmentVariables check failed: %w", err)
+ }
+ return nil
+ }
+
+ if len(checker.Values) != len(values) {
+ return fmt.Errorf("EnvVarListMatcher: Wanted %d elements, got %d", len(checker.Values), len(values))
+ }
+
+ for i, check := range checker.Values {
+ value := values[i]
+ if err := innerCheck(check, value); err != nil {
+ return fmt.Errorf("EnvVarListMatcher: Check failed on element %d: %w", i, err)
+ }
+ }
+
+ return nil
+}
+
+// unorderedCheck checks a list of unordered *tetragon.EnvVar fields
+func (checker *EnvVarListMatcher) unorderedCheck(values []*tetragon.EnvVar) error {
+ if len(checker.Values) != len(values) {
+ return fmt.Errorf("EnvVarListMatcher: Wanted %d elements, got %d", len(checker.Values), len(values))
+ }
+
+ return checker.subsetCheck(values)
+}
+
+// subsetCheck checks a subset of *tetragon.EnvVar fields
+func (checker *EnvVarListMatcher) subsetCheck(values []*tetragon.EnvVar) error {
+ innerCheck := func(check *EnvVarChecker, value *tetragon.EnvVar) error {
+ if err := check.Check(value); err != nil {
+ return fmt.Errorf("EnvironmentVariables check failed: %w", err)
+ }
+ return nil
+ }
+
+ numDesired := len(checker.Values)
+ numMatched := 0
+
+nextCheck:
+ for _, check := range checker.Values {
+ for _, value := range values {
+ if err := innerCheck(check, value); err == nil {
+ numMatched += 1
+ continue nextCheck
+ }
+ }
+ }
+
+ if numMatched < numDesired {
+ return fmt.Errorf("EnvVarListMatcher: Check failed, only matched %d elements but wanted %d", numMatched, numDesired)
+ }
+
+ return nil
+}
+
// KprobeSockChecker implements a checker struct to check a KprobeSock field
type KprobeSockChecker struct {
Family *stringmatcher.StringMatcher `json:"family,omitempty"`
diff --git a/api/v1/tetragon/tetragon.pb.go b/api/v1/tetragon/tetragon.pb.go
index 2b82bce92b1..4ee9ea3ea04 100644
--- a/api/v1/tetragon/tetragon.pb.go
+++ b/api/v1/tetragon/tetragon.pb.go
@@ -1306,6 +1306,59 @@ func (x *UserRecord) GetName() string {
return ""
}
+// Environment variable
+type EnvVar struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Key string `protobuf:"bytes,1,opt,name=Key,proto3" json:"Key,omitempty"`
+ Value string `protobuf:"bytes,2,opt,name=Value,proto3" json:"Value,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *EnvVar) Reset() {
+ *x = EnvVar{}
+ mi := &file_tetragon_tetragon_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *EnvVar) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EnvVar) ProtoMessage() {}
+
+func (x *EnvVar) ProtoReflect() protoreflect.Message {
+ mi := &file_tetragon_tetragon_proto_msgTypes[13]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EnvVar.ProtoReflect.Descriptor instead.
+func (*EnvVar) Descriptor() ([]byte, []int) {
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *EnvVar) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+
+func (x *EnvVar) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+
type Process struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Exec ID uniquely identifies the process over time across all the nodes in the cluster.
@@ -1417,14 +1470,16 @@ type Process struct {
// process tree rooted at pid=1 in its PID namespace. This is useful if,
// for example, you wish to discern whether a process was spawned using a
// tool like nsenter or kubectl exec.
- InInitTree *wrapperspb.BoolValue `protobuf:"bytes,20,opt,name=in_init_tree,json=inInitTree,proto3" json:"in_init_tree,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
+ InInitTree *wrapperspb.BoolValue `protobuf:"bytes,20,opt,name=in_init_tree,json=inInitTree,proto3" json:"in_init_tree,omitempty"`
+ // Environment variables passed to the binary at execution.
+ EnvironmentVariables []*EnvVar `protobuf:"bytes,21,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
}
func (x *Process) Reset() {
*x = Process{}
- mi := &file_tetragon_tetragon_proto_msgTypes[13]
+ mi := &file_tetragon_tetragon_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1436,7 +1491,7 @@ func (x *Process) String() string {
func (*Process) ProtoMessage() {}
func (x *Process) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[13]
+ mi := &file_tetragon_tetragon_proto_msgTypes[14]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1449,7 +1504,7 @@ func (x *Process) ProtoReflect() protoreflect.Message {
// Deprecated: Use Process.ProtoReflect.Descriptor instead.
func (*Process) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{13}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{14}
}
func (x *Process) GetExecId() string {
@@ -1592,6 +1647,13 @@ func (x *Process) GetInInitTree() *wrapperspb.BoolValue {
return nil
}
+func (x *Process) GetEnvironmentVariables() []*EnvVar {
+ if x != nil {
+ return x.EnvironmentVariables
+ }
+ return nil
+}
+
type ProcessExec struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Process that triggered the exec.
@@ -1606,7 +1668,7 @@ type ProcessExec struct {
func (x *ProcessExec) Reset() {
*x = ProcessExec{}
- mi := &file_tetragon_tetragon_proto_msgTypes[14]
+ mi := &file_tetragon_tetragon_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1618,7 +1680,7 @@ func (x *ProcessExec) String() string {
func (*ProcessExec) ProtoMessage() {}
func (x *ProcessExec) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[14]
+ mi := &file_tetragon_tetragon_proto_msgTypes[15]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1631,7 +1693,7 @@ func (x *ProcessExec) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessExec.ProtoReflect.Descriptor instead.
func (*ProcessExec) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{14}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{15}
}
func (x *ProcessExec) GetProcess() *Process {
@@ -1679,7 +1741,7 @@ type ProcessExit struct {
func (x *ProcessExit) Reset() {
*x = ProcessExit{}
- mi := &file_tetragon_tetragon_proto_msgTypes[15]
+ mi := &file_tetragon_tetragon_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1691,7 +1753,7 @@ func (x *ProcessExit) String() string {
func (*ProcessExit) ProtoMessage() {}
func (x *ProcessExit) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[15]
+ mi := &file_tetragon_tetragon_proto_msgTypes[16]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1704,7 +1766,7 @@ func (x *ProcessExit) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessExit.ProtoReflect.Descriptor instead.
func (*ProcessExit) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{15}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{16}
}
func (x *ProcessExit) GetProcess() *Process {
@@ -1768,7 +1830,7 @@ type KprobeSock struct {
func (x *KprobeSock) Reset() {
*x = KprobeSock{}
- mi := &file_tetragon_tetragon_proto_msgTypes[16]
+ mi := &file_tetragon_tetragon_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1780,7 +1842,7 @@ func (x *KprobeSock) String() string {
func (*KprobeSock) ProtoMessage() {}
func (x *KprobeSock) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[16]
+ mi := &file_tetragon_tetragon_proto_msgTypes[17]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1793,7 +1855,7 @@ func (x *KprobeSock) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeSock.ProtoReflect.Descriptor instead.
func (*KprobeSock) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{16}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{17}
}
func (x *KprobeSock) GetFamily() string {
@@ -1894,7 +1956,7 @@ type KprobeSkb struct {
func (x *KprobeSkb) Reset() {
*x = KprobeSkb{}
- mi := &file_tetragon_tetragon_proto_msgTypes[17]
+ mi := &file_tetragon_tetragon_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1906,7 +1968,7 @@ func (x *KprobeSkb) String() string {
func (*KprobeSkb) ProtoMessage() {}
func (x *KprobeSkb) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[17]
+ mi := &file_tetragon_tetragon_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1919,7 +1981,7 @@ func (x *KprobeSkb) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeSkb.ProtoReflect.Descriptor instead.
func (*KprobeSkb) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{17}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{18}
}
func (x *KprobeSkb) GetHash() uint32 {
@@ -2024,7 +2086,7 @@ type KprobeSockaddr struct {
func (x *KprobeSockaddr) Reset() {
*x = KprobeSockaddr{}
- mi := &file_tetragon_tetragon_proto_msgTypes[18]
+ mi := &file_tetragon_tetragon_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2036,7 +2098,7 @@ func (x *KprobeSockaddr) String() string {
func (*KprobeSockaddr) ProtoMessage() {}
func (x *KprobeSockaddr) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[18]
+ mi := &file_tetragon_tetragon_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2049,7 +2111,7 @@ func (x *KprobeSockaddr) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeSockaddr.ProtoReflect.Descriptor instead.
func (*KprobeSockaddr) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{18}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{19}
}
func (x *KprobeSockaddr) GetFamily() string {
@@ -2082,7 +2144,7 @@ type KprobeNetDev struct {
func (x *KprobeNetDev) Reset() {
*x = KprobeNetDev{}
- mi := &file_tetragon_tetragon_proto_msgTypes[19]
+ mi := &file_tetragon_tetragon_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2094,7 +2156,7 @@ func (x *KprobeNetDev) String() string {
func (*KprobeNetDev) ProtoMessage() {}
func (x *KprobeNetDev) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[19]
+ mi := &file_tetragon_tetragon_proto_msgTypes[20]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2107,7 +2169,7 @@ func (x *KprobeNetDev) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeNetDev.ProtoReflect.Descriptor instead.
func (*KprobeNetDev) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{19}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{20}
}
func (x *KprobeNetDev) GetName() string {
@@ -2129,7 +2191,7 @@ type KprobePath struct {
func (x *KprobePath) Reset() {
*x = KprobePath{}
- mi := &file_tetragon_tetragon_proto_msgTypes[20]
+ mi := &file_tetragon_tetragon_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2141,7 +2203,7 @@ func (x *KprobePath) String() string {
func (*KprobePath) ProtoMessage() {}
func (x *KprobePath) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[20]
+ mi := &file_tetragon_tetragon_proto_msgTypes[21]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2154,7 +2216,7 @@ func (x *KprobePath) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobePath.ProtoReflect.Descriptor instead.
func (*KprobePath) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{20}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{21}
}
func (x *KprobePath) GetMount() string {
@@ -2197,7 +2259,7 @@ type KprobeFile struct {
func (x *KprobeFile) Reset() {
*x = KprobeFile{}
- mi := &file_tetragon_tetragon_proto_msgTypes[21]
+ mi := &file_tetragon_tetragon_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2209,7 +2271,7 @@ func (x *KprobeFile) String() string {
func (*KprobeFile) ProtoMessage() {}
func (x *KprobeFile) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[21]
+ mi := &file_tetragon_tetragon_proto_msgTypes[22]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2222,7 +2284,7 @@ func (x *KprobeFile) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeFile.ProtoReflect.Descriptor instead.
func (*KprobeFile) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{21}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{22}
}
func (x *KprobeFile) GetMount() string {
@@ -2263,7 +2325,7 @@ type KprobeTruncatedBytes struct {
func (x *KprobeTruncatedBytes) Reset() {
*x = KprobeTruncatedBytes{}
- mi := &file_tetragon_tetragon_proto_msgTypes[22]
+ mi := &file_tetragon_tetragon_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2275,7 +2337,7 @@ func (x *KprobeTruncatedBytes) String() string {
func (*KprobeTruncatedBytes) ProtoMessage() {}
func (x *KprobeTruncatedBytes) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[22]
+ mi := &file_tetragon_tetragon_proto_msgTypes[23]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2288,7 +2350,7 @@ func (x *KprobeTruncatedBytes) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeTruncatedBytes.ProtoReflect.Descriptor instead.
func (*KprobeTruncatedBytes) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{22}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{23}
}
func (x *KprobeTruncatedBytes) GetBytesArg() []byte {
@@ -2316,7 +2378,7 @@ type KprobeCred struct {
func (x *KprobeCred) Reset() {
*x = KprobeCred{}
- mi := &file_tetragon_tetragon_proto_msgTypes[23]
+ mi := &file_tetragon_tetragon_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2328,7 +2390,7 @@ func (x *KprobeCred) String() string {
func (*KprobeCred) ProtoMessage() {}
func (x *KprobeCred) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[23]
+ mi := &file_tetragon_tetragon_proto_msgTypes[24]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2341,7 +2403,7 @@ func (x *KprobeCred) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeCred.ProtoReflect.Descriptor instead.
func (*KprobeCred) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{23}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{24}
}
func (x *KprobeCred) GetPermitted() []CapabilitiesType {
@@ -2376,7 +2438,7 @@ type KprobeLinuxBinprm struct {
func (x *KprobeLinuxBinprm) Reset() {
*x = KprobeLinuxBinprm{}
- mi := &file_tetragon_tetragon_proto_msgTypes[24]
+ mi := &file_tetragon_tetragon_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2388,7 +2450,7 @@ func (x *KprobeLinuxBinprm) String() string {
func (*KprobeLinuxBinprm) ProtoMessage() {}
func (x *KprobeLinuxBinprm) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[24]
+ mi := &file_tetragon_tetragon_proto_msgTypes[25]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2401,7 +2463,7 @@ func (x *KprobeLinuxBinprm) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeLinuxBinprm.ProtoReflect.Descriptor instead.
func (*KprobeLinuxBinprm) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{24}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{25}
}
func (x *KprobeLinuxBinprm) GetPath() string {
@@ -2435,7 +2497,7 @@ type KprobeCapability struct {
func (x *KprobeCapability) Reset() {
*x = KprobeCapability{}
- mi := &file_tetragon_tetragon_proto_msgTypes[25]
+ mi := &file_tetragon_tetragon_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2447,7 +2509,7 @@ func (x *KprobeCapability) String() string {
func (*KprobeCapability) ProtoMessage() {}
func (x *KprobeCapability) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[25]
+ mi := &file_tetragon_tetragon_proto_msgTypes[26]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2460,7 +2522,7 @@ func (x *KprobeCapability) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeCapability.ProtoReflect.Descriptor instead.
func (*KprobeCapability) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{25}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{26}
}
func (x *KprobeCapability) GetValue() *wrapperspb.Int32Value {
@@ -2489,7 +2551,7 @@ type KprobeUserNamespace struct {
func (x *KprobeUserNamespace) Reset() {
*x = KprobeUserNamespace{}
- mi := &file_tetragon_tetragon_proto_msgTypes[26]
+ mi := &file_tetragon_tetragon_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2501,7 +2563,7 @@ func (x *KprobeUserNamespace) String() string {
func (*KprobeUserNamespace) ProtoMessage() {}
func (x *KprobeUserNamespace) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[26]
+ mi := &file_tetragon_tetragon_proto_msgTypes[27]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2514,7 +2576,7 @@ func (x *KprobeUserNamespace) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeUserNamespace.ProtoReflect.Descriptor instead.
func (*KprobeUserNamespace) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{26}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{27}
}
func (x *KprobeUserNamespace) GetLevel() *wrapperspb.Int32Value {
@@ -2556,7 +2618,7 @@ type KprobeBpfAttr struct {
func (x *KprobeBpfAttr) Reset() {
*x = KprobeBpfAttr{}
- mi := &file_tetragon_tetragon_proto_msgTypes[27]
+ mi := &file_tetragon_tetragon_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2568,7 +2630,7 @@ func (x *KprobeBpfAttr) String() string {
func (*KprobeBpfAttr) ProtoMessage() {}
func (x *KprobeBpfAttr) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[27]
+ mi := &file_tetragon_tetragon_proto_msgTypes[28]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2581,7 +2643,7 @@ func (x *KprobeBpfAttr) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeBpfAttr.ProtoReflect.Descriptor instead.
func (*KprobeBpfAttr) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{27}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{28}
}
func (x *KprobeBpfAttr) GetProgType() string {
@@ -2616,7 +2678,7 @@ type KprobeBpfProg struct {
func (x *KprobeBpfProg) Reset() {
*x = KprobeBpfProg{}
- mi := &file_tetragon_tetragon_proto_msgTypes[28]
+ mi := &file_tetragon_tetragon_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2628,7 +2690,7 @@ func (x *KprobeBpfProg) String() string {
func (*KprobeBpfProg) ProtoMessage() {}
func (x *KprobeBpfProg) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[28]
+ mi := &file_tetragon_tetragon_proto_msgTypes[29]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2641,7 +2703,7 @@ func (x *KprobeBpfProg) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeBpfProg.ProtoReflect.Descriptor instead.
func (*KprobeBpfProg) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{28}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{29}
}
func (x *KprobeBpfProg) GetProgType() string {
@@ -2677,7 +2739,7 @@ type KprobePerfEvent struct {
func (x *KprobePerfEvent) Reset() {
*x = KprobePerfEvent{}
- mi := &file_tetragon_tetragon_proto_msgTypes[29]
+ mi := &file_tetragon_tetragon_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2689,7 +2751,7 @@ func (x *KprobePerfEvent) String() string {
func (*KprobePerfEvent) ProtoMessage() {}
func (x *KprobePerfEvent) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[29]
+ mi := &file_tetragon_tetragon_proto_msgTypes[30]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2702,7 +2764,7 @@ func (x *KprobePerfEvent) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobePerfEvent.ProtoReflect.Descriptor instead.
func (*KprobePerfEvent) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{29}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{30}
}
func (x *KprobePerfEvent) GetKprobeFunc() string {
@@ -2746,7 +2808,7 @@ type KprobeBpfMap struct {
func (x *KprobeBpfMap) Reset() {
*x = KprobeBpfMap{}
- mi := &file_tetragon_tetragon_proto_msgTypes[30]
+ mi := &file_tetragon_tetragon_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2758,7 +2820,7 @@ func (x *KprobeBpfMap) String() string {
func (*KprobeBpfMap) ProtoMessage() {}
func (x *KprobeBpfMap) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[30]
+ mi := &file_tetragon_tetragon_proto_msgTypes[31]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2771,7 +2833,7 @@ func (x *KprobeBpfMap) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeBpfMap.ProtoReflect.Descriptor instead.
func (*KprobeBpfMap) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{30}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{31}
}
func (x *KprobeBpfMap) GetMapType() string {
@@ -2819,7 +2881,7 @@ type SyscallId struct {
func (x *SyscallId) Reset() {
*x = SyscallId{}
- mi := &file_tetragon_tetragon_proto_msgTypes[31]
+ mi := &file_tetragon_tetragon_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2831,7 +2893,7 @@ func (x *SyscallId) String() string {
func (*SyscallId) ProtoMessage() {}
func (x *SyscallId) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[31]
+ mi := &file_tetragon_tetragon_proto_msgTypes[32]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2844,7 +2906,7 @@ func (x *SyscallId) ProtoReflect() protoreflect.Message {
// Deprecated: Use SyscallId.ProtoReflect.Descriptor instead.
func (*SyscallId) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{31}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{32}
}
func (x *SyscallId) GetId() uint32 {
@@ -2903,7 +2965,7 @@ type KprobeArgument struct {
func (x *KprobeArgument) Reset() {
*x = KprobeArgument{}
- mi := &file_tetragon_tetragon_proto_msgTypes[32]
+ mi := &file_tetragon_tetragon_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2915,7 +2977,7 @@ func (x *KprobeArgument) String() string {
func (*KprobeArgument) ProtoMessage() {}
func (x *KprobeArgument) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[32]
+ mi := &file_tetragon_tetragon_proto_msgTypes[33]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2928,7 +2990,7 @@ func (x *KprobeArgument) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeArgument.ProtoReflect.Descriptor instead.
func (*KprobeArgument) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{32}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{33}
}
func (x *KprobeArgument) GetArg() isKprobeArgument_Arg {
@@ -3437,7 +3499,7 @@ type ProcessKprobe struct {
func (x *ProcessKprobe) Reset() {
*x = ProcessKprobe{}
- mi := &file_tetragon_tetragon_proto_msgTypes[33]
+ mi := &file_tetragon_tetragon_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3449,7 +3511,7 @@ func (x *ProcessKprobe) String() string {
func (*ProcessKprobe) ProtoMessage() {}
func (x *ProcessKprobe) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[33]
+ mi := &file_tetragon_tetragon_proto_msgTypes[34]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3462,7 +3524,7 @@ func (x *ProcessKprobe) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessKprobe.ProtoReflect.Descriptor instead.
func (*ProcessKprobe) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{33}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{34}
}
func (x *ProcessKprobe) GetProcess() *Process {
@@ -3592,7 +3654,7 @@ type ProcessTracepoint struct {
func (x *ProcessTracepoint) Reset() {
*x = ProcessTracepoint{}
- mi := &file_tetragon_tetragon_proto_msgTypes[34]
+ mi := &file_tetragon_tetragon_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3604,7 +3666,7 @@ func (x *ProcessTracepoint) String() string {
func (*ProcessTracepoint) ProtoMessage() {}
func (x *ProcessTracepoint) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[34]
+ mi := &file_tetragon_tetragon_proto_msgTypes[35]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3617,7 +3679,7 @@ func (x *ProcessTracepoint) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessTracepoint.ProtoReflect.Descriptor instead.
func (*ProcessTracepoint) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{34}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{35}
}
func (x *ProcessTracepoint) GetProcess() *Process {
@@ -3720,7 +3782,7 @@ type ProcessUprobe struct {
func (x *ProcessUprobe) Reset() {
*x = ProcessUprobe{}
- mi := &file_tetragon_tetragon_proto_msgTypes[35]
+ mi := &file_tetragon_tetragon_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3732,7 +3794,7 @@ func (x *ProcessUprobe) String() string {
func (*ProcessUprobe) ProtoMessage() {}
func (x *ProcessUprobe) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[35]
+ mi := &file_tetragon_tetragon_proto_msgTypes[36]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3745,7 +3807,7 @@ func (x *ProcessUprobe) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessUprobe.ProtoReflect.Descriptor instead.
func (*ProcessUprobe) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{35}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{36}
}
func (x *ProcessUprobe) GetProcess() *Process {
@@ -3867,7 +3929,7 @@ type ProcessUsdt struct {
func (x *ProcessUsdt) Reset() {
*x = ProcessUsdt{}
- mi := &file_tetragon_tetragon_proto_msgTypes[36]
+ mi := &file_tetragon_tetragon_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3879,7 +3941,7 @@ func (x *ProcessUsdt) String() string {
func (*ProcessUsdt) ProtoMessage() {}
func (x *ProcessUsdt) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[36]
+ mi := &file_tetragon_tetragon_proto_msgTypes[37]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3892,7 +3954,7 @@ func (x *ProcessUsdt) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessUsdt.ProtoReflect.Descriptor instead.
func (*ProcessUsdt) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{36}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{37}
}
func (x *ProcessUsdt) GetProcess() *Process {
@@ -4005,7 +4067,7 @@ type ProcessLsm struct {
func (x *ProcessLsm) Reset() {
*x = ProcessLsm{}
- mi := &file_tetragon_tetragon_proto_msgTypes[37]
+ mi := &file_tetragon_tetragon_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4017,7 +4079,7 @@ func (x *ProcessLsm) String() string {
func (*ProcessLsm) ProtoMessage() {}
func (x *ProcessLsm) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[37]
+ mi := &file_tetragon_tetragon_proto_msgTypes[38]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4030,7 +4092,7 @@ func (x *ProcessLsm) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessLsm.ProtoReflect.Descriptor instead.
func (*ProcessLsm) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{37}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{38}
}
func (x *ProcessLsm) GetProcess() *Process {
@@ -4118,7 +4180,7 @@ type KernelModule struct {
func (x *KernelModule) Reset() {
*x = KernelModule{}
- mi := &file_tetragon_tetragon_proto_msgTypes[38]
+ mi := &file_tetragon_tetragon_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4130,7 +4192,7 @@ func (x *KernelModule) String() string {
func (*KernelModule) ProtoMessage() {}
func (x *KernelModule) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[38]
+ mi := &file_tetragon_tetragon_proto_msgTypes[39]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4143,7 +4205,7 @@ func (x *KernelModule) ProtoReflect() protoreflect.Message {
// Deprecated: Use KernelModule.ProtoReflect.Descriptor instead.
func (*KernelModule) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{38}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{39}
}
func (x *KernelModule) GetName() string {
@@ -4179,7 +4241,7 @@ type Test struct {
func (x *Test) Reset() {
*x = Test{}
- mi := &file_tetragon_tetragon_proto_msgTypes[39]
+ mi := &file_tetragon_tetragon_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4191,7 +4253,7 @@ func (x *Test) String() string {
func (*Test) ProtoMessage() {}
func (x *Test) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[39]
+ mi := &file_tetragon_tetragon_proto_msgTypes[40]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4204,7 +4266,7 @@ func (x *Test) ProtoReflect() protoreflect.Message {
// Deprecated: Use Test.ProtoReflect.Descriptor instead.
func (*Test) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{39}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{40}
}
func (x *Test) GetArg0() uint64 {
@@ -4244,7 +4306,7 @@ type GetHealthStatusRequest struct {
func (x *GetHealthStatusRequest) Reset() {
*x = GetHealthStatusRequest{}
- mi := &file_tetragon_tetragon_proto_msgTypes[40]
+ mi := &file_tetragon_tetragon_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4256,7 +4318,7 @@ func (x *GetHealthStatusRequest) String() string {
func (*GetHealthStatusRequest) ProtoMessage() {}
func (x *GetHealthStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[40]
+ mi := &file_tetragon_tetragon_proto_msgTypes[41]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4269,7 +4331,7 @@ func (x *GetHealthStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetHealthStatusRequest.ProtoReflect.Descriptor instead.
func (*GetHealthStatusRequest) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{40}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{41}
}
func (x *GetHealthStatusRequest) GetEventSet() []HealthStatusType {
@@ -4290,7 +4352,7 @@ type HealthStatus struct {
func (x *HealthStatus) Reset() {
*x = HealthStatus{}
- mi := &file_tetragon_tetragon_proto_msgTypes[41]
+ mi := &file_tetragon_tetragon_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4302,7 +4364,7 @@ func (x *HealthStatus) String() string {
func (*HealthStatus) ProtoMessage() {}
func (x *HealthStatus) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[41]
+ mi := &file_tetragon_tetragon_proto_msgTypes[42]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4315,7 +4377,7 @@ func (x *HealthStatus) ProtoReflect() protoreflect.Message {
// Deprecated: Use HealthStatus.ProtoReflect.Descriptor instead.
func (*HealthStatus) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{41}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{42}
}
func (x *HealthStatus) GetEvent() HealthStatusType {
@@ -4348,7 +4410,7 @@ type GetHealthStatusResponse struct {
func (x *GetHealthStatusResponse) Reset() {
*x = GetHealthStatusResponse{}
- mi := &file_tetragon_tetragon_proto_msgTypes[42]
+ mi := &file_tetragon_tetragon_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4360,7 +4422,7 @@ func (x *GetHealthStatusResponse) String() string {
func (*GetHealthStatusResponse) ProtoMessage() {}
func (x *GetHealthStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[42]
+ mi := &file_tetragon_tetragon_proto_msgTypes[43]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4373,7 +4435,7 @@ func (x *GetHealthStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetHealthStatusResponse.ProtoReflect.Descriptor instead.
func (*GetHealthStatusResponse) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{42}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{43}
}
func (x *GetHealthStatusResponse) GetHealthStatus() []*HealthStatus {
@@ -4402,7 +4464,7 @@ type ProcessLoader struct {
func (x *ProcessLoader) Reset() {
*x = ProcessLoader{}
- mi := &file_tetragon_tetragon_proto_msgTypes[43]
+ mi := &file_tetragon_tetragon_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4414,7 +4476,7 @@ func (x *ProcessLoader) String() string {
func (*ProcessLoader) ProtoMessage() {}
func (x *ProcessLoader) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[43]
+ mi := &file_tetragon_tetragon_proto_msgTypes[44]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4427,7 +4489,7 @@ func (x *ProcessLoader) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessLoader.ProtoReflect.Descriptor instead.
func (*ProcessLoader) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{43}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{44}
}
func (x *ProcessLoader) GetProcess() *Process {
@@ -4478,7 +4540,7 @@ type RuntimeHookRequest struct {
func (x *RuntimeHookRequest) Reset() {
*x = RuntimeHookRequest{}
- mi := &file_tetragon_tetragon_proto_msgTypes[44]
+ mi := &file_tetragon_tetragon_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4490,7 +4552,7 @@ func (x *RuntimeHookRequest) String() string {
func (*RuntimeHookRequest) ProtoMessage() {}
func (x *RuntimeHookRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[44]
+ mi := &file_tetragon_tetragon_proto_msgTypes[45]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4503,7 +4565,7 @@ func (x *RuntimeHookRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RuntimeHookRequest.ProtoReflect.Descriptor instead.
func (*RuntimeHookRequest) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{44}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{45}
}
func (x *RuntimeHookRequest) GetEvent() isRuntimeHookRequest_Event {
@@ -4540,7 +4602,7 @@ type RuntimeHookResponse struct {
func (x *RuntimeHookResponse) Reset() {
*x = RuntimeHookResponse{}
- mi := &file_tetragon_tetragon_proto_msgTypes[45]
+ mi := &file_tetragon_tetragon_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4552,7 +4614,7 @@ func (x *RuntimeHookResponse) String() string {
func (*RuntimeHookResponse) ProtoMessage() {}
func (x *RuntimeHookResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[45]
+ mi := &file_tetragon_tetragon_proto_msgTypes[46]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4565,7 +4627,7 @@ func (x *RuntimeHookResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RuntimeHookResponse.ProtoReflect.Descriptor instead.
func (*RuntimeHookResponse) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{45}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{46}
}
type Mount struct {
@@ -4584,7 +4646,7 @@ type Mount struct {
func (x *Mount) Reset() {
*x = Mount{}
- mi := &file_tetragon_tetragon_proto_msgTypes[46]
+ mi := &file_tetragon_tetragon_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4596,7 +4658,7 @@ func (x *Mount) String() string {
func (*Mount) ProtoMessage() {}
func (x *Mount) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[46]
+ mi := &file_tetragon_tetragon_proto_msgTypes[47]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4609,7 +4671,7 @@ func (x *Mount) ProtoReflect() protoreflect.Message {
// Deprecated: Use Mount.ProtoReflect.Descriptor instead.
func (*Mount) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{46}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{47}
}
func (x *Mount) GetDestination() string {
@@ -4679,7 +4741,7 @@ type CreateContainer struct {
func (x *CreateContainer) Reset() {
*x = CreateContainer{}
- mi := &file_tetragon_tetragon_proto_msgTypes[47]
+ mi := &file_tetragon_tetragon_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4691,7 +4753,7 @@ func (x *CreateContainer) String() string {
func (*CreateContainer) ProtoMessage() {}
func (x *CreateContainer) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[47]
+ mi := &file_tetragon_tetragon_proto_msgTypes[48]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4704,7 +4766,7 @@ func (x *CreateContainer) ProtoReflect() protoreflect.Message {
// Deprecated: Use CreateContainer.ProtoReflect.Descriptor instead.
func (*CreateContainer) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{47}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{48}
}
func (x *CreateContainer) GetCgroupsPath() string {
@@ -4793,7 +4855,7 @@ type StackTraceEntry struct {
func (x *StackTraceEntry) Reset() {
*x = StackTraceEntry{}
- mi := &file_tetragon_tetragon_proto_msgTypes[48]
+ mi := &file_tetragon_tetragon_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4805,7 +4867,7 @@ func (x *StackTraceEntry) String() string {
func (*StackTraceEntry) ProtoMessage() {}
func (x *StackTraceEntry) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[48]
+ mi := &file_tetragon_tetragon_proto_msgTypes[49]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4818,7 +4880,7 @@ func (x *StackTraceEntry) ProtoReflect() protoreflect.Message {
// Deprecated: Use StackTraceEntry.ProtoReflect.Descriptor instead.
func (*StackTraceEntry) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{48}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{49}
}
func (x *StackTraceEntry) GetAddress() uint64 {
@@ -5038,629 +5100,636 @@ var file_tetragon_tetragon_proto_rawDesc = []byte{
0x6c, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x04, 0x66, 0x69,
0x6c, 0x65, 0x22, 0x20, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc4, 0x06, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
- 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x06, 0x65, 0x78, 0x65, 0x63, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x70, 0x69, 0x64,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56,
- 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x75, 0x69, 0x64,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56,
- 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x77, 0x64,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x77, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62,
- 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x6e,
- 0x61, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74,
- 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74,
- 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
- 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x75, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04,
- 0x61, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x03, 0x70, 0x6f, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x64,
- 0x52, 0x03, 0x70, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x18,
- 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x24, 0x0a,
- 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x18,
- 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x65,
- 0x63, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x66, 0x63, 0x6e, 0x74, 0x18, 0x0d, 0x20,
- 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x66, 0x63, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x03, 0x63,
- 0x61, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73,
- 0x52, 0x03, 0x63, 0x61, 0x70, 0x12, 0x24, 0x0a, 0x02, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d,
- 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x02, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x03, 0x74,
- 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x30, 0x0a, 0x06, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x12, 0x10,
+ 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4b, 0x65, 0x79,
+ 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x07, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65,
+ 0x73, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x65, 0x63, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x70,
+ 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
- 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x74, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x13, 0x70,
- 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61,
- 0x6c, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65,
- 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43,
- 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x11, 0x62, 0x69,
- 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,
- 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
- 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
- 0x73, 0x52, 0x10, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
- 0x69, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x55, 0x73, 0x65,
- 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3c, 0x0a,
- 0x0c, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x18, 0x14, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
- 0x0a, 0x69, 0x6e, 0x49, 0x6e, 0x69, 0x74, 0x54, 0x72, 0x65, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x0b,
- 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x07, 0x70,
- 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52,
- 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
- 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73,
- 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
- 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73,
- 0x74, 0x6f, 0x72, 0x73, 0x22, 0xf6, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
- 0x45, 0x78, 0x69, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18,
+ 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x75,
+ 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
+ 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63,
+ 0x77, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x77, 0x64, 0x12, 0x16, 0x0a,
+ 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62,
+ 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61,
+ 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74,
+ 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x75, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x52, 0x04, 0x61, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x03, 0x70, 0x6f, 0x64, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50,
+ 0x6f, 0x64, 0x52, 0x03, 0x70, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x63, 0x6b, 0x65,
+ 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x12,
+ 0x24, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x69,
+ 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x45,
+ 0x78, 0x65, 0x63, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x66, 0x63, 0x6e, 0x74, 0x18,
+ 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x66, 0x63, 0x6e, 0x74, 0x12, 0x28, 0x0a,
+ 0x03, 0x63, 0x61, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
+ 0x65, 0x73, 0x52, 0x03, 0x63, 0x61, 0x70, 0x12, 0x24, 0x0a, 0x02, 0x6e, 0x73, 0x18, 0x0f, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4e,
+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x02, 0x6e, 0x73, 0x12, 0x2e, 0x0a,
+ 0x03, 0x74, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e,
+ 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x74, 0x69, 0x64, 0x12, 0x4d, 0x0a,
+ 0x13, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74,
+ 0x69, 0x61, 0x6c, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65,
+ 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
+ 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x11,
+ 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
+ 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x69, 0x65, 0x73, 0x52, 0x10, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x13, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x55,
+ 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12,
+ 0x3c, 0x0a, 0x0c, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x18,
+ 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x49, 0x6e, 0x69, 0x74, 0x54, 0x72, 0x65, 0x65, 0x12, 0x45, 0x0a,
+ 0x15, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x72,
+ 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74,
+ 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x14,
+ 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61,
+ 0x62, 0x6c, 0x65, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
+ 0x45, 0x78, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f,
- 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06,
- 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x69,
- 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x04,
- 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
- 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09,
- 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x09,
+ 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
- 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x8a, 0x02,
- 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06,
- 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61,
- 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f,
- 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f,
- 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61,
- 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, 0x64, 0x64, 0x72,
- 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52,
- 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06,
- 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f,
- 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xc9, 0x02, 0x0a, 0x09, 0x4b,
- 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6b, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03,
- 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x1a,
- 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
- 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61,
- 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x14,
- 0x0a, 0x05, 0x73, 0x61, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,
- 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70,
- 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74,
- 0x12, 0x14, 0x0a, 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52,
- 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0c,
- 0x73, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x65, 0x6e, 0x12, 0x22,
- 0x0a, 0x0d, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6f, 0x6c, 0x65, 0x6e, 0x18,
- 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x6c,
- 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0c,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x16,
- 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
- 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x50, 0x0a, 0x0e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65,
- 0x53, 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69,
- 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79,
- 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x61, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x22, 0x0a, 0x0c, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x4e, 0x65, 0x74, 0x44, 0x65, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6c, 0x0a, 0x0a,
- 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f,
- 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
- 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65,
- 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
- 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x6c, 0x0a, 0x0a, 0x4b, 0x70,
- 0x72, 0x6f, 0x62, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e,
- 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12,
- 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61,
- 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d,
- 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65,
- 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x14, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73,
- 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x41, 0x72, 0x67, 0x12, 0x1b, 0x0a,
- 0x09, 0x6f, 0x72, 0x69, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
- 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xbe, 0x01, 0x0a, 0x0a, 0x4b,
- 0x70, 0x72, 0x6f, 0x62, 0x65, 0x43, 0x72, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x70, 0x65, 0x72,
- 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
- 0x74, 0x69, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74,
- 0x74, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
- 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
- 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x54, 0x79,
- 0x70, 0x65, 0x52, 0x09, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x3c, 0x0a,
- 0x0b, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03,
- 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61,
- 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b,
- 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x5d, 0x0a, 0x11, 0x4b,
- 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72, 0x6d,
- 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65,
- 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
- 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x10, 0x4b, 0x70,
- 0x72, 0x6f, 0x62, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x31,
- 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd5, 0x01, 0x0a, 0x13, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65,
- 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a,
- 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49,
- 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c,
- 0x12, 0x32, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6f,
- 0x77, 0x6e, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x0a, 0x02, 0x6e, 0x73, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
- 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x02, 0x6e, 0x73, 0x22, 0x61, 0x0a,
- 0x0d, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a,
- 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x6e,
- 0x73, 0x6e, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x49, 0x6e, 0x73,
- 0x6e, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65,
- 0x22, 0x61, 0x0a, 0x0d, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x50, 0x72, 0x6f,
- 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a,
- 0x07, 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
- 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e,
- 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e,
- 0x61, 0x6d, 0x65, 0x22, 0x7f, 0x0a, 0x0f, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x65, 0x72,
- 0x66, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65,
- 0x46, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6f,
- 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x43, 0x6f, 0x6e, 0x66,
- 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65,
- 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x4f, 0x66,
- 0x66, 0x73, 0x65, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x0c, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42,
- 0x70, 0x66, 0x4d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12,
- 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
- 0x52, 0x07, 0x4b, 0x65, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x61, 0x6c,
- 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x45, 0x6e,
- 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x4d, 0x61, 0x78,
- 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x4e, 0x61,
- 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4d, 0x61, 0x70, 0x4e, 0x61, 0x6d,
- 0x65, 0x22, 0x2d, 0x0a, 0x09, 0x53, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x0e,
- 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10,
- 0x0a, 0x03, 0x61, 0x62, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x62, 0x69,
- 0x22, 0xed, 0x0c, 0x0a, 0x0e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d,
- 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x72,
- 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e,
- 0x67, 0x41, 0x72, 0x67, 0x12, 0x19, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12,
- 0x2e, 0x0a, 0x07, 0x73, 0x6b, 0x62, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x13, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x53, 0x6b, 0x62, 0x48, 0x00, 0x52, 0x06, 0x73, 0x6b, 0x62, 0x41, 0x72, 0x67, 0x12,
- 0x1b, 0x0a, 0x08, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x04, 0x48, 0x00, 0x52, 0x07, 0x73, 0x69, 0x7a, 0x65, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x09,
- 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48,
- 0x00, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08, 0x70,
- 0x61, 0x74, 0x68, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
- 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50,
- 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x41, 0x72, 0x67, 0x12, 0x31,
- 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x72,
- 0x67, 0x12, 0x50, 0x0a, 0x13, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62,
- 0x79, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
+ 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xf6, 0x01,
+ 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x69, 0x74, 0x12, 0x2b, 0x0a,
+ 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
+ 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
+ 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a,
+ 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
+ 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f,
+ 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63,
+ 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x8a, 0x02, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62,
+ 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a,
+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,
+ 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x12, 0x0a,
+ 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x61, 0x72,
+ 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a,
+ 0x05, 0x73, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x61,
+ 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x6f,
+ 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12,
+ 0x14, 0x0a, 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
+ 0x64, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18,
+ 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x14, 0x0a,
+ 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x22, 0xc9, 0x02, 0x0a, 0x09, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6b,
+ 0x62, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x61, 0x64, 0x64, 0x72,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a,
+ 0x05, 0x64, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61,
+ 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x70, 0x6f,
+ 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x12,
+ 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74,
+ 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63,
+ 0x50, 0x61, 0x74, 0x68, 0x4c, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x63, 0x5f, 0x70,
+ 0x61, 0x74, 0x68, 0x5f, 0x6f, 0x6c, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b,
+ 0x73, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x6c, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c,
+ 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22,
+ 0x50, 0x0a, 0x0e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64,
+ 0x72, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64,
+ 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a,
+ 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72,
+ 0x74, 0x22, 0x22, 0x0a, 0x0c, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4e, 0x65, 0x74, 0x44, 0x65,
+ 0x76, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6c, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50,
+ 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
+ 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a,
+ 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c,
+ 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
+ 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
+ 0x69, 0x6f, 0x6e, 0x22, 0x6c, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x69, 0x6c,
+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66,
+ 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67,
+ 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
+ 0x6e, 0x22, 0x50, 0x0a, 0x14, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x54, 0x72, 0x75, 0x6e, 0x63,
+ 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x79, 0x74,
+ 0x65, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x79,
+ 0x74, 0x65, 0x73, 0x41, 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x72, 0x69, 0x67, 0x5f, 0x73,
+ 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53,
+ 0x69, 0x7a, 0x65, 0x22, 0xbe, 0x01, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x43, 0x72,
+ 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x54, 0x79, 0x70,
+ 0x65, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09,
+ 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32,
+ 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62,
+ 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x66, 0x66,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
+ 0x69, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x22, 0x5d, 0x0a, 0x11, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4c, 0x69,
+ 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
+ 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a,
+ 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c,
+ 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
+ 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
+ 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x10, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x43, 0x61, 0x70,
+ 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd5,
+ 0x01, 0x0a, 0x13, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d,
+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x32, 0x0a, 0x05, 0x6f, 0x77, 0x6e,
+ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
+ 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x32, 0x0a,
+ 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55,
+ 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75,
+ 0x70, 0x12, 0x23, 0x0a, 0x02, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
+ 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
+ 0x63, 0x65, 0x52, 0x02, 0x6e, 0x73, 0x22, 0x61, 0x0a, 0x0d, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65,
+ 0x42, 0x70, 0x66, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54,
+ 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54,
+ 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a,
+ 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x61, 0x0a, 0x0d, 0x4b, 0x70, 0x72,
+ 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x50, 0x72, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72,
+ 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72,
+ 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e, 0x74,
+ 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x7f, 0x0a, 0x0f,
+ 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x65, 0x72, 0x66, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12,
+ 0x1e, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x12,
+ 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54,
+ 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x04, 0x52, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x50,
+ 0x72, 0x6f, 0x62, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04,
+ 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x9a, 0x01,
+ 0x0a, 0x0c, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x4d, 0x61, 0x70, 0x12, 0x18,
+ 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x53,
+ 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x4b, 0x65, 0x79, 0x53, 0x69,
+ 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65,
+ 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73,
+ 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x4d, 0x61, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x2d, 0x0a, 0x09, 0x53, 0x79,
+ 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x62, 0x69, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x62, 0x69, 0x22, 0xed, 0x0c, 0x0a, 0x0e, 0x4b, 0x70,
+ 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0a,
+ 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x67, 0x12, 0x19, 0x0a,
+ 0x07, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00,
+ 0x52, 0x06, 0x69, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12, 0x2e, 0x0a, 0x07, 0x73, 0x6b, 0x62, 0x5f,
+ 0x61, 0x72, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x65, 0x74, 0x72,
+ 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6b, 0x62, 0x48, 0x00,
+ 0x52, 0x06, 0x73, 0x6b, 0x62, 0x41, 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x08, 0x73, 0x69, 0x7a, 0x65,
+ 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x73, 0x69,
+ 0x7a, 0x65, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x61,
+ 0x72, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65,
+ 0x73, 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x61, 0x72, 0x67,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
+ 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x07,
+ 0x70, 0x61, 0x74, 0x68, 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f,
+ 0x61, 0x72, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72,
+ 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x48,
+ 0x00, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x72, 0x67, 0x12, 0x50, 0x0a, 0x13, 0x74, 0x72,
+ 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x72,
+ 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74,
+ 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x48, 0x00, 0x52, 0x11, 0x74, 0x72, 0x75, 0x6e, 0x63,
+ 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08,
+ 0x73, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65,
- 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x48, 0x00,
- 0x52, 0x11, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73,
- 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x67, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
- 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x07, 0x73,
- 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x61,
- 0x72, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x43, 0x72, 0x65, 0x64, 0x48, 0x00,
- 0x52, 0x07, 0x63, 0x72, 0x65, 0x64, 0x41, 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x08, 0x6c, 0x6f, 0x6e,
- 0x67, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x07, 0x6c,
- 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x67, 0x12, 0x3b, 0x0a, 0x0c, 0x62, 0x70, 0x66, 0x5f, 0x61, 0x74,
- 0x74, 0x72, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70,
- 0x66, 0x41, 0x74, 0x74, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x70, 0x66, 0x41, 0x74, 0x74, 0x72,
- 0x41, 0x72, 0x67, 0x12, 0x41, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x66, 0x5f, 0x65, 0x76, 0x65, 0x6e,
- 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65,
- 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x65, 0x72,
- 0x66, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x66, 0x45, 0x76,
- 0x65, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12, 0x38, 0x0a, 0x0b, 0x62, 0x70, 0x66, 0x5f, 0x6d, 0x61,
- 0x70, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65,
- 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66,
- 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x09, 0x62, 0x70, 0x66, 0x4d, 0x61, 0x70, 0x41, 0x72, 0x67,
- 0x12, 0x1b, 0x0a, 0x08, 0x75, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0f, 0x20, 0x01,
- 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x75, 0x69, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12, 0x51, 0x0a,
- 0x12, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f,
- 0x61, 0x72, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72,
- 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e,
- 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10,
- 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x41, 0x72, 0x67,
- 0x12, 0x43, 0x0a, 0x0e, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x61,
- 0x72, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69,
- 0x6c, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
- 0x74, 0x79, 0x41, 0x72, 0x67, 0x12, 0x56, 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
- 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x72, 0x67,
- 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
- 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74,
- 0x69, 0x61, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43,
- 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x41, 0x72, 0x67, 0x12, 0x39, 0x0a,
- 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x14, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x55, 0x73,
- 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x75,
- 0x73, 0x65, 0x72, 0x4e, 0x73, 0x41, 0x72, 0x67, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75,
- 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x4d, 0x6f,
- 0x64, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x72,
- 0x67, 0x12, 0x29, 0x0a, 0x10, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x5f,
- 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x6b,
- 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x43, 0x61, 0x70, 0x54, 0x41, 0x72, 0x67, 0x12, 0x30, 0x0a, 0x13,
- 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f,
- 0x61, 0x72, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x70,
- 0x49, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x67, 0x12, 0x2c,
- 0x0a, 0x11, 0x63, 0x61, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f,
- 0x61, 0x72, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x61, 0x70,
- 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x41, 0x72, 0x67, 0x12, 0x2c, 0x0a, 0x11,
- 0x63, 0x61, 0x70, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x72,
- 0x67, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x61, 0x70, 0x45, 0x66,
- 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x72, 0x67, 0x12, 0x47, 0x0a, 0x10, 0x6c, 0x69,
- 0x6e, 0x75, 0x78, 0x5f, 0x62, 0x69, 0x6e, 0x70, 0x72, 0x6d, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1a,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
- 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72,
- 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72, 0x6d,
- 0x41, 0x72, 0x67, 0x12, 0x38, 0x0a, 0x0b, 0x6e, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x61,
- 0x72, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4e, 0x65, 0x74, 0x44, 0x65, 0x76,
- 0x48, 0x00, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x44, 0x65, 0x76, 0x41, 0x72, 0x67, 0x12, 0x32, 0x0a,
- 0x0b, 0x62, 0x70, 0x66, 0x5f, 0x63, 0x6d, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1c, 0x20, 0x01,
- 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x42, 0x70,
- 0x66, 0x43, 0x6d, 0x64, 0x48, 0x00, 0x52, 0x09, 0x62, 0x70, 0x66, 0x43, 0x6d, 0x64, 0x41, 0x72,
- 0x67, 0x12, 0x34, 0x0a, 0x0a, 0x73, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18,
- 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
- 0x2e, 0x53, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x48, 0x00, 0x52, 0x09, 0x73, 0x79,
- 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x6f, 0x63, 0x6b, 0x61,
- 0x64, 0x64, 0x72, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
- 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53,
- 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x6f, 0x63, 0x6b, 0x61,
- 0x64, 0x64, 0x72, 0x41, 0x72, 0x67, 0x12, 0x3b, 0x0a, 0x0c, 0x62, 0x70, 0x66, 0x5f, 0x70, 0x72,
- 0x6f, 0x67, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70,
- 0x66, 0x50, 0x72, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x70, 0x66, 0x50, 0x72, 0x6f, 0x67,
- 0x41, 0x72, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x12, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x61, 0x72, 0x67,
- 0x22, 0x95, 0x05, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50,
- 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12,
- 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
- 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75,
- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12,
- 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
- 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41,
- 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x30, 0x0a,
- 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
- 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41,
- 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12,
- 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
- 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62,
- 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
- 0x47, 0x0a, 0x12, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f,
- 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65,
- 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63,
- 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x74,
- 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69,
- 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70,
- 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x72, 0x65, 0x74,
- 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e,
- 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
- 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
- 0x74, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61,
- 0x63, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,
- 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54,
- 0x72, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53,
- 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63,
- 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
+ 0x53, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x07, 0x73, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x67, 0x12,
+ 0x31, 0x0a, 0x08, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72,
+ 0x6f, 0x62, 0x65, 0x43, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x65, 0x64, 0x41,
+ 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x08, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0b,
+ 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x67, 0x12,
+ 0x3b, 0x0a, 0x0c, 0x62, 0x70, 0x66, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x72, 0x67, 0x18,
+ 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x41, 0x74, 0x74, 0x72, 0x48, 0x00,
+ 0x52, 0x0a, 0x62, 0x70, 0x66, 0x41, 0x74, 0x74, 0x72, 0x41, 0x72, 0x67, 0x12, 0x41, 0x0a, 0x0e,
+ 0x70, 0x65, 0x72, 0x66, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0d,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
+ 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x65, 0x72, 0x66, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48,
+ 0x00, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x66, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12,
+ 0x38, 0x0a, 0x0b, 0x62, 0x70, 0x66, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0e,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
+ 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x09,
+ 0x62, 0x70, 0x66, 0x4d, 0x61, 0x70, 0x41, 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x08, 0x75, 0x69, 0x6e,
+ 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x75,
+ 0x69, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12, 0x51, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x10, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70,
+ 0x72, 0x6f, 0x62, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d,
+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x41, 0x72, 0x67, 0x12, 0x43, 0x0a, 0x0e, 0x63, 0x61, 0x70,
+ 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72,
+ 0x6f, 0x62, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52,
+ 0x0d, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x72, 0x67, 0x12, 0x56,
+ 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e,
+ 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
+ 0x73, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x48, 0x00, 0x52,
+ 0x15, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
+ 0x61, 0x6c, 0x73, 0x41, 0x72, 0x67, 0x12, 0x39, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e,
+ 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x73, 0x41, 0x72,
+ 0x67, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18,
+ 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52,
+ 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x72, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x6b, 0x65,
+ 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x16,
+ 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x43, 0x61,
+ 0x70, 0x54, 0x41, 0x72, 0x67, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x68,
+ 0x65, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x17, 0x20, 0x01,
+ 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x70, 0x49, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x67, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x61, 0x70, 0x5f, 0x70,
+ 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x18, 0x20, 0x01,
+ 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x61, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74,
+ 0x65, 0x64, 0x41, 0x72, 0x67, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x66, 0x66,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09,
+ 0x48, 0x00, 0x52, 0x0f, 0x63, 0x61, 0x70, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
+ 0x41, 0x72, 0x67, 0x12, 0x47, 0x0a, 0x10, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x5f, 0x62, 0x69, 0x6e,
+ 0x70, 0x72, 0x6d, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
+ 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4c,
+ 0x69, 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x69,
+ 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72, 0x6d, 0x41, 0x72, 0x67, 0x12, 0x38, 0x0a, 0x0b,
+ 0x6e, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72,
+ 0x6f, 0x62, 0x65, 0x4e, 0x65, 0x74, 0x44, 0x65, 0x76, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x65, 0x74,
+ 0x44, 0x65, 0x76, 0x41, 0x72, 0x67, 0x12, 0x32, 0x0a, 0x0b, 0x62, 0x70, 0x66, 0x5f, 0x63, 0x6d,
+ 0x64, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x42, 0x70, 0x66, 0x43, 0x6d, 0x64, 0x48, 0x00, 0x52,
+ 0x09, 0x62, 0x70, 0x66, 0x43, 0x6d, 0x64, 0x41, 0x72, 0x67, 0x12, 0x34, 0x0a, 0x0a, 0x73, 0x79,
+ 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
+ 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x53, 0x79, 0x73, 0x63, 0x61, 0x6c,
+ 0x6c, 0x49, 0x64, 0x48, 0x00, 0x52, 0x09, 0x73, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64,
+ 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x61, 0x72, 0x67,
+ 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
+ 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64, 0x72,
+ 0x48, 0x00, 0x52, 0x0b, 0x73, 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64, 0x72, 0x41, 0x72, 0x67, 0x12,
+ 0x3b, 0x0a, 0x0c, 0x62, 0x70, 0x66, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x5f, 0x61, 0x72, 0x67, 0x18,
+ 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x50, 0x72, 0x6f, 0x67, 0x48, 0x00,
+ 0x52, 0x0a, 0x62, 0x70, 0x66, 0x50, 0x72, 0x6f, 0x67, 0x41, 0x72, 0x67, 0x12, 0x14, 0x0a, 0x05,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x22, 0x95, 0x05, 0x0a, 0x0d, 0x50, 0x72,
+ 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x70,
+ 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52,
- 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61,
- 0x74, 0x61, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65,
- 0x6e, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf7, 0x02, 0x0a, 0x11, 0x50, 0x72, 0x6f,
- 0x63, 0x65, 0x73, 0x73, 0x54, 0x72, 0x61, 0x63, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2b,
- 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
- 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65,
- 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06,
- 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x12, 0x14,
- 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65,
- 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70,
- 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72,
- 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d,
- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e,
- 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20,
- 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b,
- 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a,
- 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67,
- 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0b,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
- 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f,
- 0x72, 0x73, 0x22, 0xdd, 0x03, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x55, 0x70,
- 0x72, 0x6f, 0x62, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
- 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
- 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f,
- 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04,
- 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68,
- 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69,
- 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70,
- 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
+ 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73,
+ 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
+ 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+ 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
+ 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+ 0x52, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x12, 0x6b, 0x65, 0x72, 0x6e,
+ 0x65, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x07,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
+ 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
+ 0x10, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63,
+ 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61,
+ 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72,
+ 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67,
+ 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a,
+ 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x63,
+ 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61,
+ 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18,
+ 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74,
+ 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72,
- 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67,
- 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52,
- 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f,
- 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63,
- 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
- 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x24,
- 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x5f, 0x63, 0x74, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
- 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x43, 0x74, 0x72, 0x4f, 0x66,
- 0x66, 0x73, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c,
- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
- 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70,
- 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x64, 0x61,
- 0x74, 0x61, 0x22, 0x9d, 0x03, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x55, 0x73,
- 0x64, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50,
- 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12,
- 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
- 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61,
- 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a,
- 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
- 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f,
- 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12,
- 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67,
- 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
- 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e,
- 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18,
- 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61,
- 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11,
- 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
- 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x06,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74,
+ 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74,
+ 0x61, 0x22, 0xf7, 0x02, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x72, 0x61,
+ 0x63, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65,
+ 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f,
+ 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
+ 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12,
+ 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x06, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a,
+ 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67,
+ 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70,
+ 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x06,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74,
0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
- 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61,
- 0x67, 0x73, 0x22, 0x82, 0x03, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x73,
- 0x6d, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72,
- 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29,
- 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
- 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
- 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f,
- 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12,
- 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67,
- 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
- 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e,
- 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
- 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18,
- 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61,
- 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07,
+ 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e,
+ 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e,
+ 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
+ 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xdd, 0x03, 0x0a, 0x0d,
+ 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x55, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x2b, 0x0a,
+ 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
- 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08,
- 0x69, 0x6d, 0x61, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
- 0x69, 0x6d, 0x61, 0x48, 0x61, 0x73, 0x68, 0x22, 0x96, 0x01, 0x0a, 0x0c, 0x4b, 0x65, 0x72, 0x6e,
- 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0c,
- 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b,
- 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6b, 0x12, 0x33, 0x0a, 0x07, 0x74,
- 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x42,
- 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64,
- 0x22, 0x56, 0x0a, 0x04, 0x54, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x30,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67, 0x30, 0x12, 0x12, 0x0a, 0x04,
- 0x61, 0x72, 0x67, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67, 0x31,
- 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04,
- 0x61, 0x72, 0x67, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x33, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67, 0x33, 0x22, 0x51, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x48,
- 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
- 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70,
- 0x65, 0x52, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x0c,
- 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x05,
- 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65,
- 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x34,
- 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c,
- 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x73, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x56,
- 0x0a, 0x17, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x68, 0x65, 0x61,
- 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c,
- 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x63, 0x65,
- 0x73, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63,
- 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72,
- 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72,
- 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x69,
- 0x6c, 0x64, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c,
- 0x64, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50,
- 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2f,
- 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
+ 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d,
+ 0x62, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
+ 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61,
+ 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04,
+ 0x61, 0x72, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75,
+ 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61,
+ 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f,
+ 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f,
- 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22,
- 0x64, 0x0a, 0x12, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43,
- 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
- 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05,
- 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
- 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x05,
- 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74,
- 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xca, 0x03,
- 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x50, 0x61, 0x74, 0x68,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x50,
- 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x12, 0x4c, 0x0a,
- 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x72,
- 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x41, 0x6e,
- 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b,
- 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63,
- 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d,
- 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44,
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a,
- 0x06, 0x70, 0x6f, 0x64, 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70,
- 0x6f, 0x64, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65,
- 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6f, 0x64,
- 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e,
- 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67,
- 0x65, 0x12, 0x27, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4d, 0x6f, 0x75,
- 0x6e, 0x74, 0x52, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e,
- 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
- 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
- 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x73, 0x0a, 0x0f, 0x53, 0x74,
- 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x0a,
- 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07,
- 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65,
- 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12,
- 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
- 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2a,
- 0xdb, 0x03, 0x0a, 0x0c, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x12, 0x19, 0x0a, 0x15, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f,
- 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4b,
- 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x53,
- 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43,
- 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x4c, 0x4c, 0x4f, 0x57, 0x46, 0x44, 0x10, 0x02, 0x12,
- 0x19, 0x0a, 0x15, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
- 0x5f, 0x53, 0x49, 0x47, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x4b, 0x50,
- 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x46, 0x4f,
- 0x4c, 0x4c, 0x4f, 0x57, 0x46, 0x44, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x4b, 0x50, 0x52, 0x4f,
- 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49,
- 0x44, 0x45, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41,
- 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x50, 0x59, 0x46, 0x44, 0x10, 0x06, 0x12, 0x18,
+ 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12,
+ 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x5f, 0x63,
+ 0x74, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x0c, 0x72, 0x65, 0x66, 0x43, 0x74, 0x72, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2e, 0x0a,
+ 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e,
+ 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a,
+ 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67,
+ 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9d, 0x03, 0x0a, 0x0b,
+ 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x55, 0x73, 0x64, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x70,
+ 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
+ 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52,
+ 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69,
+ 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69,
+ 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63,
+ 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f,
+ 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
+ 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73,
+ 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
+ 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72,
+ 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65,
+ 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
+ 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0c,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x82, 0x03, 0x0a, 0x0a,
+ 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x73, 0x6d, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72,
+ 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07,
+ 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63,
+ 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f,
+ 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
+ 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73,
+ 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
+ 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
+ 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72,
+ 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65,
+ 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x5f, 0x68, 0x61, 0x73,
+ 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x48, 0x61, 0x73, 0x68,
+ 0x22, 0x96, 0x01, 0x0a, 0x0c, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x75, 0x6c,
+ 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x5f, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f,
+ 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x4f, 0x6b, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x42, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65,
+ 0x52, 0x07, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x22, 0x56, 0x0a, 0x04, 0x54, 0x65, 0x73,
+ 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x04, 0x61, 0x72, 0x67, 0x30, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x31, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67,
+ 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67, 0x32, 0x12, 0x12, 0x0a,
+ 0x04, 0x61, 0x72, 0x67, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67,
+ 0x33, 0x22, 0x51, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x65,
+ 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a,
+ 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x53, 0x65, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
+ 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65,
+ 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a,
+ 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x56, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x48, 0x65,
+ 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72,
+ 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
+ 0xc6, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65,
+ 0x72, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72,
+ 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x12,
+ 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61,
+ 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x64, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x06,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
+ 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52,
+ 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73,
+ 0x74, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61,
+ 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x64, 0x0a, 0x12, 0x52, 0x75, 0x6e, 0x74,
+ 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45,
+ 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x15,
+ 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x05, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20,
+ 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07,
+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xca, 0x03, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x67,
+ 0x72, 0x6f, 0x75, 0x70, 0x73, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0b, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07,
+ 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72,
+ 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x12, 0x4c, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f,
+ 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07,
+ 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70,
+ 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x55, 0x49, 0x44,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x64, 0x55, 0x49, 0x44, 0x12, 0x22,
+ 0x0a, 0x0c, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
+ 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x6d, 0x6f,
+ 0x75, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x6d, 0x6f, 0x75,
+ 0x6e, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x22, 0x73, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63,
+ 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
+ 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+ 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
+ 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62,
+ 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
+ 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2a, 0xdb, 0x03, 0x0a, 0x0c, 0x4b, 0x70, 0x72,
+ 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4b, 0x50, 0x52,
+ 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
+ 0x57, 0x4e, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41,
+ 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16,
+ 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4f,
+ 0x4c, 0x4c, 0x4f, 0x57, 0x46, 0x44, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x4b, 0x50, 0x52, 0x4f,
+ 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4b, 0x49, 0x4c,
+ 0x4c, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43,
+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x46, 0x4f, 0x4c, 0x4c, 0x4f, 0x57, 0x46, 0x44, 0x10,
+ 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49,
+ 0x4f, 0x4e, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49, 0x44, 0x45, 0x10, 0x05, 0x12, 0x18, 0x0a,
+ 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43,
+ 0x4f, 0x50, 0x59, 0x46, 0x44, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42,
+ 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x45, 0x54, 0x55, 0x52, 0x4c, 0x10,
+ 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49,
+ 0x4f, 0x4e, 0x5f, 0x44, 0x4e, 0x53, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x10, 0x08, 0x12, 0x18,
0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
- 0x47, 0x45, 0x54, 0x55, 0x52, 0x4c, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x50, 0x52, 0x4f,
- 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4e, 0x53, 0x4c, 0x4f, 0x4f,
- 0x4b, 0x55, 0x50, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f,
- 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x09, 0x12,
- 0x18, 0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
- 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x50, 0x52,
- 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b,
- 0x53, 0x4f, 0x43, 0x4b, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45,
- 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x53,
- 0x4f, 0x43, 0x4b, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f,
- 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x45, 0x4e, 0x46,
- 0x4f, 0x52, 0x43, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x2d, 0x0a, 0x29, 0x4b, 0x50, 0x52, 0x4f, 0x42,
- 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50,
- 0x45, 0x4e, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x52, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41,
- 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0e, 0x12, 0x15, 0x0a, 0x11, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45,
- 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x0f, 0x2a, 0x4f, 0x0a,
- 0x10, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70,
- 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54,
- 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x10, 0x00, 0x12,
- 0x1d, 0x0a, 0x19, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
- 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x01, 0x2a, 0x7c,
- 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x12, 0x17, 0x0a, 0x13, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53,
- 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x10, 0x00, 0x12, 0x19, 0x0a,
- 0x15, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52,
- 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x4c,
- 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45,
- 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54,
- 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x2a, 0x8d, 0x02, 0x0a,
- 0x0f, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x42, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65,
- 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10,
- 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x52,
- 0x49, 0x45, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x01, 0x12,
- 0x17, 0x0a, 0x13, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x44, 0x5f,
- 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x49, 0x4e,
- 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x44, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f,
- 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x41, 0x49, 0x4e,
- 0x54, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10,
- 0x80, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f,
- 0x4f, 0x46, 0x5f, 0x54, 0x52, 0x45, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80,
- 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x49, 0x47,
- 0x4e, 0x45, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80, 0x40, 0x12, 0x24, 0x0a,
- 0x1e, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x4b, 0x45, 0x52, 0x4e, 0x45, 0x4c, 0x5f, 0x4c, 0x49,
- 0x56, 0x45, 0x5f, 0x50, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10,
- 0x80, 0x80, 0x02, 0x12, 0x17, 0x0a, 0x11, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x45, 0x53,
- 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80, 0x80, 0x10, 0x42, 0x2c, 0x5a, 0x2a,
- 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69, 0x75,
- 0x6d, 0x2f, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
- 0x31, 0x2f, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x33,
+ 0x4e, 0x4f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f,
+ 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c,
+ 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54,
+ 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x53, 0x4f, 0x43, 0x4b, 0x10, 0x0b, 0x12,
+ 0x1d, 0x0a, 0x19, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
+ 0x5f, 0x55, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x53, 0x4f, 0x43, 0x4b, 0x10, 0x0c, 0x12, 0x20,
+ 0x0a, 0x1c, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
+ 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x45, 0x4e, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x52, 0x10, 0x0d,
+ 0x12, 0x2d, 0x0a, 0x29, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f,
+ 0x4e, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x45, 0x4e, 0x46, 0x4f, 0x52, 0x43, 0x45,
+ 0x52, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0e, 0x12,
+ 0x15, 0x0a, 0x11, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
+ 0x5f, 0x53, 0x45, 0x54, 0x10, 0x0f, 0x2a, 0x4f, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x45,
+ 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45,
+ 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x48, 0x45, 0x41, 0x4c,
+ 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53,
+ 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x01, 0x2a, 0x7c, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74,
+ 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x17, 0x0a,
+ 0x13, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55,
+ 0x4e, 0x44, 0x45, 0x46, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48,
+ 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10,
+ 0x01, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54,
+ 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13,
+ 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52,
+ 0x52, 0x4f, 0x52, 0x10, 0x03, 0x2a, 0x8d, 0x02, 0x0a, 0x0f, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x65,
+ 0x64, 0x42, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x41, 0x49,
+ 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41,
+ 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x52, 0x49, 0x45, 0x54, 0x41, 0x52, 0x59, 0x5f,
+ 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x49, 0x4e,
+ 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10,
+ 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45,
+ 0x44, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10,
+ 0x04, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45,
+ 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x54,
+ 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x54, 0x52, 0x45, 0x45,
+ 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80, 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x54, 0x41,
+ 0x49, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x5f, 0x4d, 0x4f, 0x44,
+ 0x55, 0x4c, 0x45, 0x10, 0x80, 0x40, 0x12, 0x24, 0x0a, 0x1e, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f,
+ 0x4b, 0x45, 0x52, 0x4e, 0x45, 0x4c, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x5f, 0x50, 0x41, 0x54, 0x43,
+ 0x48, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80, 0x80, 0x02, 0x12, 0x17, 0x0a, 0x11,
+ 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c,
+ 0x45, 0x10, 0x80, 0x80, 0x10, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x2f, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -5676,7 +5745,7 @@ func file_tetragon_tetragon_proto_rawDescGZIP() []byte {
}
var file_tetragon_tetragon_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_tetragon_tetragon_proto_msgTypes = make([]protoimpl.MessageInfo, 52)
+var file_tetragon_tetragon_proto_msgTypes = make([]protoimpl.MessageInfo, 53)
var file_tetragon_tetragon_proto_goTypes = []any{
(KprobeAction)(0), // 0: tetragon.KprobeAction
(HealthStatusType)(0), // 1: tetragon.HealthStatusType
@@ -5695,65 +5764,66 @@ var file_tetragon_tetragon_proto_goTypes = []any{
(*FileProperties)(nil), // 14: tetragon.FileProperties
(*BinaryProperties)(nil), // 15: tetragon.BinaryProperties
(*UserRecord)(nil), // 16: tetragon.UserRecord
- (*Process)(nil), // 17: tetragon.Process
- (*ProcessExec)(nil), // 18: tetragon.ProcessExec
- (*ProcessExit)(nil), // 19: tetragon.ProcessExit
- (*KprobeSock)(nil), // 20: tetragon.KprobeSock
- (*KprobeSkb)(nil), // 21: tetragon.KprobeSkb
- (*KprobeSockaddr)(nil), // 22: tetragon.KprobeSockaddr
- (*KprobeNetDev)(nil), // 23: tetragon.KprobeNetDev
- (*KprobePath)(nil), // 24: tetragon.KprobePath
- (*KprobeFile)(nil), // 25: tetragon.KprobeFile
- (*KprobeTruncatedBytes)(nil), // 26: tetragon.KprobeTruncatedBytes
- (*KprobeCred)(nil), // 27: tetragon.KprobeCred
- (*KprobeLinuxBinprm)(nil), // 28: tetragon.KprobeLinuxBinprm
- (*KprobeCapability)(nil), // 29: tetragon.KprobeCapability
- (*KprobeUserNamespace)(nil), // 30: tetragon.KprobeUserNamespace
- (*KprobeBpfAttr)(nil), // 31: tetragon.KprobeBpfAttr
- (*KprobeBpfProg)(nil), // 32: tetragon.KprobeBpfProg
- (*KprobePerfEvent)(nil), // 33: tetragon.KprobePerfEvent
- (*KprobeBpfMap)(nil), // 34: tetragon.KprobeBpfMap
- (*SyscallId)(nil), // 35: tetragon.SyscallId
- (*KprobeArgument)(nil), // 36: tetragon.KprobeArgument
- (*ProcessKprobe)(nil), // 37: tetragon.ProcessKprobe
- (*ProcessTracepoint)(nil), // 38: tetragon.ProcessTracepoint
- (*ProcessUprobe)(nil), // 39: tetragon.ProcessUprobe
- (*ProcessUsdt)(nil), // 40: tetragon.ProcessUsdt
- (*ProcessLsm)(nil), // 41: tetragon.ProcessLsm
- (*KernelModule)(nil), // 42: tetragon.KernelModule
- (*Test)(nil), // 43: tetragon.Test
- (*GetHealthStatusRequest)(nil), // 44: tetragon.GetHealthStatusRequest
- (*HealthStatus)(nil), // 45: tetragon.HealthStatus
- (*GetHealthStatusResponse)(nil), // 46: tetragon.GetHealthStatusResponse
- (*ProcessLoader)(nil), // 47: tetragon.ProcessLoader
- (*RuntimeHookRequest)(nil), // 48: tetragon.RuntimeHookRequest
- (*RuntimeHookResponse)(nil), // 49: tetragon.RuntimeHookResponse
- (*Mount)(nil), // 50: tetragon.Mount
- (*CreateContainer)(nil), // 51: tetragon.CreateContainer
- (*StackTraceEntry)(nil), // 52: tetragon.StackTraceEntry
- nil, // 53: tetragon.Pod.PodLabelsEntry
- nil, // 54: tetragon.Pod.PodAnnotationsEntry
- nil, // 55: tetragon.CreateContainer.AnnotationsEntry
- (*timestamppb.Timestamp)(nil), // 56: google.protobuf.Timestamp
- (*wrapperspb.UInt32Value)(nil), // 57: google.protobuf.UInt32Value
- (CapabilitiesType)(0), // 58: tetragon.CapabilitiesType
- (*wrapperspb.Int32Value)(nil), // 59: google.protobuf.Int32Value
- (SecureBitsType)(0), // 60: tetragon.SecureBitsType
- (ProcessPrivilegesChanged)(0), // 61: tetragon.ProcessPrivilegesChanged
- (*wrapperspb.BoolValue)(nil), // 62: google.protobuf.BoolValue
- (BpfCmd)(0), // 63: tetragon.BpfCmd
+ (*EnvVar)(nil), // 17: tetragon.EnvVar
+ (*Process)(nil), // 18: tetragon.Process
+ (*ProcessExec)(nil), // 19: tetragon.ProcessExec
+ (*ProcessExit)(nil), // 20: tetragon.ProcessExit
+ (*KprobeSock)(nil), // 21: tetragon.KprobeSock
+ (*KprobeSkb)(nil), // 22: tetragon.KprobeSkb
+ (*KprobeSockaddr)(nil), // 23: tetragon.KprobeSockaddr
+ (*KprobeNetDev)(nil), // 24: tetragon.KprobeNetDev
+ (*KprobePath)(nil), // 25: tetragon.KprobePath
+ (*KprobeFile)(nil), // 26: tetragon.KprobeFile
+ (*KprobeTruncatedBytes)(nil), // 27: tetragon.KprobeTruncatedBytes
+ (*KprobeCred)(nil), // 28: tetragon.KprobeCred
+ (*KprobeLinuxBinprm)(nil), // 29: tetragon.KprobeLinuxBinprm
+ (*KprobeCapability)(nil), // 30: tetragon.KprobeCapability
+ (*KprobeUserNamespace)(nil), // 31: tetragon.KprobeUserNamespace
+ (*KprobeBpfAttr)(nil), // 32: tetragon.KprobeBpfAttr
+ (*KprobeBpfProg)(nil), // 33: tetragon.KprobeBpfProg
+ (*KprobePerfEvent)(nil), // 34: tetragon.KprobePerfEvent
+ (*KprobeBpfMap)(nil), // 35: tetragon.KprobeBpfMap
+ (*SyscallId)(nil), // 36: tetragon.SyscallId
+ (*KprobeArgument)(nil), // 37: tetragon.KprobeArgument
+ (*ProcessKprobe)(nil), // 38: tetragon.ProcessKprobe
+ (*ProcessTracepoint)(nil), // 39: tetragon.ProcessTracepoint
+ (*ProcessUprobe)(nil), // 40: tetragon.ProcessUprobe
+ (*ProcessUsdt)(nil), // 41: tetragon.ProcessUsdt
+ (*ProcessLsm)(nil), // 42: tetragon.ProcessLsm
+ (*KernelModule)(nil), // 43: tetragon.KernelModule
+ (*Test)(nil), // 44: tetragon.Test
+ (*GetHealthStatusRequest)(nil), // 45: tetragon.GetHealthStatusRequest
+ (*HealthStatus)(nil), // 46: tetragon.HealthStatus
+ (*GetHealthStatusResponse)(nil), // 47: tetragon.GetHealthStatusResponse
+ (*ProcessLoader)(nil), // 48: tetragon.ProcessLoader
+ (*RuntimeHookRequest)(nil), // 49: tetragon.RuntimeHookRequest
+ (*RuntimeHookResponse)(nil), // 50: tetragon.RuntimeHookResponse
+ (*Mount)(nil), // 51: tetragon.Mount
+ (*CreateContainer)(nil), // 52: tetragon.CreateContainer
+ (*StackTraceEntry)(nil), // 53: tetragon.StackTraceEntry
+ nil, // 54: tetragon.Pod.PodLabelsEntry
+ nil, // 55: tetragon.Pod.PodAnnotationsEntry
+ nil, // 56: tetragon.CreateContainer.AnnotationsEntry
+ (*timestamppb.Timestamp)(nil), // 57: google.protobuf.Timestamp
+ (*wrapperspb.UInt32Value)(nil), // 58: google.protobuf.UInt32Value
+ (CapabilitiesType)(0), // 59: tetragon.CapabilitiesType
+ (*wrapperspb.Int32Value)(nil), // 60: google.protobuf.Int32Value
+ (SecureBitsType)(0), // 61: tetragon.SecureBitsType
+ (ProcessPrivilegesChanged)(0), // 62: tetragon.ProcessPrivilegesChanged
+ (*wrapperspb.BoolValue)(nil), // 63: google.protobuf.BoolValue
+ (BpfCmd)(0), // 64: tetragon.BpfCmd
}
var file_tetragon_tetragon_proto_depIdxs = []int32{
4, // 0: tetragon.Container.image:type_name -> tetragon.Image
- 56, // 1: tetragon.Container.start_time:type_name -> google.protobuf.Timestamp
- 57, // 2: tetragon.Container.pid:type_name -> google.protobuf.UInt32Value
+ 57, // 1: tetragon.Container.start_time:type_name -> google.protobuf.Timestamp
+ 58, // 2: tetragon.Container.pid:type_name -> google.protobuf.UInt32Value
5, // 3: tetragon.Container.security_context:type_name -> tetragon.SecurityContext
6, // 4: tetragon.Pod.container:type_name -> tetragon.Container
- 53, // 5: tetragon.Pod.pod_labels:type_name -> tetragon.Pod.PodLabelsEntry
- 54, // 6: tetragon.Pod.pod_annotations:type_name -> tetragon.Pod.PodAnnotationsEntry
- 58, // 7: tetragon.Capabilities.permitted:type_name -> tetragon.CapabilitiesType
- 58, // 8: tetragon.Capabilities.effective:type_name -> tetragon.CapabilitiesType
- 58, // 9: tetragon.Capabilities.inheritable:type_name -> tetragon.CapabilitiesType
+ 54, // 5: tetragon.Pod.pod_labels:type_name -> tetragon.Pod.PodLabelsEntry
+ 55, // 6: tetragon.Pod.pod_annotations:type_name -> tetragon.Pod.PodAnnotationsEntry
+ 59, // 7: tetragon.Capabilities.permitted:type_name -> tetragon.CapabilitiesType
+ 59, // 8: tetragon.Capabilities.effective:type_name -> tetragon.CapabilitiesType
+ 59, // 9: tetragon.Capabilities.inheritable:type_name -> tetragon.CapabilitiesType
9, // 10: tetragon.Namespaces.uts:type_name -> tetragon.Namespace
9, // 11: tetragon.Namespaces.ipc:type_name -> tetragon.Namespace
9, // 12: tetragon.Namespaces.mnt:type_name -> tetragon.Namespace
@@ -5764,122 +5834,123 @@ var file_tetragon_tetragon_proto_depIdxs = []int32{
9, // 17: tetragon.Namespaces.time_for_children:type_name -> tetragon.Namespace
9, // 18: tetragon.Namespaces.cgroup:type_name -> tetragon.Namespace
9, // 19: tetragon.Namespaces.user:type_name -> tetragon.Namespace
- 59, // 20: tetragon.UserNamespace.level:type_name -> google.protobuf.Int32Value
- 57, // 21: tetragon.UserNamespace.uid:type_name -> google.protobuf.UInt32Value
- 57, // 22: tetragon.UserNamespace.gid:type_name -> google.protobuf.UInt32Value
+ 60, // 20: tetragon.UserNamespace.level:type_name -> google.protobuf.Int32Value
+ 58, // 21: tetragon.UserNamespace.uid:type_name -> google.protobuf.UInt32Value
+ 58, // 22: tetragon.UserNamespace.gid:type_name -> google.protobuf.UInt32Value
9, // 23: tetragon.UserNamespace.ns:type_name -> tetragon.Namespace
- 57, // 24: tetragon.ProcessCredentials.uid:type_name -> google.protobuf.UInt32Value
- 57, // 25: tetragon.ProcessCredentials.gid:type_name -> google.protobuf.UInt32Value
- 57, // 26: tetragon.ProcessCredentials.euid:type_name -> google.protobuf.UInt32Value
- 57, // 27: tetragon.ProcessCredentials.egid:type_name -> google.protobuf.UInt32Value
- 57, // 28: tetragon.ProcessCredentials.suid:type_name -> google.protobuf.UInt32Value
- 57, // 29: tetragon.ProcessCredentials.sgid:type_name -> google.protobuf.UInt32Value
- 57, // 30: tetragon.ProcessCredentials.fsuid:type_name -> google.protobuf.UInt32Value
- 57, // 31: tetragon.ProcessCredentials.fsgid:type_name -> google.protobuf.UInt32Value
- 60, // 32: tetragon.ProcessCredentials.securebits:type_name -> tetragon.SecureBitsType
+ 58, // 24: tetragon.ProcessCredentials.uid:type_name -> google.protobuf.UInt32Value
+ 58, // 25: tetragon.ProcessCredentials.gid:type_name -> google.protobuf.UInt32Value
+ 58, // 26: tetragon.ProcessCredentials.euid:type_name -> google.protobuf.UInt32Value
+ 58, // 27: tetragon.ProcessCredentials.egid:type_name -> google.protobuf.UInt32Value
+ 58, // 28: tetragon.ProcessCredentials.suid:type_name -> google.protobuf.UInt32Value
+ 58, // 29: tetragon.ProcessCredentials.sgid:type_name -> google.protobuf.UInt32Value
+ 58, // 30: tetragon.ProcessCredentials.fsuid:type_name -> google.protobuf.UInt32Value
+ 58, // 31: tetragon.ProcessCredentials.fsgid:type_name -> google.protobuf.UInt32Value
+ 61, // 32: tetragon.ProcessCredentials.securebits:type_name -> tetragon.SecureBitsType
8, // 33: tetragon.ProcessCredentials.caps:type_name -> tetragon.Capabilities
11, // 34: tetragon.ProcessCredentials.user_ns:type_name -> tetragon.UserNamespace
- 57, // 35: tetragon.InodeProperties.links:type_name -> google.protobuf.UInt32Value
+ 58, // 35: tetragon.InodeProperties.links:type_name -> google.protobuf.UInt32Value
13, // 36: tetragon.FileProperties.inode:type_name -> tetragon.InodeProperties
- 57, // 37: tetragon.BinaryProperties.setuid:type_name -> google.protobuf.UInt32Value
- 57, // 38: tetragon.BinaryProperties.setgid:type_name -> google.protobuf.UInt32Value
- 61, // 39: tetragon.BinaryProperties.privileges_changed:type_name -> tetragon.ProcessPrivilegesChanged
+ 58, // 37: tetragon.BinaryProperties.setuid:type_name -> google.protobuf.UInt32Value
+ 58, // 38: tetragon.BinaryProperties.setgid:type_name -> google.protobuf.UInt32Value
+ 62, // 39: tetragon.BinaryProperties.privileges_changed:type_name -> tetragon.ProcessPrivilegesChanged
14, // 40: tetragon.BinaryProperties.file:type_name -> tetragon.FileProperties
- 57, // 41: tetragon.Process.pid:type_name -> google.protobuf.UInt32Value
- 57, // 42: tetragon.Process.uid:type_name -> google.protobuf.UInt32Value
- 56, // 43: tetragon.Process.start_time:type_name -> google.protobuf.Timestamp
- 57, // 44: tetragon.Process.auid:type_name -> google.protobuf.UInt32Value
+ 58, // 41: tetragon.Process.pid:type_name -> google.protobuf.UInt32Value
+ 58, // 42: tetragon.Process.uid:type_name -> google.protobuf.UInt32Value
+ 57, // 43: tetragon.Process.start_time:type_name -> google.protobuf.Timestamp
+ 58, // 44: tetragon.Process.auid:type_name -> google.protobuf.UInt32Value
7, // 45: tetragon.Process.pod:type_name -> tetragon.Pod
8, // 46: tetragon.Process.cap:type_name -> tetragon.Capabilities
10, // 47: tetragon.Process.ns:type_name -> tetragon.Namespaces
- 57, // 48: tetragon.Process.tid:type_name -> google.protobuf.UInt32Value
+ 58, // 48: tetragon.Process.tid:type_name -> google.protobuf.UInt32Value
12, // 49: tetragon.Process.process_credentials:type_name -> tetragon.ProcessCredentials
15, // 50: tetragon.Process.binary_properties:type_name -> tetragon.BinaryProperties
16, // 51: tetragon.Process.user:type_name -> tetragon.UserRecord
- 62, // 52: tetragon.Process.in_init_tree:type_name -> google.protobuf.BoolValue
- 17, // 53: tetragon.ProcessExec.process:type_name -> tetragon.Process
- 17, // 54: tetragon.ProcessExec.parent:type_name -> tetragon.Process
- 17, // 55: tetragon.ProcessExec.ancestors:type_name -> tetragon.Process
- 17, // 56: tetragon.ProcessExit.process:type_name -> tetragon.Process
- 17, // 57: tetragon.ProcessExit.parent:type_name -> tetragon.Process
- 56, // 58: tetragon.ProcessExit.time:type_name -> google.protobuf.Timestamp
- 17, // 59: tetragon.ProcessExit.ancestors:type_name -> tetragon.Process
- 58, // 60: tetragon.KprobeCred.permitted:type_name -> tetragon.CapabilitiesType
- 58, // 61: tetragon.KprobeCred.effective:type_name -> tetragon.CapabilitiesType
- 58, // 62: tetragon.KprobeCred.inheritable:type_name -> tetragon.CapabilitiesType
- 59, // 63: tetragon.KprobeCapability.value:type_name -> google.protobuf.Int32Value
- 59, // 64: tetragon.KprobeUserNamespace.level:type_name -> google.protobuf.Int32Value
- 57, // 65: tetragon.KprobeUserNamespace.owner:type_name -> google.protobuf.UInt32Value
- 57, // 66: tetragon.KprobeUserNamespace.group:type_name -> google.protobuf.UInt32Value
- 9, // 67: tetragon.KprobeUserNamespace.ns:type_name -> tetragon.Namespace
- 21, // 68: tetragon.KprobeArgument.skb_arg:type_name -> tetragon.KprobeSkb
- 24, // 69: tetragon.KprobeArgument.path_arg:type_name -> tetragon.KprobePath
- 25, // 70: tetragon.KprobeArgument.file_arg:type_name -> tetragon.KprobeFile
- 26, // 71: tetragon.KprobeArgument.truncated_bytes_arg:type_name -> tetragon.KprobeTruncatedBytes
- 20, // 72: tetragon.KprobeArgument.sock_arg:type_name -> tetragon.KprobeSock
- 27, // 73: tetragon.KprobeArgument.cred_arg:type_name -> tetragon.KprobeCred
- 31, // 74: tetragon.KprobeArgument.bpf_attr_arg:type_name -> tetragon.KprobeBpfAttr
- 33, // 75: tetragon.KprobeArgument.perf_event_arg:type_name -> tetragon.KprobePerfEvent
- 34, // 76: tetragon.KprobeArgument.bpf_map_arg:type_name -> tetragon.KprobeBpfMap
- 30, // 77: tetragon.KprobeArgument.user_namespace_arg:type_name -> tetragon.KprobeUserNamespace
- 29, // 78: tetragon.KprobeArgument.capability_arg:type_name -> tetragon.KprobeCapability
- 12, // 79: tetragon.KprobeArgument.process_credentials_arg:type_name -> tetragon.ProcessCredentials
- 11, // 80: tetragon.KprobeArgument.user_ns_arg:type_name -> tetragon.UserNamespace
- 42, // 81: tetragon.KprobeArgument.module_arg:type_name -> tetragon.KernelModule
- 28, // 82: tetragon.KprobeArgument.linux_binprm_arg:type_name -> tetragon.KprobeLinuxBinprm
- 23, // 83: tetragon.KprobeArgument.net_dev_arg:type_name -> tetragon.KprobeNetDev
- 63, // 84: tetragon.KprobeArgument.bpf_cmd_arg:type_name -> tetragon.BpfCmd
- 35, // 85: tetragon.KprobeArgument.syscall_id:type_name -> tetragon.SyscallId
- 22, // 86: tetragon.KprobeArgument.sockaddr_arg:type_name -> tetragon.KprobeSockaddr
- 32, // 87: tetragon.KprobeArgument.bpf_prog_arg:type_name -> tetragon.KprobeBpfProg
- 17, // 88: tetragon.ProcessKprobe.process:type_name -> tetragon.Process
- 17, // 89: tetragon.ProcessKprobe.parent:type_name -> tetragon.Process
- 36, // 90: tetragon.ProcessKprobe.args:type_name -> tetragon.KprobeArgument
- 36, // 91: tetragon.ProcessKprobe.return:type_name -> tetragon.KprobeArgument
- 0, // 92: tetragon.ProcessKprobe.action:type_name -> tetragon.KprobeAction
- 52, // 93: tetragon.ProcessKprobe.kernel_stack_trace:type_name -> tetragon.StackTraceEntry
- 0, // 94: tetragon.ProcessKprobe.return_action:type_name -> tetragon.KprobeAction
- 52, // 95: tetragon.ProcessKprobe.user_stack_trace:type_name -> tetragon.StackTraceEntry
- 17, // 96: tetragon.ProcessKprobe.ancestors:type_name -> tetragon.Process
- 36, // 97: tetragon.ProcessKprobe.data:type_name -> tetragon.KprobeArgument
- 17, // 98: tetragon.ProcessTracepoint.process:type_name -> tetragon.Process
- 17, // 99: tetragon.ProcessTracepoint.parent:type_name -> tetragon.Process
- 36, // 100: tetragon.ProcessTracepoint.args:type_name -> tetragon.KprobeArgument
- 0, // 101: tetragon.ProcessTracepoint.action:type_name -> tetragon.KprobeAction
- 17, // 102: tetragon.ProcessTracepoint.ancestors:type_name -> tetragon.Process
- 17, // 103: tetragon.ProcessUprobe.process:type_name -> tetragon.Process
- 17, // 104: tetragon.ProcessUprobe.parent:type_name -> tetragon.Process
- 36, // 105: tetragon.ProcessUprobe.args:type_name -> tetragon.KprobeArgument
- 17, // 106: tetragon.ProcessUprobe.ancestors:type_name -> tetragon.Process
- 0, // 107: tetragon.ProcessUprobe.action:type_name -> tetragon.KprobeAction
- 36, // 108: tetragon.ProcessUprobe.data:type_name -> tetragon.KprobeArgument
- 17, // 109: tetragon.ProcessUsdt.process:type_name -> tetragon.Process
- 17, // 110: tetragon.ProcessUsdt.parent:type_name -> tetragon.Process
- 36, // 111: tetragon.ProcessUsdt.args:type_name -> tetragon.KprobeArgument
- 17, // 112: tetragon.ProcessUsdt.ancestors:type_name -> tetragon.Process
- 0, // 113: tetragon.ProcessUsdt.action:type_name -> tetragon.KprobeAction
- 17, // 114: tetragon.ProcessLsm.process:type_name -> tetragon.Process
- 17, // 115: tetragon.ProcessLsm.parent:type_name -> tetragon.Process
- 36, // 116: tetragon.ProcessLsm.args:type_name -> tetragon.KprobeArgument
- 0, // 117: tetragon.ProcessLsm.action:type_name -> tetragon.KprobeAction
- 17, // 118: tetragon.ProcessLsm.ancestors:type_name -> tetragon.Process
- 62, // 119: tetragon.KernelModule.signature_ok:type_name -> google.protobuf.BoolValue
- 3, // 120: tetragon.KernelModule.tainted:type_name -> tetragon.TaintedBitsType
- 1, // 121: tetragon.GetHealthStatusRequest.event_set:type_name -> tetragon.HealthStatusType
- 1, // 122: tetragon.HealthStatus.event:type_name -> tetragon.HealthStatusType
- 2, // 123: tetragon.HealthStatus.status:type_name -> tetragon.HealthStatusResult
- 45, // 124: tetragon.GetHealthStatusResponse.health_status:type_name -> tetragon.HealthStatus
- 17, // 125: tetragon.ProcessLoader.process:type_name -> tetragon.Process
- 17, // 126: tetragon.ProcessLoader.parent:type_name -> tetragon.Process
- 17, // 127: tetragon.ProcessLoader.ancestors:type_name -> tetragon.Process
- 51, // 128: tetragon.RuntimeHookRequest.createContainer:type_name -> tetragon.CreateContainer
- 55, // 129: tetragon.CreateContainer.annotations:type_name -> tetragon.CreateContainer.AnnotationsEntry
- 50, // 130: tetragon.CreateContainer.mounts:type_name -> tetragon.Mount
- 131, // [131:131] is the sub-list for method output_type
- 131, // [131:131] is the sub-list for method input_type
- 131, // [131:131] is the sub-list for extension type_name
- 131, // [131:131] is the sub-list for extension extendee
- 0, // [0:131] is the sub-list for field type_name
+ 63, // 52: tetragon.Process.in_init_tree:type_name -> google.protobuf.BoolValue
+ 17, // 53: tetragon.Process.environment_variables:type_name -> tetragon.EnvVar
+ 18, // 54: tetragon.ProcessExec.process:type_name -> tetragon.Process
+ 18, // 55: tetragon.ProcessExec.parent:type_name -> tetragon.Process
+ 18, // 56: tetragon.ProcessExec.ancestors:type_name -> tetragon.Process
+ 18, // 57: tetragon.ProcessExit.process:type_name -> tetragon.Process
+ 18, // 58: tetragon.ProcessExit.parent:type_name -> tetragon.Process
+ 57, // 59: tetragon.ProcessExit.time:type_name -> google.protobuf.Timestamp
+ 18, // 60: tetragon.ProcessExit.ancestors:type_name -> tetragon.Process
+ 59, // 61: tetragon.KprobeCred.permitted:type_name -> tetragon.CapabilitiesType
+ 59, // 62: tetragon.KprobeCred.effective:type_name -> tetragon.CapabilitiesType
+ 59, // 63: tetragon.KprobeCred.inheritable:type_name -> tetragon.CapabilitiesType
+ 60, // 64: tetragon.KprobeCapability.value:type_name -> google.protobuf.Int32Value
+ 60, // 65: tetragon.KprobeUserNamespace.level:type_name -> google.protobuf.Int32Value
+ 58, // 66: tetragon.KprobeUserNamespace.owner:type_name -> google.protobuf.UInt32Value
+ 58, // 67: tetragon.KprobeUserNamespace.group:type_name -> google.protobuf.UInt32Value
+ 9, // 68: tetragon.KprobeUserNamespace.ns:type_name -> tetragon.Namespace
+ 22, // 69: tetragon.KprobeArgument.skb_arg:type_name -> tetragon.KprobeSkb
+ 25, // 70: tetragon.KprobeArgument.path_arg:type_name -> tetragon.KprobePath
+ 26, // 71: tetragon.KprobeArgument.file_arg:type_name -> tetragon.KprobeFile
+ 27, // 72: tetragon.KprobeArgument.truncated_bytes_arg:type_name -> tetragon.KprobeTruncatedBytes
+ 21, // 73: tetragon.KprobeArgument.sock_arg:type_name -> tetragon.KprobeSock
+ 28, // 74: tetragon.KprobeArgument.cred_arg:type_name -> tetragon.KprobeCred
+ 32, // 75: tetragon.KprobeArgument.bpf_attr_arg:type_name -> tetragon.KprobeBpfAttr
+ 34, // 76: tetragon.KprobeArgument.perf_event_arg:type_name -> tetragon.KprobePerfEvent
+ 35, // 77: tetragon.KprobeArgument.bpf_map_arg:type_name -> tetragon.KprobeBpfMap
+ 31, // 78: tetragon.KprobeArgument.user_namespace_arg:type_name -> tetragon.KprobeUserNamespace
+ 30, // 79: tetragon.KprobeArgument.capability_arg:type_name -> tetragon.KprobeCapability
+ 12, // 80: tetragon.KprobeArgument.process_credentials_arg:type_name -> tetragon.ProcessCredentials
+ 11, // 81: tetragon.KprobeArgument.user_ns_arg:type_name -> tetragon.UserNamespace
+ 43, // 82: tetragon.KprobeArgument.module_arg:type_name -> tetragon.KernelModule
+ 29, // 83: tetragon.KprobeArgument.linux_binprm_arg:type_name -> tetragon.KprobeLinuxBinprm
+ 24, // 84: tetragon.KprobeArgument.net_dev_arg:type_name -> tetragon.KprobeNetDev
+ 64, // 85: tetragon.KprobeArgument.bpf_cmd_arg:type_name -> tetragon.BpfCmd
+ 36, // 86: tetragon.KprobeArgument.syscall_id:type_name -> tetragon.SyscallId
+ 23, // 87: tetragon.KprobeArgument.sockaddr_arg:type_name -> tetragon.KprobeSockaddr
+ 33, // 88: tetragon.KprobeArgument.bpf_prog_arg:type_name -> tetragon.KprobeBpfProg
+ 18, // 89: tetragon.ProcessKprobe.process:type_name -> tetragon.Process
+ 18, // 90: tetragon.ProcessKprobe.parent:type_name -> tetragon.Process
+ 37, // 91: tetragon.ProcessKprobe.args:type_name -> tetragon.KprobeArgument
+ 37, // 92: tetragon.ProcessKprobe.return:type_name -> tetragon.KprobeArgument
+ 0, // 93: tetragon.ProcessKprobe.action:type_name -> tetragon.KprobeAction
+ 53, // 94: tetragon.ProcessKprobe.kernel_stack_trace:type_name -> tetragon.StackTraceEntry
+ 0, // 95: tetragon.ProcessKprobe.return_action:type_name -> tetragon.KprobeAction
+ 53, // 96: tetragon.ProcessKprobe.user_stack_trace:type_name -> tetragon.StackTraceEntry
+ 18, // 97: tetragon.ProcessKprobe.ancestors:type_name -> tetragon.Process
+ 37, // 98: tetragon.ProcessKprobe.data:type_name -> tetragon.KprobeArgument
+ 18, // 99: tetragon.ProcessTracepoint.process:type_name -> tetragon.Process
+ 18, // 100: tetragon.ProcessTracepoint.parent:type_name -> tetragon.Process
+ 37, // 101: tetragon.ProcessTracepoint.args:type_name -> tetragon.KprobeArgument
+ 0, // 102: tetragon.ProcessTracepoint.action:type_name -> tetragon.KprobeAction
+ 18, // 103: tetragon.ProcessTracepoint.ancestors:type_name -> tetragon.Process
+ 18, // 104: tetragon.ProcessUprobe.process:type_name -> tetragon.Process
+ 18, // 105: tetragon.ProcessUprobe.parent:type_name -> tetragon.Process
+ 37, // 106: tetragon.ProcessUprobe.args:type_name -> tetragon.KprobeArgument
+ 18, // 107: tetragon.ProcessUprobe.ancestors:type_name -> tetragon.Process
+ 0, // 108: tetragon.ProcessUprobe.action:type_name -> tetragon.KprobeAction
+ 37, // 109: tetragon.ProcessUprobe.data:type_name -> tetragon.KprobeArgument
+ 18, // 110: tetragon.ProcessUsdt.process:type_name -> tetragon.Process
+ 18, // 111: tetragon.ProcessUsdt.parent:type_name -> tetragon.Process
+ 37, // 112: tetragon.ProcessUsdt.args:type_name -> tetragon.KprobeArgument
+ 18, // 113: tetragon.ProcessUsdt.ancestors:type_name -> tetragon.Process
+ 0, // 114: tetragon.ProcessUsdt.action:type_name -> tetragon.KprobeAction
+ 18, // 115: tetragon.ProcessLsm.process:type_name -> tetragon.Process
+ 18, // 116: tetragon.ProcessLsm.parent:type_name -> tetragon.Process
+ 37, // 117: tetragon.ProcessLsm.args:type_name -> tetragon.KprobeArgument
+ 0, // 118: tetragon.ProcessLsm.action:type_name -> tetragon.KprobeAction
+ 18, // 119: tetragon.ProcessLsm.ancestors:type_name -> tetragon.Process
+ 63, // 120: tetragon.KernelModule.signature_ok:type_name -> google.protobuf.BoolValue
+ 3, // 121: tetragon.KernelModule.tainted:type_name -> tetragon.TaintedBitsType
+ 1, // 122: tetragon.GetHealthStatusRequest.event_set:type_name -> tetragon.HealthStatusType
+ 1, // 123: tetragon.HealthStatus.event:type_name -> tetragon.HealthStatusType
+ 2, // 124: tetragon.HealthStatus.status:type_name -> tetragon.HealthStatusResult
+ 46, // 125: tetragon.GetHealthStatusResponse.health_status:type_name -> tetragon.HealthStatus
+ 18, // 126: tetragon.ProcessLoader.process:type_name -> tetragon.Process
+ 18, // 127: tetragon.ProcessLoader.parent:type_name -> tetragon.Process
+ 18, // 128: tetragon.ProcessLoader.ancestors:type_name -> tetragon.Process
+ 52, // 129: tetragon.RuntimeHookRequest.createContainer:type_name -> tetragon.CreateContainer
+ 56, // 130: tetragon.CreateContainer.annotations:type_name -> tetragon.CreateContainer.AnnotationsEntry
+ 51, // 131: tetragon.CreateContainer.mounts:type_name -> tetragon.Mount
+ 132, // [132:132] is the sub-list for method output_type
+ 132, // [132:132] is the sub-list for method input_type
+ 132, // [132:132] is the sub-list for extension type_name
+ 132, // [132:132] is the sub-list for extension extendee
+ 0, // [0:132] is the sub-list for field type_name
}
func init() { file_tetragon_tetragon_proto_init() }
@@ -5889,7 +5960,7 @@ func file_tetragon_tetragon_proto_init() {
}
file_tetragon_bpf_proto_init()
file_tetragon_capabilities_proto_init()
- file_tetragon_tetragon_proto_msgTypes[32].OneofWrappers = []any{
+ file_tetragon_tetragon_proto_msgTypes[33].OneofWrappers = []any{
(*KprobeArgument_StringArg)(nil),
(*KprobeArgument_IntArg)(nil),
(*KprobeArgument_SkbArg)(nil),
@@ -5921,7 +5992,7 @@ func file_tetragon_tetragon_proto_init() {
(*KprobeArgument_SockaddrArg)(nil),
(*KprobeArgument_BpfProgArg)(nil),
}
- file_tetragon_tetragon_proto_msgTypes[44].OneofWrappers = []any{
+ file_tetragon_tetragon_proto_msgTypes[45].OneofWrappers = []any{
(*RuntimeHookRequest_CreateContainer)(nil),
}
type x struct{}
@@ -5930,7 +6001,7 @@ func file_tetragon_tetragon_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_tetragon_tetragon_proto_rawDesc,
NumEnums: 4,
- NumMessages: 52,
+ NumMessages: 53,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/api/v1/tetragon/tetragon.pb.json.go b/api/v1/tetragon/tetragon.pb.json.go
index 2532b3866a4..84e460271c2 100644
--- a/api/v1/tetragon/tetragon.pb.json.go
+++ b/api/v1/tetragon/tetragon.pb.json.go
@@ -166,6 +166,18 @@ func (msg *UserRecord) UnmarshalJSON(b []byte) error {
return protojson.UnmarshalOptions{}.Unmarshal(b, msg)
}
+// MarshalJSON implements json.Marshaler
+func (msg *EnvVar) MarshalJSON() ([]byte, error) {
+ return protojson.MarshalOptions{
+ UseProtoNames: true,
+ }.Marshal(msg)
+}
+
+// UnmarshalJSON implements json.Unmarshaler
+func (msg *EnvVar) UnmarshalJSON(b []byte) error {
+ return protojson.UnmarshalOptions{}.Unmarshal(b, msg)
+}
+
// MarshalJSON implements json.Marshaler
func (msg *Process) MarshalJSON() ([]byte, error) {
return protojson.MarshalOptions{
diff --git a/api/v1/tetragon/tetragon.proto b/api/v1/tetragon/tetragon.proto
index 46ba80839db..9ec0791c78e 100644
--- a/api/v1/tetragon/tetragon.proto
+++ b/api/v1/tetragon/tetragon.proto
@@ -186,6 +186,12 @@ message UserRecord {
string name = 1;
}
+// Environment variable
+message EnvVar {
+ string Key = 1;
+ string Value = 2;
+}
+
message Process {
// Exec ID uniquely identifies the process over time across all the nodes in the cluster.
string exec_id = 1;
@@ -297,6 +303,8 @@ message Process {
// for example, you wish to discern whether a process was spawned using a
// tool like nsenter or kubectl exec.
google.protobuf.BoolValue in_init_tree = 20;
+ // Environment variables passed to the binary at execution.
+ repeated EnvVar environment_variables = 21;
}
message ProcessExec {
diff --git a/bpf/lib/process.h b/bpf/lib/process.h
index b6d464591a6..c00ed086d0e 100644
--- a/bpf/lib/process.h
+++ b/bpf/lib/process.h
@@ -106,9 +106,9 @@
/* Msg flags */
#define EVENT_UNKNOWN 0x00
#define EVENT_EXECVE 0x01
-#define EVENT_AVAIL_1 0x02
+#define EVENT_ENVS_DATA 0x02
#define EVENT_PROCFS 0x04
-#define EVENT_AVAIL_2 0x08
+#define EVENT_ENVS_ERROR 0x08
#define EVENT_TRUNC_ARGS 0x10
#define EVENT_AVAIL_3 0x20
#define EVENT_MISS 0x40
@@ -189,6 +189,10 @@ struct msg_process {
__u32 pad;
__u64 i_ino;
__u64 ktime;
+ __u16 size_path;
+ __u16 size_args;
+ __u16 size_cwd;
+ __u16 size_envs;
char args[0];
}; // All fields aligned so no 'packed' attribute.
diff --git a/bpf/process/bpf_execve_event.c b/bpf/process/bpf_execve_event.c
index f897a606232..d29f4608699 100644
--- a/bpf/process/bpf_execve_event.c
+++ b/bpf/process/bpf_execve_event.c
@@ -13,14 +13,21 @@
#include "errmetrics.h"
#include "bpf_mbset.h"
#include "bpf_ktime.h"
+#include "environ_conf.h"
#include "policy_filter.h"
char _license[] __attribute__((section("license"), used)) = "Dual BSD/GPL";
+#ifdef __RHEL7_BPF_PROG
+#define exec_ctx_struct ftrace_raw_sched_process_exec
+#else
+#define exec_ctx_struct trace_event_raw_sched_process_exec
+#endif
+
#ifndef OVERRIDE_TAILCALL
int execve_rate(void *ctx);
-int execve_send(void *ctx);
+int execve_send(struct exec_ctx_struct *ctx);
struct {
__uint(type, BPF_MAP_TYPE_PROG_ARRAY);
@@ -97,6 +104,8 @@ read_args(void *ctx, struct msg_execve_event *event)
args_size = end_stack - start_stack;
if (args_size < BUFFER && args_size < free_size) {
+ if (args_size)
+ args_size -= 1;
size = args_size & 0x3ff /* BUFFER - 1 */;
err = with_errmetrics(probe_read, args, size, (char *)start_stack);
if (err < 0) {
@@ -114,9 +123,75 @@ read_args(void *ctx, struct msg_execve_event *event)
#ifdef __LARGE_BPF_PROG
event->exe.arg_len = size;
#endif
+ p->size_args = (__u16)size;
return size;
}
+#ifdef __LARGE_BPF_PROG
+volatile const __u8 ENV_VARS_ENABLED;
+
+FUNC_INLINE __u32 read_envs(void *ctx, struct msg_execve_event *event)
+{
+ struct msg_process *p = &event->process;
+ struct mm_struct *mm = NULL;
+ struct task_struct *task;
+ __u32 size = 0, flags = 0;
+ unsigned long free_size, envs_size;
+ unsigned long env_start, env_end;
+ char *envs;
+ int err;
+
+ if (!ENV_VARS_ENABLED)
+ return 0;
+
+ envs = (char *)p + p->size;
+ if (envs >= (char *)&event->process + BUFFER)
+ return 0;
+
+ task = (struct task_struct *)get_current_task();
+ probe_read(&mm, sizeof(mm), _(&task->mm));
+ if (!mm)
+ return 0;
+
+ with_errmetrics(probe_read, &env_start, sizeof(env_start), _(&mm->env_start));
+ with_errmetrics(probe_read, &env_end, sizeof(env_end), _(&mm->env_end));
+
+ if (!env_start || !env_end)
+ return 0;
+
+ free_size = (char *)&event->process + BUFFER - envs;
+ envs_size = env_end - env_start;
+
+ if (envs_size < BUFFER && envs_size < free_size) {
+ if (envs_size)
+ envs_size -= 1;
+ size = envs_size & 0x3ff; /* BUFFER - 1 */
+
+ err = probe_read(envs, size, (char *)env_start);
+ if (err < 0) {
+ flags |= EVENT_ENVS_ERROR;
+ size = 0;
+ }
+ } else {
+ size = data_event_bytes(ctx, (struct data_event_desc *)envs,
+ (unsigned long)env_start,
+ envs_size,
+ (struct bpf_map_def *)&data_heap);
+ if (size > 0)
+ flags |= EVENT_ENVS_DATA;
+ }
+
+ p->size_envs = size;
+ p->flags |= flags;
+ return size;
+}
+#else
+FUNC_INLINE __u32 read_envs(void *ctx, struct msg_execve_event *event)
+{
+ return 0;
+}
+#endif
+
FUNC_INLINE __u32
read_path(void *ctx, struct msg_execve_event *event, void *filename)
{
@@ -139,8 +214,12 @@ read_path(void *ctx, struct msg_execve_event *event, void *filename)
flags |= EVENT_ERROR_FILENAME;
else
flags |= EVENT_DATA_FILENAME;
+ } else if (size > 0) {
+ /* remove null byte */
+ size -= 1;
}
+ p->size_path = (__u16)size;
p->flags |= flags;
return size;
}
@@ -172,12 +251,6 @@ read_execve_shared_info(void *ctx, struct msg_process *p, __u64 pid)
execve_joined_info_map_clear(pid);
}
-#ifdef __RHEL7_BPF_PROG
-#define exec_ctx_struct ftrace_raw_sched_process_exec
-#else
-#define exec_ctx_struct trace_event_raw_sched_process_exec
-#endif
-
__attribute__((section("tracepoint/sys_execve"), used)) int
event_execve(struct exec_ctx_struct *ctx)
{
@@ -204,6 +277,10 @@ event_execve(struct exec_ctx_struct *ctx)
p = &event->process;
p->flags = EVENT_EXECVE;
+ p->size_path = 0;
+ p->size_args = 0;
+ p->size_cwd = 0;
+
/**
* Per thread tracking rules TID == PID :
* At exec all threads other than the calling one are destroyed, so
@@ -221,6 +298,7 @@ event_execve(struct exec_ctx_struct *ctx)
p->size += read_path(ctx, event, filename);
p->size += read_args(ctx, event);
p->size += read_cwd(ctx, p);
+ p->size += read_envs(ctx, event);
event->common.op = MSG_OP_EXECVE;
event->common.ktime = p->ktime;
@@ -266,7 +344,7 @@ execve_rate(void *ctx __arg_ctx)
* has already been collected, then send it to the perf buffer.
*/
__attribute__((section("tracepoint"), used)) int
-execve_send(void *ctx __arg_ctx)
+execve_send(struct exec_ctx_struct *ctx __arg_ctx)
{
struct msg_execve_event *event;
struct execve_map_value *curr;
@@ -359,10 +437,9 @@ execve_send(void *ctx __arg_ctx)
curr->bin.args[len] = 0x00;
curr->bin.args[len + 1] = 0x00;
#else
- // reuse p->args first string that contains the filename, this can't be
- // above 256 in size (otherwise the complete will be send via data msg)
- // which is okay because we need the 256 first bytes.
- curr->bin.path_length = probe_read_str(curr->bin.path, BINARY_PATH_MAX_LEN, &p->args);
+ char *filename = (char *)ctx + (_(ctx->__data_loc_filename) & 0xFFFF);
+
+ curr->bin.path_length = probe_read_str(curr->bin.path, BINARY_PATH_MAX_LEN, (void *)filename);
if (curr->bin.path_length > 1) {
// don't include the NULL byte in the length
curr->bin.path_length--;
diff --git a/bpf/process/bpf_process_event.h b/bpf/process/bpf_process_event.h
index 9b6d36def5a..53cbb2191d4 100644
--- a/bpf/process/bpf_process_event.h
+++ b/bpf/process/bpf_process_event.h
@@ -82,6 +82,7 @@ getcwd(struct msg_process *curr, __u32 offset, __u32 proc_pid)
if (flags & UNRESOLVED_PATH_COMPONENTS)
curr->flags |= EVENT_ERROR_PATH_COMPONENTS;
curr->flags = curr->flags & ~(EVENT_NEEDS_CWD | EVENT_ERROR_CWD);
+ curr->size_cwd = (__u16)size;
return (__u32)size;
}
diff --git a/cmd/tetragon/main.go b/cmd/tetragon/main.go
index 0238210e30d..bca25f3a125 100644
--- a/cmd/tetragon/main.go
+++ b/cmd/tetragon/main.go
@@ -230,6 +230,10 @@ func tetragonExecuteCtx(ctx context.Context, cancel context.CancelFunc, ready fu
logger.Fatal(log, "Can't specify --execve-map-entries and --execve-map-size together")
}
+ if option.Config.EnableProcessEnvironmentVariables && !config.EnableLargeProgs() {
+ logger.Fatal(log, "Can't specify --enable-process-environment-variables on early kernels ( tetragon.Image
- 56, // 1: tetragon.Container.start_time:type_name -> google.protobuf.Timestamp
- 57, // 2: tetragon.Container.pid:type_name -> google.protobuf.UInt32Value
+ 57, // 1: tetragon.Container.start_time:type_name -> google.protobuf.Timestamp
+ 58, // 2: tetragon.Container.pid:type_name -> google.protobuf.UInt32Value
5, // 3: tetragon.Container.security_context:type_name -> tetragon.SecurityContext
6, // 4: tetragon.Pod.container:type_name -> tetragon.Container
- 53, // 5: tetragon.Pod.pod_labels:type_name -> tetragon.Pod.PodLabelsEntry
- 54, // 6: tetragon.Pod.pod_annotations:type_name -> tetragon.Pod.PodAnnotationsEntry
- 58, // 7: tetragon.Capabilities.permitted:type_name -> tetragon.CapabilitiesType
- 58, // 8: tetragon.Capabilities.effective:type_name -> tetragon.CapabilitiesType
- 58, // 9: tetragon.Capabilities.inheritable:type_name -> tetragon.CapabilitiesType
+ 54, // 5: tetragon.Pod.pod_labels:type_name -> tetragon.Pod.PodLabelsEntry
+ 55, // 6: tetragon.Pod.pod_annotations:type_name -> tetragon.Pod.PodAnnotationsEntry
+ 59, // 7: tetragon.Capabilities.permitted:type_name -> tetragon.CapabilitiesType
+ 59, // 8: tetragon.Capabilities.effective:type_name -> tetragon.CapabilitiesType
+ 59, // 9: tetragon.Capabilities.inheritable:type_name -> tetragon.CapabilitiesType
9, // 10: tetragon.Namespaces.uts:type_name -> tetragon.Namespace
9, // 11: tetragon.Namespaces.ipc:type_name -> tetragon.Namespace
9, // 12: tetragon.Namespaces.mnt:type_name -> tetragon.Namespace
@@ -5764,122 +5834,123 @@ var file_tetragon_tetragon_proto_depIdxs = []int32{
9, // 17: tetragon.Namespaces.time_for_children:type_name -> tetragon.Namespace
9, // 18: tetragon.Namespaces.cgroup:type_name -> tetragon.Namespace
9, // 19: tetragon.Namespaces.user:type_name -> tetragon.Namespace
- 59, // 20: tetragon.UserNamespace.level:type_name -> google.protobuf.Int32Value
- 57, // 21: tetragon.UserNamespace.uid:type_name -> google.protobuf.UInt32Value
- 57, // 22: tetragon.UserNamespace.gid:type_name -> google.protobuf.UInt32Value
+ 60, // 20: tetragon.UserNamespace.level:type_name -> google.protobuf.Int32Value
+ 58, // 21: tetragon.UserNamespace.uid:type_name -> google.protobuf.UInt32Value
+ 58, // 22: tetragon.UserNamespace.gid:type_name -> google.protobuf.UInt32Value
9, // 23: tetragon.UserNamespace.ns:type_name -> tetragon.Namespace
- 57, // 24: tetragon.ProcessCredentials.uid:type_name -> google.protobuf.UInt32Value
- 57, // 25: tetragon.ProcessCredentials.gid:type_name -> google.protobuf.UInt32Value
- 57, // 26: tetragon.ProcessCredentials.euid:type_name -> google.protobuf.UInt32Value
- 57, // 27: tetragon.ProcessCredentials.egid:type_name -> google.protobuf.UInt32Value
- 57, // 28: tetragon.ProcessCredentials.suid:type_name -> google.protobuf.UInt32Value
- 57, // 29: tetragon.ProcessCredentials.sgid:type_name -> google.protobuf.UInt32Value
- 57, // 30: tetragon.ProcessCredentials.fsuid:type_name -> google.protobuf.UInt32Value
- 57, // 31: tetragon.ProcessCredentials.fsgid:type_name -> google.protobuf.UInt32Value
- 60, // 32: tetragon.ProcessCredentials.securebits:type_name -> tetragon.SecureBitsType
+ 58, // 24: tetragon.ProcessCredentials.uid:type_name -> google.protobuf.UInt32Value
+ 58, // 25: tetragon.ProcessCredentials.gid:type_name -> google.protobuf.UInt32Value
+ 58, // 26: tetragon.ProcessCredentials.euid:type_name -> google.protobuf.UInt32Value
+ 58, // 27: tetragon.ProcessCredentials.egid:type_name -> google.protobuf.UInt32Value
+ 58, // 28: tetragon.ProcessCredentials.suid:type_name -> google.protobuf.UInt32Value
+ 58, // 29: tetragon.ProcessCredentials.sgid:type_name -> google.protobuf.UInt32Value
+ 58, // 30: tetragon.ProcessCredentials.fsuid:type_name -> google.protobuf.UInt32Value
+ 58, // 31: tetragon.ProcessCredentials.fsgid:type_name -> google.protobuf.UInt32Value
+ 61, // 32: tetragon.ProcessCredentials.securebits:type_name -> tetragon.SecureBitsType
8, // 33: tetragon.ProcessCredentials.caps:type_name -> tetragon.Capabilities
11, // 34: tetragon.ProcessCredentials.user_ns:type_name -> tetragon.UserNamespace
- 57, // 35: tetragon.InodeProperties.links:type_name -> google.protobuf.UInt32Value
+ 58, // 35: tetragon.InodeProperties.links:type_name -> google.protobuf.UInt32Value
13, // 36: tetragon.FileProperties.inode:type_name -> tetragon.InodeProperties
- 57, // 37: tetragon.BinaryProperties.setuid:type_name -> google.protobuf.UInt32Value
- 57, // 38: tetragon.BinaryProperties.setgid:type_name -> google.protobuf.UInt32Value
- 61, // 39: tetragon.BinaryProperties.privileges_changed:type_name -> tetragon.ProcessPrivilegesChanged
+ 58, // 37: tetragon.BinaryProperties.setuid:type_name -> google.protobuf.UInt32Value
+ 58, // 38: tetragon.BinaryProperties.setgid:type_name -> google.protobuf.UInt32Value
+ 62, // 39: tetragon.BinaryProperties.privileges_changed:type_name -> tetragon.ProcessPrivilegesChanged
14, // 40: tetragon.BinaryProperties.file:type_name -> tetragon.FileProperties
- 57, // 41: tetragon.Process.pid:type_name -> google.protobuf.UInt32Value
- 57, // 42: tetragon.Process.uid:type_name -> google.protobuf.UInt32Value
- 56, // 43: tetragon.Process.start_time:type_name -> google.protobuf.Timestamp
- 57, // 44: tetragon.Process.auid:type_name -> google.protobuf.UInt32Value
+ 58, // 41: tetragon.Process.pid:type_name -> google.protobuf.UInt32Value
+ 58, // 42: tetragon.Process.uid:type_name -> google.protobuf.UInt32Value
+ 57, // 43: tetragon.Process.start_time:type_name -> google.protobuf.Timestamp
+ 58, // 44: tetragon.Process.auid:type_name -> google.protobuf.UInt32Value
7, // 45: tetragon.Process.pod:type_name -> tetragon.Pod
8, // 46: tetragon.Process.cap:type_name -> tetragon.Capabilities
10, // 47: tetragon.Process.ns:type_name -> tetragon.Namespaces
- 57, // 48: tetragon.Process.tid:type_name -> google.protobuf.UInt32Value
+ 58, // 48: tetragon.Process.tid:type_name -> google.protobuf.UInt32Value
12, // 49: tetragon.Process.process_credentials:type_name -> tetragon.ProcessCredentials
15, // 50: tetragon.Process.binary_properties:type_name -> tetragon.BinaryProperties
16, // 51: tetragon.Process.user:type_name -> tetragon.UserRecord
- 62, // 52: tetragon.Process.in_init_tree:type_name -> google.protobuf.BoolValue
- 17, // 53: tetragon.ProcessExec.process:type_name -> tetragon.Process
- 17, // 54: tetragon.ProcessExec.parent:type_name -> tetragon.Process
- 17, // 55: tetragon.ProcessExec.ancestors:type_name -> tetragon.Process
- 17, // 56: tetragon.ProcessExit.process:type_name -> tetragon.Process
- 17, // 57: tetragon.ProcessExit.parent:type_name -> tetragon.Process
- 56, // 58: tetragon.ProcessExit.time:type_name -> google.protobuf.Timestamp
- 17, // 59: tetragon.ProcessExit.ancestors:type_name -> tetragon.Process
- 58, // 60: tetragon.KprobeCred.permitted:type_name -> tetragon.CapabilitiesType
- 58, // 61: tetragon.KprobeCred.effective:type_name -> tetragon.CapabilitiesType
- 58, // 62: tetragon.KprobeCred.inheritable:type_name -> tetragon.CapabilitiesType
- 59, // 63: tetragon.KprobeCapability.value:type_name -> google.protobuf.Int32Value
- 59, // 64: tetragon.KprobeUserNamespace.level:type_name -> google.protobuf.Int32Value
- 57, // 65: tetragon.KprobeUserNamespace.owner:type_name -> google.protobuf.UInt32Value
- 57, // 66: tetragon.KprobeUserNamespace.group:type_name -> google.protobuf.UInt32Value
- 9, // 67: tetragon.KprobeUserNamespace.ns:type_name -> tetragon.Namespace
- 21, // 68: tetragon.KprobeArgument.skb_arg:type_name -> tetragon.KprobeSkb
- 24, // 69: tetragon.KprobeArgument.path_arg:type_name -> tetragon.KprobePath
- 25, // 70: tetragon.KprobeArgument.file_arg:type_name -> tetragon.KprobeFile
- 26, // 71: tetragon.KprobeArgument.truncated_bytes_arg:type_name -> tetragon.KprobeTruncatedBytes
- 20, // 72: tetragon.KprobeArgument.sock_arg:type_name -> tetragon.KprobeSock
- 27, // 73: tetragon.KprobeArgument.cred_arg:type_name -> tetragon.KprobeCred
- 31, // 74: tetragon.KprobeArgument.bpf_attr_arg:type_name -> tetragon.KprobeBpfAttr
- 33, // 75: tetragon.KprobeArgument.perf_event_arg:type_name -> tetragon.KprobePerfEvent
- 34, // 76: tetragon.KprobeArgument.bpf_map_arg:type_name -> tetragon.KprobeBpfMap
- 30, // 77: tetragon.KprobeArgument.user_namespace_arg:type_name -> tetragon.KprobeUserNamespace
- 29, // 78: tetragon.KprobeArgument.capability_arg:type_name -> tetragon.KprobeCapability
- 12, // 79: tetragon.KprobeArgument.process_credentials_arg:type_name -> tetragon.ProcessCredentials
- 11, // 80: tetragon.KprobeArgument.user_ns_arg:type_name -> tetragon.UserNamespace
- 42, // 81: tetragon.KprobeArgument.module_arg:type_name -> tetragon.KernelModule
- 28, // 82: tetragon.KprobeArgument.linux_binprm_arg:type_name -> tetragon.KprobeLinuxBinprm
- 23, // 83: tetragon.KprobeArgument.net_dev_arg:type_name -> tetragon.KprobeNetDev
- 63, // 84: tetragon.KprobeArgument.bpf_cmd_arg:type_name -> tetragon.BpfCmd
- 35, // 85: tetragon.KprobeArgument.syscall_id:type_name -> tetragon.SyscallId
- 22, // 86: tetragon.KprobeArgument.sockaddr_arg:type_name -> tetragon.KprobeSockaddr
- 32, // 87: tetragon.KprobeArgument.bpf_prog_arg:type_name -> tetragon.KprobeBpfProg
- 17, // 88: tetragon.ProcessKprobe.process:type_name -> tetragon.Process
- 17, // 89: tetragon.ProcessKprobe.parent:type_name -> tetragon.Process
- 36, // 90: tetragon.ProcessKprobe.args:type_name -> tetragon.KprobeArgument
- 36, // 91: tetragon.ProcessKprobe.return:type_name -> tetragon.KprobeArgument
- 0, // 92: tetragon.ProcessKprobe.action:type_name -> tetragon.KprobeAction
- 52, // 93: tetragon.ProcessKprobe.kernel_stack_trace:type_name -> tetragon.StackTraceEntry
- 0, // 94: tetragon.ProcessKprobe.return_action:type_name -> tetragon.KprobeAction
- 52, // 95: tetragon.ProcessKprobe.user_stack_trace:type_name -> tetragon.StackTraceEntry
- 17, // 96: tetragon.ProcessKprobe.ancestors:type_name -> tetragon.Process
- 36, // 97: tetragon.ProcessKprobe.data:type_name -> tetragon.KprobeArgument
- 17, // 98: tetragon.ProcessTracepoint.process:type_name -> tetragon.Process
- 17, // 99: tetragon.ProcessTracepoint.parent:type_name -> tetragon.Process
- 36, // 100: tetragon.ProcessTracepoint.args:type_name -> tetragon.KprobeArgument
- 0, // 101: tetragon.ProcessTracepoint.action:type_name -> tetragon.KprobeAction
- 17, // 102: tetragon.ProcessTracepoint.ancestors:type_name -> tetragon.Process
- 17, // 103: tetragon.ProcessUprobe.process:type_name -> tetragon.Process
- 17, // 104: tetragon.ProcessUprobe.parent:type_name -> tetragon.Process
- 36, // 105: tetragon.ProcessUprobe.args:type_name -> tetragon.KprobeArgument
- 17, // 106: tetragon.ProcessUprobe.ancestors:type_name -> tetragon.Process
- 0, // 107: tetragon.ProcessUprobe.action:type_name -> tetragon.KprobeAction
- 36, // 108: tetragon.ProcessUprobe.data:type_name -> tetragon.KprobeArgument
- 17, // 109: tetragon.ProcessUsdt.process:type_name -> tetragon.Process
- 17, // 110: tetragon.ProcessUsdt.parent:type_name -> tetragon.Process
- 36, // 111: tetragon.ProcessUsdt.args:type_name -> tetragon.KprobeArgument
- 17, // 112: tetragon.ProcessUsdt.ancestors:type_name -> tetragon.Process
- 0, // 113: tetragon.ProcessUsdt.action:type_name -> tetragon.KprobeAction
- 17, // 114: tetragon.ProcessLsm.process:type_name -> tetragon.Process
- 17, // 115: tetragon.ProcessLsm.parent:type_name -> tetragon.Process
- 36, // 116: tetragon.ProcessLsm.args:type_name -> tetragon.KprobeArgument
- 0, // 117: tetragon.ProcessLsm.action:type_name -> tetragon.KprobeAction
- 17, // 118: tetragon.ProcessLsm.ancestors:type_name -> tetragon.Process
- 62, // 119: tetragon.KernelModule.signature_ok:type_name -> google.protobuf.BoolValue
- 3, // 120: tetragon.KernelModule.tainted:type_name -> tetragon.TaintedBitsType
- 1, // 121: tetragon.GetHealthStatusRequest.event_set:type_name -> tetragon.HealthStatusType
- 1, // 122: tetragon.HealthStatus.event:type_name -> tetragon.HealthStatusType
- 2, // 123: tetragon.HealthStatus.status:type_name -> tetragon.HealthStatusResult
- 45, // 124: tetragon.GetHealthStatusResponse.health_status:type_name -> tetragon.HealthStatus
- 17, // 125: tetragon.ProcessLoader.process:type_name -> tetragon.Process
- 17, // 126: tetragon.ProcessLoader.parent:type_name -> tetragon.Process
- 17, // 127: tetragon.ProcessLoader.ancestors:type_name -> tetragon.Process
- 51, // 128: tetragon.RuntimeHookRequest.createContainer:type_name -> tetragon.CreateContainer
- 55, // 129: tetragon.CreateContainer.annotations:type_name -> tetragon.CreateContainer.AnnotationsEntry
- 50, // 130: tetragon.CreateContainer.mounts:type_name -> tetragon.Mount
- 131, // [131:131] is the sub-list for method output_type
- 131, // [131:131] is the sub-list for method input_type
- 131, // [131:131] is the sub-list for extension type_name
- 131, // [131:131] is the sub-list for extension extendee
- 0, // [0:131] is the sub-list for field type_name
+ 63, // 52: tetragon.Process.in_init_tree:type_name -> google.protobuf.BoolValue
+ 17, // 53: tetragon.Process.environment_variables:type_name -> tetragon.EnvVar
+ 18, // 54: tetragon.ProcessExec.process:type_name -> tetragon.Process
+ 18, // 55: tetragon.ProcessExec.parent:type_name -> tetragon.Process
+ 18, // 56: tetragon.ProcessExec.ancestors:type_name -> tetragon.Process
+ 18, // 57: tetragon.ProcessExit.process:type_name -> tetragon.Process
+ 18, // 58: tetragon.ProcessExit.parent:type_name -> tetragon.Process
+ 57, // 59: tetragon.ProcessExit.time:type_name -> google.protobuf.Timestamp
+ 18, // 60: tetragon.ProcessExit.ancestors:type_name -> tetragon.Process
+ 59, // 61: tetragon.KprobeCred.permitted:type_name -> tetragon.CapabilitiesType
+ 59, // 62: tetragon.KprobeCred.effective:type_name -> tetragon.CapabilitiesType
+ 59, // 63: tetragon.KprobeCred.inheritable:type_name -> tetragon.CapabilitiesType
+ 60, // 64: tetragon.KprobeCapability.value:type_name -> google.protobuf.Int32Value
+ 60, // 65: tetragon.KprobeUserNamespace.level:type_name -> google.protobuf.Int32Value
+ 58, // 66: tetragon.KprobeUserNamespace.owner:type_name -> google.protobuf.UInt32Value
+ 58, // 67: tetragon.KprobeUserNamespace.group:type_name -> google.protobuf.UInt32Value
+ 9, // 68: tetragon.KprobeUserNamespace.ns:type_name -> tetragon.Namespace
+ 22, // 69: tetragon.KprobeArgument.skb_arg:type_name -> tetragon.KprobeSkb
+ 25, // 70: tetragon.KprobeArgument.path_arg:type_name -> tetragon.KprobePath
+ 26, // 71: tetragon.KprobeArgument.file_arg:type_name -> tetragon.KprobeFile
+ 27, // 72: tetragon.KprobeArgument.truncated_bytes_arg:type_name -> tetragon.KprobeTruncatedBytes
+ 21, // 73: tetragon.KprobeArgument.sock_arg:type_name -> tetragon.KprobeSock
+ 28, // 74: tetragon.KprobeArgument.cred_arg:type_name -> tetragon.KprobeCred
+ 32, // 75: tetragon.KprobeArgument.bpf_attr_arg:type_name -> tetragon.KprobeBpfAttr
+ 34, // 76: tetragon.KprobeArgument.perf_event_arg:type_name -> tetragon.KprobePerfEvent
+ 35, // 77: tetragon.KprobeArgument.bpf_map_arg:type_name -> tetragon.KprobeBpfMap
+ 31, // 78: tetragon.KprobeArgument.user_namespace_arg:type_name -> tetragon.KprobeUserNamespace
+ 30, // 79: tetragon.KprobeArgument.capability_arg:type_name -> tetragon.KprobeCapability
+ 12, // 80: tetragon.KprobeArgument.process_credentials_arg:type_name -> tetragon.ProcessCredentials
+ 11, // 81: tetragon.KprobeArgument.user_ns_arg:type_name -> tetragon.UserNamespace
+ 43, // 82: tetragon.KprobeArgument.module_arg:type_name -> tetragon.KernelModule
+ 29, // 83: tetragon.KprobeArgument.linux_binprm_arg:type_name -> tetragon.KprobeLinuxBinprm
+ 24, // 84: tetragon.KprobeArgument.net_dev_arg:type_name -> tetragon.KprobeNetDev
+ 64, // 85: tetragon.KprobeArgument.bpf_cmd_arg:type_name -> tetragon.BpfCmd
+ 36, // 86: tetragon.KprobeArgument.syscall_id:type_name -> tetragon.SyscallId
+ 23, // 87: tetragon.KprobeArgument.sockaddr_arg:type_name -> tetragon.KprobeSockaddr
+ 33, // 88: tetragon.KprobeArgument.bpf_prog_arg:type_name -> tetragon.KprobeBpfProg
+ 18, // 89: tetragon.ProcessKprobe.process:type_name -> tetragon.Process
+ 18, // 90: tetragon.ProcessKprobe.parent:type_name -> tetragon.Process
+ 37, // 91: tetragon.ProcessKprobe.args:type_name -> tetragon.KprobeArgument
+ 37, // 92: tetragon.ProcessKprobe.return:type_name -> tetragon.KprobeArgument
+ 0, // 93: tetragon.ProcessKprobe.action:type_name -> tetragon.KprobeAction
+ 53, // 94: tetragon.ProcessKprobe.kernel_stack_trace:type_name -> tetragon.StackTraceEntry
+ 0, // 95: tetragon.ProcessKprobe.return_action:type_name -> tetragon.KprobeAction
+ 53, // 96: tetragon.ProcessKprobe.user_stack_trace:type_name -> tetragon.StackTraceEntry
+ 18, // 97: tetragon.ProcessKprobe.ancestors:type_name -> tetragon.Process
+ 37, // 98: tetragon.ProcessKprobe.data:type_name -> tetragon.KprobeArgument
+ 18, // 99: tetragon.ProcessTracepoint.process:type_name -> tetragon.Process
+ 18, // 100: tetragon.ProcessTracepoint.parent:type_name -> tetragon.Process
+ 37, // 101: tetragon.ProcessTracepoint.args:type_name -> tetragon.KprobeArgument
+ 0, // 102: tetragon.ProcessTracepoint.action:type_name -> tetragon.KprobeAction
+ 18, // 103: tetragon.ProcessTracepoint.ancestors:type_name -> tetragon.Process
+ 18, // 104: tetragon.ProcessUprobe.process:type_name -> tetragon.Process
+ 18, // 105: tetragon.ProcessUprobe.parent:type_name -> tetragon.Process
+ 37, // 106: tetragon.ProcessUprobe.args:type_name -> tetragon.KprobeArgument
+ 18, // 107: tetragon.ProcessUprobe.ancestors:type_name -> tetragon.Process
+ 0, // 108: tetragon.ProcessUprobe.action:type_name -> tetragon.KprobeAction
+ 37, // 109: tetragon.ProcessUprobe.data:type_name -> tetragon.KprobeArgument
+ 18, // 110: tetragon.ProcessUsdt.process:type_name -> tetragon.Process
+ 18, // 111: tetragon.ProcessUsdt.parent:type_name -> tetragon.Process
+ 37, // 112: tetragon.ProcessUsdt.args:type_name -> tetragon.KprobeArgument
+ 18, // 113: tetragon.ProcessUsdt.ancestors:type_name -> tetragon.Process
+ 0, // 114: tetragon.ProcessUsdt.action:type_name -> tetragon.KprobeAction
+ 18, // 115: tetragon.ProcessLsm.process:type_name -> tetragon.Process
+ 18, // 116: tetragon.ProcessLsm.parent:type_name -> tetragon.Process
+ 37, // 117: tetragon.ProcessLsm.args:type_name -> tetragon.KprobeArgument
+ 0, // 118: tetragon.ProcessLsm.action:type_name -> tetragon.KprobeAction
+ 18, // 119: tetragon.ProcessLsm.ancestors:type_name -> tetragon.Process
+ 63, // 120: tetragon.KernelModule.signature_ok:type_name -> google.protobuf.BoolValue
+ 3, // 121: tetragon.KernelModule.tainted:type_name -> tetragon.TaintedBitsType
+ 1, // 122: tetragon.GetHealthStatusRequest.event_set:type_name -> tetragon.HealthStatusType
+ 1, // 123: tetragon.HealthStatus.event:type_name -> tetragon.HealthStatusType
+ 2, // 124: tetragon.HealthStatus.status:type_name -> tetragon.HealthStatusResult
+ 46, // 125: tetragon.GetHealthStatusResponse.health_status:type_name -> tetragon.HealthStatus
+ 18, // 126: tetragon.ProcessLoader.process:type_name -> tetragon.Process
+ 18, // 127: tetragon.ProcessLoader.parent:type_name -> tetragon.Process
+ 18, // 128: tetragon.ProcessLoader.ancestors:type_name -> tetragon.Process
+ 52, // 129: tetragon.RuntimeHookRequest.createContainer:type_name -> tetragon.CreateContainer
+ 56, // 130: tetragon.CreateContainer.annotations:type_name -> tetragon.CreateContainer.AnnotationsEntry
+ 51, // 131: tetragon.CreateContainer.mounts:type_name -> tetragon.Mount
+ 132, // [132:132] is the sub-list for method output_type
+ 132, // [132:132] is the sub-list for method input_type
+ 132, // [132:132] is the sub-list for extension type_name
+ 132, // [132:132] is the sub-list for extension extendee
+ 0, // [0:132] is the sub-list for field type_name
}
func init() { file_tetragon_tetragon_proto_init() }
@@ -5889,7 +5960,7 @@ func file_tetragon_tetragon_proto_init() {
}
file_tetragon_bpf_proto_init()
file_tetragon_capabilities_proto_init()
- file_tetragon_tetragon_proto_msgTypes[32].OneofWrappers = []any{
+ file_tetragon_tetragon_proto_msgTypes[33].OneofWrappers = []any{
(*KprobeArgument_StringArg)(nil),
(*KprobeArgument_IntArg)(nil),
(*KprobeArgument_SkbArg)(nil),
@@ -5921,7 +5992,7 @@ func file_tetragon_tetragon_proto_init() {
(*KprobeArgument_SockaddrArg)(nil),
(*KprobeArgument_BpfProgArg)(nil),
}
- file_tetragon_tetragon_proto_msgTypes[44].OneofWrappers = []any{
+ file_tetragon_tetragon_proto_msgTypes[45].OneofWrappers = []any{
(*RuntimeHookRequest_CreateContainer)(nil),
}
type x struct{}
@@ -5930,7 +6001,7 @@ func file_tetragon_tetragon_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_tetragon_tetragon_proto_rawDesc,
NumEnums: 4,
- NumMessages: 52,
+ NumMessages: 53,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.json.go b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.json.go
index 2532b3866a4..84e460271c2 100644
--- a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.json.go
+++ b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.json.go
@@ -166,6 +166,18 @@ func (msg *UserRecord) UnmarshalJSON(b []byte) error {
return protojson.UnmarshalOptions{}.Unmarshal(b, msg)
}
+// MarshalJSON implements json.Marshaler
+func (msg *EnvVar) MarshalJSON() ([]byte, error) {
+ return protojson.MarshalOptions{
+ UseProtoNames: true,
+ }.Marshal(msg)
+}
+
+// UnmarshalJSON implements json.Unmarshaler
+func (msg *EnvVar) UnmarshalJSON(b []byte) error {
+ return protojson.UnmarshalOptions{}.Unmarshal(b, msg)
+}
+
// MarshalJSON implements json.Marshaler
func (msg *Process) MarshalJSON() ([]byte, error) {
return protojson.MarshalOptions{
diff --git a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.proto b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.proto
index 46ba80839db..9ec0791c78e 100644
--- a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.proto
+++ b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.proto
@@ -186,6 +186,12 @@ message UserRecord {
string name = 1;
}
+// Environment variable
+message EnvVar {
+ string Key = 1;
+ string Value = 2;
+}
+
message Process {
// Exec ID uniquely identifies the process over time across all the nodes in the cluster.
string exec_id = 1;
@@ -297,6 +303,8 @@ message Process {
// for example, you wish to discern whether a process was spawned using a
// tool like nsenter or kubectl exec.
google.protobuf.BoolValue in_init_tree = 20;
+ // Environment variables passed to the binary at execution.
+ repeated EnvVar environment_variables = 21;
}
message ProcessExec {
diff --git a/docs/content/en/docs/concepts/events.md b/docs/content/en/docs/concepts/events.md
index 0c86b8bbdc3..6f32c9d8a6c 100644
--- a/docs/content/en/docs/concepts/events.md
+++ b/docs/content/en/docs/concepts/events.md
@@ -223,9 +223,9 @@ Since Tetragon traces the entire system, event exports might sometimes contain
sensitive information (for example, a secret passed via a command line argument
to a process). To prevent this information from being exfiltrated via Tetragon
JSON export, Tetragon provides a mechanism called Redaction Filters which can be
-used to string patterns to redact from exported process arguments. These filters are written
-in JSON and passed to the Tetragon agent via the `--redaction-filters` command
-line flag or the `redactionFilters` Helm value.
+used to string patterns to redact from exported process arguments and environment
+variables. These filters are written in JSON and passed to the Tetragon agent via
+the `--redaction-filters` command line flag or the `redactionFilters` Helm value.
To perform redactions, redaction filters define RE2 regular expressions in the
`redact` field. Any capture groups in these RE2 regular expressions are redacted and
@@ -243,7 +243,7 @@ characters. For instance `\Wpasswd\W?` would be written as `{"redact": "\\Wpassw
{{< /warning >}}
For more control, you can select which binary or binaries should have their
-arguments redacted with the `binary_regex` field.
+arguments or environment variables redacted with the `binary_regex` field.
As a concrete example, the following will redact all passwords passed to
processes with the `"--password"` argument:
@@ -265,6 +265,18 @@ We can also redact these as follows:
With both of the above redaction filters in place, we are now redacting all
password arguments.
+Another example is to redact `SSHPASS` environment variable with:
+
+```json
+{"redact": ["(?:SSHPASS=)+(\\S+)"]}
+```
+
+Now, an event that contains the string `"SSHPASS=password"` would have that string
+replaced with `"SSHPASS=*****"`.
+
+It's also possible to store only requested environment variables with
+'--filter-environment-variables VAR1[,VAR2..]` option.
+
### `tetra` CLI
A second way is to use the [`tetra`](https://github.com/cilium/tetragon/tree/main/cmd/tetra) CLI. This
diff --git a/docs/content/en/docs/reference/grpc-api.md b/docs/content/en/docs/reference/grpc-api.md
index e18c9c5a8c2..4966a795984 100644
--- a/docs/content/en/docs/reference/grpc-api.md
+++ b/docs/content/en/docs/reference/grpc-api.md
@@ -255,6 +255,16 @@ found.
| key | [string](#string) | | |
| value | [string](#string) | | |
+
+
+### EnvVar
+Environment variable
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| Key | [string](#string) | | |
+| Value | [string](#string) | | |
+
### FileProperties
@@ -622,6 +632,7 @@ found.
| binary_properties | [BinaryProperties](#tetragon-BinaryProperties) | | Executed binary properties. This field is only available on ProcessExec events. |
| user | [UserRecord](#tetragon-UserRecord) | | UserRecord contains user information about the event. It is only supported when i) Tetragon is running as a systemd service or directly on the host, and ii) when the flag `--username-metadata` is set to "unix". In this case, the information is retrieved from the traditional user database `/etc/passwd` and no name services lookups are performed. The resolution will only be attempted for processes in the host namespace. Note that this resolution happens in user-space, which means that mapping might have changed between the in-kernel BPF hook being executed and the username resolution. |
| in_init_tree | [google.protobuf.BoolValue](#google-protobuf-BoolValue) | | If set to true, this process is containerized and is a member of the process tree rooted at pid=1 in its PID namespace. This is useful if, for example, you wish to discern whether a process was spawned using a tool like nsenter or kubectl exec. |
+| environment_variables | [EnvVar](#tetragon-EnvVar) | repeated | Environment variables passed to the binary at execution. |
diff --git a/docs/content/en/docs/reference/metrics.md b/docs/content/en/docs/reference/metrics.md
index 115e23aca13..8a905a30db9 100644
--- a/docs/content/en/docs/reference/metrics.md
+++ b/docs/content/en/docs/reference/metrics.md
@@ -172,7 +172,7 @@ The total number of Tetragon flags. For internal use only.
| label | values |
| ----- | ------ |
-| `type ` | `clone, dataArgs, dataFilename, errorArgs, errorCWD, errorCgroupID, errorCgroupName, errorCgroupSubsys, errorCgroupSubsysCgrp, errorCgroups, errorFilename, errorPathResolutionCwd, execve, inInitTree, miss, nocwd, procFS, rootcwd, truncArgs, unknown` |
+| `type ` | `clone, dataArgs, dataFilename, errorArgs, errorCWD, errorCgroupID, errorCgroupName, errorCgroupSubsys, errorCgroupSubsysCgrp, errorCgroups, errorEnvs, errorFilename, errorPathResolutionCwd, execve, inInitTree, miss, nocwd, procFS, rootcwd, truncArgs, unknown` |
### `tetragon_generic_kprobe_merge_errors_total`
diff --git a/docs/data/tetragon_flags.yaml b/docs/data/tetragon_flags.yaml
index 783e16bdbad..e2c73e8306e 100644
--- a/docs/data/tetragon_flags.yaml
+++ b/docs/data/tetragon_flags.yaml
@@ -85,6 +85,10 @@ options:
- name: enable-process-cred
default_value: "false"
usage: Enable process_cred events
+ - name: enable-process-environment-variables
+ default_value: "false"
+ usage: |
+ Include environment variables in process_exec events. Disabled by default. Note that this option can significantly increase the size of the events and may impact performance, as well as capture sensitive information such as passwords in the events (you can use --redaction-filters to redact the data).
- name: enable-process-ns
default_value: "false"
usage: |
@@ -144,6 +148,9 @@ options:
usage: Expose real linear addresses in events stack traces
- name: field-filters
usage: Field filters for event exports
+ - name: filter-environment-variables
+ default_value: '[]'
+ usage: Filter for specific environment variables
- name: force-large-progs
default_value: "false"
usage: |
diff --git a/pkg/api/flags.go b/pkg/api/flags.go
index 98ce6a8b371..0755381febe 100644
--- a/pkg/api/flags.go
+++ b/pkg/api/flags.go
@@ -10,15 +10,15 @@ const (
// EventProcFS for the other option. A correctly formatted event should
// either set EventExecve or EventProcFS.
EventExecve = 0x01
- // Available for use
- EventAvail1 = 0x02
+ // EventEnvsData indicates environment variables are received with data event.
+ EventDataEnvs = 0x02
// EventProcFS indicates the event is generated from a proc interface.
// This happens at Tetragon init when existing processes are being loaded
// into Tetragon event buffer. All events should have either EventExecve or
// EventProcFS set.
EventProcFS = 0x04
- // Available for use
- EventAvail2 = 0x08
+ // EventEnvsError indicates an error happened when storing environment variables.
+ EventErrorEnvs = 0x08
// EventTruncArgs indicates we truncated the processes arguments because
// the buffer size was too small to fit all exec args. Consider increasing
// buffer size to avoid this.
diff --git a/pkg/api/processapi/processapi.go b/pkg/api/processapi/processapi.go
index 71ea52ce2db..fe981b95528 100644
--- a/pkg/api/processapi/processapi.go
+++ b/pkg/api/processapi/processapi.go
@@ -20,7 +20,7 @@ const (
CGROUP_PATH_LENGTH = 4096
MSG_SIZEOF_MAXARG = 100
- MSG_SIZEOF_EXECVE = 56
+ MSG_SIZEOF_EXECVE = 64
MSG_SIZEOF_CWD = 4096
MSG_SIZEOF_ARGS = 1024
MSG_SIZEOF_BUFFER = MSG_SIZEOF_ARGS +
@@ -77,6 +77,10 @@ type MsgExec struct {
Pad uint32
Ino uint64
Ktime uint64
+ SizePath uint16
+ SizeArgs uint16
+ SizeCwd uint16
+ SizeEnvs uint16
}
type MsgExecveKey struct {
@@ -206,6 +210,7 @@ type MsgProcess struct {
Ktime uint64
Filename string
Args string
+ Envs []string
User MsgUserRecord
}
diff --git a/pkg/fieldfilters/benchmark_test.go b/pkg/fieldfilters/benchmark_test.go
index f76be0408d3..dac2a6fa7c8 100644
--- a/pkg/fieldfilters/benchmark_test.go
+++ b/pkg/fieldfilters/benchmark_test.go
@@ -194,7 +194,7 @@ func BenchmarkSerialize_RedactionFilters(b *testing.B) {
getProcess, ok := ev.Event.(interface{ GetProcess() *tetragon.Process })
if ok {
process := getProcess.GetProcess()
- process.Arguments = ff.Redact(process.Binary, process.Arguments)
+ process.Arguments, _ = ff.Redact(process.Binary, process.Arguments, []string{""})
}
err := encoder.Encode(ev)
require.NoError(b, err, "event must encode")
diff --git a/pkg/fieldfilters/redaction.go b/pkg/fieldfilters/redaction.go
index f4fc952cc0b..63024ecbcdc 100644
--- a/pkg/fieldfilters/redaction.go
+++ b/pkg/fieldfilters/redaction.go
@@ -89,18 +89,18 @@ func redactionFilterFromProto(protoFilter *tetragon.RedactionFilter) (*Redaction
}
// Redact redacts a string based on redaction filters.
-func (f RedactionFilterList) Redact(binary, args string) string {
+func (f RedactionFilterList) Redact(binary, args string, envs []string) (string, []string) {
for _, filter := range f.list {
- args = filter.Redact(binary, args)
+ args, envs = filter.Redact(binary, args, envs)
}
- return args
+ return args, envs
}
// Redact resursively checks any string fields in the event for matches to
// redaction regexes and replaces any capture groups with `*****`.
//
// NOTE: If you're using multiple redaction filters, reach for RedactionFilterList.Redact() instead.
-func (f RedactionFilter) Redact(binary, args string) string {
+func (f RedactionFilter) Redact(binary, args string, envs []string) (string, []string) {
// Default match to true if we have no binary regexes
binaryMatch := len(f.binaryRegex) == 0
for _, re := range f.binaryRegex {
@@ -109,12 +109,28 @@ func (f RedactionFilter) Redact(binary, args string) string {
}
}
if !binaryMatch {
- return args
+ return args, envs
}
+
for _, re := range f.redact {
args, _ = redactString(re, args)
}
- return args
+
+ var (
+ envsRedacted []string
+ modified bool
+ )
+
+ for _, v := range envs {
+ for _, re := range f.redact {
+ if v, modified = redactString(re, v); modified {
+ break
+ }
+ }
+ envsRedacted = append(envsRedacted, v)
+ }
+
+ return args, envsRedacted
}
func redactString(re *regexp.Regexp, s string) (string, bool) {
diff --git a/pkg/fieldfilters/redaction_test.go b/pkg/fieldfilters/redaction_test.go
index e565773afd6..8ba65b60de5 100644
--- a/pkg/fieldfilters/redaction_test.go
+++ b/pkg/fieldfilters/redaction_test.go
@@ -5,6 +5,7 @@ package fieldfilters
import (
"regexp"
+ "strings"
"testing"
"github.com/stretchr/testify/assert"
@@ -75,9 +76,10 @@ func TestRedact_Simple(t *testing.T) {
filters, err := ParseRedactionFilterList(filterList)
require.NoError(t, err)
- redacted := filters.Redact("", args)
+ redacted, _ := filters.Redact("", args, []string{""})
assert.Equal(t, "--verbose=true --password "+REDACTION_STR+" --username foobar", redacted)
}
+
func TestRedact_BinaryFilter(t *testing.T) {
args := "--verbose=true --password ybx511!ackt544 --username foobar"
@@ -85,10 +87,10 @@ func TestRedact_BinaryFilter(t *testing.T) {
filters, err := ParseRedactionFilterList(filterList)
require.NoError(t, err)
- redacted := filters.Redact("", args)
+ redacted, _ := filters.Redact("", args, []string{""})
assert.Equal(t, args, redacted, "redaction without binary match")
- redacted = filters.Redact("/bin/mysql", args)
+ redacted, _ = filters.Redact("/bin/mysql", args, []string{""})
assert.Equal(t, "--verbose=true --password "+REDACTION_STR+" --username foobar", redacted, "redaction with binary match")
}
@@ -99,6 +101,42 @@ func TestRedact_Multi(t *testing.T) {
filters, err := ParseRedactionFilterList(filterList)
require.NoError(t, err)
- redacted := filters.Redact("", args)
+ redacted, _ := filters.Redact("", args, []string{""})
assert.Equal(t, "--verbose=true --password "+REDACTION_STR+" --username foobar "+REDACTION_STR+"cake "+REDACTION_STR+" innocent", redacted)
}
+
+func TestRedact_Envs(t *testing.T) {
+ envs := []string{
+ "VAR1=XXX",
+ "SSH_PASSWORD=verysecretpassword",
+ "VAR2=YYY",
+ }
+
+ filterList := `{"redact": ["(?:SSH_PASSWORD)[\\s=]+(\\S+)"]}`
+ filters, err := ParseRedactionFilterList(filterList)
+ require.NoError(t, err)
+
+ _, redacted := filters.Redact("", "", envs)
+
+ str := strings.Join(redacted, " ")
+ assert.Equal(t, "VAR1=XXX SSH_PASSWORD="+REDACTION_STR+" VAR2=YYY", str)
+}
+
+func TestRedact_ArgsWithEnvs(t *testing.T) {
+ args := "--verbose=true --password ybx511!ackt544 --username foobar cheesecake TOPSECRET innocent"
+ envs := []string{
+ "VAR1=XXX",
+ "SSH_PASSWORD=verysecretpassword",
+ "VAR2=YYY",
+ }
+
+ filterList := `{"redact": ["(?:--password|-p)[\\s=]+(\\S+)", "\\W(TOPSECRET)\\W", "(cheese)cake", "(?:SSH_PASSWORD)[\\s=]+(\\S+)"]}`
+ filters, err := ParseRedactionFilterList(filterList)
+ require.NoError(t, err)
+
+ args, envs = filters.Redact("", args, envs)
+ assert.Equal(t, "--verbose=true --password "+REDACTION_STR+" --username foobar "+REDACTION_STR+"cake "+REDACTION_STR+" innocent", args)
+
+ str := strings.Join(envs, " ")
+ assert.Equal(t, "VAR1=XXX SSH_PASSWORD="+REDACTION_STR+" VAR2=YYY", str)
+}
diff --git a/pkg/option/config.go b/pkg/option/config.go
index 11d08d3c7e0..1679349ec0f 100644
--- a/pkg/option/config.go
+++ b/pkg/option/config.go
@@ -33,12 +33,15 @@ type config struct {
EnablePodAnnotations bool
- EnableProcessAncestors bool
- EnableProcessKprobeAncestors bool
- EnableProcessTracepointAncestors bool
- EnableProcessUprobeAncestors bool
- EnableProcessLsmAncestors bool
- EnableProcessUsdtAncestors bool
+ EnableProcessAncestors bool
+ EnableProcessKprobeAncestors bool
+ EnableProcessTracepointAncestors bool
+ EnableProcessUprobeAncestors bool
+ EnableProcessLsmAncestors bool
+ EnableProcessUsdtAncestors bool
+ EnableProcessEnvironmentVariables bool
+
+ FilterEnvironmentVariables map[string]struct{}
EnableProcessNs bool
EnableProcessCred bool
diff --git a/pkg/option/flags.go b/pkg/option/flags.go
index 358b071bd68..6d6fd3ca79b 100644
--- a/pkg/option/flags.go
+++ b/pkg/option/flags.go
@@ -51,6 +51,10 @@ const (
KeyServerAddress = "server-address"
KeyGopsAddr = "gops-address"
+ KeyEnableProcessEnvironmentVariables = "enable-process-environment-variables"
+
+ KeyFilterEnvironmentVariables = "filter-environment-variables"
+
KeyEnableAncestors = "enable-ancestors"
KeyEnableProcessCred = "enable-process-cred"
KeyEnableProcessNs = "enable-process-ns"
@@ -197,6 +201,17 @@ func ReadAndSetFlags() error {
Config.EnableProcessUsdtAncestors = slices.Contains(enableAncestors, "usdt")
}
+ Config.EnableProcessEnvironmentVariables = viper.GetBool(KeyEnableProcessEnvironmentVariables)
+
+ vars := viper.GetStringSlice(KeyFilterEnvironmentVariables)
+ if len(vars) != 0 {
+ filter := make(map[string]struct{})
+ for _, v := range vars {
+ filter[v] = struct{}{}
+ }
+ Config.FilterEnvironmentVariables = filter
+ }
+
Config.GopsAddr = viper.GetString(KeyGopsAddr)
logLevel := viper.GetString(KeyLogLevel)
@@ -390,6 +405,11 @@ func AddFlags(flags *pflag.FlagSet) {
flags.Bool(KeyEnablePodAnnotations, false, "Add pod annotations field to events.")
flags.StringSlice(KeyEnableAncestors, []string{}, "Comma-separated list of process event types to enable ancestors for. Supported event types are: base, kprobe, tracepoint, uprobe, lsm, usdt. Unknown event types will be ignored. Type 'base' enables ancestors for process_exec and process_exit events and is required by all other supported event types for correct reference counting. An empty string disables ancestors completely")
+ flags.Bool(KeyEnableProcessEnvironmentVariables, false, "Include environment variables in process_exec events. Disabled by default. Note that this option can significantly increase the size of the events and may impact performance, as well as capture sensitive information such as passwords in the events (you can use --redaction-filters to redact the data).")
+
+ // filter option for allowed envs
+ flags.StringSliceP(KeyFilterEnvironmentVariables, "", nil, "Filter for specific environment variables")
+
// Tracing policy file
flags.String(KeyTracingPolicy, "", "Tracing policy file to load at startup")
diff --git a/pkg/process/process.go b/pkg/process/process.go
index cb3c0a79677..7ec7426ecdf 100644
--- a/pkg/process/process.go
+++ b/pkg/process/process.go
@@ -5,6 +5,7 @@ package process
import (
"errors"
+ "slices"
"strings"
"sync"
"sync/atomic"
@@ -268,6 +269,26 @@ func GetExecIDFromKey(key *tetragonAPI.MsgExecveKey) string {
return GetProcessID(key.Pid, key.Ktime)
}
+func getEnvironmentVariables(envs []string) []*tetragon.EnvVar {
+ res := []*tetragon.EnvVar{}
+
+ for _, v := range envs {
+ var key, val string
+
+ idx := strings.Index(v, "=")
+ if idx == -1 {
+ // unlikely, but let's not just ignore
+ key = "invalid"
+ val = v
+ } else {
+ key = v[0:idx]
+ val = v[idx+1:]
+ }
+ res = append(res, &tetragon.EnvVar{Key: key, Value: val})
+ }
+ return res
+}
+
// initProcessInternalExec() initialize and returns ProcessInternal and
// hubblev1.Endpoint objects from an execve event
func initProcessInternalExec(
@@ -353,8 +374,19 @@ func initProcessInternalExec(
errormetrics.ErrorTotalInc(errormetrics.ProcessPidTidMismatch)
}
+ envs := process.Envs
+
+ // Apply user filter on environment variables before redaction.
+ if option.Config.FilterEnvironmentVariables != nil {
+ envs = slices.DeleteFunc(envs, func(v string) bool {
+ idx := strings.Index(v, "=")
+ _, ok := option.Config.FilterEnvironmentVariables[v[0:idx]]
+ return !ok
+ })
+ }
+
if fieldfilters.RedactionFilters != nil {
- args = fieldfilters.RedactionFilters.Redact(binary, args)
+ args, envs = fieldfilters.RedactionFilters.Redact(binary, args, envs)
}
var user *tetragon.UserRecord
@@ -367,21 +399,22 @@ func initProcessInternalExec(
pi := &ProcessInternal{
process: &tetragon.Process{
- Pid: &wrapperspb.UInt32Value{Value: process.PID},
- Tid: &wrapperspb.UInt32Value{Value: process.TID},
- Uid: &wrapperspb.UInt32Value{Value: process.UID},
- Cwd: cwd,
- Binary: binary,
- Arguments: args,
- Flags: strings.Join(exec.DecodeCommonFlags(process.Flags), " "),
- StartTime: ktime.ToProtoOpt(process.Ktime, (process.Flags&api.EventProcFS) == 0),
- Auid: &wrapperspb.UInt32Value{Value: process.AUID},
- Pod: protoPod,
- ExecId: execID,
- Docker: event.Kube.Docker,
- ParentExecId: parentExecID,
- Refcnt: 0,
- User: user,
+ Pid: &wrapperspb.UInt32Value{Value: process.PID},
+ Tid: &wrapperspb.UInt32Value{Value: process.TID},
+ Uid: &wrapperspb.UInt32Value{Value: process.UID},
+ Cwd: cwd,
+ Binary: binary,
+ Arguments: args,
+ Flags: strings.Join(exec.DecodeCommonFlags(process.Flags), " "),
+ StartTime: ktime.ToProtoOpt(process.Ktime, (process.Flags&api.EventProcFS) == 0),
+ Auid: &wrapperspb.UInt32Value{Value: process.AUID},
+ Pod: protoPod,
+ ExecId: execID,
+ Docker: event.Kube.Docker,
+ ParentExecId: parentExecID,
+ Refcnt: 0,
+ User: user,
+ EnvironmentVariables: getEnvironmentVariables(envs),
},
capabilities: apiCaps,
apiCreds: apiCreds,
diff --git a/pkg/reader/exec/exec.go b/pkg/reader/exec/exec.go
index 9f2ea86facf..a75388e4a11 100644
--- a/pkg/reader/exec/exec.go
+++ b/pkg/reader/exec/exec.go
@@ -11,6 +11,7 @@ import (
var FlagStrings = map[uint32]string{
api.EventExecve: "execve",
api.EventProcFS: "procFS",
+ api.EventErrorEnvs: "errorEnvs",
api.EventTruncArgs: "truncArgs",
api.EventMiss: "miss",
api.EventErrorFilename: "errorFilename",
@@ -33,6 +34,7 @@ var FlagStrings = map[uint32]string{
var flagsOrdered = []uint32{
api.EventExecve,
api.EventProcFS,
+ api.EventErrorEnvs,
api.EventTruncArgs,
api.EventMiss,
api.EventErrorFilename,
diff --git a/pkg/sensors/base/base.go b/pkg/sensors/base/base.go
index 0be5e2a35c9..5d2cd68f079 100644
--- a/pkg/sensors/base/base.go
+++ b/pkg/sensors/base/base.go
@@ -154,6 +154,10 @@ func setupSensor() {
logger.GetLogger().Info(fmt.Sprintf("Set execve_map entries %d", entries),
"size", strutils.SizeWithSuffix(entries*int(unsafe.Sizeof(execvemap.ExecveValue{}))))
+
+ if option.Config.EnableProcessEnvironmentVariables {
+ Execve.RewriteConstants["ENV_VARS_ENABLED"] = uint8(1)
+ }
}
func GetExecveMap() *program.Map {
diff --git a/pkg/sensors/exec/exec_linux.go b/pkg/sensors/exec/exec_linux.go
index 1e263bbc3fa..8d5a7c995ff 100644
--- a/pkg/sensors/exec/exec_linux.go
+++ b/pkg/sensors/exec/exec_linux.go
@@ -7,6 +7,7 @@ import (
"bytes"
"encoding/binary"
"errors"
+ "fmt"
"unsafe"
"github.com/cilium/tetragon/pkg/api"
@@ -79,16 +80,19 @@ func msgToExecveKubeUnix(m *processapi.MsgExecveEvent, execID string, filename s
return kube
}
-func execParse(reader *bytes.Reader) (processapi.MsgProcess, bool, error) {
- proc := processapi.MsgProcess{}
+func execParse(reader *bytes.Reader) (processapi.MsgProcess, error) {
+ proc := processapi.MsgProcess{
+ Filename: "",
+ Args: "",
+ Size: processapi.MSG_SIZEOF_EXECVE,
+ }
exec := processapi.MsgExec{}
if err := binary.Read(reader, binary.LittleEndian, &exec); err != nil {
logger.GetLogger().Debug("Failed to read exec event", logfields.Error, err)
- return proc, true, err
+ return proc, err
}
- proc.Size = exec.Size
proc.PID = exec.PID
proc.TID = exec.TID
proc.NSPID = exec.NSPID
@@ -103,101 +107,112 @@ func execParse(reader *bytes.Reader) (processapi.MsgProcess, bool, error) {
size := exec.Size - processapi.MSG_SIZEOF_EXECVE
if size > processapi.MSG_SIZEOF_BUFFER-processapi.MSG_SIZEOF_EXECVE {
err := errors.New("msg exec size larger than argsbuffer")
- proc.Size = processapi.MSG_SIZEOF_EXECVE
- proc.Args = "enomem enomem"
- proc.Filename = "enomem"
- return proc, false, err
+ return proc, err
}
- args := make([]byte, size) //+2)
- if err := binary.Read(reader, binary.LittleEndian, &args); err != nil {
- proc.Size = processapi.MSG_SIZEOF_EXECVE
- proc.Args = "enomem enomem"
- proc.Filename = "enomem"
- return proc, false, err
+ if size != uint32(exec.SizePath+exec.SizeArgs+exec.SizeCwd+exec.SizeEnvs) {
+ err := fmt.Errorf("msg exec size larger than argsbuffer, size %d != %d, SizePath %d, SizeArgs %d, SizeCwd %d, SizeEnvs %d",
+ size, exec.SizePath+exec.SizeArgs+exec.SizeCwd, exec.SizePath, exec.SizeArgs, exec.SizeCwd, exec.SizeEnvs)
+ return proc, err
}
- if exec.Flags&api.EventDataFilename != 0 {
+ readData := func(size uint16) ([]byte, error) {
var desc dataapi.DataEventDesc
- dr := bytes.NewReader(args)
-
- if err := binary.Read(dr, binary.LittleEndian, &desc); err != nil {
- proc.Size = processapi.MSG_SIZEOF_EXECVE
- proc.Args = "enomem enomem"
- proc.Filename = "enomem"
- return proc, false, err
+ if uint16(unsafe.Sizeof(desc)) != size {
+ return nil, errors.New("msg exec mismatched size")
}
- data, err := observer.DataGet(desc)
- if err != nil {
- return proc, false, err
+ if err := binary.Read(reader, binary.LittleEndian, &desc); err != nil {
+ return nil, err
}
- proc.Filename = strutils.UTF8FromBPFBytes(data[:])
- args = args[unsafe.Sizeof(desc):]
- } else if exec.Flags&api.EventErrorFilename == 0 {
- n := bytes.Index(args, []byte{0x00})
- if n != -1 {
- proc.Filename = strutils.UTF8FromBPFBytes(args[:n])
- args = args[n+1:]
+ return observer.DataGet(desc)
+ }
+
+ if exec.SizePath != 0 {
+ if exec.Flags&api.EventDataFilename != 0 {
+ data, err := readData(exec.SizePath)
+ if err != nil {
+ return proc, err
+ }
+ proc.Filename = strutils.UTF8FromBPFBytes(data[:])
+ } else {
+ path := make([]byte, exec.SizePath)
+
+ if err := binary.Read(reader, binary.LittleEndian, &path); err != nil {
+ return proc, err
+ }
+ proc.Filename = strutils.UTF8FromBPFBytes(path[:exec.SizePath])
}
}
var cmdArgs [][]byte
- if exec.Flags&api.EventDataArgs != 0 {
- var desc dataapi.DataEventDesc
+ if exec.SizeArgs != 0 {
+ if exec.Flags&api.EventDataArgs != 0 {
+ data, err := readData(exec.SizeArgs)
+ if err != nil {
+ return proc, err
+ }
+ // cut the zero byte
+ if len(data) > 0 {
+ n := len(data) - 1
+ cmdArgs = bytes.Split(data[:n], []byte{0x00})
+ }
+ } else {
+ data := make([]byte, exec.SizeArgs)
+ if err := binary.Read(reader, binary.LittleEndian, &data); err != nil {
+ return proc, err
+ }
+ cmdArgs = bytes.Split(data[:exec.SizeArgs], []byte{0x00})
+ }
+ }
- dr := bytes.NewReader(args)
+ if exec.SizeCwd != 0 {
+ cwd := make([]byte, exec.SizeCwd)
- if err := binary.Read(dr, binary.LittleEndian, &desc); err != nil {
- proc.Size = processapi.MSG_SIZEOF_EXECVE
- proc.Args = "enomem enomem"
- proc.Filename = "enomem"
- return proc, false, err
- }
- data, err := observer.DataGet(desc)
- if err != nil {
- return proc, false, err
+ if err := binary.Read(reader, binary.LittleEndian, &cwd); err != nil {
+ return proc, err
}
- // cut the zero byte
- if len(data) > 0 {
- n := len(data) - 1
- cmdArgs = bytes.Split(data[:n], []byte{0x00})
- }
-
- cwd := args[unsafe.Sizeof(desc):]
cmdArgs = append(cmdArgs, cwd)
- } else {
- // no arguments, args should have just cwd
- // reading it with split to get [][]byte type
- cmdArgs = bytes.Split(args, []byte{0x00})
}
- proc.Args = strutils.UTF8FromBPFBytes(bytes.Join(cmdArgs[0:], []byte{0x00}))
- return proc, false, nil
-}
+ if exec.SizeEnvs != 0 {
+ var data []byte
+ var err error
+
+ if exec.Flags&api.EventDataEnvs != 0 {
+ data, err = readData(exec.SizeEnvs)
+ if err != nil {
+ return proc, err
+ }
+ // cut the zero byte
+ data = data[:len(data)-1]
+ } else {
+ data = make([]byte, exec.SizeEnvs)
+ if err := binary.Read(reader, binary.LittleEndian, &data); err != nil {
+ return proc, err
+ }
+ }
-func nopMsgProcess() processapi.MsgProcess {
- return processapi.MsgProcess{
- Filename: "",
- Args: "",
+ for v := range bytes.SplitSeq(data, []byte{0}) {
+ proc.Envs = append(proc.Envs, strutils.UTF8FromBPFBytes(v))
+ }
}
+
+ proc.Size = exec.Size
+ proc.Args = strutils.UTF8FromBPFBytes(bytes.Join(cmdArgs[0:], []byte{0x00}))
+ return proc, nil
}
func handleExecve(r *bytes.Reader) ([]observer.Event, error) {
- var empty bool
-
m := processapi.MsgExecveEvent{}
err := binary.Read(r, binary.LittleEndian, &m)
if err != nil {
return nil, err
}
msgUnix := msgToExecveUnix(&m)
- msgUnix.Unix.Process, empty, err = execParse(r)
- if err != nil && empty {
- msgUnix.Unix.Process = nopMsgProcess()
- }
- if err == nil && !empty {
+ msgUnix.Unix.Process, err = execParse(r)
+ if err == nil {
err = userinfo.MsgToExecveAccountUnix(msgUnix.Unix)
if err != nil {
logger.Trace(logger.GetLogger(), "Resolving process uid to username record failed",
diff --git a/pkg/sensors/exec/exec_test.go b/pkg/sensors/exec/exec_test.go
index a95e1d781af..7f11752ac7c 100644
--- a/pkg/sensors/exec/exec_test.go
+++ b/pkg/sensors/exec/exec_test.go
@@ -32,6 +32,8 @@ import (
"github.com/cilium/tetragon/pkg/api/processapi"
"github.com/cilium/tetragon/pkg/bpf"
"github.com/cilium/tetragon/pkg/cgroups"
+ "github.com/cilium/tetragon/pkg/config"
+ "github.com/cilium/tetragon/pkg/fieldfilters"
grpcexec "github.com/cilium/tetragon/pkg/grpc/exec"
"github.com/cilium/tetragon/pkg/jsonchecker"
"github.com/cilium/tetragon/pkg/kernels"
@@ -813,28 +815,59 @@ func TestExecParse(t *testing.T) {
// - cwd (string)
exec.Flags = 0
- exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + len(filename) + len(cwd) + 1)
+ exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + len(filename) + len(cwd))
+ exec.SizePath = uint16(len(filename))
+ exec.SizeArgs = 0
+ exec.SizeCwd = uint16(len(cwd))
var buf bytes.Buffer
binary.Write(&buf, binary.LittleEndian, exec)
binary.Write(&buf, binary.LittleEndian, filename)
- binary.Write(&buf, binary.LittleEndian, []byte{0})
binary.Write(&buf, binary.LittleEndian, cwd)
reader := bytes.NewReader(buf.Bytes())
- process, empty, err := execParse(reader)
+ process, err := execParse(reader)
require.NoError(t, err)
assert.Equal(t, string(filename), process.Filename)
assert.Equal(t, string(cwd), process.Args)
- assert.False(t, empty)
decArgs, decCwd := proc.ArgsDecoder(process.Args, process.Flags)
assert.Empty(t, decArgs)
assert.Equal(t, string(cwd), decCwd)
})
+ t.Run("Empty args and cwd", func(t *testing.T) {
+ observer.DataPurge()
+
+ // - filename (string)
+ // - no args
+ // - no cwd
+
+ exec.Flags = 0
+ exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + len(filename))
+ exec.SizePath = uint16(len(filename))
+ exec.SizeArgs = 0
+ exec.SizeCwd = 0
+
+ var buf bytes.Buffer
+ binary.Write(&buf, binary.LittleEndian, exec)
+ binary.Write(&buf, binary.LittleEndian, filename)
+
+ reader := bytes.NewReader(buf.Bytes())
+
+ process, err := execParse(reader)
+ require.NoError(t, err)
+
+ assert.Equal(t, string(filename), process.Filename)
+ assert.Empty(t, process.Args)
+
+ decArgs, decCwd := proc.ArgsDecoder(process.Args, process.Flags)
+ assert.Empty(t, decArgs)
+ assert.Empty(t, decCwd)
+ })
+
t.Run("Filename as data event", func(t *testing.T) {
observer.DataPurge()
@@ -849,6 +882,9 @@ func TestExecParse(t *testing.T) {
exec.Flags = api.EventDataFilename
exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + binary.Size(desc) + len(cwd))
+ exec.SizePath = uint16(binary.Size(desc))
+ exec.SizeArgs = 0
+ exec.SizeCwd = uint16(len(cwd))
var buf bytes.Buffer
binary.Write(&buf, binary.LittleEndian, exec)
@@ -857,13 +893,12 @@ func TestExecParse(t *testing.T) {
reader := bytes.NewReader(buf.Bytes())
- process, empty, err := execParse(reader)
+ process, err := execParse(reader)
require.NoError(t, err)
// execParse check
assert.Equal(t, string(filename), process.Filename)
assert.Equal(t, string(cwd), process.Args)
- assert.False(t, empty)
// ArgsDecoder check
decArgs, decCwd := proc.ArgsDecoder(process.Args, process.Flags)
@@ -887,24 +922,25 @@ func TestExecParse(t *testing.T) {
require.NoError(t, err)
exec.Flags = api.EventDataArgs
- exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + len(filename) + binary.Size(desc) + len(cwd) + 1)
+ exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + len(filename) + binary.Size(desc) + len(cwd))
+ exec.SizePath = uint16(len(filename))
+ exec.SizeArgs = uint16(binary.Size(desc))
+ exec.SizeCwd = uint16(len(cwd))
var buf bytes.Buffer
binary.Write(&buf, binary.LittleEndian, exec)
binary.Write(&buf, binary.LittleEndian, filename)
- binary.Write(&buf, binary.LittleEndian, []byte{0})
binary.Write(&buf, binary.LittleEndian, desc)
binary.Write(&buf, binary.LittleEndian, cwd)
reader := bytes.NewReader(buf.Bytes())
- process, empty, err := execParse(reader)
+ process, err := execParse(reader)
require.NoError(t, err)
// execParse check
assert.Equal(t, string(filename), process.Filename)
assert.Equal(t, string(args)+string(cwd), process.Args)
- assert.False(t, empty)
// ArgsDecoder check
decArgs, decCwd := proc.ArgsDecoder(process.Args, process.Flags)
@@ -934,6 +970,9 @@ func TestExecParse(t *testing.T) {
exec.Flags = api.EventDataFilename | api.EventDataArgs
exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + binary.Size(desc1) + binary.Size(desc2) + len(cwd))
+ exec.SizePath = uint16(binary.Size(desc1))
+ exec.SizeArgs = uint16(binary.Size(desc2))
+ exec.SizeCwd = uint16(len(cwd))
var buf bytes.Buffer
binary.Write(&buf, binary.LittleEndian, exec)
@@ -943,13 +982,12 @@ func TestExecParse(t *testing.T) {
reader := bytes.NewReader(buf.Bytes())
- process, empty, err := execParse(reader)
+ process, err := execParse(reader)
require.NoError(t, err)
// execParse check
assert.Equal(t, string(filename), process.Filename)
assert.Equal(t, string(args)+string(cwd), process.Args)
- assert.False(t, empty)
// ArgsDecoder check
decArgs, decCwd := proc.ArgsDecoder(process.Args, process.Flags)
@@ -975,24 +1013,25 @@ func TestExecParse(t *testing.T) {
require.NoError(t, err)
exec.Flags = api.EventDataArgs
- exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + len(filename) + binary.Size(desc) + len(cwd) + 1)
+ exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + len(filename) + binary.Size(desc) + len(cwd))
+ exec.SizePath = uint16(len(filename))
+ exec.SizeArgs = uint16(binary.Size(desc))
+ exec.SizeCwd = uint16(len(cwd))
var buf bytes.Buffer
binary.Write(&buf, binary.LittleEndian, exec)
binary.Write(&buf, binary.LittleEndian, filename)
- binary.Write(&buf, binary.LittleEndian, []byte{0})
binary.Write(&buf, binary.LittleEndian, desc)
binary.Write(&buf, binary.LittleEndian, cwd)
reader := bytes.NewReader(buf.Bytes())
- process, empty, err := execParse(reader)
+ process, err := execParse(reader)
require.NoError(t, err)
// execParse check
assert.Equal(t, strutils.UTF8FromBPFBytes(filename), process.Filename)
assert.Equal(t, strutils.UTF8FromBPFBytes(args)+strutils.UTF8FromBPFBytes(cwd), process.Args)
- assert.False(t, empty)
// ArgsDecoder check
decArgs, decCwd := proc.ArgsDecoder(process.Args, process.Flags)
@@ -1000,6 +1039,114 @@ func TestExecParse(t *testing.T) {
assert.Equal(t, strutils.UTF8FromBPFBytes(cwd), decCwd)
})
+ t.Run("Filename with api.EventErrorFilename", func(t *testing.T) {
+ observer.DataPurge()
+
+ // - filename (api.EventErrorFilename)
+ // - no args
+ // - cwd (string)
+
+ exec.Flags = api.EventErrorFilename
+ exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + len(cwd))
+ exec.SizePath = 0
+ exec.SizeArgs = 0
+ exec.SizeCwd = uint16(len(cwd))
+
+ var buf bytes.Buffer
+ binary.Write(&buf, binary.LittleEndian, exec)
+ binary.Write(&buf, binary.LittleEndian, cwd)
+
+ reader := bytes.NewReader(buf.Bytes())
+
+ process, err := execParse(reader)
+ require.NoError(t, err)
+
+ assert.Equal(t, "", process.Filename)
+ assert.Equal(t, string(cwd), process.Args)
+
+ decArgs, decCwd := proc.ArgsDecoder(process.Args, process.Flags)
+ assert.Empty(t, decArgs)
+ assert.Equal(t, string(cwd), decCwd)
+ })
+
+ t.Run("Filename, args, cwd and envs", func(t *testing.T) {
+ observer.DataPurge()
+
+ // - filename (string)
+ // - args (string)
+ // - cwd (string)
+ // - envs (string)
+
+ var args []byte
+ args = append(args, 'a', 'r', 'g', '1', 0, 'a', 'r', 'g', '2')
+
+ var envs []byte
+ envs = append(envs, 'A', '=', '1', 0, 'B', '=', '2')
+
+ exec.Flags = api.EventErrorFilename
+ exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + len(filename) + len(args) + len(cwd) + len(envs))
+ exec.SizePath = uint16(len(filename))
+ exec.SizeArgs = uint16(len(args))
+ exec.SizeCwd = uint16(len(cwd))
+ exec.SizeEnvs = uint16(len(envs))
+
+ var buf bytes.Buffer
+ binary.Write(&buf, binary.LittleEndian, exec)
+ binary.Write(&buf, binary.LittleEndian, filename)
+ binary.Write(&buf, binary.LittleEndian, args)
+ binary.Write(&buf, binary.LittleEndian, cwd)
+ binary.Write(&buf, binary.LittleEndian, envs)
+
+ reader := bytes.NewReader(buf.Bytes())
+
+ process, err := execParse(reader)
+ require.NoError(t, err)
+
+ assert.Equal(t, string(filename), process.Filename)
+ assert.Equal(t, []string{"A=1", "B=2"}, process.Envs)
+
+ decArgs, decCwd := proc.ArgsDecoder(process.Args, process.Flags)
+ assert.Equal(t, "arg1 arg2", decArgs)
+ assert.Equal(t, string(cwd), decCwd)
+ })
+
+ t.Run("Filename, args, cwd and zero envs", func(t *testing.T) {
+ observer.DataPurge()
+
+ // - filename (string)
+ // - args (string)
+ // - cwd (string)
+ // - empty envs
+
+ var args []byte
+ args = append(args, 'a', 'r', 'g', '1', 0, 'a', 'r', 'g', '2')
+
+ exec.Flags = api.EventErrorFilename
+ exec.Size = uint32(processapi.MSG_SIZEOF_EXECVE + len(filename) + len(args) + len(cwd))
+ exec.SizePath = uint16(len(filename))
+ exec.SizeArgs = uint16(len(args))
+ exec.SizeCwd = uint16(len(cwd))
+ exec.SizeEnvs = 0
+
+ var buf bytes.Buffer
+ binary.Write(&buf, binary.LittleEndian, exec)
+ binary.Write(&buf, binary.LittleEndian, filename)
+ binary.Write(&buf, binary.LittleEndian, args)
+ binary.Write(&buf, binary.LittleEndian, cwd)
+
+ reader := bytes.NewReader(buf.Bytes())
+
+ process, err := execParse(reader)
+ require.NoError(t, err)
+
+ assert.Equal(t, string(filename), process.Filename)
+ assert.Equal(t, []string(nil), process.Envs)
+
+ decArgs, decCwd := proc.ArgsDecoder(process.Args, process.Flags)
+ assert.Equal(t, "arg1 arg2", decArgs)
+ assert.Equal(t, string(cwd), decCwd)
+ })
+
observer.DataPurge()
}
@@ -1639,3 +1786,158 @@ func TestThrottle1(t *testing.T) {
func TestThrottle2(t *testing.T) {
testThrottle(t)
}
+
+// Verify that we get all the process environment variables
+func TestEventExecveEnvs(t *testing.T) {
+ if !config.EnableLargeProgs() {
+ t.Skip("Older kernels do not support environment variables in exec events.")
+ }
+
+ var doneWG, readyWG sync.WaitGroup
+ defer doneWG.Wait()
+
+ ctx, cancel := context.WithTimeout(context.Background(), tus.Conf().CmdWaitTime)
+ defer cancel()
+
+ // Enable nevironment variables
+ option.Config.EnableProcessEnvironmentVariables = true
+
+ obs, err := observertesthelper.GetDefaultObserver(t, ctx, tus.Conf().TetragonLib, observertesthelper.WithMyPid())
+ if err != nil {
+ t.Fatalf("Failed to run observer: %s", err)
+ }
+ observertesthelper.LoopEvents(ctx, t, &doneWG, &readyWG, obs)
+ readyWG.Wait()
+
+ testNop := testutils.RepoRootPath("contrib/tester-progs/nop")
+
+ procChecker := ec.NewProcessChecker().
+ WithBinary(sm.Full(testNop)).
+ WithEnvironmentVariables(ec.NewEnvVarListMatcher().WithOperator(lc.Ordered).
+ WithValues(
+ ec.NewEnvVarChecker().WithKey(sm.Full("TEST_VAR1")).WithValue(sm.Full("1")),
+ ec.NewEnvVarChecker().WithKey(sm.Full("TEST_VAR2")).WithValue(sm.Full("2")),
+ ))
+
+ execChecker := ec.NewProcessExecChecker("").WithProcess(procChecker)
+ checker := ec.NewUnorderedEventChecker(execChecker)
+
+ cmd := exec.Command(testNop)
+ cmd.Env = []string{"TEST_VAR1=1", "TEST_VAR2=2"}
+
+ if err := cmd.Run(); err != nil {
+ t.Fatalf("Failed to execute test binary: %s\n", err)
+ }
+
+ err = jsonchecker.JsonTestCheck(t, checker)
+ require.NoError(t, err)
+}
+
+// Verify that we get only filtered environment variables
+func TestEventExecveEnvsFilter(t *testing.T) {
+ if !config.EnableLargeProgs() {
+ t.Skip("Older kernels do not support environment variables in exec events.")
+ }
+
+ var doneWG, readyWG sync.WaitGroup
+ defer doneWG.Wait()
+
+ ctx, cancel := context.WithTimeout(context.Background(), tus.Conf().CmdWaitTime)
+ defer cancel()
+
+ // Enable nevironment variables
+ option.Config.EnableProcessEnvironmentVariables = true
+
+ // Set filter for TEST_VAR1 and TEST_VAR2 variables
+ option.Config.FilterEnvironmentVariables = make(map[string]struct{})
+ option.Config.FilterEnvironmentVariables["TEST_VAR1"] = struct{}{}
+ option.Config.FilterEnvironmentVariables["TEST_VAR2"] = struct{}{}
+
+ obs, err := observertesthelper.GetDefaultObserver(t, ctx, tus.Conf().TetragonLib, observertesthelper.WithMyPid())
+ if err != nil {
+ t.Fatalf("Failed to run observer: %s", err)
+ }
+ observertesthelper.LoopEvents(ctx, t, &doneWG, &readyWG, obs)
+ readyWG.Wait()
+
+ testNop := testutils.RepoRootPath("contrib/tester-progs/nop")
+
+ procChecker := ec.NewProcessChecker().
+ WithBinary(sm.Full(testNop)).
+ WithEnvironmentVariables(ec.NewEnvVarListMatcher().WithOperator(lc.Ordered).
+ WithValues(
+ ec.NewEnvVarChecker().WithKey(sm.Full("TEST_VAR1")).WithValue(sm.Full("1")),
+ ec.NewEnvVarChecker().WithKey(sm.Full("TEST_VAR2")).WithValue(sm.Full("2")),
+ ))
+
+ execChecker := ec.NewProcessExecChecker("").WithProcess(procChecker)
+ checker := ec.NewUnorderedEventChecker(execChecker)
+
+ cmd := exec.Command(testNop)
+ cmd.Env = []string{"TEST_VAR1=1", "TEST_VAR2=2", "TEST_VAR3=3", "TEST_VAR4=4"}
+
+ if err := cmd.Run(); err != nil {
+ t.Fatalf("Failed to execute test binary: %s\n", err)
+ }
+
+ err = jsonchecker.JsonTestCheck(t, checker)
+ require.NoError(t, err)
+}
+
+// Verify that we get only filtered environment variable
+// with redacted value.
+func TestEventExecveEnvsFilterRedact(t *testing.T) {
+ if !config.EnableLargeProgs() {
+ t.Skip("Older kernels do not support environment variables in exec events.")
+ }
+
+ var doneWG, readyWG sync.WaitGroup
+ defer doneWG.Wait()
+
+ ctx, cancel := context.WithTimeout(context.Background(), tus.Conf().CmdWaitTime)
+ defer cancel()
+
+ // Enable nevironment variables
+ option.Config.EnableProcessEnvironmentVariables = true
+
+ // Set filter for TEST_VAR1 variable
+ option.Config.FilterEnvironmentVariables = make(map[string]struct{})
+ option.Config.FilterEnvironmentVariables["TEST_VAR1"] = struct{}{}
+
+ var err error
+
+ // Set redaction for TEST_VAR1 variable
+ fieldfilters.RedactionFilters, err = fieldfilters.ParseRedactionFilterList(`{"redact": ["(?:TEST_VAR1)[\\s=]+(\\S+)"]}`)
+ require.NoError(t, err)
+
+ obs, err := observertesthelper.GetDefaultObserver(t, ctx, tus.Conf().TetragonLib, observertesthelper.WithMyPid())
+ if err != nil {
+ t.Fatalf("Failed to run observer: %s", err)
+ }
+ observertesthelper.LoopEvents(ctx, t, &doneWG, &readyWG, obs)
+ readyWG.Wait()
+
+ testNop := testutils.RepoRootPath("contrib/tester-progs/nop")
+
+ procChecker := ec.NewProcessChecker().
+ WithBinary(sm.Full(testNop)).
+ WithEnvironmentVariables(ec.NewEnvVarListMatcher().WithOperator(lc.Ordered).
+ WithValues(
+ ec.NewEnvVarChecker().WithKey(sm.Full("TEST_VAR1")).WithValue(sm.Full("*****")),
+ ))
+
+ execChecker := ec.NewProcessExecChecker("").WithProcess(procChecker)
+ checker := ec.NewUnorderedEventChecker(execChecker)
+
+ cmd := exec.Command(testNop)
+ cmd.Env = []string{"TEST_VAR1=1", "TEST_VAR2=2", "TEST_VAR3=3", "TEST_VAR4=4"}
+
+ if err := cmd.Run(); err != nil {
+ t.Fatalf("Failed to execute test binary: %s\n", err)
+ }
+
+ err = jsonchecker.JsonTestCheck(t, checker)
+ require.NoError(t, err)
+
+ fieldfilters.RedactionFilters = nil
+}
diff --git a/vendor/github.com/cilium/tetragon/api/v1/tetragon/codegen/eventchecker/eventchecker.pb.go b/vendor/github.com/cilium/tetragon/api/v1/tetragon/codegen/eventchecker/eventchecker.pb.go
index 9178f9a610a..be027fd81a1 100644
--- a/vendor/github.com/cilium/tetragon/api/v1/tetragon/codegen/eventchecker/eventchecker.pb.go
+++ b/vendor/github.com/cilium/tetragon/api/v1/tetragon/codegen/eventchecker/eventchecker.pb.go
@@ -4532,28 +4532,92 @@ func (checker *UserRecordChecker) FromUserRecord(event *tetragon.UserRecord) *Us
return checker
}
+// EnvVarChecker implements a checker struct to check a EnvVar field
+type EnvVarChecker struct {
+ Key *stringmatcher.StringMatcher `json:"Key,omitempty"`
+ Value *stringmatcher.StringMatcher `json:"Value,omitempty"`
+}
+
+// NewEnvVarChecker creates a new EnvVarChecker
+func NewEnvVarChecker() *EnvVarChecker {
+ return &EnvVarChecker{}
+}
+
+// Get the type of the checker as a string
+func (checker *EnvVarChecker) GetCheckerType() string {
+ return "EnvVarChecker"
+}
+
+// Check checks a EnvVar field
+func (checker *EnvVarChecker) Check(event *tetragon.EnvVar) error {
+ if event == nil {
+ return fmt.Errorf("%s: EnvVar field is nil", CheckerLogPrefix(checker))
+ }
+
+ fieldChecks := func() error {
+ if checker.Key != nil {
+ if err := checker.Key.Match(event.Key); err != nil {
+ return fmt.Errorf("Key check failed: %w", err)
+ }
+ }
+ if checker.Value != nil {
+ if err := checker.Value.Match(event.Value); err != nil {
+ return fmt.Errorf("Value check failed: %w", err)
+ }
+ }
+ return nil
+ }
+ if err := fieldChecks(); err != nil {
+ return fmt.Errorf("%s: %w", CheckerLogPrefix(checker), err)
+ }
+ return nil
+}
+
+// WithKey adds a Key check to the EnvVarChecker
+func (checker *EnvVarChecker) WithKey(check *stringmatcher.StringMatcher) *EnvVarChecker {
+ checker.Key = check
+ return checker
+}
+
+// WithValue adds a Value check to the EnvVarChecker
+func (checker *EnvVarChecker) WithValue(check *stringmatcher.StringMatcher) *EnvVarChecker {
+ checker.Value = check
+ return checker
+}
+
+//FromEnvVar populates the EnvVarChecker using data from a EnvVar field
+func (checker *EnvVarChecker) FromEnvVar(event *tetragon.EnvVar) *EnvVarChecker {
+ if event == nil {
+ return checker
+ }
+ checker.Key = stringmatcher.Full(event.Key)
+ checker.Value = stringmatcher.Full(event.Value)
+ return checker
+}
+
// ProcessChecker implements a checker struct to check a Process field
type ProcessChecker struct {
- ExecId *stringmatcher.StringMatcher `json:"execId,omitempty"`
- Pid *uint32 `json:"pid,omitempty"`
- Uid *uint32 `json:"uid,omitempty"`
- Cwd *stringmatcher.StringMatcher `json:"cwd,omitempty"`
- Binary *stringmatcher.StringMatcher `json:"binary,omitempty"`
- Arguments *stringmatcher.StringMatcher `json:"arguments,omitempty"`
- Flags *stringmatcher.StringMatcher `json:"flags,omitempty"`
- StartTime *timestampmatcher.TimestampMatcher `json:"startTime,omitempty"`
- Auid *uint32 `json:"auid,omitempty"`
- Pod *PodChecker `json:"pod,omitempty"`
- Docker *stringmatcher.StringMatcher `json:"docker,omitempty"`
- ParentExecId *stringmatcher.StringMatcher `json:"parentExecId,omitempty"`
- Refcnt *uint32 `json:"refcnt,omitempty"`
- Cap *CapabilitiesChecker `json:"cap,omitempty"`
- Ns *NamespacesChecker `json:"ns,omitempty"`
- Tid *uint32 `json:"tid,omitempty"`
- ProcessCredentials *ProcessCredentialsChecker `json:"processCredentials,omitempty"`
- BinaryProperties *BinaryPropertiesChecker `json:"binaryProperties,omitempty"`
- User *UserRecordChecker `json:"user,omitempty"`
- InInitTree *bool `json:"inInitTree,omitempty"`
+ ExecId *stringmatcher.StringMatcher `json:"execId,omitempty"`
+ Pid *uint32 `json:"pid,omitempty"`
+ Uid *uint32 `json:"uid,omitempty"`
+ Cwd *stringmatcher.StringMatcher `json:"cwd,omitempty"`
+ Binary *stringmatcher.StringMatcher `json:"binary,omitempty"`
+ Arguments *stringmatcher.StringMatcher `json:"arguments,omitempty"`
+ Flags *stringmatcher.StringMatcher `json:"flags,omitempty"`
+ StartTime *timestampmatcher.TimestampMatcher `json:"startTime,omitempty"`
+ Auid *uint32 `json:"auid,omitempty"`
+ Pod *PodChecker `json:"pod,omitempty"`
+ Docker *stringmatcher.StringMatcher `json:"docker,omitempty"`
+ ParentExecId *stringmatcher.StringMatcher `json:"parentExecId,omitempty"`
+ Refcnt *uint32 `json:"refcnt,omitempty"`
+ Cap *CapabilitiesChecker `json:"cap,omitempty"`
+ Ns *NamespacesChecker `json:"ns,omitempty"`
+ Tid *uint32 `json:"tid,omitempty"`
+ ProcessCredentials *ProcessCredentialsChecker `json:"processCredentials,omitempty"`
+ BinaryProperties *BinaryPropertiesChecker `json:"binaryProperties,omitempty"`
+ User *UserRecordChecker `json:"user,omitempty"`
+ InInitTree *bool `json:"inInitTree,omitempty"`
+ EnvironmentVariables *EnvVarListMatcher `json:"environmentVariables,omitempty"`
}
// NewProcessChecker creates a new ProcessChecker
@@ -4688,6 +4752,11 @@ func (checker *ProcessChecker) Check(event *tetragon.Process) error {
return fmt.Errorf("InInitTree has value %v which does not match expected value %v", event.InInitTree.Value, *checker.InInitTree)
}
}
+ if checker.EnvironmentVariables != nil {
+ if err := checker.EnvironmentVariables.Check(event.EnvironmentVariables); err != nil {
+ return fmt.Errorf("EnvironmentVariables check failed: %w", err)
+ }
+ }
return nil
}
if err := fieldChecks(); err != nil {
@@ -4816,6 +4885,12 @@ func (checker *ProcessChecker) WithInInitTree(check bool) *ProcessChecker {
return checker
}
+// WithEnvironmentVariables adds a EnvironmentVariables check to the ProcessChecker
+func (checker *ProcessChecker) WithEnvironmentVariables(check *EnvVarListMatcher) *ProcessChecker {
+ checker.EnvironmentVariables = check
+ return checker
+}
+
//FromProcess populates the ProcessChecker using data from a Process field
func (checker *ProcessChecker) FromProcess(event *tetragon.Process) *ProcessChecker {
if event == nil {
@@ -4872,9 +4947,122 @@ func (checker *ProcessChecker) FromProcess(event *tetragon.Process) *ProcessChec
val := event.InInitTree.Value
checker.InInitTree = &val
}
+ {
+ var checks []*EnvVarChecker
+ for _, check := range event.EnvironmentVariables {
+ var convertedCheck *EnvVarChecker
+ if check != nil {
+ convertedCheck = NewEnvVarChecker().FromEnvVar(check)
+ }
+ checks = append(checks, convertedCheck)
+ }
+ lm := NewEnvVarListMatcher().WithOperator(listmatcher.Ordered).
+ WithValues(checks...)
+ checker.EnvironmentVariables = lm
+ }
+ return checker
+}
+
+// EnvVarListMatcher checks a list of *tetragon.EnvVar fields
+type EnvVarListMatcher struct {
+ Operator listmatcher.Operator `json:"operator"`
+ Values []*EnvVarChecker `json:"values"`
+}
+
+// NewEnvVarListMatcher creates a new EnvVarListMatcher. The checker defaults to a subset checker unless otherwise specified using WithOperator()
+func NewEnvVarListMatcher() *EnvVarListMatcher {
+ return &EnvVarListMatcher{
+ Operator: listmatcher.Subset,
+ }
+}
+
+// WithOperator sets the match kind for the EnvVarListMatcher
+func (checker *EnvVarListMatcher) WithOperator(operator listmatcher.Operator) *EnvVarListMatcher {
+ checker.Operator = operator
+ return checker
+}
+
+// WithValues sets the checkers that the EnvVarListMatcher should use
+func (checker *EnvVarListMatcher) WithValues(values ...*EnvVarChecker) *EnvVarListMatcher {
+ checker.Values = values
return checker
}
+// Check checks a list of *tetragon.EnvVar fields
+func (checker *EnvVarListMatcher) Check(values []*tetragon.EnvVar) error {
+ switch checker.Operator {
+ case listmatcher.Ordered:
+ return checker.orderedCheck(values)
+ case listmatcher.Unordered:
+ return checker.unorderedCheck(values)
+ case listmatcher.Subset:
+ return checker.subsetCheck(values)
+ default:
+ return fmt.Errorf("Unhandled ListMatcher operator %s", checker.Operator)
+ }
+}
+
+// orderedCheck checks a list of ordered *tetragon.EnvVar fields
+func (checker *EnvVarListMatcher) orderedCheck(values []*tetragon.EnvVar) error {
+ innerCheck := func(check *EnvVarChecker, value *tetragon.EnvVar) error {
+ if err := check.Check(value); err != nil {
+ return fmt.Errorf("EnvironmentVariables check failed: %w", err)
+ }
+ return nil
+ }
+
+ if len(checker.Values) != len(values) {
+ return fmt.Errorf("EnvVarListMatcher: Wanted %d elements, got %d", len(checker.Values), len(values))
+ }
+
+ for i, check := range checker.Values {
+ value := values[i]
+ if err := innerCheck(check, value); err != nil {
+ return fmt.Errorf("EnvVarListMatcher: Check failed on element %d: %w", i, err)
+ }
+ }
+
+ return nil
+}
+
+// unorderedCheck checks a list of unordered *tetragon.EnvVar fields
+func (checker *EnvVarListMatcher) unorderedCheck(values []*tetragon.EnvVar) error {
+ if len(checker.Values) != len(values) {
+ return fmt.Errorf("EnvVarListMatcher: Wanted %d elements, got %d", len(checker.Values), len(values))
+ }
+
+ return checker.subsetCheck(values)
+}
+
+// subsetCheck checks a subset of *tetragon.EnvVar fields
+func (checker *EnvVarListMatcher) subsetCheck(values []*tetragon.EnvVar) error {
+ innerCheck := func(check *EnvVarChecker, value *tetragon.EnvVar) error {
+ if err := check.Check(value); err != nil {
+ return fmt.Errorf("EnvironmentVariables check failed: %w", err)
+ }
+ return nil
+ }
+
+ numDesired := len(checker.Values)
+ numMatched := 0
+
+nextCheck:
+ for _, check := range checker.Values {
+ for _, value := range values {
+ if err := innerCheck(check, value); err == nil {
+ numMatched += 1
+ continue nextCheck
+ }
+ }
+ }
+
+ if numMatched < numDesired {
+ return fmt.Errorf("EnvVarListMatcher: Check failed, only matched %d elements but wanted %d", numMatched, numDesired)
+ }
+
+ return nil
+}
+
// KprobeSockChecker implements a checker struct to check a KprobeSock field
type KprobeSockChecker struct {
Family *stringmatcher.StringMatcher `json:"family,omitempty"`
diff --git a/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.go b/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.go
index 2b82bce92b1..4ee9ea3ea04 100644
--- a/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.go
+++ b/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.go
@@ -1306,6 +1306,59 @@ func (x *UserRecord) GetName() string {
return ""
}
+// Environment variable
+type EnvVar struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ Key string `protobuf:"bytes,1,opt,name=Key,proto3" json:"Key,omitempty"`
+ Value string `protobuf:"bytes,2,opt,name=Value,proto3" json:"Value,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *EnvVar) Reset() {
+ *x = EnvVar{}
+ mi := &file_tetragon_tetragon_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *EnvVar) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EnvVar) ProtoMessage() {}
+
+func (x *EnvVar) ProtoReflect() protoreflect.Message {
+ mi := &file_tetragon_tetragon_proto_msgTypes[13]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EnvVar.ProtoReflect.Descriptor instead.
+func (*EnvVar) Descriptor() ([]byte, []int) {
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *EnvVar) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+
+func (x *EnvVar) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+
type Process struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Exec ID uniquely identifies the process over time across all the nodes in the cluster.
@@ -1417,14 +1470,16 @@ type Process struct {
// process tree rooted at pid=1 in its PID namespace. This is useful if,
// for example, you wish to discern whether a process was spawned using a
// tool like nsenter or kubectl exec.
- InInitTree *wrapperspb.BoolValue `protobuf:"bytes,20,opt,name=in_init_tree,json=inInitTree,proto3" json:"in_init_tree,omitempty"`
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
+ InInitTree *wrapperspb.BoolValue `protobuf:"bytes,20,opt,name=in_init_tree,json=inInitTree,proto3" json:"in_init_tree,omitempty"`
+ // Environment variables passed to the binary at execution.
+ EnvironmentVariables []*EnvVar `protobuf:"bytes,21,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
}
func (x *Process) Reset() {
*x = Process{}
- mi := &file_tetragon_tetragon_proto_msgTypes[13]
+ mi := &file_tetragon_tetragon_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1436,7 +1491,7 @@ func (x *Process) String() string {
func (*Process) ProtoMessage() {}
func (x *Process) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[13]
+ mi := &file_tetragon_tetragon_proto_msgTypes[14]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1449,7 +1504,7 @@ func (x *Process) ProtoReflect() protoreflect.Message {
// Deprecated: Use Process.ProtoReflect.Descriptor instead.
func (*Process) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{13}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{14}
}
func (x *Process) GetExecId() string {
@@ -1592,6 +1647,13 @@ func (x *Process) GetInInitTree() *wrapperspb.BoolValue {
return nil
}
+func (x *Process) GetEnvironmentVariables() []*EnvVar {
+ if x != nil {
+ return x.EnvironmentVariables
+ }
+ return nil
+}
+
type ProcessExec struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Process that triggered the exec.
@@ -1606,7 +1668,7 @@ type ProcessExec struct {
func (x *ProcessExec) Reset() {
*x = ProcessExec{}
- mi := &file_tetragon_tetragon_proto_msgTypes[14]
+ mi := &file_tetragon_tetragon_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1618,7 +1680,7 @@ func (x *ProcessExec) String() string {
func (*ProcessExec) ProtoMessage() {}
func (x *ProcessExec) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[14]
+ mi := &file_tetragon_tetragon_proto_msgTypes[15]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1631,7 +1693,7 @@ func (x *ProcessExec) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessExec.ProtoReflect.Descriptor instead.
func (*ProcessExec) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{14}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{15}
}
func (x *ProcessExec) GetProcess() *Process {
@@ -1679,7 +1741,7 @@ type ProcessExit struct {
func (x *ProcessExit) Reset() {
*x = ProcessExit{}
- mi := &file_tetragon_tetragon_proto_msgTypes[15]
+ mi := &file_tetragon_tetragon_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1691,7 +1753,7 @@ func (x *ProcessExit) String() string {
func (*ProcessExit) ProtoMessage() {}
func (x *ProcessExit) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[15]
+ mi := &file_tetragon_tetragon_proto_msgTypes[16]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1704,7 +1766,7 @@ func (x *ProcessExit) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessExit.ProtoReflect.Descriptor instead.
func (*ProcessExit) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{15}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{16}
}
func (x *ProcessExit) GetProcess() *Process {
@@ -1768,7 +1830,7 @@ type KprobeSock struct {
func (x *KprobeSock) Reset() {
*x = KprobeSock{}
- mi := &file_tetragon_tetragon_proto_msgTypes[16]
+ mi := &file_tetragon_tetragon_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1780,7 +1842,7 @@ func (x *KprobeSock) String() string {
func (*KprobeSock) ProtoMessage() {}
func (x *KprobeSock) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[16]
+ mi := &file_tetragon_tetragon_proto_msgTypes[17]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1793,7 +1855,7 @@ func (x *KprobeSock) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeSock.ProtoReflect.Descriptor instead.
func (*KprobeSock) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{16}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{17}
}
func (x *KprobeSock) GetFamily() string {
@@ -1894,7 +1956,7 @@ type KprobeSkb struct {
func (x *KprobeSkb) Reset() {
*x = KprobeSkb{}
- mi := &file_tetragon_tetragon_proto_msgTypes[17]
+ mi := &file_tetragon_tetragon_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1906,7 +1968,7 @@ func (x *KprobeSkb) String() string {
func (*KprobeSkb) ProtoMessage() {}
func (x *KprobeSkb) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[17]
+ mi := &file_tetragon_tetragon_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1919,7 +1981,7 @@ func (x *KprobeSkb) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeSkb.ProtoReflect.Descriptor instead.
func (*KprobeSkb) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{17}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{18}
}
func (x *KprobeSkb) GetHash() uint32 {
@@ -2024,7 +2086,7 @@ type KprobeSockaddr struct {
func (x *KprobeSockaddr) Reset() {
*x = KprobeSockaddr{}
- mi := &file_tetragon_tetragon_proto_msgTypes[18]
+ mi := &file_tetragon_tetragon_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2036,7 +2098,7 @@ func (x *KprobeSockaddr) String() string {
func (*KprobeSockaddr) ProtoMessage() {}
func (x *KprobeSockaddr) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[18]
+ mi := &file_tetragon_tetragon_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2049,7 +2111,7 @@ func (x *KprobeSockaddr) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeSockaddr.ProtoReflect.Descriptor instead.
func (*KprobeSockaddr) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{18}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{19}
}
func (x *KprobeSockaddr) GetFamily() string {
@@ -2082,7 +2144,7 @@ type KprobeNetDev struct {
func (x *KprobeNetDev) Reset() {
*x = KprobeNetDev{}
- mi := &file_tetragon_tetragon_proto_msgTypes[19]
+ mi := &file_tetragon_tetragon_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2094,7 +2156,7 @@ func (x *KprobeNetDev) String() string {
func (*KprobeNetDev) ProtoMessage() {}
func (x *KprobeNetDev) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[19]
+ mi := &file_tetragon_tetragon_proto_msgTypes[20]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2107,7 +2169,7 @@ func (x *KprobeNetDev) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeNetDev.ProtoReflect.Descriptor instead.
func (*KprobeNetDev) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{19}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{20}
}
func (x *KprobeNetDev) GetName() string {
@@ -2129,7 +2191,7 @@ type KprobePath struct {
func (x *KprobePath) Reset() {
*x = KprobePath{}
- mi := &file_tetragon_tetragon_proto_msgTypes[20]
+ mi := &file_tetragon_tetragon_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2141,7 +2203,7 @@ func (x *KprobePath) String() string {
func (*KprobePath) ProtoMessage() {}
func (x *KprobePath) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[20]
+ mi := &file_tetragon_tetragon_proto_msgTypes[21]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2154,7 +2216,7 @@ func (x *KprobePath) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobePath.ProtoReflect.Descriptor instead.
func (*KprobePath) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{20}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{21}
}
func (x *KprobePath) GetMount() string {
@@ -2197,7 +2259,7 @@ type KprobeFile struct {
func (x *KprobeFile) Reset() {
*x = KprobeFile{}
- mi := &file_tetragon_tetragon_proto_msgTypes[21]
+ mi := &file_tetragon_tetragon_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2209,7 +2271,7 @@ func (x *KprobeFile) String() string {
func (*KprobeFile) ProtoMessage() {}
func (x *KprobeFile) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[21]
+ mi := &file_tetragon_tetragon_proto_msgTypes[22]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2222,7 +2284,7 @@ func (x *KprobeFile) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeFile.ProtoReflect.Descriptor instead.
func (*KprobeFile) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{21}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{22}
}
func (x *KprobeFile) GetMount() string {
@@ -2263,7 +2325,7 @@ type KprobeTruncatedBytes struct {
func (x *KprobeTruncatedBytes) Reset() {
*x = KprobeTruncatedBytes{}
- mi := &file_tetragon_tetragon_proto_msgTypes[22]
+ mi := &file_tetragon_tetragon_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2275,7 +2337,7 @@ func (x *KprobeTruncatedBytes) String() string {
func (*KprobeTruncatedBytes) ProtoMessage() {}
func (x *KprobeTruncatedBytes) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[22]
+ mi := &file_tetragon_tetragon_proto_msgTypes[23]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2288,7 +2350,7 @@ func (x *KprobeTruncatedBytes) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeTruncatedBytes.ProtoReflect.Descriptor instead.
func (*KprobeTruncatedBytes) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{22}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{23}
}
func (x *KprobeTruncatedBytes) GetBytesArg() []byte {
@@ -2316,7 +2378,7 @@ type KprobeCred struct {
func (x *KprobeCred) Reset() {
*x = KprobeCred{}
- mi := &file_tetragon_tetragon_proto_msgTypes[23]
+ mi := &file_tetragon_tetragon_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2328,7 +2390,7 @@ func (x *KprobeCred) String() string {
func (*KprobeCred) ProtoMessage() {}
func (x *KprobeCred) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[23]
+ mi := &file_tetragon_tetragon_proto_msgTypes[24]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2341,7 +2403,7 @@ func (x *KprobeCred) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeCred.ProtoReflect.Descriptor instead.
func (*KprobeCred) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{23}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{24}
}
func (x *KprobeCred) GetPermitted() []CapabilitiesType {
@@ -2376,7 +2438,7 @@ type KprobeLinuxBinprm struct {
func (x *KprobeLinuxBinprm) Reset() {
*x = KprobeLinuxBinprm{}
- mi := &file_tetragon_tetragon_proto_msgTypes[24]
+ mi := &file_tetragon_tetragon_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2388,7 +2450,7 @@ func (x *KprobeLinuxBinprm) String() string {
func (*KprobeLinuxBinprm) ProtoMessage() {}
func (x *KprobeLinuxBinprm) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[24]
+ mi := &file_tetragon_tetragon_proto_msgTypes[25]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2401,7 +2463,7 @@ func (x *KprobeLinuxBinprm) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeLinuxBinprm.ProtoReflect.Descriptor instead.
func (*KprobeLinuxBinprm) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{24}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{25}
}
func (x *KprobeLinuxBinprm) GetPath() string {
@@ -2435,7 +2497,7 @@ type KprobeCapability struct {
func (x *KprobeCapability) Reset() {
*x = KprobeCapability{}
- mi := &file_tetragon_tetragon_proto_msgTypes[25]
+ mi := &file_tetragon_tetragon_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2447,7 +2509,7 @@ func (x *KprobeCapability) String() string {
func (*KprobeCapability) ProtoMessage() {}
func (x *KprobeCapability) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[25]
+ mi := &file_tetragon_tetragon_proto_msgTypes[26]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2460,7 +2522,7 @@ func (x *KprobeCapability) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeCapability.ProtoReflect.Descriptor instead.
func (*KprobeCapability) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{25}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{26}
}
func (x *KprobeCapability) GetValue() *wrapperspb.Int32Value {
@@ -2489,7 +2551,7 @@ type KprobeUserNamespace struct {
func (x *KprobeUserNamespace) Reset() {
*x = KprobeUserNamespace{}
- mi := &file_tetragon_tetragon_proto_msgTypes[26]
+ mi := &file_tetragon_tetragon_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2501,7 +2563,7 @@ func (x *KprobeUserNamespace) String() string {
func (*KprobeUserNamespace) ProtoMessage() {}
func (x *KprobeUserNamespace) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[26]
+ mi := &file_tetragon_tetragon_proto_msgTypes[27]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2514,7 +2576,7 @@ func (x *KprobeUserNamespace) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeUserNamespace.ProtoReflect.Descriptor instead.
func (*KprobeUserNamespace) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{26}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{27}
}
func (x *KprobeUserNamespace) GetLevel() *wrapperspb.Int32Value {
@@ -2556,7 +2618,7 @@ type KprobeBpfAttr struct {
func (x *KprobeBpfAttr) Reset() {
*x = KprobeBpfAttr{}
- mi := &file_tetragon_tetragon_proto_msgTypes[27]
+ mi := &file_tetragon_tetragon_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2568,7 +2630,7 @@ func (x *KprobeBpfAttr) String() string {
func (*KprobeBpfAttr) ProtoMessage() {}
func (x *KprobeBpfAttr) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[27]
+ mi := &file_tetragon_tetragon_proto_msgTypes[28]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2581,7 +2643,7 @@ func (x *KprobeBpfAttr) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeBpfAttr.ProtoReflect.Descriptor instead.
func (*KprobeBpfAttr) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{27}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{28}
}
func (x *KprobeBpfAttr) GetProgType() string {
@@ -2616,7 +2678,7 @@ type KprobeBpfProg struct {
func (x *KprobeBpfProg) Reset() {
*x = KprobeBpfProg{}
- mi := &file_tetragon_tetragon_proto_msgTypes[28]
+ mi := &file_tetragon_tetragon_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2628,7 +2690,7 @@ func (x *KprobeBpfProg) String() string {
func (*KprobeBpfProg) ProtoMessage() {}
func (x *KprobeBpfProg) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[28]
+ mi := &file_tetragon_tetragon_proto_msgTypes[29]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2641,7 +2703,7 @@ func (x *KprobeBpfProg) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeBpfProg.ProtoReflect.Descriptor instead.
func (*KprobeBpfProg) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{28}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{29}
}
func (x *KprobeBpfProg) GetProgType() string {
@@ -2677,7 +2739,7 @@ type KprobePerfEvent struct {
func (x *KprobePerfEvent) Reset() {
*x = KprobePerfEvent{}
- mi := &file_tetragon_tetragon_proto_msgTypes[29]
+ mi := &file_tetragon_tetragon_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2689,7 +2751,7 @@ func (x *KprobePerfEvent) String() string {
func (*KprobePerfEvent) ProtoMessage() {}
func (x *KprobePerfEvent) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[29]
+ mi := &file_tetragon_tetragon_proto_msgTypes[30]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2702,7 +2764,7 @@ func (x *KprobePerfEvent) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobePerfEvent.ProtoReflect.Descriptor instead.
func (*KprobePerfEvent) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{29}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{30}
}
func (x *KprobePerfEvent) GetKprobeFunc() string {
@@ -2746,7 +2808,7 @@ type KprobeBpfMap struct {
func (x *KprobeBpfMap) Reset() {
*x = KprobeBpfMap{}
- mi := &file_tetragon_tetragon_proto_msgTypes[30]
+ mi := &file_tetragon_tetragon_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2758,7 +2820,7 @@ func (x *KprobeBpfMap) String() string {
func (*KprobeBpfMap) ProtoMessage() {}
func (x *KprobeBpfMap) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[30]
+ mi := &file_tetragon_tetragon_proto_msgTypes[31]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2771,7 +2833,7 @@ func (x *KprobeBpfMap) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeBpfMap.ProtoReflect.Descriptor instead.
func (*KprobeBpfMap) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{30}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{31}
}
func (x *KprobeBpfMap) GetMapType() string {
@@ -2819,7 +2881,7 @@ type SyscallId struct {
func (x *SyscallId) Reset() {
*x = SyscallId{}
- mi := &file_tetragon_tetragon_proto_msgTypes[31]
+ mi := &file_tetragon_tetragon_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2831,7 +2893,7 @@ func (x *SyscallId) String() string {
func (*SyscallId) ProtoMessage() {}
func (x *SyscallId) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[31]
+ mi := &file_tetragon_tetragon_proto_msgTypes[32]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2844,7 +2906,7 @@ func (x *SyscallId) ProtoReflect() protoreflect.Message {
// Deprecated: Use SyscallId.ProtoReflect.Descriptor instead.
func (*SyscallId) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{31}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{32}
}
func (x *SyscallId) GetId() uint32 {
@@ -2903,7 +2965,7 @@ type KprobeArgument struct {
func (x *KprobeArgument) Reset() {
*x = KprobeArgument{}
- mi := &file_tetragon_tetragon_proto_msgTypes[32]
+ mi := &file_tetragon_tetragon_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2915,7 +2977,7 @@ func (x *KprobeArgument) String() string {
func (*KprobeArgument) ProtoMessage() {}
func (x *KprobeArgument) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[32]
+ mi := &file_tetragon_tetragon_proto_msgTypes[33]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2928,7 +2990,7 @@ func (x *KprobeArgument) ProtoReflect() protoreflect.Message {
// Deprecated: Use KprobeArgument.ProtoReflect.Descriptor instead.
func (*KprobeArgument) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{32}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{33}
}
func (x *KprobeArgument) GetArg() isKprobeArgument_Arg {
@@ -3437,7 +3499,7 @@ type ProcessKprobe struct {
func (x *ProcessKprobe) Reset() {
*x = ProcessKprobe{}
- mi := &file_tetragon_tetragon_proto_msgTypes[33]
+ mi := &file_tetragon_tetragon_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3449,7 +3511,7 @@ func (x *ProcessKprobe) String() string {
func (*ProcessKprobe) ProtoMessage() {}
func (x *ProcessKprobe) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[33]
+ mi := &file_tetragon_tetragon_proto_msgTypes[34]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3462,7 +3524,7 @@ func (x *ProcessKprobe) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessKprobe.ProtoReflect.Descriptor instead.
func (*ProcessKprobe) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{33}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{34}
}
func (x *ProcessKprobe) GetProcess() *Process {
@@ -3592,7 +3654,7 @@ type ProcessTracepoint struct {
func (x *ProcessTracepoint) Reset() {
*x = ProcessTracepoint{}
- mi := &file_tetragon_tetragon_proto_msgTypes[34]
+ mi := &file_tetragon_tetragon_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3604,7 +3666,7 @@ func (x *ProcessTracepoint) String() string {
func (*ProcessTracepoint) ProtoMessage() {}
func (x *ProcessTracepoint) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[34]
+ mi := &file_tetragon_tetragon_proto_msgTypes[35]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3617,7 +3679,7 @@ func (x *ProcessTracepoint) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessTracepoint.ProtoReflect.Descriptor instead.
func (*ProcessTracepoint) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{34}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{35}
}
func (x *ProcessTracepoint) GetProcess() *Process {
@@ -3720,7 +3782,7 @@ type ProcessUprobe struct {
func (x *ProcessUprobe) Reset() {
*x = ProcessUprobe{}
- mi := &file_tetragon_tetragon_proto_msgTypes[35]
+ mi := &file_tetragon_tetragon_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3732,7 +3794,7 @@ func (x *ProcessUprobe) String() string {
func (*ProcessUprobe) ProtoMessage() {}
func (x *ProcessUprobe) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[35]
+ mi := &file_tetragon_tetragon_proto_msgTypes[36]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3745,7 +3807,7 @@ func (x *ProcessUprobe) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessUprobe.ProtoReflect.Descriptor instead.
func (*ProcessUprobe) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{35}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{36}
}
func (x *ProcessUprobe) GetProcess() *Process {
@@ -3867,7 +3929,7 @@ type ProcessUsdt struct {
func (x *ProcessUsdt) Reset() {
*x = ProcessUsdt{}
- mi := &file_tetragon_tetragon_proto_msgTypes[36]
+ mi := &file_tetragon_tetragon_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3879,7 +3941,7 @@ func (x *ProcessUsdt) String() string {
func (*ProcessUsdt) ProtoMessage() {}
func (x *ProcessUsdt) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[36]
+ mi := &file_tetragon_tetragon_proto_msgTypes[37]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3892,7 +3954,7 @@ func (x *ProcessUsdt) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessUsdt.ProtoReflect.Descriptor instead.
func (*ProcessUsdt) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{36}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{37}
}
func (x *ProcessUsdt) GetProcess() *Process {
@@ -4005,7 +4067,7 @@ type ProcessLsm struct {
func (x *ProcessLsm) Reset() {
*x = ProcessLsm{}
- mi := &file_tetragon_tetragon_proto_msgTypes[37]
+ mi := &file_tetragon_tetragon_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4017,7 +4079,7 @@ func (x *ProcessLsm) String() string {
func (*ProcessLsm) ProtoMessage() {}
func (x *ProcessLsm) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[37]
+ mi := &file_tetragon_tetragon_proto_msgTypes[38]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4030,7 +4092,7 @@ func (x *ProcessLsm) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessLsm.ProtoReflect.Descriptor instead.
func (*ProcessLsm) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{37}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{38}
}
func (x *ProcessLsm) GetProcess() *Process {
@@ -4118,7 +4180,7 @@ type KernelModule struct {
func (x *KernelModule) Reset() {
*x = KernelModule{}
- mi := &file_tetragon_tetragon_proto_msgTypes[38]
+ mi := &file_tetragon_tetragon_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4130,7 +4192,7 @@ func (x *KernelModule) String() string {
func (*KernelModule) ProtoMessage() {}
func (x *KernelModule) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[38]
+ mi := &file_tetragon_tetragon_proto_msgTypes[39]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4143,7 +4205,7 @@ func (x *KernelModule) ProtoReflect() protoreflect.Message {
// Deprecated: Use KernelModule.ProtoReflect.Descriptor instead.
func (*KernelModule) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{38}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{39}
}
func (x *KernelModule) GetName() string {
@@ -4179,7 +4241,7 @@ type Test struct {
func (x *Test) Reset() {
*x = Test{}
- mi := &file_tetragon_tetragon_proto_msgTypes[39]
+ mi := &file_tetragon_tetragon_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4191,7 +4253,7 @@ func (x *Test) String() string {
func (*Test) ProtoMessage() {}
func (x *Test) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[39]
+ mi := &file_tetragon_tetragon_proto_msgTypes[40]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4204,7 +4266,7 @@ func (x *Test) ProtoReflect() protoreflect.Message {
// Deprecated: Use Test.ProtoReflect.Descriptor instead.
func (*Test) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{39}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{40}
}
func (x *Test) GetArg0() uint64 {
@@ -4244,7 +4306,7 @@ type GetHealthStatusRequest struct {
func (x *GetHealthStatusRequest) Reset() {
*x = GetHealthStatusRequest{}
- mi := &file_tetragon_tetragon_proto_msgTypes[40]
+ mi := &file_tetragon_tetragon_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4256,7 +4318,7 @@ func (x *GetHealthStatusRequest) String() string {
func (*GetHealthStatusRequest) ProtoMessage() {}
func (x *GetHealthStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[40]
+ mi := &file_tetragon_tetragon_proto_msgTypes[41]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4269,7 +4331,7 @@ func (x *GetHealthStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetHealthStatusRequest.ProtoReflect.Descriptor instead.
func (*GetHealthStatusRequest) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{40}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{41}
}
func (x *GetHealthStatusRequest) GetEventSet() []HealthStatusType {
@@ -4290,7 +4352,7 @@ type HealthStatus struct {
func (x *HealthStatus) Reset() {
*x = HealthStatus{}
- mi := &file_tetragon_tetragon_proto_msgTypes[41]
+ mi := &file_tetragon_tetragon_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4302,7 +4364,7 @@ func (x *HealthStatus) String() string {
func (*HealthStatus) ProtoMessage() {}
func (x *HealthStatus) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[41]
+ mi := &file_tetragon_tetragon_proto_msgTypes[42]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4315,7 +4377,7 @@ func (x *HealthStatus) ProtoReflect() protoreflect.Message {
// Deprecated: Use HealthStatus.ProtoReflect.Descriptor instead.
func (*HealthStatus) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{41}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{42}
}
func (x *HealthStatus) GetEvent() HealthStatusType {
@@ -4348,7 +4410,7 @@ type GetHealthStatusResponse struct {
func (x *GetHealthStatusResponse) Reset() {
*x = GetHealthStatusResponse{}
- mi := &file_tetragon_tetragon_proto_msgTypes[42]
+ mi := &file_tetragon_tetragon_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4360,7 +4422,7 @@ func (x *GetHealthStatusResponse) String() string {
func (*GetHealthStatusResponse) ProtoMessage() {}
func (x *GetHealthStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[42]
+ mi := &file_tetragon_tetragon_proto_msgTypes[43]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4373,7 +4435,7 @@ func (x *GetHealthStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetHealthStatusResponse.ProtoReflect.Descriptor instead.
func (*GetHealthStatusResponse) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{42}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{43}
}
func (x *GetHealthStatusResponse) GetHealthStatus() []*HealthStatus {
@@ -4402,7 +4464,7 @@ type ProcessLoader struct {
func (x *ProcessLoader) Reset() {
*x = ProcessLoader{}
- mi := &file_tetragon_tetragon_proto_msgTypes[43]
+ mi := &file_tetragon_tetragon_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4414,7 +4476,7 @@ func (x *ProcessLoader) String() string {
func (*ProcessLoader) ProtoMessage() {}
func (x *ProcessLoader) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[43]
+ mi := &file_tetragon_tetragon_proto_msgTypes[44]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4427,7 +4489,7 @@ func (x *ProcessLoader) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessLoader.ProtoReflect.Descriptor instead.
func (*ProcessLoader) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{43}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{44}
}
func (x *ProcessLoader) GetProcess() *Process {
@@ -4478,7 +4540,7 @@ type RuntimeHookRequest struct {
func (x *RuntimeHookRequest) Reset() {
*x = RuntimeHookRequest{}
- mi := &file_tetragon_tetragon_proto_msgTypes[44]
+ mi := &file_tetragon_tetragon_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4490,7 +4552,7 @@ func (x *RuntimeHookRequest) String() string {
func (*RuntimeHookRequest) ProtoMessage() {}
func (x *RuntimeHookRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[44]
+ mi := &file_tetragon_tetragon_proto_msgTypes[45]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4503,7 +4565,7 @@ func (x *RuntimeHookRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RuntimeHookRequest.ProtoReflect.Descriptor instead.
func (*RuntimeHookRequest) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{44}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{45}
}
func (x *RuntimeHookRequest) GetEvent() isRuntimeHookRequest_Event {
@@ -4540,7 +4602,7 @@ type RuntimeHookResponse struct {
func (x *RuntimeHookResponse) Reset() {
*x = RuntimeHookResponse{}
- mi := &file_tetragon_tetragon_proto_msgTypes[45]
+ mi := &file_tetragon_tetragon_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4552,7 +4614,7 @@ func (x *RuntimeHookResponse) String() string {
func (*RuntimeHookResponse) ProtoMessage() {}
func (x *RuntimeHookResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[45]
+ mi := &file_tetragon_tetragon_proto_msgTypes[46]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4565,7 +4627,7 @@ func (x *RuntimeHookResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RuntimeHookResponse.ProtoReflect.Descriptor instead.
func (*RuntimeHookResponse) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{45}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{46}
}
type Mount struct {
@@ -4584,7 +4646,7 @@ type Mount struct {
func (x *Mount) Reset() {
*x = Mount{}
- mi := &file_tetragon_tetragon_proto_msgTypes[46]
+ mi := &file_tetragon_tetragon_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4596,7 +4658,7 @@ func (x *Mount) String() string {
func (*Mount) ProtoMessage() {}
func (x *Mount) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[46]
+ mi := &file_tetragon_tetragon_proto_msgTypes[47]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4609,7 +4671,7 @@ func (x *Mount) ProtoReflect() protoreflect.Message {
// Deprecated: Use Mount.ProtoReflect.Descriptor instead.
func (*Mount) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{46}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{47}
}
func (x *Mount) GetDestination() string {
@@ -4679,7 +4741,7 @@ type CreateContainer struct {
func (x *CreateContainer) Reset() {
*x = CreateContainer{}
- mi := &file_tetragon_tetragon_proto_msgTypes[47]
+ mi := &file_tetragon_tetragon_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4691,7 +4753,7 @@ func (x *CreateContainer) String() string {
func (*CreateContainer) ProtoMessage() {}
func (x *CreateContainer) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[47]
+ mi := &file_tetragon_tetragon_proto_msgTypes[48]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4704,7 +4766,7 @@ func (x *CreateContainer) ProtoReflect() protoreflect.Message {
// Deprecated: Use CreateContainer.ProtoReflect.Descriptor instead.
func (*CreateContainer) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{47}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{48}
}
func (x *CreateContainer) GetCgroupsPath() string {
@@ -4793,7 +4855,7 @@ type StackTraceEntry struct {
func (x *StackTraceEntry) Reset() {
*x = StackTraceEntry{}
- mi := &file_tetragon_tetragon_proto_msgTypes[48]
+ mi := &file_tetragon_tetragon_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4805,7 +4867,7 @@ func (x *StackTraceEntry) String() string {
func (*StackTraceEntry) ProtoMessage() {}
func (x *StackTraceEntry) ProtoReflect() protoreflect.Message {
- mi := &file_tetragon_tetragon_proto_msgTypes[48]
+ mi := &file_tetragon_tetragon_proto_msgTypes[49]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4818,7 +4880,7 @@ func (x *StackTraceEntry) ProtoReflect() protoreflect.Message {
// Deprecated: Use StackTraceEntry.ProtoReflect.Descriptor instead.
func (*StackTraceEntry) Descriptor() ([]byte, []int) {
- return file_tetragon_tetragon_proto_rawDescGZIP(), []int{48}
+ return file_tetragon_tetragon_proto_rawDescGZIP(), []int{49}
}
func (x *StackTraceEntry) GetAddress() uint64 {
@@ -5038,629 +5100,636 @@ var file_tetragon_tetragon_proto_rawDesc = []byte{
0x6c, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x04, 0x66, 0x69,
0x6c, 0x65, 0x22, 0x20, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc4, 0x06, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
- 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x06, 0x65, 0x78, 0x65, 0x63, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x70, 0x69, 0x64,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56,
- 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x75, 0x69, 0x64,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56,
- 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x77, 0x64,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x77, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62,
- 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x6e,
- 0x61, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74,
- 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74,
- 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
- 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x75, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04,
- 0x61, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x03, 0x70, 0x6f, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x64,
- 0x52, 0x03, 0x70, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x18,
- 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x24, 0x0a,
- 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x18,
- 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x65,
- 0x63, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x66, 0x63, 0x6e, 0x74, 0x18, 0x0d, 0x20,
- 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x66, 0x63, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x03, 0x63,
- 0x61, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73,
- 0x52, 0x03, 0x63, 0x61, 0x70, 0x12, 0x24, 0x0a, 0x02, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d,
- 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x02, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x03, 0x74,
- 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x30, 0x0a, 0x06, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x12, 0x10,
+ 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4b, 0x65, 0x79,
+ 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x07, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65,
+ 0x73, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x65, 0x63, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x70,
+ 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
- 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x74, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x13, 0x70,
- 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61,
- 0x6c, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65,
- 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43,
- 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x11, 0x62, 0x69,
- 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,
- 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
- 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
- 0x73, 0x52, 0x10, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
- 0x69, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x55, 0x73, 0x65,
- 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3c, 0x0a,
- 0x0c, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x18, 0x14, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
- 0x0a, 0x69, 0x6e, 0x49, 0x6e, 0x69, 0x74, 0x54, 0x72, 0x65, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x0b,
- 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x07, 0x70,
- 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52,
- 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
- 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73,
- 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
- 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73,
- 0x74, 0x6f, 0x72, 0x73, 0x22, 0xf6, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
- 0x45, 0x78, 0x69, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18,
+ 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x75,
+ 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
+ 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63,
+ 0x77, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x77, 0x64, 0x12, 0x16, 0x0a,
+ 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62,
+ 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61,
+ 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74,
+ 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x75, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x52, 0x04, 0x61, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x03, 0x70, 0x6f, 0x64, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50,
+ 0x6f, 0x64, 0x52, 0x03, 0x70, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x63, 0x6b, 0x65,
+ 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x12,
+ 0x24, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x69,
+ 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x45,
+ 0x78, 0x65, 0x63, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x66, 0x63, 0x6e, 0x74, 0x18,
+ 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x66, 0x63, 0x6e, 0x74, 0x12, 0x28, 0x0a,
+ 0x03, 0x63, 0x61, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
+ 0x65, 0x73, 0x52, 0x03, 0x63, 0x61, 0x70, 0x12, 0x24, 0x0a, 0x02, 0x6e, 0x73, 0x18, 0x0f, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4e,
+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x02, 0x6e, 0x73, 0x12, 0x2e, 0x0a,
+ 0x03, 0x74, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e,
+ 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x74, 0x69, 0x64, 0x12, 0x4d, 0x0a,
+ 0x13, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74,
+ 0x69, 0x61, 0x6c, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65,
+ 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
+ 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x11,
+ 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
+ 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x69, 0x65, 0x73, 0x52, 0x10, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x13, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x55,
+ 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12,
+ 0x3c, 0x0a, 0x0c, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x18,
+ 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x49, 0x6e, 0x69, 0x74, 0x54, 0x72, 0x65, 0x65, 0x12, 0x45, 0x0a,
+ 0x15, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x72,
+ 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74,
+ 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x14,
+ 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61,
+ 0x62, 0x6c, 0x65, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
+ 0x45, 0x78, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f,
- 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06,
- 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x69,
- 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x04,
- 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
- 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09,
- 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x09,
+ 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
- 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x8a, 0x02,
- 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06,
- 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61,
- 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f,
- 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f,
- 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61,
- 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, 0x64, 0x64, 0x72,
- 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52,
- 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06,
- 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f,
- 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xc9, 0x02, 0x0a, 0x09, 0x4b,
- 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6b, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03,
- 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x1a,
- 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
- 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61,
- 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x14,
- 0x0a, 0x05, 0x73, 0x61, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,
- 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70,
- 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74,
- 0x12, 0x14, 0x0a, 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52,
- 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0c,
- 0x73, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x65, 0x6e, 0x12, 0x22,
- 0x0a, 0x0d, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6f, 0x6c, 0x65, 0x6e, 0x18,
- 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x6c,
- 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0c,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x16,
- 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
- 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x50, 0x0a, 0x0e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65,
- 0x53, 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69,
- 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79,
- 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x61, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x22, 0x0a, 0x0c, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x4e, 0x65, 0x74, 0x44, 0x65, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6c, 0x0a, 0x0a,
- 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f,
- 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
- 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65,
- 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
- 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x6c, 0x0a, 0x0a, 0x4b, 0x70,
- 0x72, 0x6f, 0x62, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e,
- 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12,
- 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61,
- 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d,
- 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65,
- 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x14, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73,
- 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x41, 0x72, 0x67, 0x12, 0x1b, 0x0a,
- 0x09, 0x6f, 0x72, 0x69, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
- 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xbe, 0x01, 0x0a, 0x0a, 0x4b,
- 0x70, 0x72, 0x6f, 0x62, 0x65, 0x43, 0x72, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x70, 0x65, 0x72,
- 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
- 0x74, 0x69, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74,
- 0x74, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
- 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
- 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x54, 0x79,
- 0x70, 0x65, 0x52, 0x09, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x3c, 0x0a,
- 0x0b, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03,
- 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61,
- 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b,
- 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x5d, 0x0a, 0x11, 0x4b,
- 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72, 0x6d,
- 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65,
- 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
- 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x10, 0x4b, 0x70,
- 0x72, 0x6f, 0x62, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x31,
- 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd5, 0x01, 0x0a, 0x13, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65,
- 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a,
- 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49,
- 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c,
- 0x12, 0x32, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6f,
- 0x77, 0x6e, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x0a, 0x02, 0x6e, 0x73, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
- 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x02, 0x6e, 0x73, 0x22, 0x61, 0x0a,
- 0x0d, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a,
- 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x6e,
- 0x73, 0x6e, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x49, 0x6e, 0x73,
- 0x6e, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65,
- 0x22, 0x61, 0x0a, 0x0d, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x50, 0x72, 0x6f,
- 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a,
- 0x07, 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
- 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e,
- 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e,
- 0x61, 0x6d, 0x65, 0x22, 0x7f, 0x0a, 0x0f, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x65, 0x72,
- 0x66, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65,
- 0x46, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6f,
- 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x43, 0x6f, 0x6e, 0x66,
- 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65,
- 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x4f, 0x66,
- 0x66, 0x73, 0x65, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x0c, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42,
- 0x70, 0x66, 0x4d, 0x61, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12,
- 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
- 0x52, 0x07, 0x4b, 0x65, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x61, 0x6c,
- 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x45, 0x6e,
- 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x4d, 0x61, 0x78,
- 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x4e, 0x61,
- 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4d, 0x61, 0x70, 0x4e, 0x61, 0x6d,
- 0x65, 0x22, 0x2d, 0x0a, 0x09, 0x53, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x0e,
- 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10,
- 0x0a, 0x03, 0x61, 0x62, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x62, 0x69,
- 0x22, 0xed, 0x0c, 0x0a, 0x0e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d,
- 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x72,
- 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e,
- 0x67, 0x41, 0x72, 0x67, 0x12, 0x19, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12,
- 0x2e, 0x0a, 0x07, 0x73, 0x6b, 0x62, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x13, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x53, 0x6b, 0x62, 0x48, 0x00, 0x52, 0x06, 0x73, 0x6b, 0x62, 0x41, 0x72, 0x67, 0x12,
- 0x1b, 0x0a, 0x08, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x04, 0x48, 0x00, 0x52, 0x07, 0x73, 0x69, 0x7a, 0x65, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x09,
- 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48,
- 0x00, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08, 0x70,
- 0x61, 0x74, 0x68, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
- 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50,
- 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x41, 0x72, 0x67, 0x12, 0x31,
- 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x72,
- 0x67, 0x12, 0x50, 0x0a, 0x13, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62,
- 0x79, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
+ 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xf6, 0x01,
+ 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x69, 0x74, 0x12, 0x2b, 0x0a,
+ 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
+ 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
+ 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a,
+ 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
+ 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f,
+ 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63,
+ 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x8a, 0x02, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62,
+ 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a,
+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,
+ 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x12, 0x0a,
+ 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x61, 0x72,
+ 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a,
+ 0x05, 0x73, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x61,
+ 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x64, 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x6f,
+ 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12,
+ 0x14, 0x0a, 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
+ 0x64, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18,
+ 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x14, 0x0a,
+ 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x22, 0xc9, 0x02, 0x0a, 0x09, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6b,
+ 0x62, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72,
+ 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x61, 0x64, 0x64, 0x72,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x61, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a,
+ 0x05, 0x64, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x61,
+ 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x05, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x70, 0x6f,
+ 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x12,
+ 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74,
+ 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63,
+ 0x50, 0x61, 0x74, 0x68, 0x4c, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x63, 0x5f, 0x70,
+ 0x61, 0x74, 0x68, 0x5f, 0x6f, 0x6c, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b,
+ 0x73, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x6c, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c,
+ 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22,
+ 0x50, 0x0a, 0x0e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64,
+ 0x72, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64,
+ 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a,
+ 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72,
+ 0x74, 0x22, 0x22, 0x0a, 0x0c, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4e, 0x65, 0x74, 0x44, 0x65,
+ 0x76, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6c, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50,
+ 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
+ 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a,
+ 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c,
+ 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
+ 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
+ 0x69, 0x6f, 0x6e, 0x22, 0x6c, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x69, 0x6c,
+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66,
+ 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67,
+ 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
+ 0x6e, 0x22, 0x50, 0x0a, 0x14, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x54, 0x72, 0x75, 0x6e, 0x63,
+ 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x79, 0x74,
+ 0x65, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x79,
+ 0x74, 0x65, 0x73, 0x41, 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x72, 0x69, 0x67, 0x5f, 0x73,
+ 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53,
+ 0x69, 0x7a, 0x65, 0x22, 0xbe, 0x01, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x43, 0x72,
+ 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x54, 0x79, 0x70,
+ 0x65, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09,
+ 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32,
+ 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62,
+ 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x66, 0x66,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
+ 0x69, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x22, 0x5d, 0x0a, 0x11, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4c, 0x69,
+ 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
+ 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a,
+ 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c,
+ 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
+ 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
+ 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x10, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x43, 0x61, 0x70,
+ 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd5,
+ 0x01, 0x0a, 0x13, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d,
+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x32, 0x0a, 0x05, 0x6f, 0x77, 0x6e,
+ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
+ 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x32, 0x0a,
+ 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55,
+ 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75,
+ 0x70, 0x12, 0x23, 0x0a, 0x02, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
+ 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
+ 0x63, 0x65, 0x52, 0x02, 0x6e, 0x73, 0x22, 0x61, 0x0a, 0x0d, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65,
+ 0x42, 0x70, 0x66, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54,
+ 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x54,
+ 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a,
+ 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x61, 0x0a, 0x0d, 0x4b, 0x70, 0x72,
+ 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x50, 0x72, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72,
+ 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72,
+ 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x49, 0x6e, 0x73, 0x6e, 0x43, 0x6e, 0x74,
+ 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x7f, 0x0a, 0x0f,
+ 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x65, 0x72, 0x66, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12,
+ 0x1e, 0x0a, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x12,
+ 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54,
+ 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x04, 0x52, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x50,
+ 0x72, 0x6f, 0x62, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04,
+ 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x9a, 0x01,
+ 0x0a, 0x0c, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x4d, 0x61, 0x70, 0x12, 0x18,
+ 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x53,
+ 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x4b, 0x65, 0x79, 0x53, 0x69,
+ 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65,
+ 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73,
+ 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x4d, 0x61, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x2d, 0x0a, 0x09, 0x53, 0x79,
+ 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x62, 0x69, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x62, 0x69, 0x22, 0xed, 0x0c, 0x0a, 0x0e, 0x4b, 0x70,
+ 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0a,
+ 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x67, 0x12, 0x19, 0x0a,
+ 0x07, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00,
+ 0x52, 0x06, 0x69, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12, 0x2e, 0x0a, 0x07, 0x73, 0x6b, 0x62, 0x5f,
+ 0x61, 0x72, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x65, 0x74, 0x72,
+ 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6b, 0x62, 0x48, 0x00,
+ 0x52, 0x06, 0x73, 0x6b, 0x62, 0x41, 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x08, 0x73, 0x69, 0x7a, 0x65,
+ 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x73, 0x69,
+ 0x7a, 0x65, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x61,
+ 0x72, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65,
+ 0x73, 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x61, 0x72, 0x67,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
+ 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x07,
+ 0x70, 0x61, 0x74, 0x68, 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f,
+ 0x61, 0x72, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72,
+ 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x48,
+ 0x00, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x72, 0x67, 0x12, 0x50, 0x0a, 0x13, 0x74, 0x72,
+ 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x72,
+ 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74,
+ 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x48, 0x00, 0x52, 0x11, 0x74, 0x72, 0x75, 0x6e, 0x63,
+ 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08,
+ 0x73, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65,
- 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x48, 0x00,
- 0x52, 0x11, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73,
- 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x67, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
- 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x07, 0x73,
- 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x67, 0x12, 0x31, 0x0a, 0x08, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x61,
- 0x72, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x43, 0x72, 0x65, 0x64, 0x48, 0x00,
- 0x52, 0x07, 0x63, 0x72, 0x65, 0x64, 0x41, 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x08, 0x6c, 0x6f, 0x6e,
- 0x67, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x07, 0x6c,
- 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x67, 0x12, 0x3b, 0x0a, 0x0c, 0x62, 0x70, 0x66, 0x5f, 0x61, 0x74,
- 0x74, 0x72, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70,
- 0x66, 0x41, 0x74, 0x74, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x70, 0x66, 0x41, 0x74, 0x74, 0x72,
- 0x41, 0x72, 0x67, 0x12, 0x41, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x66, 0x5f, 0x65, 0x76, 0x65, 0x6e,
- 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65,
- 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x65, 0x72,
- 0x66, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x66, 0x45, 0x76,
- 0x65, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12, 0x38, 0x0a, 0x0b, 0x62, 0x70, 0x66, 0x5f, 0x6d, 0x61,
- 0x70, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65,
- 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66,
- 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x09, 0x62, 0x70, 0x66, 0x4d, 0x61, 0x70, 0x41, 0x72, 0x67,
- 0x12, 0x1b, 0x0a, 0x08, 0x75, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0f, 0x20, 0x01,
- 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x75, 0x69, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12, 0x51, 0x0a,
- 0x12, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f,
- 0x61, 0x72, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72,
- 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e,
- 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10,
- 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x41, 0x72, 0x67,
- 0x12, 0x43, 0x0a, 0x0e, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x61,
- 0x72, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69,
- 0x6c, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
- 0x74, 0x79, 0x41, 0x72, 0x67, 0x12, 0x56, 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
- 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x72, 0x67,
- 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
- 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74,
- 0x69, 0x61, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43,
- 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x41, 0x72, 0x67, 0x12, 0x39, 0x0a,
- 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x14, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x55, 0x73,
- 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x75,
- 0x73, 0x65, 0x72, 0x4e, 0x73, 0x41, 0x72, 0x67, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75,
- 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x4d, 0x6f,
- 0x64, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x72,
- 0x67, 0x12, 0x29, 0x0a, 0x10, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x5f,
- 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x6b,
- 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x43, 0x61, 0x70, 0x54, 0x41, 0x72, 0x67, 0x12, 0x30, 0x0a, 0x13,
- 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f,
- 0x61, 0x72, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x70,
- 0x49, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x67, 0x12, 0x2c,
- 0x0a, 0x11, 0x63, 0x61, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f,
- 0x61, 0x72, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x61, 0x70,
- 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x41, 0x72, 0x67, 0x12, 0x2c, 0x0a, 0x11,
- 0x63, 0x61, 0x70, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x72,
- 0x67, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x61, 0x70, 0x45, 0x66,
- 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x72, 0x67, 0x12, 0x47, 0x0a, 0x10, 0x6c, 0x69,
- 0x6e, 0x75, 0x78, 0x5f, 0x62, 0x69, 0x6e, 0x70, 0x72, 0x6d, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1a,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
- 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72,
- 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72, 0x6d,
- 0x41, 0x72, 0x67, 0x12, 0x38, 0x0a, 0x0b, 0x6e, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x61,
- 0x72, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4e, 0x65, 0x74, 0x44, 0x65, 0x76,
- 0x48, 0x00, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x44, 0x65, 0x76, 0x41, 0x72, 0x67, 0x12, 0x32, 0x0a,
- 0x0b, 0x62, 0x70, 0x66, 0x5f, 0x63, 0x6d, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1c, 0x20, 0x01,
- 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x42, 0x70,
- 0x66, 0x43, 0x6d, 0x64, 0x48, 0x00, 0x52, 0x09, 0x62, 0x70, 0x66, 0x43, 0x6d, 0x64, 0x41, 0x72,
- 0x67, 0x12, 0x34, 0x0a, 0x0a, 0x73, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18,
- 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
- 0x2e, 0x53, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x48, 0x00, 0x52, 0x09, 0x73, 0x79,
- 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x6f, 0x63, 0x6b, 0x61,
- 0x64, 0x64, 0x72, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
- 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53,
- 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x6f, 0x63, 0x6b, 0x61,
- 0x64, 0x64, 0x72, 0x41, 0x72, 0x67, 0x12, 0x3b, 0x0a, 0x0c, 0x62, 0x70, 0x66, 0x5f, 0x70, 0x72,
- 0x6f, 0x67, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70,
- 0x66, 0x50, 0x72, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x70, 0x66, 0x50, 0x72, 0x6f, 0x67,
- 0x41, 0x72, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x12, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x61, 0x72, 0x67,
- 0x22, 0x95, 0x05, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50,
- 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12,
- 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
- 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75,
- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12,
- 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
- 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41,
- 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x30, 0x0a,
- 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
- 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41,
- 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12,
- 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
- 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62,
- 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
- 0x47, 0x0a, 0x12, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f,
- 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65,
- 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63,
- 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x74,
- 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69,
- 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70,
- 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x72, 0x65, 0x74,
- 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e,
- 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
- 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
- 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
- 0x74, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61,
- 0x63, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,
- 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54,
- 0x72, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53,
- 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63,
- 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
+ 0x53, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x07, 0x73, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x67, 0x12,
+ 0x31, 0x0a, 0x08, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72,
+ 0x6f, 0x62, 0x65, 0x43, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x65, 0x64, 0x41,
+ 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x08, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0b,
+ 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x67, 0x12,
+ 0x3b, 0x0a, 0x0c, 0x62, 0x70, 0x66, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x72, 0x67, 0x18,
+ 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x41, 0x74, 0x74, 0x72, 0x48, 0x00,
+ 0x52, 0x0a, 0x62, 0x70, 0x66, 0x41, 0x74, 0x74, 0x72, 0x41, 0x72, 0x67, 0x12, 0x41, 0x0a, 0x0e,
+ 0x70, 0x65, 0x72, 0x66, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0d,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
+ 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x50, 0x65, 0x72, 0x66, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48,
+ 0x00, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x66, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12,
+ 0x38, 0x0a, 0x0b, 0x62, 0x70, 0x66, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0e,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
+ 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x09,
+ 0x62, 0x70, 0x66, 0x4d, 0x61, 0x70, 0x41, 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x08, 0x75, 0x69, 0x6e,
+ 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x75,
+ 0x69, 0x6e, 0x74, 0x41, 0x72, 0x67, 0x12, 0x51, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x10, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70,
+ 0x72, 0x6f, 0x62, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d,
+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x41, 0x72, 0x67, 0x12, 0x43, 0x0a, 0x0e, 0x63, 0x61, 0x70,
+ 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72,
+ 0x6f, 0x62, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52,
+ 0x0d, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x72, 0x67, 0x12, 0x56,
+ 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e,
+ 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
+ 0x73, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x48, 0x00, 0x52,
+ 0x15, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
+ 0x61, 0x6c, 0x73, 0x41, 0x72, 0x67, 0x12, 0x39, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e,
+ 0x73, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x73, 0x41, 0x72,
+ 0x67, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18,
+ 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52,
+ 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x72, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x6b, 0x65,
+ 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x5f, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x16,
+ 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x43, 0x61,
+ 0x70, 0x54, 0x41, 0x72, 0x67, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x68,
+ 0x65, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x17, 0x20, 0x01,
+ 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x70, 0x49, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x67, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x61, 0x70, 0x5f, 0x70,
+ 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x18, 0x20, 0x01,
+ 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x61, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74,
+ 0x65, 0x64, 0x41, 0x72, 0x67, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x66, 0x66,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09,
+ 0x48, 0x00, 0x52, 0x0f, 0x63, 0x61, 0x70, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
+ 0x41, 0x72, 0x67, 0x12, 0x47, 0x0a, 0x10, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x5f, 0x62, 0x69, 0x6e,
+ 0x70, 0x72, 0x6d, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
+ 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x4c,
+ 0x69, 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x69,
+ 0x6e, 0x75, 0x78, 0x42, 0x69, 0x6e, 0x70, 0x72, 0x6d, 0x41, 0x72, 0x67, 0x12, 0x38, 0x0a, 0x0b,
+ 0x6e, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72,
+ 0x6f, 0x62, 0x65, 0x4e, 0x65, 0x74, 0x44, 0x65, 0x76, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x65, 0x74,
+ 0x44, 0x65, 0x76, 0x41, 0x72, 0x67, 0x12, 0x32, 0x0a, 0x0b, 0x62, 0x70, 0x66, 0x5f, 0x63, 0x6d,
+ 0x64, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x42, 0x70, 0x66, 0x43, 0x6d, 0x64, 0x48, 0x00, 0x52,
+ 0x09, 0x62, 0x70, 0x66, 0x43, 0x6d, 0x64, 0x41, 0x72, 0x67, 0x12, 0x34, 0x0a, 0x0a, 0x73, 0x79,
+ 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
+ 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x53, 0x79, 0x73, 0x63, 0x61, 0x6c,
+ 0x6c, 0x49, 0x64, 0x48, 0x00, 0x52, 0x09, 0x73, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64,
+ 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x61, 0x72, 0x67,
+ 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
+ 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64, 0x72,
+ 0x48, 0x00, 0x52, 0x0b, 0x73, 0x6f, 0x63, 0x6b, 0x61, 0x64, 0x64, 0x72, 0x41, 0x72, 0x67, 0x12,
+ 0x3b, 0x0a, 0x0c, 0x62, 0x70, 0x66, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x5f, 0x61, 0x72, 0x67, 0x18,
+ 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x70, 0x66, 0x50, 0x72, 0x6f, 0x67, 0x48, 0x00,
+ 0x52, 0x0a, 0x62, 0x70, 0x66, 0x50, 0x72, 0x6f, 0x67, 0x41, 0x72, 0x67, 0x12, 0x14, 0x0a, 0x05,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x22, 0x95, 0x05, 0x0a, 0x0d, 0x50, 0x72,
+ 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x70,
+ 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52,
- 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61,
- 0x74, 0x61, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65,
- 0x6e, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf7, 0x02, 0x0a, 0x11, 0x50, 0x72, 0x6f,
- 0x63, 0x65, 0x73, 0x73, 0x54, 0x72, 0x61, 0x63, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2b,
- 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
- 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65,
- 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06,
- 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x12, 0x14,
- 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65,
- 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70,
- 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72,
- 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d,
- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e,
- 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20,
- 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b,
- 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a,
- 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67,
- 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0b,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
- 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f,
- 0x72, 0x73, 0x22, 0xdd, 0x03, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x55, 0x70,
- 0x72, 0x6f, 0x62, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
- 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
- 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f,
- 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04,
- 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68,
- 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69,
- 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70,
- 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
+ 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73,
+ 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
+ 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+ 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f,
+ 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+ 0x52, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x12, 0x6b, 0x65, 0x72, 0x6e,
+ 0x65, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x07,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
+ 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
+ 0x10, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63,
+ 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61,
+ 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72,
+ 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67,
+ 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a,
+ 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x63,
+ 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61,
+ 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18,
+ 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74,
+ 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72,
- 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67,
- 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52,
- 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f,
- 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
- 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63,
- 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
- 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x24,
- 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x5f, 0x63, 0x74, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
- 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x43, 0x74, 0x72, 0x4f, 0x66,
- 0x66, 0x73, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c,
- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
- 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70,
- 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x64, 0x61,
- 0x74, 0x61, 0x22, 0x9d, 0x03, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x55, 0x73,
- 0x64, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50,
- 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12,
- 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
- 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61,
- 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a,
- 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
- 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f,
- 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12,
- 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67,
- 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
- 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e,
- 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18,
- 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61,
- 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11,
- 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
- 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x06,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74,
+ 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74,
+ 0x61, 0x22, 0xf7, 0x02, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x72, 0x61,
+ 0x63, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65,
+ 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f,
+ 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
+ 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12,
+ 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x06, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a,
+ 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67,
+ 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70,
+ 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x06,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74,
0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
- 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61,
- 0x67, 0x73, 0x22, 0x82, 0x03, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x73,
- 0x6d, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72,
- 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29,
- 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
- 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
- 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f,
- 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12,
- 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67,
- 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
- 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e,
- 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
- 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18,
- 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61,
- 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07,
+ 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e,
+ 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e,
+ 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
+ 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xdd, 0x03, 0x0a, 0x0d,
+ 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x55, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x2b, 0x0a,
+ 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
- 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08,
- 0x69, 0x6d, 0x61, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
- 0x69, 0x6d, 0x61, 0x48, 0x61, 0x73, 0x68, 0x22, 0x96, 0x01, 0x0a, 0x0c, 0x4b, 0x65, 0x72, 0x6e,
- 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0c,
- 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b,
- 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6b, 0x12, 0x33, 0x0a, 0x07, 0x74,
- 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x74,
- 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x42,
- 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64,
- 0x22, 0x56, 0x0a, 0x04, 0x54, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x30,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67, 0x30, 0x12, 0x12, 0x0a, 0x04,
- 0x61, 0x72, 0x67, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67, 0x31,
- 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04,
- 0x61, 0x72, 0x67, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x33, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67, 0x33, 0x22, 0x51, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x48,
- 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
- 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70,
- 0x65, 0x52, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x0c,
- 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x05,
- 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65,
- 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x34,
- 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c,
- 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x73, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x56,
- 0x0a, 0x17, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x68, 0x65, 0x61,
- 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c,
- 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x63, 0x65,
- 0x73, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63,
- 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72,
- 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72,
- 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x69,
- 0x6c, 0x64, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c,
- 0x64, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50,
- 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2f,
- 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
+ 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d,
+ 0x62, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
+ 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61,
+ 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04,
+ 0x61, 0x72, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67, 0x75,
+ 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61,
+ 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f,
+ 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f,
- 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22,
- 0x64, 0x0a, 0x12, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43,
- 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
- 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05,
- 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
- 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x05,
- 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74,
- 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xca, 0x03,
- 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x50, 0x61, 0x74, 0x68,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x50,
- 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x12, 0x4c, 0x0a,
- 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x72,
- 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x41, 0x6e,
- 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b,
- 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63,
- 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d,
- 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44,
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a,
- 0x06, 0x70, 0x6f, 0x64, 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70,
- 0x6f, 0x64, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65,
- 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6f, 0x64,
- 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e,
- 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67,
- 0x65, 0x12, 0x27, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4d, 0x6f, 0x75,
- 0x6e, 0x74, 0x52, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e,
- 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
- 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
- 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x73, 0x0a, 0x0f, 0x53, 0x74,
- 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x0a,
- 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07,
- 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65,
- 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12,
- 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
- 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2a,
- 0xdb, 0x03, 0x0a, 0x0c, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x12, 0x19, 0x0a, 0x15, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f,
- 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4b,
- 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x53,
- 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43,
- 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x4c, 0x4c, 0x4f, 0x57, 0x46, 0x44, 0x10, 0x02, 0x12,
- 0x19, 0x0a, 0x15, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
- 0x5f, 0x53, 0x49, 0x47, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x4b, 0x50,
- 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x46, 0x4f,
- 0x4c, 0x4c, 0x4f, 0x57, 0x46, 0x44, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x4b, 0x50, 0x52, 0x4f,
- 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49,
- 0x44, 0x45, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41,
- 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x50, 0x59, 0x46, 0x44, 0x10, 0x06, 0x12, 0x18,
+ 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12,
+ 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x5f, 0x63,
+ 0x74, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x0c, 0x72, 0x65, 0x66, 0x43, 0x74, 0x72, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2e, 0x0a,
+ 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e,
+ 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a,
+ 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x72, 0x67,
+ 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9d, 0x03, 0x0a, 0x0b,
+ 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x55, 0x73, 0x64, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x70,
+ 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
+ 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52,
+ 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69,
+ 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69,
+ 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63,
+ 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f,
+ 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
+ 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73,
+ 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
+ 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72,
+ 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65,
+ 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
+ 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x4b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0c,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x82, 0x03, 0x0a, 0x0a,
+ 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x73, 0x6d, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72,
+ 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07,
+ 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63,
+ 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f,
+ 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x18, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
+ 0x62, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73,
+ 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4b, 0x70, 0x72, 0x6f,
+ 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
+ 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72,
+ 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65,
+ 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x5f, 0x68, 0x61, 0x73,
+ 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x48, 0x61, 0x73, 0x68,
+ 0x22, 0x96, 0x01, 0x0a, 0x0c, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x75, 0x6c,
+ 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x5f, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f,
+ 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x4f, 0x6b, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e,
+ 0x2e, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x42, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65,
+ 0x52, 0x07, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x22, 0x56, 0x0a, 0x04, 0x54, 0x65, 0x73,
+ 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x04, 0x61, 0x72, 0x67, 0x30, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x31, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67,
+ 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67, 0x32, 0x12, 0x12, 0x0a,
+ 0x04, 0x61, 0x72, 0x67, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x61, 0x72, 0x67,
+ 0x33, 0x22, 0x51, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x65,
+ 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a,
+ 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x53, 0x65, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e,
+ 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65,
+ 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a,
+ 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x56, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x48, 0x65,
+ 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x74, 0x72,
+ 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
+ 0xc6, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65,
+ 0x72, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72,
+ 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x12,
+ 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61,
+ 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x64, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x06,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
+ 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52,
+ 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73,
+ 0x74, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61,
+ 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x64, 0x0a, 0x12, 0x52, 0x75, 0x6e, 0x74,
+ 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45,
+ 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67,
+ 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x15,
+ 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x05, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20,
+ 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07,
+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xca, 0x03, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x67,
+ 0x72, 0x6f, 0x75, 0x70, 0x73, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0b, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07,
+ 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72,
+ 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x12, 0x4c, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x65,
+ 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f,
+ 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07,
+ 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70,
+ 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x55, 0x49, 0x44,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x64, 0x55, 0x49, 0x44, 0x12, 0x22,
+ 0x0a, 0x0c, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
+ 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74,
+ 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x6d, 0x6f,
+ 0x75, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x65, 0x74,
+ 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x6d, 0x6f, 0x75,
+ 0x6e, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x22, 0x73, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63,
+ 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
+ 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+ 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
+ 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62,
+ 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
+ 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2a, 0xdb, 0x03, 0x0a, 0x0c, 0x4b, 0x70, 0x72,
+ 0x6f, 0x62, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4b, 0x50, 0x52,
+ 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
+ 0x57, 0x4e, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41,
+ 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16,
+ 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4f,
+ 0x4c, 0x4c, 0x4f, 0x57, 0x46, 0x44, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x4b, 0x50, 0x52, 0x4f,
+ 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4b, 0x49, 0x4c,
+ 0x4c, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43,
+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x46, 0x4f, 0x4c, 0x4c, 0x4f, 0x57, 0x46, 0x44, 0x10,
+ 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49,
+ 0x4f, 0x4e, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49, 0x44, 0x45, 0x10, 0x05, 0x12, 0x18, 0x0a,
+ 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43,
+ 0x4f, 0x50, 0x59, 0x46, 0x44, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42,
+ 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x45, 0x54, 0x55, 0x52, 0x4c, 0x10,
+ 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49,
+ 0x4f, 0x4e, 0x5f, 0x44, 0x4e, 0x53, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x10, 0x08, 0x12, 0x18,
0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
- 0x47, 0x45, 0x54, 0x55, 0x52, 0x4c, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x50, 0x52, 0x4f,
- 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4e, 0x53, 0x4c, 0x4f, 0x4f,
- 0x4b, 0x55, 0x50, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f,
- 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x09, 0x12,
- 0x18, 0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
- 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x50, 0x52,
- 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b,
- 0x53, 0x4f, 0x43, 0x4b, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45,
- 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x53,
- 0x4f, 0x43, 0x4b, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f,
- 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x45, 0x4e, 0x46,
- 0x4f, 0x52, 0x43, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x2d, 0x0a, 0x29, 0x4b, 0x50, 0x52, 0x4f, 0x42,
- 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50,
- 0x45, 0x4e, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x52, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41,
- 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0e, 0x12, 0x15, 0x0a, 0x11, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45,
- 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x0f, 0x2a, 0x4f, 0x0a,
- 0x10, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70,
- 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54,
- 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x10, 0x00, 0x12,
- 0x1d, 0x0a, 0x19, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
- 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x01, 0x2a, 0x7c,
- 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x12, 0x17, 0x0a, 0x13, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53,
- 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x10, 0x00, 0x12, 0x19, 0x0a,
- 0x15, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52,
- 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x4c,
- 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45,
- 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54,
- 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x2a, 0x8d, 0x02, 0x0a,
- 0x0f, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x42, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65,
- 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10,
- 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x52,
- 0x49, 0x45, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x01, 0x12,
- 0x17, 0x0a, 0x13, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x44, 0x5f,
- 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x49, 0x4e,
- 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x44, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f,
- 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x41, 0x49, 0x4e,
- 0x54, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10,
- 0x80, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f,
- 0x4f, 0x46, 0x5f, 0x54, 0x52, 0x45, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80,
- 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x49, 0x47,
- 0x4e, 0x45, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80, 0x40, 0x12, 0x24, 0x0a,
- 0x1e, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x4b, 0x45, 0x52, 0x4e, 0x45, 0x4c, 0x5f, 0x4c, 0x49,
- 0x56, 0x45, 0x5f, 0x50, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10,
- 0x80, 0x80, 0x02, 0x12, 0x17, 0x0a, 0x11, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x45, 0x53,
- 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80, 0x80, 0x10, 0x42, 0x2c, 0x5a, 0x2a,
- 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69, 0x75,
- 0x6d, 0x2f, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
- 0x31, 0x2f, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x33,
+ 0x4e, 0x4f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x4b, 0x50, 0x52, 0x4f,
+ 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c,
+ 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54,
+ 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x53, 0x4f, 0x43, 0x4b, 0x10, 0x0b, 0x12,
+ 0x1d, 0x0a, 0x19, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
+ 0x5f, 0x55, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x53, 0x4f, 0x43, 0x4b, 0x10, 0x0c, 0x12, 0x20,
+ 0x0a, 0x1c, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
+ 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x45, 0x4e, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x52, 0x10, 0x0d,
+ 0x12, 0x2d, 0x0a, 0x29, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f,
+ 0x4e, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x55, 0x50, 0x45, 0x4e, 0x46, 0x4f, 0x52, 0x43, 0x45,
+ 0x52, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0e, 0x12,
+ 0x15, 0x0a, 0x11, 0x4b, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
+ 0x5f, 0x53, 0x45, 0x54, 0x10, 0x0f, 0x2a, 0x4f, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x45,
+ 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45,
+ 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x48, 0x45, 0x41, 0x4c,
+ 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53,
+ 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x01, 0x2a, 0x7c, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74,
+ 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x17, 0x0a,
+ 0x13, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55,
+ 0x4e, 0x44, 0x45, 0x46, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48,
+ 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10,
+ 0x01, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54,
+ 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13,
+ 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52,
+ 0x52, 0x4f, 0x52, 0x10, 0x03, 0x2a, 0x8d, 0x02, 0x0a, 0x0f, 0x54, 0x61, 0x69, 0x6e, 0x74, 0x65,
+ 0x64, 0x42, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x41, 0x49,
+ 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x41,
+ 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x52, 0x49, 0x45, 0x54, 0x41, 0x52, 0x59, 0x5f,
+ 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x49, 0x4e,
+ 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10,
+ 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45,
+ 0x44, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10,
+ 0x04, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45,
+ 0x44, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x54,
+ 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x54, 0x52, 0x45, 0x45,
+ 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80, 0x20, 0x12, 0x1a, 0x0a, 0x15, 0x54, 0x41,
+ 0x49, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x5f, 0x4d, 0x4f, 0x44,
+ 0x55, 0x4c, 0x45, 0x10, 0x80, 0x40, 0x12, 0x24, 0x0a, 0x1e, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f,
+ 0x4b, 0x45, 0x52, 0x4e, 0x45, 0x4c, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x5f, 0x50, 0x41, 0x54, 0x43,
+ 0x48, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x80, 0x80, 0x02, 0x12, 0x17, 0x0a, 0x11,
+ 0x54, 0x41, 0x49, 0x4e, 0x54, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c,
+ 0x45, 0x10, 0x80, 0x80, 0x10, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x2f, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x74, 0x72, 0x61,
+ 0x67, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -5676,7 +5745,7 @@ func file_tetragon_tetragon_proto_rawDescGZIP() []byte {
}
var file_tetragon_tetragon_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_tetragon_tetragon_proto_msgTypes = make([]protoimpl.MessageInfo, 52)
+var file_tetragon_tetragon_proto_msgTypes = make([]protoimpl.MessageInfo, 53)
var file_tetragon_tetragon_proto_goTypes = []any{
(KprobeAction)(0), // 0: tetragon.KprobeAction
(HealthStatusType)(0), // 1: tetragon.HealthStatusType
@@ -5695,65 +5764,66 @@ var file_tetragon_tetragon_proto_goTypes = []any{
(*FileProperties)(nil), // 14: tetragon.FileProperties
(*BinaryProperties)(nil), // 15: tetragon.BinaryProperties
(*UserRecord)(nil), // 16: tetragon.UserRecord
- (*Process)(nil), // 17: tetragon.Process
- (*ProcessExec)(nil), // 18: tetragon.ProcessExec
- (*ProcessExit)(nil), // 19: tetragon.ProcessExit
- (*KprobeSock)(nil), // 20: tetragon.KprobeSock
- (*KprobeSkb)(nil), // 21: tetragon.KprobeSkb
- (*KprobeSockaddr)(nil), // 22: tetragon.KprobeSockaddr
- (*KprobeNetDev)(nil), // 23: tetragon.KprobeNetDev
- (*KprobePath)(nil), // 24: tetragon.KprobePath
- (*KprobeFile)(nil), // 25: tetragon.KprobeFile
- (*KprobeTruncatedBytes)(nil), // 26: tetragon.KprobeTruncatedBytes
- (*KprobeCred)(nil), // 27: tetragon.KprobeCred
- (*KprobeLinuxBinprm)(nil), // 28: tetragon.KprobeLinuxBinprm
- (*KprobeCapability)(nil), // 29: tetragon.KprobeCapability
- (*KprobeUserNamespace)(nil), // 30: tetragon.KprobeUserNamespace
- (*KprobeBpfAttr)(nil), // 31: tetragon.KprobeBpfAttr
- (*KprobeBpfProg)(nil), // 32: tetragon.KprobeBpfProg
- (*KprobePerfEvent)(nil), // 33: tetragon.KprobePerfEvent
- (*KprobeBpfMap)(nil), // 34: tetragon.KprobeBpfMap
- (*SyscallId)(nil), // 35: tetragon.SyscallId
- (*KprobeArgument)(nil), // 36: tetragon.KprobeArgument
- (*ProcessKprobe)(nil), // 37: tetragon.ProcessKprobe
- (*ProcessTracepoint)(nil), // 38: tetragon.ProcessTracepoint
- (*ProcessUprobe)(nil), // 39: tetragon.ProcessUprobe
- (*ProcessUsdt)(nil), // 40: tetragon.ProcessUsdt
- (*ProcessLsm)(nil), // 41: tetragon.ProcessLsm
- (*KernelModule)(nil), // 42: tetragon.KernelModule
- (*Test)(nil), // 43: tetragon.Test
- (*GetHealthStatusRequest)(nil), // 44: tetragon.GetHealthStatusRequest
- (*HealthStatus)(nil), // 45: tetragon.HealthStatus
- (*GetHealthStatusResponse)(nil), // 46: tetragon.GetHealthStatusResponse
- (*ProcessLoader)(nil), // 47: tetragon.ProcessLoader
- (*RuntimeHookRequest)(nil), // 48: tetragon.RuntimeHookRequest
- (*RuntimeHookResponse)(nil), // 49: tetragon.RuntimeHookResponse
- (*Mount)(nil), // 50: tetragon.Mount
- (*CreateContainer)(nil), // 51: tetragon.CreateContainer
- (*StackTraceEntry)(nil), // 52: tetragon.StackTraceEntry
- nil, // 53: tetragon.Pod.PodLabelsEntry
- nil, // 54: tetragon.Pod.PodAnnotationsEntry
- nil, // 55: tetragon.CreateContainer.AnnotationsEntry
- (*timestamppb.Timestamp)(nil), // 56: google.protobuf.Timestamp
- (*wrapperspb.UInt32Value)(nil), // 57: google.protobuf.UInt32Value
- (CapabilitiesType)(0), // 58: tetragon.CapabilitiesType
- (*wrapperspb.Int32Value)(nil), // 59: google.protobuf.Int32Value
- (SecureBitsType)(0), // 60: tetragon.SecureBitsType
- (ProcessPrivilegesChanged)(0), // 61: tetragon.ProcessPrivilegesChanged
- (*wrapperspb.BoolValue)(nil), // 62: google.protobuf.BoolValue
- (BpfCmd)(0), // 63: tetragon.BpfCmd
+ (*EnvVar)(nil), // 17: tetragon.EnvVar
+ (*Process)(nil), // 18: tetragon.Process
+ (*ProcessExec)(nil), // 19: tetragon.ProcessExec
+ (*ProcessExit)(nil), // 20: tetragon.ProcessExit
+ (*KprobeSock)(nil), // 21: tetragon.KprobeSock
+ (*KprobeSkb)(nil), // 22: tetragon.KprobeSkb
+ (*KprobeSockaddr)(nil), // 23: tetragon.KprobeSockaddr
+ (*KprobeNetDev)(nil), // 24: tetragon.KprobeNetDev
+ (*KprobePath)(nil), // 25: tetragon.KprobePath
+ (*KprobeFile)(nil), // 26: tetragon.KprobeFile
+ (*KprobeTruncatedBytes)(nil), // 27: tetragon.KprobeTruncatedBytes
+ (*KprobeCred)(nil), // 28: tetragon.KprobeCred
+ (*KprobeLinuxBinprm)(nil), // 29: tetragon.KprobeLinuxBinprm
+ (*KprobeCapability)(nil), // 30: tetragon.KprobeCapability
+ (*KprobeUserNamespace)(nil), // 31: tetragon.KprobeUserNamespace
+ (*KprobeBpfAttr)(nil), // 32: tetragon.KprobeBpfAttr
+ (*KprobeBpfProg)(nil), // 33: tetragon.KprobeBpfProg
+ (*KprobePerfEvent)(nil), // 34: tetragon.KprobePerfEvent
+ (*KprobeBpfMap)(nil), // 35: tetragon.KprobeBpfMap
+ (*SyscallId)(nil), // 36: tetragon.SyscallId
+ (*KprobeArgument)(nil), // 37: tetragon.KprobeArgument
+ (*ProcessKprobe)(nil), // 38: tetragon.ProcessKprobe
+ (*ProcessTracepoint)(nil), // 39: tetragon.ProcessTracepoint
+ (*ProcessUprobe)(nil), // 40: tetragon.ProcessUprobe
+ (*ProcessUsdt)(nil), // 41: tetragon.ProcessUsdt
+ (*ProcessLsm)(nil), // 42: tetragon.ProcessLsm
+ (*KernelModule)(nil), // 43: tetragon.KernelModule
+ (*Test)(nil), // 44: tetragon.Test
+ (*GetHealthStatusRequest)(nil), // 45: tetragon.GetHealthStatusRequest
+ (*HealthStatus)(nil), // 46: tetragon.HealthStatus
+ (*GetHealthStatusResponse)(nil), // 47: tetragon.GetHealthStatusResponse
+ (*ProcessLoader)(nil), // 48: tetragon.ProcessLoader
+ (*RuntimeHookRequest)(nil), // 49: tetragon.RuntimeHookRequest
+ (*RuntimeHookResponse)(nil), // 50: tetragon.RuntimeHookResponse
+ (*Mount)(nil), // 51: tetragon.Mount
+ (*CreateContainer)(nil), // 52: tetragon.CreateContainer
+ (*StackTraceEntry)(nil), // 53: tetragon.StackTraceEntry
+ nil, // 54: tetragon.Pod.PodLabelsEntry
+ nil, // 55: tetragon.Pod.PodAnnotationsEntry
+ nil, // 56: tetragon.CreateContainer.AnnotationsEntry
+ (*timestamppb.Timestamp)(nil), // 57: google.protobuf.Timestamp
+ (*wrapperspb.UInt32Value)(nil), // 58: google.protobuf.UInt32Value
+ (CapabilitiesType)(0), // 59: tetragon.CapabilitiesType
+ (*wrapperspb.Int32Value)(nil), // 60: google.protobuf.Int32Value
+ (SecureBitsType)(0), // 61: tetragon.SecureBitsType
+ (ProcessPrivilegesChanged)(0), // 62: tetragon.ProcessPrivilegesChanged
+ (*wrapperspb.BoolValue)(nil), // 63: google.protobuf.BoolValue
+ (BpfCmd)(0), // 64: tetragon.BpfCmd
}
var file_tetragon_tetragon_proto_depIdxs = []int32{
4, // 0: tetragon.Container.image:type_name -> tetragon.Image
- 56, // 1: tetragon.Container.start_time:type_name -> google.protobuf.Timestamp
- 57, // 2: tetragon.Container.pid:type_name -> google.protobuf.UInt32Value
+ 57, // 1: tetragon.Container.start_time:type_name -> google.protobuf.Timestamp
+ 58, // 2: tetragon.Container.pid:type_name -> google.protobuf.UInt32Value
5, // 3: tetragon.Container.security_context:type_name -> tetragon.SecurityContext
6, // 4: tetragon.Pod.container:type_name -> tetragon.Container
- 53, // 5: tetragon.Pod.pod_labels:type_name -> tetragon.Pod.PodLabelsEntry
- 54, // 6: tetragon.Pod.pod_annotations:type_name -> tetragon.Pod.PodAnnotationsEntry
- 58, // 7: tetragon.Capabilities.permitted:type_name -> tetragon.CapabilitiesType
- 58, // 8: tetragon.Capabilities.effective:type_name -> tetragon.CapabilitiesType
- 58, // 9: tetragon.Capabilities.inheritable:type_name -> tetragon.CapabilitiesType
+ 54, // 5: tetragon.Pod.pod_labels:type_name -> tetragon.Pod.PodLabelsEntry
+ 55, // 6: tetragon.Pod.pod_annotations:type_name -> tetragon.Pod.PodAnnotationsEntry
+ 59, // 7: tetragon.Capabilities.permitted:type_name -> tetragon.CapabilitiesType
+ 59, // 8: tetragon.Capabilities.effective:type_name -> tetragon.CapabilitiesType
+ 59, // 9: tetragon.Capabilities.inheritable:type_name -> tetragon.CapabilitiesType
9, // 10: tetragon.Namespaces.uts:type_name -> tetragon.Namespace
9, // 11: tetragon.Namespaces.ipc:type_name -> tetragon.Namespace
9, // 12: tetragon.Namespaces.mnt:type_name -> tetragon.Namespace
@@ -5764,122 +5834,123 @@ var file_tetragon_tetragon_proto_depIdxs = []int32{
9, // 17: tetragon.Namespaces.time_for_children:type_name -> tetragon.Namespace
9, // 18: tetragon.Namespaces.cgroup:type_name -> tetragon.Namespace
9, // 19: tetragon.Namespaces.user:type_name -> tetragon.Namespace
- 59, // 20: tetragon.UserNamespace.level:type_name -> google.protobuf.Int32Value
- 57, // 21: tetragon.UserNamespace.uid:type_name -> google.protobuf.UInt32Value
- 57, // 22: tetragon.UserNamespace.gid:type_name -> google.protobuf.UInt32Value
+ 60, // 20: tetragon.UserNamespace.level:type_name -> google.protobuf.Int32Value
+ 58, // 21: tetragon.UserNamespace.uid:type_name -> google.protobuf.UInt32Value
+ 58, // 22: tetragon.UserNamespace.gid:type_name -> google.protobuf.UInt32Value
9, // 23: tetragon.UserNamespace.ns:type_name -> tetragon.Namespace
- 57, // 24: tetragon.ProcessCredentials.uid:type_name -> google.protobuf.UInt32Value
- 57, // 25: tetragon.ProcessCredentials.gid:type_name -> google.protobuf.UInt32Value
- 57, // 26: tetragon.ProcessCredentials.euid:type_name -> google.protobuf.UInt32Value
- 57, // 27: tetragon.ProcessCredentials.egid:type_name -> google.protobuf.UInt32Value
- 57, // 28: tetragon.ProcessCredentials.suid:type_name -> google.protobuf.UInt32Value
- 57, // 29: tetragon.ProcessCredentials.sgid:type_name -> google.protobuf.UInt32Value
- 57, // 30: tetragon.ProcessCredentials.fsuid:type_name -> google.protobuf.UInt32Value
- 57, // 31: tetragon.ProcessCredentials.fsgid:type_name -> google.protobuf.UInt32Value
- 60, // 32: tetragon.ProcessCredentials.securebits:type_name -> tetragon.SecureBitsType
+ 58, // 24: tetragon.ProcessCredentials.uid:type_name -> google.protobuf.UInt32Value
+ 58, // 25: tetragon.ProcessCredentials.gid:type_name -> google.protobuf.UInt32Value
+ 58, // 26: tetragon.ProcessCredentials.euid:type_name -> google.protobuf.UInt32Value
+ 58, // 27: tetragon.ProcessCredentials.egid:type_name -> google.protobuf.UInt32Value
+ 58, // 28: tetragon.ProcessCredentials.suid:type_name -> google.protobuf.UInt32Value
+ 58, // 29: tetragon.ProcessCredentials.sgid:type_name -> google.protobuf.UInt32Value
+ 58, // 30: tetragon.ProcessCredentials.fsuid:type_name -> google.protobuf.UInt32Value
+ 58, // 31: tetragon.ProcessCredentials.fsgid:type_name -> google.protobuf.UInt32Value
+ 61, // 32: tetragon.ProcessCredentials.securebits:type_name -> tetragon.SecureBitsType
8, // 33: tetragon.ProcessCredentials.caps:type_name -> tetragon.Capabilities
11, // 34: tetragon.ProcessCredentials.user_ns:type_name -> tetragon.UserNamespace
- 57, // 35: tetragon.InodeProperties.links:type_name -> google.protobuf.UInt32Value
+ 58, // 35: tetragon.InodeProperties.links:type_name -> google.protobuf.UInt32Value
13, // 36: tetragon.FileProperties.inode:type_name -> tetragon.InodeProperties
- 57, // 37: tetragon.BinaryProperties.setuid:type_name -> google.protobuf.UInt32Value
- 57, // 38: tetragon.BinaryProperties.setgid:type_name -> google.protobuf.UInt32Value
- 61, // 39: tetragon.BinaryProperties.privileges_changed:type_name -> tetragon.ProcessPrivilegesChanged
+ 58, // 37: tetragon.BinaryProperties.setuid:type_name -> google.protobuf.UInt32Value
+ 58, // 38: tetragon.BinaryProperties.setgid:type_name -> google.protobuf.UInt32Value
+ 62, // 39: tetragon.BinaryProperties.privileges_changed:type_name -> tetragon.ProcessPrivilegesChanged
14, // 40: tetragon.BinaryProperties.file:type_name -> tetragon.FileProperties
- 57, // 41: tetragon.Process.pid:type_name -> google.protobuf.UInt32Value
- 57, // 42: tetragon.Process.uid:type_name -> google.protobuf.UInt32Value
- 56, // 43: tetragon.Process.start_time:type_name -> google.protobuf.Timestamp
- 57, // 44: tetragon.Process.auid:type_name -> google.protobuf.UInt32Value
+ 58, // 41: tetragon.Process.pid:type_name -> google.protobuf.UInt32Value
+ 58, // 42: tetragon.Process.uid:type_name -> google.protobuf.UInt32Value
+ 57, // 43: tetragon.Process.start_time:type_name -> google.protobuf.Timestamp
+ 58, // 44: tetragon.Process.auid:type_name -> google.protobuf.UInt32Value
7, // 45: tetragon.Process.pod:type_name -> tetragon.Pod
8, // 46: tetragon.Process.cap:type_name -> tetragon.Capabilities
10, // 47: tetragon.Process.ns:type_name -> tetragon.Namespaces
- 57, // 48: tetragon.Process.tid:type_name -> google.protobuf.UInt32Value
+ 58, // 48: tetragon.Process.tid:type_name -> google.protobuf.UInt32Value
12, // 49: tetragon.Process.process_credentials:type_name -> tetragon.ProcessCredentials
15, // 50: tetragon.Process.binary_properties:type_name -> tetragon.BinaryProperties
16, // 51: tetragon.Process.user:type_name -> tetragon.UserRecord
- 62, // 52: tetragon.Process.in_init_tree:type_name -> google.protobuf.BoolValue
- 17, // 53: tetragon.ProcessExec.process:type_name -> tetragon.Process
- 17, // 54: tetragon.ProcessExec.parent:type_name -> tetragon.Process
- 17, // 55: tetragon.ProcessExec.ancestors:type_name -> tetragon.Process
- 17, // 56: tetragon.ProcessExit.process:type_name -> tetragon.Process
- 17, // 57: tetragon.ProcessExit.parent:type_name -> tetragon.Process
- 56, // 58: tetragon.ProcessExit.time:type_name -> google.protobuf.Timestamp
- 17, // 59: tetragon.ProcessExit.ancestors:type_name -> tetragon.Process
- 58, // 60: tetragon.KprobeCred.permitted:type_name -> tetragon.CapabilitiesType
- 58, // 61: tetragon.KprobeCred.effective:type_name -> tetragon.CapabilitiesType
- 58, // 62: tetragon.KprobeCred.inheritable:type_name -> tetragon.CapabilitiesType
- 59, // 63: tetragon.KprobeCapability.value:type_name -> google.protobuf.Int32Value
- 59, // 64: tetragon.KprobeUserNamespace.level:type_name -> google.protobuf.Int32Value
- 57, // 65: tetragon.KprobeUserNamespace.owner:type_name -> google.protobuf.UInt32Value
- 57, // 66: tetragon.KprobeUserNamespace.group:type_name -> google.protobuf.UInt32Value
- 9, // 67: tetragon.KprobeUserNamespace.ns:type_name -> tetragon.Namespace
- 21, // 68: tetragon.KprobeArgument.skb_arg:type_name -> tetragon.KprobeSkb
- 24, // 69: tetragon.KprobeArgument.path_arg:type_name -> tetragon.KprobePath
- 25, // 70: tetragon.KprobeArgument.file_arg:type_name -> tetragon.KprobeFile
- 26, // 71: tetragon.KprobeArgument.truncated_bytes_arg:type_name -> tetragon.KprobeTruncatedBytes
- 20, // 72: tetragon.KprobeArgument.sock_arg:type_name -> tetragon.KprobeSock
- 27, // 73: tetragon.KprobeArgument.cred_arg:type_name -> tetragon.KprobeCred
- 31, // 74: tetragon.KprobeArgument.bpf_attr_arg:type_name -> tetragon.KprobeBpfAttr
- 33, // 75: tetragon.KprobeArgument.perf_event_arg:type_name -> tetragon.KprobePerfEvent
- 34, // 76: tetragon.KprobeArgument.bpf_map_arg:type_name -> tetragon.KprobeBpfMap
- 30, // 77: tetragon.KprobeArgument.user_namespace_arg:type_name -> tetragon.KprobeUserNamespace
- 29, // 78: tetragon.KprobeArgument.capability_arg:type_name -> tetragon.KprobeCapability
- 12, // 79: tetragon.KprobeArgument.process_credentials_arg:type_name -> tetragon.ProcessCredentials
- 11, // 80: tetragon.KprobeArgument.user_ns_arg:type_name -> tetragon.UserNamespace
- 42, // 81: tetragon.KprobeArgument.module_arg:type_name -> tetragon.KernelModule
- 28, // 82: tetragon.KprobeArgument.linux_binprm_arg:type_name -> tetragon.KprobeLinuxBinprm
- 23, // 83: tetragon.KprobeArgument.net_dev_arg:type_name -> tetragon.KprobeNetDev
- 63, // 84: tetragon.KprobeArgument.bpf_cmd_arg:type_name -> tetragon.BpfCmd
- 35, // 85: tetragon.KprobeArgument.syscall_id:type_name -> tetragon.SyscallId
- 22, // 86: tetragon.KprobeArgument.sockaddr_arg:type_name -> tetragon.KprobeSockaddr
- 32, // 87: tetragon.KprobeArgument.bpf_prog_arg:type_name -> tetragon.KprobeBpfProg
- 17, // 88: tetragon.ProcessKprobe.process:type_name -> tetragon.Process
- 17, // 89: tetragon.ProcessKprobe.parent:type_name -> tetragon.Process
- 36, // 90: tetragon.ProcessKprobe.args:type_name -> tetragon.KprobeArgument
- 36, // 91: tetragon.ProcessKprobe.return:type_name -> tetragon.KprobeArgument
- 0, // 92: tetragon.ProcessKprobe.action:type_name -> tetragon.KprobeAction
- 52, // 93: tetragon.ProcessKprobe.kernel_stack_trace:type_name -> tetragon.StackTraceEntry
- 0, // 94: tetragon.ProcessKprobe.return_action:type_name -> tetragon.KprobeAction
- 52, // 95: tetragon.ProcessKprobe.user_stack_trace:type_name -> tetragon.StackTraceEntry
- 17, // 96: tetragon.ProcessKprobe.ancestors:type_name -> tetragon.Process
- 36, // 97: tetragon.ProcessKprobe.data:type_name -> tetragon.KprobeArgument
- 17, // 98: tetragon.ProcessTracepoint.process:type_name -> tetragon.Process
- 17, // 99: tetragon.ProcessTracepoint.parent:type_name -> tetragon.Process
- 36, // 100: tetragon.ProcessTracepoint.args:type_name -> tetragon.KprobeArgument
- 0, // 101: tetragon.ProcessTracepoint.action:type_name -> tetragon.KprobeAction
- 17, // 102: tetragon.ProcessTracepoint.ancestors:type_name -> tetragon.Process
- 17, // 103: tetragon.ProcessUprobe.process:type_name -> tetragon.Process
- 17, // 104: tetragon.ProcessUprobe.parent:type_name -> tetragon.Process
- 36, // 105: tetragon.ProcessUprobe.args:type_name -> tetragon.KprobeArgument
- 17, // 106: tetragon.ProcessUprobe.ancestors:type_name -> tetragon.Process
- 0, // 107: tetragon.ProcessUprobe.action:type_name -> tetragon.KprobeAction
- 36, // 108: tetragon.ProcessUprobe.data:type_name -> tetragon.KprobeArgument
- 17, // 109: tetragon.ProcessUsdt.process:type_name -> tetragon.Process
- 17, // 110: tetragon.ProcessUsdt.parent:type_name -> tetragon.Process
- 36, // 111: tetragon.ProcessUsdt.args:type_name -> tetragon.KprobeArgument
- 17, // 112: tetragon.ProcessUsdt.ancestors:type_name -> tetragon.Process
- 0, // 113: tetragon.ProcessUsdt.action:type_name -> tetragon.KprobeAction
- 17, // 114: tetragon.ProcessLsm.process:type_name -> tetragon.Process
- 17, // 115: tetragon.ProcessLsm.parent:type_name -> tetragon.Process
- 36, // 116: tetragon.ProcessLsm.args:type_name -> tetragon.KprobeArgument
- 0, // 117: tetragon.ProcessLsm.action:type_name -> tetragon.KprobeAction
- 17, // 118: tetragon.ProcessLsm.ancestors:type_name -> tetragon.Process
- 62, // 119: tetragon.KernelModule.signature_ok:type_name -> google.protobuf.BoolValue
- 3, // 120: tetragon.KernelModule.tainted:type_name -> tetragon.TaintedBitsType
- 1, // 121: tetragon.GetHealthStatusRequest.event_set:type_name -> tetragon.HealthStatusType
- 1, // 122: tetragon.HealthStatus.event:type_name -> tetragon.HealthStatusType
- 2, // 123: tetragon.HealthStatus.status:type_name -> tetragon.HealthStatusResult
- 45, // 124: tetragon.GetHealthStatusResponse.health_status:type_name -> tetragon.HealthStatus
- 17, // 125: tetragon.ProcessLoader.process:type_name -> tetragon.Process
- 17, // 126: tetragon.ProcessLoader.parent:type_name -> tetragon.Process
- 17, // 127: tetragon.ProcessLoader.ancestors:type_name -> tetragon.Process
- 51, // 128: tetragon.RuntimeHookRequest.createContainer:type_name -> tetragon.CreateContainer
- 55, // 129: tetragon.CreateContainer.annotations:type_name -> tetragon.CreateContainer.AnnotationsEntry
- 50, // 130: tetragon.CreateContainer.mounts:type_name -> tetragon.Mount
- 131, // [131:131] is the sub-list for method output_type
- 131, // [131:131] is the sub-list for method input_type
- 131, // [131:131] is the sub-list for extension type_name
- 131, // [131:131] is the sub-list for extension extendee
- 0, // [0:131] is the sub-list for field type_name
+ 63, // 52: tetragon.Process.in_init_tree:type_name -> google.protobuf.BoolValue
+ 17, // 53: tetragon.Process.environment_variables:type_name -> tetragon.EnvVar
+ 18, // 54: tetragon.ProcessExec.process:type_name -> tetragon.Process
+ 18, // 55: tetragon.ProcessExec.parent:type_name -> tetragon.Process
+ 18, // 56: tetragon.ProcessExec.ancestors:type_name -> tetragon.Process
+ 18, // 57: tetragon.ProcessExit.process:type_name -> tetragon.Process
+ 18, // 58: tetragon.ProcessExit.parent:type_name -> tetragon.Process
+ 57, // 59: tetragon.ProcessExit.time:type_name -> google.protobuf.Timestamp
+ 18, // 60: tetragon.ProcessExit.ancestors:type_name -> tetragon.Process
+ 59, // 61: tetragon.KprobeCred.permitted:type_name -> tetragon.CapabilitiesType
+ 59, // 62: tetragon.KprobeCred.effective:type_name -> tetragon.CapabilitiesType
+ 59, // 63: tetragon.KprobeCred.inheritable:type_name -> tetragon.CapabilitiesType
+ 60, // 64: tetragon.KprobeCapability.value:type_name -> google.protobuf.Int32Value
+ 60, // 65: tetragon.KprobeUserNamespace.level:type_name -> google.protobuf.Int32Value
+ 58, // 66: tetragon.KprobeUserNamespace.owner:type_name -> google.protobuf.UInt32Value
+ 58, // 67: tetragon.KprobeUserNamespace.group:type_name -> google.protobuf.UInt32Value
+ 9, // 68: tetragon.KprobeUserNamespace.ns:type_name -> tetragon.Namespace
+ 22, // 69: tetragon.KprobeArgument.skb_arg:type_name -> tetragon.KprobeSkb
+ 25, // 70: tetragon.KprobeArgument.path_arg:type_name -> tetragon.KprobePath
+ 26, // 71: tetragon.KprobeArgument.file_arg:type_name -> tetragon.KprobeFile
+ 27, // 72: tetragon.KprobeArgument.truncated_bytes_arg:type_name -> tetragon.KprobeTruncatedBytes
+ 21, // 73: tetragon.KprobeArgument.sock_arg:type_name -> tetragon.KprobeSock
+ 28, // 74: tetragon.KprobeArgument.cred_arg:type_name -> tetragon.KprobeCred
+ 32, // 75: tetragon.KprobeArgument.bpf_attr_arg:type_name -> tetragon.KprobeBpfAttr
+ 34, // 76: tetragon.KprobeArgument.perf_event_arg:type_name -> tetragon.KprobePerfEvent
+ 35, // 77: tetragon.KprobeArgument.bpf_map_arg:type_name -> tetragon.KprobeBpfMap
+ 31, // 78: tetragon.KprobeArgument.user_namespace_arg:type_name -> tetragon.KprobeUserNamespace
+ 30, // 79: tetragon.KprobeArgument.capability_arg:type_name -> tetragon.KprobeCapability
+ 12, // 80: tetragon.KprobeArgument.process_credentials_arg:type_name -> tetragon.ProcessCredentials
+ 11, // 81: tetragon.KprobeArgument.user_ns_arg:type_name -> tetragon.UserNamespace
+ 43, // 82: tetragon.KprobeArgument.module_arg:type_name -> tetragon.KernelModule
+ 29, // 83: tetragon.KprobeArgument.linux_binprm_arg:type_name -> tetragon.KprobeLinuxBinprm
+ 24, // 84: tetragon.KprobeArgument.net_dev_arg:type_name -> tetragon.KprobeNetDev
+ 64, // 85: tetragon.KprobeArgument.bpf_cmd_arg:type_name -> tetragon.BpfCmd
+ 36, // 86: tetragon.KprobeArgument.syscall_id:type_name -> tetragon.SyscallId
+ 23, // 87: tetragon.KprobeArgument.sockaddr_arg:type_name -> tetragon.KprobeSockaddr
+ 33, // 88: tetragon.KprobeArgument.bpf_prog_arg:type_name -> tetragon.KprobeBpfProg
+ 18, // 89: tetragon.ProcessKprobe.process:type_name -> tetragon.Process
+ 18, // 90: tetragon.ProcessKprobe.parent:type_name -> tetragon.Process
+ 37, // 91: tetragon.ProcessKprobe.args:type_name -> tetragon.KprobeArgument
+ 37, // 92: tetragon.ProcessKprobe.return:type_name -> tetragon.KprobeArgument
+ 0, // 93: tetragon.ProcessKprobe.action:type_name -> tetragon.KprobeAction
+ 53, // 94: tetragon.ProcessKprobe.kernel_stack_trace:type_name -> tetragon.StackTraceEntry
+ 0, // 95: tetragon.ProcessKprobe.return_action:type_name -> tetragon.KprobeAction
+ 53, // 96: tetragon.ProcessKprobe.user_stack_trace:type_name -> tetragon.StackTraceEntry
+ 18, // 97: tetragon.ProcessKprobe.ancestors:type_name -> tetragon.Process
+ 37, // 98: tetragon.ProcessKprobe.data:type_name -> tetragon.KprobeArgument
+ 18, // 99: tetragon.ProcessTracepoint.process:type_name -> tetragon.Process
+ 18, // 100: tetragon.ProcessTracepoint.parent:type_name -> tetragon.Process
+ 37, // 101: tetragon.ProcessTracepoint.args:type_name -> tetragon.KprobeArgument
+ 0, // 102: tetragon.ProcessTracepoint.action:type_name -> tetragon.KprobeAction
+ 18, // 103: tetragon.ProcessTracepoint.ancestors:type_name -> tetragon.Process
+ 18, // 104: tetragon.ProcessUprobe.process:type_name -> tetragon.Process
+ 18, // 105: tetragon.ProcessUprobe.parent:type_name -> tetragon.Process
+ 37, // 106: tetragon.ProcessUprobe.args:type_name -> tetragon.KprobeArgument
+ 18, // 107: tetragon.ProcessUprobe.ancestors:type_name -> tetragon.Process
+ 0, // 108: tetragon.ProcessUprobe.action:type_name -> tetragon.KprobeAction
+ 37, // 109: tetragon.ProcessUprobe.data:type_name -> tetragon.KprobeArgument
+ 18, // 110: tetragon.ProcessUsdt.process:type_name -> tetragon.Process
+ 18, // 111: tetragon.ProcessUsdt.parent:type_name -> tetragon.Process
+ 37, // 112: tetragon.ProcessUsdt.args:type_name -> tetragon.KprobeArgument
+ 18, // 113: tetragon.ProcessUsdt.ancestors:type_name -> tetragon.Process
+ 0, // 114: tetragon.ProcessUsdt.action:type_name -> tetragon.KprobeAction
+ 18, // 115: tetragon.ProcessLsm.process:type_name -> tetragon.Process
+ 18, // 116: tetragon.ProcessLsm.parent:type_name -> tetragon.Process
+ 37, // 117: tetragon.ProcessLsm.args:type_name -> tetragon.KprobeArgument
+ 0, // 118: tetragon.ProcessLsm.action:type_name -> tetragon.KprobeAction
+ 18, // 119: tetragon.ProcessLsm.ancestors:type_name -> tetragon.Process
+ 63, // 120: tetragon.KernelModule.signature_ok:type_name -> google.protobuf.BoolValue
+ 3, // 121: tetragon.KernelModule.tainted:type_name -> tetragon.TaintedBitsType
+ 1, // 122: tetragon.GetHealthStatusRequest.event_set:type_name -> tetragon.HealthStatusType
+ 1, // 123: tetragon.HealthStatus.event:type_name -> tetragon.HealthStatusType
+ 2, // 124: tetragon.HealthStatus.status:type_name -> tetragon.HealthStatusResult
+ 46, // 125: tetragon.GetHealthStatusResponse.health_status:type_name -> tetragon.HealthStatus
+ 18, // 126: tetragon.ProcessLoader.process:type_name -> tetragon.Process
+ 18, // 127: tetragon.ProcessLoader.parent:type_name -> tetragon.Process
+ 18, // 128: tetragon.ProcessLoader.ancestors:type_name -> tetragon.Process
+ 52, // 129: tetragon.RuntimeHookRequest.createContainer:type_name -> tetragon.CreateContainer
+ 56, // 130: tetragon.CreateContainer.annotations:type_name -> tetragon.CreateContainer.AnnotationsEntry
+ 51, // 131: tetragon.CreateContainer.mounts:type_name -> tetragon.Mount
+ 132, // [132:132] is the sub-list for method output_type
+ 132, // [132:132] is the sub-list for method input_type
+ 132, // [132:132] is the sub-list for extension type_name
+ 132, // [132:132] is the sub-list for extension extendee
+ 0, // [0:132] is the sub-list for field type_name
}
func init() { file_tetragon_tetragon_proto_init() }
@@ -5889,7 +5960,7 @@ func file_tetragon_tetragon_proto_init() {
}
file_tetragon_bpf_proto_init()
file_tetragon_capabilities_proto_init()
- file_tetragon_tetragon_proto_msgTypes[32].OneofWrappers = []any{
+ file_tetragon_tetragon_proto_msgTypes[33].OneofWrappers = []any{
(*KprobeArgument_StringArg)(nil),
(*KprobeArgument_IntArg)(nil),
(*KprobeArgument_SkbArg)(nil),
@@ -5921,7 +5992,7 @@ func file_tetragon_tetragon_proto_init() {
(*KprobeArgument_SockaddrArg)(nil),
(*KprobeArgument_BpfProgArg)(nil),
}
- file_tetragon_tetragon_proto_msgTypes[44].OneofWrappers = []any{
+ file_tetragon_tetragon_proto_msgTypes[45].OneofWrappers = []any{
(*RuntimeHookRequest_CreateContainer)(nil),
}
type x struct{}
@@ -5930,7 +6001,7 @@ func file_tetragon_tetragon_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_tetragon_tetragon_proto_rawDesc,
NumEnums: 4,
- NumMessages: 52,
+ NumMessages: 53,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.json.go b/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.json.go
index 2532b3866a4..84e460271c2 100644
--- a/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.json.go
+++ b/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.pb.json.go
@@ -166,6 +166,18 @@ func (msg *UserRecord) UnmarshalJSON(b []byte) error {
return protojson.UnmarshalOptions{}.Unmarshal(b, msg)
}
+// MarshalJSON implements json.Marshaler
+func (msg *EnvVar) MarshalJSON() ([]byte, error) {
+ return protojson.MarshalOptions{
+ UseProtoNames: true,
+ }.Marshal(msg)
+}
+
+// UnmarshalJSON implements json.Unmarshaler
+func (msg *EnvVar) UnmarshalJSON(b []byte) error {
+ return protojson.UnmarshalOptions{}.Unmarshal(b, msg)
+}
+
// MarshalJSON implements json.Marshaler
func (msg *Process) MarshalJSON() ([]byte, error) {
return protojson.MarshalOptions{
diff --git a/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.proto b/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.proto
index 46ba80839db..9ec0791c78e 100644
--- a/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.proto
+++ b/vendor/github.com/cilium/tetragon/api/v1/tetragon/tetragon.proto
@@ -186,6 +186,12 @@ message UserRecord {
string name = 1;
}
+// Environment variable
+message EnvVar {
+ string Key = 1;
+ string Value = 2;
+}
+
message Process {
// Exec ID uniquely identifies the process over time across all the nodes in the cluster.
string exec_id = 1;
@@ -297,6 +303,8 @@ message Process {
// for example, you wish to discern whether a process was spawned using a
// tool like nsenter or kubectl exec.
google.protobuf.BoolValue in_init_tree = 20;
+ // Environment variables passed to the binary at execution.
+ repeated EnvVar environment_variables = 21;
}
message ProcessExec {