wip
This commit is contained in:
@@ -457,6 +457,7 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18=
|
golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18=
|
||||||
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
|
|||||||
+255
-216
@@ -39,7 +39,7 @@ const (
|
|||||||
SourceType_SOURCE_TYPE_PUBLIC_GIT SourceType = 8
|
SourceType_SOURCE_TYPE_PUBLIC_GIT SourceType = 8
|
||||||
SourceType_SOURCE_TYPE_GITLAB SourceType = 9
|
SourceType_SOURCE_TYPE_GITLAB SourceType = 9
|
||||||
SourceType_SOURCE_TYPE_JIRA SourceType = 10
|
SourceType_SOURCE_TYPE_JIRA SourceType = 10
|
||||||
SourceType_SOURCE_TYPE_NPM_UNAUTHD_PACKAGES SourceType = 11
|
SourceType_SOURCE_TYPE_NPM SourceType = 11
|
||||||
SourceType_SOURCE_TYPE_PYPI_UNAUTHD_PACKAGES SourceType = 12
|
SourceType_SOURCE_TYPE_PYPI_UNAUTHD_PACKAGES SourceType = 12
|
||||||
SourceType_SOURCE_TYPE_S3 SourceType = 13
|
SourceType_SOURCE_TYPE_S3 SourceType = 13
|
||||||
SourceType_SOURCE_TYPE_SLACK SourceType = 14
|
SourceType_SOURCE_TYPE_SLACK SourceType = 14
|
||||||
@@ -72,7 +72,7 @@ var (
|
|||||||
8: "SOURCE_TYPE_PUBLIC_GIT",
|
8: "SOURCE_TYPE_PUBLIC_GIT",
|
||||||
9: "SOURCE_TYPE_GITLAB",
|
9: "SOURCE_TYPE_GITLAB",
|
||||||
10: "SOURCE_TYPE_JIRA",
|
10: "SOURCE_TYPE_JIRA",
|
||||||
11: "SOURCE_TYPE_NPM_UNAUTHD_PACKAGES",
|
11: "SOURCE_TYPE_NPM",
|
||||||
12: "SOURCE_TYPE_PYPI_UNAUTHD_PACKAGES",
|
12: "SOURCE_TYPE_PYPI_UNAUTHD_PACKAGES",
|
||||||
13: "SOURCE_TYPE_S3",
|
13: "SOURCE_TYPE_S3",
|
||||||
14: "SOURCE_TYPE_SLACK",
|
14: "SOURCE_TYPE_SLACK",
|
||||||
@@ -102,7 +102,7 @@ var (
|
|||||||
"SOURCE_TYPE_PUBLIC_GIT": 8,
|
"SOURCE_TYPE_PUBLIC_GIT": 8,
|
||||||
"SOURCE_TYPE_GITLAB": 9,
|
"SOURCE_TYPE_GITLAB": 9,
|
||||||
"SOURCE_TYPE_JIRA": 10,
|
"SOURCE_TYPE_JIRA": 10,
|
||||||
"SOURCE_TYPE_NPM_UNAUTHD_PACKAGES": 11,
|
"SOURCE_TYPE_NPM": 11,
|
||||||
"SOURCE_TYPE_PYPI_UNAUTHD_PACKAGES": 12,
|
"SOURCE_TYPE_PYPI_UNAUTHD_PACKAGES": 12,
|
||||||
"SOURCE_TYPE_S3": 13,
|
"SOURCE_TYPE_S3": 13,
|
||||||
"SOURCE_TYPE_SLACK": 14,
|
"SOURCE_TYPE_SLACK": 14,
|
||||||
@@ -1490,18 +1490,22 @@ func (*JIRA_Oauth) isJIRA_Credential() {}
|
|||||||
|
|
||||||
func (*JIRA_Token) isJIRA_Credential() {}
|
func (*JIRA_Token) isJIRA_Credential() {}
|
||||||
|
|
||||||
type NPMUnauthenticatedPackage struct {
|
type NPM struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
// Types that are assignable to Credential:
|
// Types that are assignable to Credential:
|
||||||
// *NPMUnauthenticatedPackage_Unauthenticated
|
// *NPM_Unauthenticated
|
||||||
Credential isNPMUnauthenticatedPackage_Credential `protobuf_oneof:"credential"`
|
Credential isNPM_Credential `protobuf_oneof:"credential"`
|
||||||
|
Packages []string `protobuf:"bytes,2,rep,name=packages,proto3" json:"packages,omitempty"`
|
||||||
|
Maintainers []string `protobuf:"bytes,3,rep,name=maintainers,proto3" json:"maintainers,omitempty"`
|
||||||
|
NpmLockFileContents string `protobuf:"bytes,4,opt,name=npm_lock_file_contents,json=npmLockFileContents,proto3" json:"npm_lock_file_contents,omitempty"`
|
||||||
|
YarnLockFileContents string `protobuf:"bytes,5,opt,name=yarn_lock_file_contents,json=yarnLockFileContents,proto3" json:"yarn_lock_file_contents,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *NPMUnauthenticatedPackage) Reset() {
|
func (x *NPM) Reset() {
|
||||||
*x = NPMUnauthenticatedPackage{}
|
*x = NPM{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_sources_proto_msgTypes[13]
|
mi := &file_sources_proto_msgTypes[13]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
@@ -1509,13 +1513,13 @@ func (x *NPMUnauthenticatedPackage) Reset() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *NPMUnauthenticatedPackage) String() string {
|
func (x *NPM) String() string {
|
||||||
return protoimpl.X.MessageStringOf(x)
|
return protoimpl.X.MessageStringOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*NPMUnauthenticatedPackage) ProtoMessage() {}
|
func (*NPM) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *NPMUnauthenticatedPackage) ProtoReflect() protoreflect.Message {
|
func (x *NPM) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_sources_proto_msgTypes[13]
|
mi := &file_sources_proto_msgTypes[13]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
@@ -1527,47 +1531,75 @@ func (x *NPMUnauthenticatedPackage) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use NPMUnauthenticatedPackage.ProtoReflect.Descriptor instead.
|
// Deprecated: Use NPM.ProtoReflect.Descriptor instead.
|
||||||
func (*NPMUnauthenticatedPackage) Descriptor() ([]byte, []int) {
|
func (*NPM) Descriptor() ([]byte, []int) {
|
||||||
return file_sources_proto_rawDescGZIP(), []int{13}
|
return file_sources_proto_rawDescGZIP(), []int{13}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *NPMUnauthenticatedPackage) GetCredential() isNPMUnauthenticatedPackage_Credential {
|
func (m *NPM) GetCredential() isNPM_Credential {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Credential
|
return m.Credential
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *NPMUnauthenticatedPackage) GetUnauthenticated() *credentialspb.Unauthenticated {
|
func (x *NPM) GetUnauthenticated() *credentialspb.Unauthenticated {
|
||||||
if x, ok := x.GetCredential().(*NPMUnauthenticatedPackage_Unauthenticated); ok {
|
if x, ok := x.GetCredential().(*NPM_Unauthenticated); ok {
|
||||||
return x.Unauthenticated
|
return x.Unauthenticated
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type isNPMUnauthenticatedPackage_Credential interface {
|
func (x *NPM) GetPackages() []string {
|
||||||
isNPMUnauthenticatedPackage_Credential()
|
if x != nil {
|
||||||
|
return x.Packages
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type NPMUnauthenticatedPackage_Unauthenticated struct {
|
func (x *NPM) GetMaintainers() []string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Maintainers
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *NPM) GetNpmLockFileContents() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.NpmLockFileContents
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *NPM) GetYarnLockFileContents() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.YarnLockFileContents
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type isNPM_Credential interface {
|
||||||
|
isNPM_Credential()
|
||||||
|
}
|
||||||
|
|
||||||
|
type NPM_Unauthenticated struct {
|
||||||
Unauthenticated *credentialspb.Unauthenticated `protobuf:"bytes,1,opt,name=unauthenticated,proto3,oneof"`
|
Unauthenticated *credentialspb.Unauthenticated `protobuf:"bytes,1,opt,name=unauthenticated,proto3,oneof"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*NPMUnauthenticatedPackage_Unauthenticated) isNPMUnauthenticatedPackage_Credential() {}
|
func (*NPM_Unauthenticated) isNPM_Credential() {}
|
||||||
|
|
||||||
type PyPIUnauthenticatedPackage struct {
|
type PyPI struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
// Types that are assignable to Credential:
|
// Types that are assignable to Credential:
|
||||||
// *PyPIUnauthenticatedPackage_Unauthenticated
|
// *PyPI_Unauthenticated
|
||||||
Credential isPyPIUnauthenticatedPackage_Credential `protobuf_oneof:"credential"`
|
Credential isPyPI_Credential `protobuf_oneof:"credential"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *PyPIUnauthenticatedPackage) Reset() {
|
func (x *PyPI) Reset() {
|
||||||
*x = PyPIUnauthenticatedPackage{}
|
*x = PyPI{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_sources_proto_msgTypes[14]
|
mi := &file_sources_proto_msgTypes[14]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
@@ -1575,13 +1607,13 @@ func (x *PyPIUnauthenticatedPackage) Reset() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *PyPIUnauthenticatedPackage) String() string {
|
func (x *PyPI) String() string {
|
||||||
return protoimpl.X.MessageStringOf(x)
|
return protoimpl.X.MessageStringOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*PyPIUnauthenticatedPackage) ProtoMessage() {}
|
func (*PyPI) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *PyPIUnauthenticatedPackage) ProtoReflect() protoreflect.Message {
|
func (x *PyPI) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_sources_proto_msgTypes[14]
|
mi := &file_sources_proto_msgTypes[14]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
@@ -1593,34 +1625,34 @@ func (x *PyPIUnauthenticatedPackage) ProtoReflect() protoreflect.Message {
|
|||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use PyPIUnauthenticatedPackage.ProtoReflect.Descriptor instead.
|
// Deprecated: Use PyPI.ProtoReflect.Descriptor instead.
|
||||||
func (*PyPIUnauthenticatedPackage) Descriptor() ([]byte, []int) {
|
func (*PyPI) Descriptor() ([]byte, []int) {
|
||||||
return file_sources_proto_rawDescGZIP(), []int{14}
|
return file_sources_proto_rawDescGZIP(), []int{14}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *PyPIUnauthenticatedPackage) GetCredential() isPyPIUnauthenticatedPackage_Credential {
|
func (m *PyPI) GetCredential() isPyPI_Credential {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Credential
|
return m.Credential
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *PyPIUnauthenticatedPackage) GetUnauthenticated() *credentialspb.Unauthenticated {
|
func (x *PyPI) GetUnauthenticated() *credentialspb.Unauthenticated {
|
||||||
if x, ok := x.GetCredential().(*PyPIUnauthenticatedPackage_Unauthenticated); ok {
|
if x, ok := x.GetCredential().(*PyPI_Unauthenticated); ok {
|
||||||
return x.Unauthenticated
|
return x.Unauthenticated
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type isPyPIUnauthenticatedPackage_Credential interface {
|
type isPyPI_Credential interface {
|
||||||
isPyPIUnauthenticatedPackage_Credential()
|
isPyPI_Credential()
|
||||||
}
|
}
|
||||||
|
|
||||||
type PyPIUnauthenticatedPackage_Unauthenticated struct {
|
type PyPI_Unauthenticated struct {
|
||||||
Unauthenticated *credentialspb.Unauthenticated `protobuf:"bytes,1,opt,name=unauthenticated,proto3,oneof"`
|
Unauthenticated *credentialspb.Unauthenticated `protobuf:"bytes,1,opt,name=unauthenticated,proto3,oneof"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*PyPIUnauthenticatedPackage_Unauthenticated) isPyPIUnauthenticatedPackage_Credential() {}
|
func (*PyPI_Unauthenticated) isPyPI_Credential() {}
|
||||||
|
|
||||||
type S3 struct {
|
type S3 struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
@@ -2755,188 +2787,195 @@ var file_sources_proto_rawDesc = []byte{
|
|||||||
0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b,
|
0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b,
|
||||||
0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x05,
|
0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x05,
|
||||||
0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x0c,
|
0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x0c,
|
||||||
0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0x73, 0x0a, 0x19,
|
0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0x87, 0x02, 0x0a,
|
||||||
0x4e, 0x50, 0x4d, 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
|
0x03, 0x4e, 0x50, 0x4d, 0x12, 0x48, 0x0a, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
|
||||||
0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x75, 0x6e, 0x61,
|
0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
|
||||||
0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01,
|
0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x55, 0x6e, 0x61, 0x75,
|
||||||
0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73,
|
0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x75,
|
||||||
0x2e, 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
|
0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a,
|
||||||
0x48, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,
|
0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
|
||||||
0x74, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61,
|
0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61,
|
||||||
0x6c, 0x22, 0x74, 0x0a, 0x1a, 0x50, 0x79, 0x50, 0x49, 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65,
|
0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52,
|
||||||
0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12,
|
0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x16,
|
||||||
0x48, 0x0a, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
|
0x6e, 0x70, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f,
|
||||||
0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65,
|
0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6e, 0x70,
|
||||||
0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
|
0x6d, 0x4c, 0x6f, 0x63, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
|
||||||
0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68,
|
0x73, 0x12, 0x35, 0x0a, 0x17, 0x79, 0x61, 0x72, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x66,
|
||||||
0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65,
|
0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01,
|
||||||
0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xfd, 0x01, 0x0a, 0x02, 0x53, 0x33, 0x12, 0x37,
|
0x28, 0x09, 0x52, 0x14, 0x79, 0x61, 0x72, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x46, 0x69, 0x6c, 0x65,
|
||||||
0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
|
0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64,
|
||||||
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73,
|
0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0x5e, 0x0a, 0x04, 0x50, 0x79, 0x50, 0x49, 0x12, 0x48,
|
||||||
0x2e, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x00, 0x52, 0x09, 0x61, 0x63,
|
0x0a, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65,
|
||||||
0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74,
|
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e,
|
||||||
0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
|
0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69,
|
||||||
0x32, 0x1c, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x55,
|
0x63, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65,
|
||||||
0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00,
|
0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64,
|
||||||
0x52, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65,
|
0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xfd, 0x01, 0x0a, 0x02, 0x53, 0x33, 0x12, 0x37, 0x0a,
|
||||||
0x64, 0x12, 0x4c, 0x0a, 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72,
|
0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63,
|
0x0b, 0x32, 0x16, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e,
|
||||||
0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64,
|
0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x00, 0x52, 0x09, 0x61, 0x63, 0x63,
|
||||||
0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x63,
|
0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68,
|
||||||
0x6c, 0x6f, 0x75, 0x64, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12,
|
0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||||
0x18, 0x0a, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
|
0x1c, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x55, 0x6e,
|
||||||
0x52, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65,
|
0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52,
|
||||||
0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xc3, 0x01, 0x0a, 0x05, 0x53, 0x6c, 0x61, 0x63,
|
0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
|
||||||
0x6b, 0x12, 0x24, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20,
|
0x12, 0x4c, 0x0a, 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
|
||||||
0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x90, 0x01, 0x01, 0x52, 0x08, 0x65,
|
0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x72,
|
||||||
0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
|
0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x45,
|
||||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12,
|
0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6c,
|
||||||
0x32, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x6f, 0x75, 0x64, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18,
|
||||||
0x18, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x53, 0x6c,
|
0x0a, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52,
|
||||||
0x61, 0x63, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x06, 0x74, 0x6f, 0x6b,
|
0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64,
|
||||||
0x65, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18,
|
0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xc3, 0x01, 0x0a, 0x05, 0x53, 0x6c, 0x61, 0x63, 0x6b,
|
||||||
0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12,
|
0x12, 0x24, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x1e, 0x0a, 0x0a, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20,
|
0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x90, 0x01, 0x01, 0x52, 0x08, 0x65, 0x6e,
|
||||||
0x03, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42,
|
0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
|
||||||
0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0x06, 0x0a,
|
0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32,
|
||||||
0x04, 0x54, 0x65, 0x73, 0x74, 0x22, 0x31, 0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x6b, 0x69,
|
0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
|
||||||
0x74, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x53, 0x6c, 0x61,
|
||||||
0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72,
|
0x63, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65,
|
||||||
0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xdb, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x72,
|
0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03,
|
||||||
0x72, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18,
|
0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1e,
|
||||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x90, 0x01, 0x01, 0x52,
|
0x0a, 0x0a, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03,
|
||||||
0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x61, 0x73,
|
0x28, 0x09, 0x52, 0x0a, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x0c,
|
||||||
0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
|
0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0x06, 0x0a, 0x04,
|
||||||
0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x42, 0x61, 0x73, 0x69,
|
0x54, 0x65, 0x73, 0x74, 0x22, 0x31, 0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x6b, 0x69, 0x74,
|
||||||
0x63, 0x41, 0x75, 0x74, 0x68, 0x48, 0x00, 0x52, 0x09, 0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75,
|
0x65, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||||
0x74, 0x68, 0x12, 0x48, 0x0a, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69,
|
0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65,
|
||||||
0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x72,
|
0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xdb, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x72, 0x72,
|
||||||
0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68,
|
0x69, 0x74, 0x12, 0x24, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01,
|
||||||
0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x61,
|
|
||||||
0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08,
|
|
||||||
0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08,
|
|
||||||
0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64,
|
|
||||||
0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xa5, 0x01, 0x0a, 0x07, 0x4a, 0x65, 0x6e, 0x6b, 0x69,
|
|
||||||
0x6e, 0x73, 0x12, 0x24, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01,
|
|
||||||
0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x90, 0x01, 0x01, 0x52, 0x08,
|
0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x90, 0x01, 0x01, 0x52, 0x08,
|
||||||
0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x69,
|
0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x69,
|
||||||
0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63,
|
0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63,
|
||||||
0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63,
|
0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63,
|
||||||
0x41, 0x75, 0x74, 0x68, 0x48, 0x00, 0x52, 0x09, 0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74,
|
0x41, 0x75, 0x74, 0x68, 0x48, 0x00, 0x52, 0x09, 0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74,
|
||||||
0x68, 0x12, 0x2d, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
|
0x68, 0x12, 0x48, 0x0a, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63,
|
||||||
0x0b, 0x32, 0x13, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e,
|
0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x72, 0x65,
|
||||||
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
|
0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65,
|
||||||
0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xf0,
|
0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x61, 0x75,
|
||||||
0x01, 0x0a, 0x05, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70,
|
0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70,
|
||||||
0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72,
|
0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70,
|
||||||
0x03, 0x90, 0x01, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16,
|
0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65,
|
||||||
0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
|
0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xa5, 0x01, 0x0a, 0x07, 0x4a, 0x65, 0x6e, 0x6b, 0x69, 0x6e,
|
||||||
0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x46, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
|
0x73, 0x12, 0x24, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20,
|
||||||
0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
|
|
||||||
0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x69, 0x65,
|
|
||||||
0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x48, 0x00, 0x52,
|
|
||||||
0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a,
|
|
||||||
0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09,
|
|
||||||
0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x67,
|
|
||||||
0x6e, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
|
|
||||||
0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65,
|
|
||||||
0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61,
|
|
||||||
0x6d, 0x49, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61,
|
|
||||||
0x6c, 0x22, 0xc3, 0x01, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72,
|
|
||||||
0x79, 0x12, 0x24, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20,
|
|
||||||
0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x90, 0x01, 0x01, 0x52, 0x08, 0x65,
|
0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x90, 0x01, 0x01, 0x52, 0x08, 0x65,
|
||||||
0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x69, 0x63,
|
0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x69, 0x63,
|
||||||
0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x72,
|
0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x72,
|
||||||
0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41,
|
0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41,
|
||||||
0x75, 0x74, 0x68, 0x48, 0x00, 0x52, 0x09, 0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68,
|
0x75, 0x74, 0x68, 0x48, 0x00, 0x52, 0x09, 0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68,
|
||||||
0x12, 0x23, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
|
0x12, 0x2d, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
|
||||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
|
0x32, 0x13, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x48,
|
||||||
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
|
0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42,
|
||||||
0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x70,
|
0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xf0, 0x01,
|
||||||
0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65,
|
0x0a, 0x05, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f,
|
||||||
0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0x94, 0x01, 0x0a, 0x06, 0x53, 0x79, 0x73, 0x6c,
|
0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03,
|
||||||
0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01,
|
0x90, 0x01, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x24,
|
0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05,
|
||||||
0x0a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
|
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x46, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
|
||||||
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64,
|
0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63,
|
||||||
0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x18,
|
0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e,
|
||||||
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x16,
|
0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0d,
|
||||||
0x0a, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
|
0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a,
|
||||||
0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
|
0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52,
|
||||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xd6,
|
0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x67, 0x6e,
|
||||||
0x01, 0x0a, 0x15, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x6f,
|
0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x69,
|
||||||
0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x0f, 0x75, 0x6e, 0x61, 0x75,
|
0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61,
|
||||||
0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x6d, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d,
|
||||||
0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e,
|
0x49, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c,
|
||||||
0x55, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x48,
|
0x22, 0xc3, 0x01, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79,
|
||||||
0x00, 0x52, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
|
0x12, 0x24, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01,
|
0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x90, 0x01, 0x01, 0x52, 0x08, 0x65, 0x6e,
|
||||||
0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61,
|
0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f,
|
||||||
0x78, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d,
|
0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x72, 0x65,
|
||||||
0x61, 0x78, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65,
|
0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75,
|
||||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
0x74, 0x68, 0x48, 0x00, 0x52, 0x09, 0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x12,
|
||||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
|
0x23, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
|
||||||
0x6d, 0x70, 0x52, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65,
|
0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54,
|
||||||
0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0x51, 0x0a, 0x0d, 0x53, 0x6c, 0x61, 0x63, 0x6b,
|
0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
|
||||||
0x52, 0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65,
|
0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f,
|
||||||
0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65,
|
0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64,
|
||||||
0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x6b, 0x65,
|
0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0x94, 0x01, 0x0a, 0x06, 0x53, 0x79, 0x73, 0x6c, 0x6f,
|
||||||
0x6e, 0x73, 0x48, 0x00, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x42, 0x0c, 0x0a, 0x0a,
|
0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20,
|
||||||
0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x2a, 0x99, 0x06, 0x0a, 0x0a, 0x53,
|
0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x24, 0x0a,
|
||||||
0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x4f, 0x55,
|
0x0d, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02,
|
||||||
0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x53,
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72,
|
||||||
0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x4f, 0x55, 0x52,
|
0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x18, 0x03,
|
||||||
0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x49, 0x54, 0x42, 0x55, 0x43, 0x4b, 0x45,
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x16, 0x0a,
|
||||||
0x54, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59,
|
0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74,
|
||||||
0x50, 0x45, 0x5f, 0x43, 0x49, 0x52, 0x43, 0x4c, 0x45, 0x43, 0x49, 0x10, 0x02, 0x12, 0x1a, 0x0a,
|
0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18,
|
||||||
0x16, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4e,
|
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xd6, 0x01,
|
||||||
0x46, 0x4c, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x4f, 0x55,
|
0x0a, 0x15, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e,
|
||||||
0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x43, 0x4b, 0x45, 0x52, 0x48,
|
0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74,
|
||||||
0x55, 0x42, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x53, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x53,
|
0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
||||||
0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x43, 0x52, 0x10, 0x05,
|
0x32, 0x1c, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x55,
|
||||||
0x12, 0x13, 0x0a, 0x0f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
|
0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00,
|
||||||
0x47, 0x43, 0x53, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f,
|
0x52, 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65,
|
||||||
0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x10, 0x07, 0x12, 0x1a, 0x0a,
|
0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
0x16, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42,
|
0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78,
|
||||||
0x4c, 0x49, 0x43, 0x5f, 0x47, 0x49, 0x54, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f, 0x55,
|
0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61,
|
||||||
0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x49, 0x54, 0x4c, 0x41, 0x42, 0x10,
|
0x78, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x18,
|
||||||
0x09, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45,
|
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||||
0x5f, 0x4a, 0x49, 0x52, 0x41, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x4f, 0x55, 0x52, 0x43,
|
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
|
||||||
0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x50, 0x4d, 0x5f, 0x55, 0x4e, 0x41, 0x55, 0x54,
|
0x70, 0x52, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64,
|
||||||
0x48, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x53, 0x10, 0x0b, 0x12, 0x25, 0x0a,
|
0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0x51, 0x0a, 0x0d, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x52,
|
||||||
0x21, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x59, 0x50,
|
0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
|
||||||
0x49, 0x5f, 0x55, 0x4e, 0x41, 0x55, 0x54, 0x48, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47,
|
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e,
|
||||||
0x45, 0x53, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54,
|
0x74, 0x69, 0x61, 0x6c, 0x73, 0x2e, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
|
||||||
0x59, 0x50, 0x45, 0x5f, 0x53, 0x33, 0x10, 0x0d, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x4f, 0x55, 0x52,
|
0x73, 0x48, 0x00, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x63,
|
||||||
0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4c, 0x41, 0x43, 0x4b, 0x10, 0x0e, 0x12,
|
0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x2a, 0x88, 0x06, 0x0a, 0x0a, 0x53, 0x6f,
|
||||||
0x1a, 0x0a, 0x16, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46,
|
0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x4f, 0x55, 0x52,
|
||||||
0x49, 0x4c, 0x45, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x53,
|
0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x54,
|
||||||
0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x49, 0x54, 0x10, 0x10,
|
0x4f, 0x52, 0x41, 0x47, 0x45, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x4f, 0x55, 0x52, 0x43,
|
||||||
|
0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x49, 0x54, 0x42, 0x55, 0x43, 0x4b, 0x45, 0x54,
|
||||||
|
0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50,
|
||||||
|
0x45, 0x5f, 0x43, 0x49, 0x52, 0x43, 0x4c, 0x45, 0x43, 0x49, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16,
|
||||||
|
0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46,
|
||||||
|
0x4c, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x4f, 0x55, 0x52,
|
||||||
|
0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x43, 0x4b, 0x45, 0x52, 0x48, 0x55,
|
||||||
|
0x42, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x53, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x4f,
|
||||||
|
0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x43, 0x52, 0x10, 0x05, 0x12,
|
||||||
|
0x13, 0x0a, 0x0f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47,
|
||||||
|
0x43, 0x53, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54,
|
||||||
|
0x59, 0x50, 0x45, 0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16,
|
||||||
|
0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c,
|
||||||
|
0x49, 0x43, 0x5f, 0x47, 0x49, 0x54, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f, 0x55, 0x52,
|
||||||
|
0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x49, 0x54, 0x4c, 0x41, 0x42, 0x10, 0x09,
|
||||||
0x12, 0x14, 0x0a, 0x10, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
|
0x12, 0x14, 0x0a, 0x10, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
|
||||||
0x54, 0x45, 0x53, 0x54, 0x10, 0x11, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
|
0x4a, 0x49, 0x52, 0x41, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
|
||||||
0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x33, 0x5f, 0x55, 0x4e, 0x41, 0x55, 0x54, 0x48, 0x45,
|
0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x50, 0x4d, 0x10, 0x0b, 0x12, 0x25, 0x0a, 0x21, 0x53,
|
||||||
0x44, 0x10, 0x12, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59,
|
0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x59, 0x50, 0x49, 0x5f,
|
||||||
0x50, 0x45, 0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x55, 0x4e, 0x41, 0x55, 0x54, 0x48,
|
0x55, 0x4e, 0x41, 0x55, 0x54, 0x48, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x53,
|
||||||
0x45, 0x4e, 0x54, 0x49, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x4f, 0x52, 0x47, 0x10, 0x13, 0x12,
|
0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50,
|
||||||
0x19, 0x0a, 0x15, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42,
|
0x45, 0x5f, 0x53, 0x33, 0x10, 0x0d, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
|
||||||
0x55, 0x49, 0x4c, 0x44, 0x4b, 0x49, 0x54, 0x45, 0x10, 0x14, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f,
|
0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4c, 0x41, 0x43, 0x4b, 0x10, 0x0e, 0x12, 0x1a, 0x0a,
|
||||||
0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x52, 0x52, 0x49, 0x54,
|
0x16, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4c,
|
||||||
0x10, 0x15, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50,
|
0x45, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x4f, 0x55,
|
||||||
0x45, 0x5f, 0x4a, 0x45, 0x4e, 0x4b, 0x49, 0x4e, 0x53, 0x10, 0x16, 0x12, 0x15, 0x0a, 0x11, 0x53,
|
0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x49, 0x54, 0x10, 0x10, 0x12, 0x14,
|
||||||
0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x53,
|
0x0a, 0x10, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45,
|
||||||
0x10, 0x17, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50,
|
0x53, 0x54, 0x10, 0x11, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54,
|
||||||
0x45, 0x5f, 0x4a, 0x46, 0x52, 0x4f, 0x47, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54,
|
0x59, 0x50, 0x45, 0x5f, 0x53, 0x33, 0x5f, 0x55, 0x4e, 0x41, 0x55, 0x54, 0x48, 0x45, 0x44, 0x10,
|
||||||
0x4f, 0x52, 0x59, 0x10, 0x18, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f,
|
0x12, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45,
|
||||||
0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x59, 0x53, 0x4c, 0x4f, 0x47, 0x10, 0x19, 0x12, 0x27, 0x0a,
|
0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x55, 0x4e, 0x41, 0x55, 0x54, 0x48, 0x45, 0x4e,
|
||||||
0x23, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42,
|
0x54, 0x49, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x4f, 0x52, 0x47, 0x10, 0x13, 0x12, 0x19, 0x0a,
|
||||||
0x4c, 0x49, 0x43, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f,
|
0x15, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x55, 0x49,
|
||||||
0x52, 0x49, 0x4e, 0x47, 0x10, 0x1a, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45,
|
0x4c, 0x44, 0x4b, 0x49, 0x54, 0x45, 0x10, 0x14, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f, 0x55, 0x52,
|
||||||
0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4c, 0x41, 0x43, 0x4b, 0x5f, 0x52, 0x45, 0x41, 0x4c,
|
0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x52, 0x52, 0x49, 0x54, 0x10, 0x15,
|
||||||
0x54, 0x49, 0x4d, 0x45, 0x10, 0x1b, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
|
0x12, 0x17, 0x0a, 0x13, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
|
||||||
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x73, 0x65, 0x63, 0x75,
|
0x4a, 0x45, 0x4e, 0x4b, 0x49, 0x4e, 0x53, 0x10, 0x16, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x4f, 0x55,
|
||||||
0x72, 0x69, 0x74, 0x79, 0x2f, 0x74, 0x72, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x68, 0x6f, 0x67, 0x2f,
|
0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x53, 0x10, 0x17,
|
||||||
0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
|
0x12, 0x21, 0x0a, 0x1d, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
|
||||||
0x73, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x4a, 0x46, 0x52, 0x4f, 0x47, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x4f, 0x52,
|
||||||
|
0x59, 0x10, 0x18, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59,
|
||||||
|
0x50, 0x45, 0x5f, 0x53, 0x59, 0x53, 0x4c, 0x4f, 0x47, 0x10, 0x19, 0x12, 0x27, 0x0a, 0x23, 0x53,
|
||||||
|
0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49,
|
||||||
|
0x43, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x49,
|
||||||
|
0x4e, 0x47, 0x10, 0x1a, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54,
|
||||||
|
0x59, 0x50, 0x45, 0x5f, 0x53, 0x4c, 0x41, 0x43, 0x4b, 0x5f, 0x52, 0x45, 0x41, 0x4c, 0x54, 0x49,
|
||||||
|
0x4d, 0x45, 0x10, 0x1b, 0x42, 0x3b, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
|
||||||
|
0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69,
|
||||||
|
0x74, 0x79, 0x2f, 0x74, 0x72, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x68, 0x6f, 0x67, 0x2f, 0x76, 0x33,
|
||||||
|
0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x70,
|
||||||
|
0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -2969,8 +3008,8 @@ var file_sources_proto_goTypes = []interface{}{
|
|||||||
(*GitLab)(nil), // 12: sources.GitLab
|
(*GitLab)(nil), // 12: sources.GitLab
|
||||||
(*GitHub)(nil), // 13: sources.GitHub
|
(*GitHub)(nil), // 13: sources.GitHub
|
||||||
(*JIRA)(nil), // 14: sources.JIRA
|
(*JIRA)(nil), // 14: sources.JIRA
|
||||||
(*NPMUnauthenticatedPackage)(nil), // 15: sources.NPMUnauthenticatedPackage
|
(*NPM)(nil), // 15: sources.NPM
|
||||||
(*PyPIUnauthenticatedPackage)(nil), // 16: sources.PyPIUnauthenticatedPackage
|
(*PyPI)(nil), // 16: sources.PyPI
|
||||||
(*S3)(nil), // 17: sources.S3
|
(*S3)(nil), // 17: sources.S3
|
||||||
(*Slack)(nil), // 18: sources.Slack
|
(*Slack)(nil), // 18: sources.Slack
|
||||||
(*Test)(nil), // 19: sources.Test
|
(*Test)(nil), // 19: sources.Test
|
||||||
@@ -3018,8 +3057,8 @@ var file_sources_proto_depIdxs = []int32{
|
|||||||
30, // 18: sources.JIRA.basic_auth:type_name -> credentials.BasicAuth
|
30, // 18: sources.JIRA.basic_auth:type_name -> credentials.BasicAuth
|
||||||
31, // 19: sources.JIRA.unauthenticated:type_name -> credentials.Unauthenticated
|
31, // 19: sources.JIRA.unauthenticated:type_name -> credentials.Unauthenticated
|
||||||
32, // 20: sources.JIRA.oauth:type_name -> credentials.Oauth2
|
32, // 20: sources.JIRA.oauth:type_name -> credentials.Oauth2
|
||||||
31, // 21: sources.NPMUnauthenticatedPackage.unauthenticated:type_name -> credentials.Unauthenticated
|
31, // 21: sources.NPM.unauthenticated:type_name -> credentials.Unauthenticated
|
||||||
31, // 22: sources.PyPIUnauthenticatedPackage.unauthenticated:type_name -> credentials.Unauthenticated
|
31, // 22: sources.PyPI.unauthenticated:type_name -> credentials.Unauthenticated
|
||||||
33, // 23: sources.S3.access_key:type_name -> credentials.KeySecret
|
33, // 23: sources.S3.access_key:type_name -> credentials.KeySecret
|
||||||
31, // 24: sources.S3.unauthenticated:type_name -> credentials.Unauthenticated
|
31, // 24: sources.S3.unauthenticated:type_name -> credentials.Unauthenticated
|
||||||
36, // 25: sources.S3.cloud_environment:type_name -> credentials.CloudEnvironment
|
36, // 25: sources.S3.cloud_environment:type_name -> credentials.CloudEnvironment
|
||||||
@@ -3203,7 +3242,7 @@ func file_sources_proto_init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_sources_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
|
file_sources_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*NPMUnauthenticatedPackage); i {
|
switch v := v.(*NPM); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
case 1:
|
case 1:
|
||||||
@@ -3215,7 +3254,7 @@ func file_sources_proto_init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_sources_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
|
file_sources_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*PyPIUnauthenticatedPackage); i {
|
switch v := v.(*PyPI); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
case 1:
|
case 1:
|
||||||
@@ -3409,10 +3448,10 @@ func file_sources_proto_init() {
|
|||||||
(*JIRA_Token)(nil),
|
(*JIRA_Token)(nil),
|
||||||
}
|
}
|
||||||
file_sources_proto_msgTypes[13].OneofWrappers = []interface{}{
|
file_sources_proto_msgTypes[13].OneofWrappers = []interface{}{
|
||||||
(*NPMUnauthenticatedPackage_Unauthenticated)(nil),
|
(*NPM_Unauthenticated)(nil),
|
||||||
}
|
}
|
||||||
file_sources_proto_msgTypes[14].OneofWrappers = []interface{}{
|
file_sources_proto_msgTypes[14].OneofWrappers = []interface{}{
|
||||||
(*PyPIUnauthenticatedPackage_Unauthenticated)(nil),
|
(*PyPI_Unauthenticated)(nil),
|
||||||
}
|
}
|
||||||
file_sources_proto_msgTypes[15].OneofWrappers = []interface{}{
|
file_sources_proto_msgTypes[15].OneofWrappers = []interface{}{
|
||||||
(*S3_AccessKey)(nil),
|
(*S3_AccessKey)(nil),
|
||||||
|
|||||||
@@ -2093,37 +2093,40 @@ var _ interface {
|
|||||||
ErrorName() string
|
ErrorName() string
|
||||||
} = JIRAValidationError{}
|
} = JIRAValidationError{}
|
||||||
|
|
||||||
// Validate checks the field values on NPMUnauthenticatedPackage with the rules
|
// Validate checks the field values on NPM with the rules defined in the proto
|
||||||
// defined in the proto definition for this message. If any rules are
|
// definition for this message. If any rules are violated, the first error
|
||||||
// violated, the first error encountered is returned, or nil if there are no violations.
|
// encountered is returned, or nil if there are no violations.
|
||||||
func (m *NPMUnauthenticatedPackage) Validate() error {
|
func (m *NPM) Validate() error {
|
||||||
return m.validate(false)
|
return m.validate(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ValidateAll checks the field values on NPMUnauthenticatedPackage with the
|
// ValidateAll checks the field values on NPM with the rules defined in the
|
||||||
// rules defined in the proto definition for this message. If any rules are
|
// proto definition for this message. If any rules are violated, the result is
|
||||||
// violated, the result is a list of violation errors wrapped in
|
// a list of violation errors wrapped in NPMMultiError, or nil if none found.
|
||||||
// NPMUnauthenticatedPackageMultiError, or nil if none found.
|
func (m *NPM) ValidateAll() error {
|
||||||
func (m *NPMUnauthenticatedPackage) ValidateAll() error {
|
|
||||||
return m.validate(true)
|
return m.validate(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *NPMUnauthenticatedPackage) validate(all bool) error {
|
func (m *NPM) validate(all bool) error {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var errors []error
|
var errors []error
|
||||||
|
|
||||||
|
// no validation rules for NpmLockFileContents
|
||||||
|
|
||||||
|
// no validation rules for YarnLockFileContents
|
||||||
|
|
||||||
switch m.Credential.(type) {
|
switch m.Credential.(type) {
|
||||||
|
|
||||||
case *NPMUnauthenticatedPackage_Unauthenticated:
|
case *NPM_Unauthenticated:
|
||||||
|
|
||||||
if all {
|
if all {
|
||||||
switch v := interface{}(m.GetUnauthenticated()).(type) {
|
switch v := interface{}(m.GetUnauthenticated()).(type) {
|
||||||
case interface{ ValidateAll() error }:
|
case interface{ ValidateAll() error }:
|
||||||
if err := v.ValidateAll(); err != nil {
|
if err := v.ValidateAll(); err != nil {
|
||||||
errors = append(errors, NPMUnauthenticatedPackageValidationError{
|
errors = append(errors, NPMValidationError{
|
||||||
field: "Unauthenticated",
|
field: "Unauthenticated",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
@@ -2131,7 +2134,7 @@ func (m *NPMUnauthenticatedPackage) validate(all bool) error {
|
|||||||
}
|
}
|
||||||
case interface{ Validate() error }:
|
case interface{ Validate() error }:
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
errors = append(errors, NPMUnauthenticatedPackageValidationError{
|
errors = append(errors, NPMValidationError{
|
||||||
field: "Unauthenticated",
|
field: "Unauthenticated",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
@@ -2140,7 +2143,7 @@ func (m *NPMUnauthenticatedPackage) validate(all bool) error {
|
|||||||
}
|
}
|
||||||
} else if v, ok := interface{}(m.GetUnauthenticated()).(interface{ Validate() error }); ok {
|
} else if v, ok := interface{}(m.GetUnauthenticated()).(interface{ Validate() error }); ok {
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
return NPMUnauthenticatedPackageValidationError{
|
return NPMValidationError{
|
||||||
field: "Unauthenticated",
|
field: "Unauthenticated",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
@@ -2151,32 +2154,31 @@ func (m *NPMUnauthenticatedPackage) validate(all bool) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(errors) > 0 {
|
if len(errors) > 0 {
|
||||||
return NPMUnauthenticatedPackageMultiError(errors)
|
return NPMMultiError(errors)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// NPMUnauthenticatedPackageMultiError is an error wrapping multiple validation
|
// NPMMultiError is an error wrapping multiple validation errors returned by
|
||||||
// errors returned by NPMUnauthenticatedPackage.ValidateAll() if the
|
// NPM.ValidateAll() if the designated constraints aren't met.
|
||||||
|
type NPMMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m NPMMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m NPMMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// NPMValidationError is the validation error returned by NPM.Validate if the
|
||||||
// designated constraints aren't met.
|
// designated constraints aren't met.
|
||||||
type NPMUnauthenticatedPackageMultiError []error
|
type NPMValidationError struct {
|
||||||
|
|
||||||
// Error returns a concatenation of all the error messages it wraps.
|
|
||||||
func (m NPMUnauthenticatedPackageMultiError) Error() string {
|
|
||||||
var msgs []string
|
|
||||||
for _, err := range m {
|
|
||||||
msgs = append(msgs, err.Error())
|
|
||||||
}
|
|
||||||
return strings.Join(msgs, "; ")
|
|
||||||
}
|
|
||||||
|
|
||||||
// AllErrors returns a list of validation violation errors.
|
|
||||||
func (m NPMUnauthenticatedPackageMultiError) AllErrors() []error { return m }
|
|
||||||
|
|
||||||
// NPMUnauthenticatedPackageValidationError is the validation error returned by
|
|
||||||
// NPMUnauthenticatedPackage.Validate if the designated constraints aren't met.
|
|
||||||
type NPMUnauthenticatedPackageValidationError struct {
|
|
||||||
field string
|
field string
|
||||||
reason string
|
reason string
|
||||||
cause error
|
cause error
|
||||||
@@ -2184,24 +2186,22 @@ type NPMUnauthenticatedPackageValidationError struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Field function returns field value.
|
// Field function returns field value.
|
||||||
func (e NPMUnauthenticatedPackageValidationError) Field() string { return e.field }
|
func (e NPMValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
// Reason function returns reason value.
|
// Reason function returns reason value.
|
||||||
func (e NPMUnauthenticatedPackageValidationError) Reason() string { return e.reason }
|
func (e NPMValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
// Cause function returns cause value.
|
// Cause function returns cause value.
|
||||||
func (e NPMUnauthenticatedPackageValidationError) Cause() error { return e.cause }
|
func (e NPMValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
// Key function returns key value.
|
// Key function returns key value.
|
||||||
func (e NPMUnauthenticatedPackageValidationError) Key() bool { return e.key }
|
func (e NPMValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
// ErrorName returns error name.
|
// ErrorName returns error name.
|
||||||
func (e NPMUnauthenticatedPackageValidationError) ErrorName() string {
|
func (e NPMValidationError) ErrorName() string { return "NPMValidationError" }
|
||||||
return "NPMUnauthenticatedPackageValidationError"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Error satisfies the builtin error interface
|
// Error satisfies the builtin error interface
|
||||||
func (e NPMUnauthenticatedPackageValidationError) Error() string {
|
func (e NPMValidationError) Error() string {
|
||||||
cause := ""
|
cause := ""
|
||||||
if e.cause != nil {
|
if e.cause != nil {
|
||||||
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
@@ -2213,14 +2213,14 @@ func (e NPMUnauthenticatedPackageValidationError) Error() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Sprintf(
|
return fmt.Sprintf(
|
||||||
"invalid %sNPMUnauthenticatedPackage.%s: %s%s",
|
"invalid %sNPM.%s: %s%s",
|
||||||
key,
|
key,
|
||||||
e.field,
|
e.field,
|
||||||
e.reason,
|
e.reason,
|
||||||
cause)
|
cause)
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ error = NPMUnauthenticatedPackageValidationError{}
|
var _ error = NPMValidationError{}
|
||||||
|
|
||||||
var _ interface {
|
var _ interface {
|
||||||
Field() string
|
Field() string
|
||||||
@@ -2228,24 +2228,23 @@ var _ interface {
|
|||||||
Key() bool
|
Key() bool
|
||||||
Cause() error
|
Cause() error
|
||||||
ErrorName() string
|
ErrorName() string
|
||||||
} = NPMUnauthenticatedPackageValidationError{}
|
} = NPMValidationError{}
|
||||||
|
|
||||||
// Validate checks the field values on PyPIUnauthenticatedPackage with the
|
// Validate checks the field values on PyPI with the rules defined in the proto
|
||||||
// rules defined in the proto definition for this message. If any rules are
|
// definition for this message. If any rules are violated, the first error
|
||||||
// violated, the first error encountered is returned, or nil if there are no violations.
|
// encountered is returned, or nil if there are no violations.
|
||||||
func (m *PyPIUnauthenticatedPackage) Validate() error {
|
func (m *PyPI) Validate() error {
|
||||||
return m.validate(false)
|
return m.validate(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ValidateAll checks the field values on PyPIUnauthenticatedPackage with the
|
// ValidateAll checks the field values on PyPI with the rules defined in the
|
||||||
// rules defined in the proto definition for this message. If any rules are
|
// proto definition for this message. If any rules are violated, the result is
|
||||||
// violated, the result is a list of violation errors wrapped in
|
// a list of violation errors wrapped in PyPIMultiError, or nil if none found.
|
||||||
// PyPIUnauthenticatedPackageMultiError, or nil if none found.
|
func (m *PyPI) ValidateAll() error {
|
||||||
func (m *PyPIUnauthenticatedPackage) ValidateAll() error {
|
|
||||||
return m.validate(true)
|
return m.validate(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *PyPIUnauthenticatedPackage) validate(all bool) error {
|
func (m *PyPI) validate(all bool) error {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -2254,13 +2253,13 @@ func (m *PyPIUnauthenticatedPackage) validate(all bool) error {
|
|||||||
|
|
||||||
switch m.Credential.(type) {
|
switch m.Credential.(type) {
|
||||||
|
|
||||||
case *PyPIUnauthenticatedPackage_Unauthenticated:
|
case *PyPI_Unauthenticated:
|
||||||
|
|
||||||
if all {
|
if all {
|
||||||
switch v := interface{}(m.GetUnauthenticated()).(type) {
|
switch v := interface{}(m.GetUnauthenticated()).(type) {
|
||||||
case interface{ ValidateAll() error }:
|
case interface{ ValidateAll() error }:
|
||||||
if err := v.ValidateAll(); err != nil {
|
if err := v.ValidateAll(); err != nil {
|
||||||
errors = append(errors, PyPIUnauthenticatedPackageValidationError{
|
errors = append(errors, PyPIValidationError{
|
||||||
field: "Unauthenticated",
|
field: "Unauthenticated",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
@@ -2268,7 +2267,7 @@ func (m *PyPIUnauthenticatedPackage) validate(all bool) error {
|
|||||||
}
|
}
|
||||||
case interface{ Validate() error }:
|
case interface{ Validate() error }:
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
errors = append(errors, PyPIUnauthenticatedPackageValidationError{
|
errors = append(errors, PyPIValidationError{
|
||||||
field: "Unauthenticated",
|
field: "Unauthenticated",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
@@ -2277,7 +2276,7 @@ func (m *PyPIUnauthenticatedPackage) validate(all bool) error {
|
|||||||
}
|
}
|
||||||
} else if v, ok := interface{}(m.GetUnauthenticated()).(interface{ Validate() error }); ok {
|
} else if v, ok := interface{}(m.GetUnauthenticated()).(interface{ Validate() error }); ok {
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
return PyPIUnauthenticatedPackageValidationError{
|
return PyPIValidationError{
|
||||||
field: "Unauthenticated",
|
field: "Unauthenticated",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
@@ -2288,19 +2287,18 @@ func (m *PyPIUnauthenticatedPackage) validate(all bool) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(errors) > 0 {
|
if len(errors) > 0 {
|
||||||
return PyPIUnauthenticatedPackageMultiError(errors)
|
return PyPIMultiError(errors)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// PyPIUnauthenticatedPackageMultiError is an error wrapping multiple
|
// PyPIMultiError is an error wrapping multiple validation errors returned by
|
||||||
// validation errors returned by PyPIUnauthenticatedPackage.ValidateAll() if
|
// PyPI.ValidateAll() if the designated constraints aren't met.
|
||||||
// the designated constraints aren't met.
|
type PyPIMultiError []error
|
||||||
type PyPIUnauthenticatedPackageMultiError []error
|
|
||||||
|
|
||||||
// Error returns a concatenation of all the error messages it wraps.
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
func (m PyPIUnauthenticatedPackageMultiError) Error() string {
|
func (m PyPIMultiError) Error() string {
|
||||||
var msgs []string
|
var msgs []string
|
||||||
for _, err := range m {
|
for _, err := range m {
|
||||||
msgs = append(msgs, err.Error())
|
msgs = append(msgs, err.Error())
|
||||||
@@ -2309,11 +2307,11 @@ func (m PyPIUnauthenticatedPackageMultiError) Error() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// AllErrors returns a list of validation violation errors.
|
// AllErrors returns a list of validation violation errors.
|
||||||
func (m PyPIUnauthenticatedPackageMultiError) AllErrors() []error { return m }
|
func (m PyPIMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
// PyPIUnauthenticatedPackageValidationError is the validation error returned
|
// PyPIValidationError is the validation error returned by PyPI.Validate if the
|
||||||
// by PyPIUnauthenticatedPackage.Validate if the designated constraints aren't met.
|
// designated constraints aren't met.
|
||||||
type PyPIUnauthenticatedPackageValidationError struct {
|
type PyPIValidationError struct {
|
||||||
field string
|
field string
|
||||||
reason string
|
reason string
|
||||||
cause error
|
cause error
|
||||||
@@ -2321,24 +2319,22 @@ type PyPIUnauthenticatedPackageValidationError struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Field function returns field value.
|
// Field function returns field value.
|
||||||
func (e PyPIUnauthenticatedPackageValidationError) Field() string { return e.field }
|
func (e PyPIValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
// Reason function returns reason value.
|
// Reason function returns reason value.
|
||||||
func (e PyPIUnauthenticatedPackageValidationError) Reason() string { return e.reason }
|
func (e PyPIValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
// Cause function returns cause value.
|
// Cause function returns cause value.
|
||||||
func (e PyPIUnauthenticatedPackageValidationError) Cause() error { return e.cause }
|
func (e PyPIValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
// Key function returns key value.
|
// Key function returns key value.
|
||||||
func (e PyPIUnauthenticatedPackageValidationError) Key() bool { return e.key }
|
func (e PyPIValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
// ErrorName returns error name.
|
// ErrorName returns error name.
|
||||||
func (e PyPIUnauthenticatedPackageValidationError) ErrorName() string {
|
func (e PyPIValidationError) ErrorName() string { return "PyPIValidationError" }
|
||||||
return "PyPIUnauthenticatedPackageValidationError"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Error satisfies the builtin error interface
|
// Error satisfies the builtin error interface
|
||||||
func (e PyPIUnauthenticatedPackageValidationError) Error() string {
|
func (e PyPIValidationError) Error() string {
|
||||||
cause := ""
|
cause := ""
|
||||||
if e.cause != nil {
|
if e.cause != nil {
|
||||||
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
@@ -2350,14 +2346,14 @@ func (e PyPIUnauthenticatedPackageValidationError) Error() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Sprintf(
|
return fmt.Sprintf(
|
||||||
"invalid %sPyPIUnauthenticatedPackage.%s: %s%s",
|
"invalid %sPyPI.%s: %s%s",
|
||||||
key,
|
key,
|
||||||
e.field,
|
e.field,
|
||||||
e.reason,
|
e.reason,
|
||||||
cause)
|
cause)
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ error = PyPIUnauthenticatedPackageValidationError{}
|
var _ error = PyPIValidationError{}
|
||||||
|
|
||||||
var _ interface {
|
var _ interface {
|
||||||
Field() string
|
Field() string
|
||||||
@@ -2365,7 +2361,7 @@ var _ interface {
|
|||||||
Key() bool
|
Key() bool
|
||||||
Cause() error
|
Cause() error
|
||||||
ErrorName() string
|
ErrorName() string
|
||||||
} = PyPIUnauthenticatedPackageValidationError{}
|
} = PyPIValidationError{}
|
||||||
|
|
||||||
// Validate checks the field values on S3 with the rules defined in the proto
|
// Validate checks the field values on S3 with the rules defined in the proto
|
||||||
// definition for this message. If any rules are violated, the first error
|
// definition for this message. If any rules are violated, the first error
|
||||||
|
|||||||
@@ -0,0 +1,114 @@
|
|||||||
|
package npm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/go-errors/errors"
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
|
"google.golang.org/protobuf/types/known/anypb"
|
||||||
|
|
||||||
|
"github.com/trufflesecurity/trufflehog/v3/pkg/common"
|
||||||
|
"github.com/trufflesecurity/trufflehog/v3/pkg/context"
|
||||||
|
"github.com/trufflesecurity/trufflehog/v3/pkg/pb/sourcespb"
|
||||||
|
"github.com/trufflesecurity/trufflehog/v3/pkg/sources"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Source struct {
|
||||||
|
name string
|
||||||
|
sourceId int64
|
||||||
|
jobId int64
|
||||||
|
verify bool
|
||||||
|
sources.Progress
|
||||||
|
client *http.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure the Source satisfies the interface at compile time
|
||||||
|
var _ sources.Source = (*Source)(nil)
|
||||||
|
|
||||||
|
// Type returns the type of source.
|
||||||
|
// It is used for matching source types in configuration and job input.
|
||||||
|
func (s *Source) Type() sourcespb.SourceType {
|
||||||
|
return sourcespb.SourceType_SOURCE_TYPE_NPM
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Source) SourceID() int64 {
|
||||||
|
return s.sourceId
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Source) JobID() int64 {
|
||||||
|
return s.jobId
|
||||||
|
}
|
||||||
|
|
||||||
|
// Init returns an initialized Filesystem source.
|
||||||
|
func (s *Source) Init(aCtx context.Context, name string, jobId, sourceId int64, verify bool, connection *anypb.Any, _ int) error {
|
||||||
|
s.name = name
|
||||||
|
s.sourceId = sourceId
|
||||||
|
s.jobId = jobId
|
||||||
|
s.verify = verify
|
||||||
|
s.client = common.RetryableHttpClientTimeout(3)
|
||||||
|
|
||||||
|
var conn sourcespb.NPM
|
||||||
|
if err := anypb.UnmarshalTo(connection, &conn, proto.UnmarshalOptions{}); err != nil {
|
||||||
|
return errors.WrapPrefix(err, "error unmarshalling connection", 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Chunks emits chunks of bytes over a channel.
|
||||||
|
func (s *Source) Chunks(ctx context.Context, chunksChan chan *sources.Chunk) error {
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Source) getPackage(ctx context.Context, packageName string) (*pkg, error) {
|
||||||
|
reqURL := fmt.Sprintf("https://registry.npmjs.org/%s", packageName)
|
||||||
|
req, err := http.NewRequest("GET", reqURL, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
req.Header.Set("Accept", "application/json")
|
||||||
|
res, err := s.client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer res.Body.Close()
|
||||||
|
|
||||||
|
if res.StatusCode > 299 || res.StatusCode < 200 {
|
||||||
|
return nil, fmt.Errorf("error getting package: %s", res.Status)
|
||||||
|
}
|
||||||
|
|
||||||
|
var packageRes *pkg
|
||||||
|
if err := json.NewDecoder(res.Body).Decode(&packageRes); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return packageRes, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Source) getPackagesByMaintainer(ctx context.Context, maintainerName string) (*maintainerRes, error) {
|
||||||
|
reqURL := fmt.Sprintf("https://registry.npmjs.org/-/v1/search?text=maintainer:%s&from=0&size=1000", maintainerName)
|
||||||
|
req, err := http.NewRequest("GET", reqURL, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
req.Header.Set("Accept", "application/json")
|
||||||
|
res, err := s.client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer res.Body.Close()
|
||||||
|
|
||||||
|
if res.StatusCode > 299 || res.StatusCode < 200 {
|
||||||
|
return nil, fmt.Errorf("error getting package: %s", res.Status)
|
||||||
|
}
|
||||||
|
|
||||||
|
var maintRes *maintainerRes
|
||||||
|
if err := json.NewDecoder(res.Body).Decode(&maintRes); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return maintRes, nil
|
||||||
|
}
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
package npm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
|
"github.com/trufflesecurity/trufflehog/v3/pkg/common"
|
||||||
|
"github.com/trufflesecurity/trufflehog/v3/pkg/context"
|
||||||
|
)
|
||||||
|
|
||||||
|
// func TestSource_Scan(t *testing.T) {
|
||||||
|
// ctx, cancel := context.WithTimeout(context.Background(), time.Second*3)
|
||||||
|
// defer cancel()
|
||||||
|
|
||||||
|
// type init struct {
|
||||||
|
// name string
|
||||||
|
// verify bool
|
||||||
|
// connection *sourcespb.NPM
|
||||||
|
// }
|
||||||
|
// tests := []struct {
|
||||||
|
// name string
|
||||||
|
// init init
|
||||||
|
// wantSourceMetadata *source_metadatapb.MetaData
|
||||||
|
// wantErr bool
|
||||||
|
// }{
|
||||||
|
// {
|
||||||
|
// name: "get a chunk",
|
||||||
|
// init: init{
|
||||||
|
// name: "example repo",
|
||||||
|
// connection: &sourcespb.NPM{
|
||||||
|
// Credential: &sourcespb.NPM_Unauthenticated{},
|
||||||
|
// },
|
||||||
|
// verify: true,
|
||||||
|
// },
|
||||||
|
// wantSourceMetadata: &source_metadatapb.MetaData{
|
||||||
|
// Data: &source_metadatapb.MetaData_Npm{
|
||||||
|
// Npm: &source_metadatapb.NPM{
|
||||||
|
// File: "",
|
||||||
|
// Package: "",
|
||||||
|
// Release: "",
|
||||||
|
// Email: "",
|
||||||
|
// Link: "",
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// wantErr: false,
|
||||||
|
// },
|
||||||
|
// }
|
||||||
|
// for _, tt := range tests {
|
||||||
|
// t.Run(tt.name, func(t *testing.T) {
|
||||||
|
// s := Source{}
|
||||||
|
|
||||||
|
// conn, err := anypb.New(tt.init.connection)
|
||||||
|
// if err != nil {
|
||||||
|
// t.Fatal(err)
|
||||||
|
// }
|
||||||
|
|
||||||
|
// err = s.Init(ctx, tt.init.name, 0, 0, tt.init.verify, conn, 5)
|
||||||
|
// if (err != nil) != tt.wantErr {
|
||||||
|
// t.Errorf("Source.Init() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// chunksCh := make(chan *sources.Chunk, 1)
|
||||||
|
// go func() {
|
||||||
|
// err = s.Chunks(ctx, chunksCh)
|
||||||
|
// if (err != nil) != tt.wantErr {
|
||||||
|
// t.Errorf("Source.Chunks() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// }()
|
||||||
|
// gotChunk := <-chunksCh
|
||||||
|
// if diff := pretty.Compare(gotChunk.SourceMetadata, tt.wantSourceMetadata); diff != "" {
|
||||||
|
// t.Errorf("Source.Chunks() %s diff: (-got +want)\n%s", tt.name, diff)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
func TestSource_getPackage(t *testing.T) {
|
||||||
|
type args struct {
|
||||||
|
ctx context.Context
|
||||||
|
packageName string
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
args args
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "get a package",
|
||||||
|
args: args{
|
||||||
|
ctx: context.Background(),
|
||||||
|
packageName: "rawl-number-formatter",
|
||||||
|
},
|
||||||
|
wantErr: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
s := &Source{
|
||||||
|
client: common.RetryableHttpClientTimeout(3),
|
||||||
|
}
|
||||||
|
got, err := s.getPackage(tt.args.ctx, tt.args.packageName)
|
||||||
|
if (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("Source.getPackage() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
assert.NotNil(t, got)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSource_getPackagesByMaintainer(t *testing.T) {
|
||||||
|
type args struct {
|
||||||
|
ctx context.Context
|
||||||
|
maintainerName string
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
args args
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "get a package",
|
||||||
|
args: args{
|
||||||
|
ctx: context.Background(),
|
||||||
|
maintainerName: "sefasungur",
|
||||||
|
},
|
||||||
|
wantErr: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
s := &Source{
|
||||||
|
client: common.RetryableHttpClientTimeout(3),
|
||||||
|
}
|
||||||
|
got, err := s.getPackagesByMaintainer(tt.args.ctx, tt.args.maintainerName)
|
||||||
|
if (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("Source.getPackage() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
assert.NotNil(t, got)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
package npm
|
||||||
|
|
||||||
|
// package data structures
|
||||||
|
|
||||||
|
type pkg struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Description string `json:"description"`
|
||||||
|
Versions map[string]version `json:"versions"`
|
||||||
|
Maintainers []maintainer `json:"maintainers"`
|
||||||
|
Repository repository `json:"repository"`
|
||||||
|
Keywords []string `json:"keywords"`
|
||||||
|
Contributors []contributors `json:"contributors"`
|
||||||
|
}
|
||||||
|
type repository struct {
|
||||||
|
Type string `json:"type"`
|
||||||
|
URL string `json:"url"`
|
||||||
|
}
|
||||||
|
type maintainer struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Email string `json:"email"`
|
||||||
|
}
|
||||||
|
type dist struct {
|
||||||
|
Tarball string `json:"tarball"`
|
||||||
|
}
|
||||||
|
type version struct {
|
||||||
|
Version string `json:"version"`
|
||||||
|
Dist dist `json:"dist"`
|
||||||
|
}
|
||||||
|
type contributors struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
URL string `json:"url"`
|
||||||
|
}
|
||||||
|
type npmUser struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Email string `json:"email"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// maintainer search
|
||||||
|
|
||||||
|
type maintainerRes struct {
|
||||||
|
Objects []objects `json:"objects"`
|
||||||
|
Total int `json:"total"`
|
||||||
|
}
|
||||||
|
type maintainerPkg struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
}
|
||||||
|
type objects struct {
|
||||||
|
Package maintainerPkg `json:"package,omitempty"`
|
||||||
|
}
|
||||||
+7
-3
@@ -23,7 +23,7 @@ enum SourceType {
|
|||||||
SOURCE_TYPE_PUBLIC_GIT = 8;
|
SOURCE_TYPE_PUBLIC_GIT = 8;
|
||||||
SOURCE_TYPE_GITLAB = 9;
|
SOURCE_TYPE_GITLAB = 9;
|
||||||
SOURCE_TYPE_JIRA = 10;
|
SOURCE_TYPE_JIRA = 10;
|
||||||
SOURCE_TYPE_NPM_UNAUTHD_PACKAGES = 11;
|
SOURCE_TYPE_NPM = 11;
|
||||||
SOURCE_TYPE_PYPI_UNAUTHD_PACKAGES = 12;
|
SOURCE_TYPE_PYPI_UNAUTHD_PACKAGES = 12;
|
||||||
SOURCE_TYPE_S3 = 13;
|
SOURCE_TYPE_S3 = 13;
|
||||||
SOURCE_TYPE_SLACK = 14;
|
SOURCE_TYPE_SLACK = 14;
|
||||||
@@ -171,13 +171,17 @@ message JIRA {
|
|||||||
repeated string projects = 5;
|
repeated string projects = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
message NPMUnauthenticatedPackage {
|
message NPM {
|
||||||
oneof credential {
|
oneof credential {
|
||||||
credentials.Unauthenticated unauthenticated = 1;
|
credentials.Unauthenticated unauthenticated = 1;
|
||||||
}
|
}
|
||||||
|
repeated string packages = 2;
|
||||||
|
repeated string maintainers = 3;
|
||||||
|
string npm_lock_file_contents = 4;
|
||||||
|
string yarn_lock_file_contents = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
message PyPIUnauthenticatedPackage {
|
message PyPI {
|
||||||
oneof credential {
|
oneof credential {
|
||||||
credentials.Unauthenticated unauthenticated = 1;
|
credentials.Unauthenticated unauthenticated = 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user