// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.25.0-devel
// 	protoc        v3.6.1
// source: analysis_service/analysis_service.proto

package analysis_service

import (
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	api "go.chromium.org/chromiumos/infra/proto/go/chromite/api"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// Data about the execution of a step. Fields mirror those of the
// ExecutionResult object returned by a step.
type StepExecutionResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Retcode      int32 `protobuf:"varint,1,opt,name=retcode,proto3" json:"retcode,omitempty"`
	HadTimeout   bool  `protobuf:"varint,2,opt,name=had_timeout,json=hadTimeout,proto3" json:"had_timeout,omitempty"`
	HadException bool  `protobuf:"varint,3,opt,name=had_exception,json=hadException,proto3" json:"had_exception,omitempty"`
	WasCancelled bool  `protobuf:"varint,4,opt,name=was_cancelled,json=wasCancelled,proto3" json:"was_cancelled,omitempty"`
}

func (x *StepExecutionResult) Reset() {
	*x = StepExecutionResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_analysis_service_analysis_service_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StepExecutionResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StepExecutionResult) ProtoMessage() {}

func (x *StepExecutionResult) ProtoReflect() protoreflect.Message {
	mi := &file_analysis_service_analysis_service_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StepExecutionResult.ProtoReflect.Descriptor instead.
func (*StepExecutionResult) Descriptor() ([]byte, []int) {
	return file_analysis_service_analysis_service_proto_rawDescGZIP(), []int{0}
}

func (x *StepExecutionResult) GetRetcode() int32 {
	if x != nil {
		return x.Retcode
	}
	return 0
}

func (x *StepExecutionResult) GetHadTimeout() bool {
	if x != nil {
		return x.HadTimeout
	}
	return false
}

func (x *StepExecutionResult) GetHadException() bool {
	if x != nil {
		return x.HadException
	}
	return false
}

func (x *StepExecutionResult) GetWasCancelled() bool {
	if x != nil {
		return x.WasCancelled
	}
	return false
}

// Requests and responses are sent to the Artifacts Analysis Service on a single
// Pub/Sub topic; thus, the type of the request and response need to be encoded
// in the Pub/Sub message. This is done with this wrapper proto.
//
// This proto should only be used by a recipes module to do the wrapping and a
// layer on the Analysis Server to do the unwrapping.
//
// NEXT ID: 55;
type AnalysisServiceEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The Buildbucket id for the build doing the request and response.
	BuildId int64 `protobuf:"varint,42,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"`
	// The name of the step doing the request and response. Must be the same
	// format as Buildbucket Build proto's step name (i.e. parent and child step
	// names are separated by the "|" character).
	StepName string `protobuf:"bytes,43,opt,name=step_name,json=stepName,proto3" json:"step_name,omitempty"`
	// The time the request and response were sent and recieved by the caller.
	RequestTime  *timestamp.Timestamp `protobuf:"bytes,3,opt,name=request_time,json=requestTime,proto3" json:"request_time,omitempty"`
	ResponseTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=response_time,json=responseTime,proto3" json:"response_time,omitempty"`
	// The stdout and stderr logs for a stage. Either log string may be truncated
	// to ensure individual entries and proto request sizes work well for upload
	// and for later querying.
	Stdout string `protobuf:"bytes,50,opt,name=stdout,proto3" json:"stdout,omitempty"`
	Stderr string `protobuf:"bytes,51,opt,name=stderr,proto3" json:"stderr,omitempty"`
	// Data about the execution of the step doing the request and response.
	StepExecutionResult *StepExecutionResult `protobuf:"bytes,52,opt,name=step_execution_result,json=stepExecutionResult,proto3" json:"step_execution_result,omitempty"`
	// The request to upload.
	//
	// Types that are assignable to Request:
	//	*AnalysisServiceEvent_InstallPackagesRequest
	//	*AnalysisServiceEvent_BundleRequest
	//	*AnalysisServiceEvent_BundleVmFilesRequest
	//	*AnalysisServiceEvent_BinhostGetRequest
	//	*AnalysisServiceEvent_AclArgsRequest
	//	*AnalysisServiceEvent_PrepareBinhostUploadsRequest
	//	*AnalysisServiceEvent_SetBinhostRequest
	//	*AnalysisServiceEvent_RegenBuildCacheRequest
	//	*AnalysisServiceEvent_GetBuildDependencyGraphRequest
	//	*AnalysisServiceEvent_CreateImageRequest
	//	*AnalysisServiceEvent_TestImageRequest
	//	*AnalysisServiceEvent_CreateRequest
	//	*AnalysisServiceEvent_UpdateRequest
	//	*AnalysisServiceEvent_SysrootCreateRequest
	//	*AnalysisServiceEvent_InstallToolchainRequest
	//	*AnalysisServiceEvent_BuildTargetUnitTestRequest
	//	*AnalysisServiceEvent_ChromiteUnitTestRequest
	//	*AnalysisServiceEvent_DebugInfoTestRequest
	//	*AnalysisServiceEvent_VmTestRequest
	//	*AnalysisServiceEvent_MoblabVmTestRequest
	//	*AnalysisServiceEvent_UprevPackagesRequest
	//	*AnalysisServiceEvent_GetBestVisibleRequest
	//	*AnalysisServiceEvent_GetChromeVersionRequest
	//	*AnalysisServiceEvent_GetBuilderMetadataRequest
	Request isAnalysisServiceEvent_Request `protobuf_oneof:"request"`
	// The response to upload.
	//
	// Types that are assignable to Response:
	//	*AnalysisServiceEvent_InstallPackagesResponse
	//	*AnalysisServiceEvent_BundleResponse
	//	*AnalysisServiceEvent_BinhostGetResponse
	//	*AnalysisServiceEvent_AclArgsResponse
	//	*AnalysisServiceEvent_PrepareBinhostUploadsResponse
	//	*AnalysisServiceEvent_SetBinhostResponse
	//	*AnalysisServiceEvent_RegenBuildCacheResponse
	//	*AnalysisServiceEvent_GetBuildDependencyGraphResponse
	//	*AnalysisServiceEvent_CreateImageResult
	//	*AnalysisServiceEvent_TestImageResult
	//	*AnalysisServiceEvent_CreateResponse
	//	*AnalysisServiceEvent_UpdateResponse
	//	*AnalysisServiceEvent_SysrootCreateResponse
	//	*AnalysisServiceEvent_InstallToolchainResponse
	//	*AnalysisServiceEvent_BuildTargetUnitTestResponse
	//	*AnalysisServiceEvent_ChromiteUnitTestResponse
	//	*AnalysisServiceEvent_DebugInfoTestResponse
	//	*AnalysisServiceEvent_VmTestResponse
	//	*AnalysisServiceEvent_MoblabVmTestResponse
	//	*AnalysisServiceEvent_UprevPackagesResponse
	//	*AnalysisServiceEvent_GetBestVisibleResponse
	//	*AnalysisServiceEvent_GetChromeVersionResponse
	//	*AnalysisServiceEvent_GetBuilderMetadataResponse
	Response isAnalysisServiceEvent_Response `protobuf_oneof:"response"`
}

func (x *AnalysisServiceEvent) Reset() {
	*x = AnalysisServiceEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_analysis_service_analysis_service_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AnalysisServiceEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AnalysisServiceEvent) ProtoMessage() {}

func (x *AnalysisServiceEvent) ProtoReflect() protoreflect.Message {
	mi := &file_analysis_service_analysis_service_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AnalysisServiceEvent.ProtoReflect.Descriptor instead.
func (*AnalysisServiceEvent) Descriptor() ([]byte, []int) {
	return file_analysis_service_analysis_service_proto_rawDescGZIP(), []int{1}
}

func (x *AnalysisServiceEvent) GetBuildId() int64 {
	if x != nil {
		return x.BuildId
	}
	return 0
}

func (x *AnalysisServiceEvent) GetStepName() string {
	if x != nil {
		return x.StepName
	}
	return ""
}

func (x *AnalysisServiceEvent) GetRequestTime() *timestamp.Timestamp {
	if x != nil {
		return x.RequestTime
	}
	return nil
}

func (x *AnalysisServiceEvent) GetResponseTime() *timestamp.Timestamp {
	if x != nil {
		return x.ResponseTime
	}
	return nil
}

func (x *AnalysisServiceEvent) GetStdout() string {
	if x != nil {
		return x.Stdout
	}
	return ""
}

func (x *AnalysisServiceEvent) GetStderr() string {
	if x != nil {
		return x.Stderr
	}
	return ""
}

func (x *AnalysisServiceEvent) GetStepExecutionResult() *StepExecutionResult {
	if x != nil {
		return x.StepExecutionResult
	}
	return nil
}

func (m *AnalysisServiceEvent) GetRequest() isAnalysisServiceEvent_Request {
	if m != nil {
		return m.Request
	}
	return nil
}

func (x *AnalysisServiceEvent) GetInstallPackagesRequest() *api.InstallPackagesRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_InstallPackagesRequest); ok {
		return x.InstallPackagesRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetBundleRequest() *api.BundleRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_BundleRequest); ok {
		return x.BundleRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetBundleVmFilesRequest() *api.BundleVmFilesRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_BundleVmFilesRequest); ok {
		return x.BundleVmFilesRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetBinhostGetRequest() *api.BinhostGetRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_BinhostGetRequest); ok {
		return x.BinhostGetRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetAclArgsRequest() *api.AclArgsRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_AclArgsRequest); ok {
		return x.AclArgsRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetPrepareBinhostUploadsRequest() *api.PrepareBinhostUploadsRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_PrepareBinhostUploadsRequest); ok {
		return x.PrepareBinhostUploadsRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetSetBinhostRequest() *api.SetBinhostRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_SetBinhostRequest); ok {
		return x.SetBinhostRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetRegenBuildCacheRequest() *api.RegenBuildCacheRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_RegenBuildCacheRequest); ok {
		return x.RegenBuildCacheRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetGetBuildDependencyGraphRequest() *api.GetBuildDependencyGraphRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_GetBuildDependencyGraphRequest); ok {
		return x.GetBuildDependencyGraphRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetCreateImageRequest() *api.CreateImageRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_CreateImageRequest); ok {
		return x.CreateImageRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetTestImageRequest() *api.TestImageRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_TestImageRequest); ok {
		return x.TestImageRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetCreateRequest() *api.CreateRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_CreateRequest); ok {
		return x.CreateRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetUpdateRequest() *api.UpdateRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_UpdateRequest); ok {
		return x.UpdateRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetSysrootCreateRequest() *api.SysrootCreateRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_SysrootCreateRequest); ok {
		return x.SysrootCreateRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetInstallToolchainRequest() *api.InstallToolchainRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_InstallToolchainRequest); ok {
		return x.InstallToolchainRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetBuildTargetUnitTestRequest() *api.BuildTargetUnitTestRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_BuildTargetUnitTestRequest); ok {
		return x.BuildTargetUnitTestRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetChromiteUnitTestRequest() *api.ChromiteUnitTestRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_ChromiteUnitTestRequest); ok {
		return x.ChromiteUnitTestRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetDebugInfoTestRequest() *api.DebugInfoTestRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_DebugInfoTestRequest); ok {
		return x.DebugInfoTestRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetVmTestRequest() *api.VmTestRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_VmTestRequest); ok {
		return x.VmTestRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetMoblabVmTestRequest() *api.MoblabVmTestRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_MoblabVmTestRequest); ok {
		return x.MoblabVmTestRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetUprevPackagesRequest() *api.UprevPackagesRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_UprevPackagesRequest); ok {
		return x.UprevPackagesRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetGetBestVisibleRequest() *api.GetBestVisibleRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_GetBestVisibleRequest); ok {
		return x.GetBestVisibleRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetGetChromeVersionRequest() *api.GetChromeVersionRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_GetChromeVersionRequest); ok {
		return x.GetChromeVersionRequest
	}
	return nil
}

func (x *AnalysisServiceEvent) GetGetBuilderMetadataRequest() *api.GetBuilderMetadataRequest {
	if x, ok := x.GetRequest().(*AnalysisServiceEvent_GetBuilderMetadataRequest); ok {
		return x.GetBuilderMetadataRequest
	}
	return nil
}

func (m *AnalysisServiceEvent) GetResponse() isAnalysisServiceEvent_Response {
	if m != nil {
		return m.Response
	}
	return nil
}

func (x *AnalysisServiceEvent) GetInstallPackagesResponse() *api.InstallPackagesResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_InstallPackagesResponse); ok {
		return x.InstallPackagesResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetBundleResponse() *api.BundleResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_BundleResponse); ok {
		return x.BundleResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetBinhostGetResponse() *api.BinhostGetResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_BinhostGetResponse); ok {
		return x.BinhostGetResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetAclArgsResponse() *api.AclArgsResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_AclArgsResponse); ok {
		return x.AclArgsResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetPrepareBinhostUploadsResponse() *api.PrepareBinhostUploadsResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_PrepareBinhostUploadsResponse); ok {
		return x.PrepareBinhostUploadsResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetSetBinhostResponse() *api.SetBinhostResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_SetBinhostResponse); ok {
		return x.SetBinhostResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetRegenBuildCacheResponse() *api.RegenBuildCacheResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_RegenBuildCacheResponse); ok {
		return x.RegenBuildCacheResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetGetBuildDependencyGraphResponse() *api.GetBuildDependencyGraphResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_GetBuildDependencyGraphResponse); ok {
		return x.GetBuildDependencyGraphResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetCreateImageResult() *api.CreateImageResult {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_CreateImageResult); ok {
		return x.CreateImageResult
	}
	return nil
}

func (x *AnalysisServiceEvent) GetTestImageResult() *api.TestImageResult {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_TestImageResult); ok {
		return x.TestImageResult
	}
	return nil
}

func (x *AnalysisServiceEvent) GetCreateResponse() *api.CreateResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_CreateResponse); ok {
		return x.CreateResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetUpdateResponse() *api.UpdateResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_UpdateResponse); ok {
		return x.UpdateResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetSysrootCreateResponse() *api.SysrootCreateResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_SysrootCreateResponse); ok {
		return x.SysrootCreateResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetInstallToolchainResponse() *api.InstallToolchainResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_InstallToolchainResponse); ok {
		return x.InstallToolchainResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetBuildTargetUnitTestResponse() *api.BuildTargetUnitTestResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_BuildTargetUnitTestResponse); ok {
		return x.BuildTargetUnitTestResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetChromiteUnitTestResponse() *api.ChromiteUnitTestResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_ChromiteUnitTestResponse); ok {
		return x.ChromiteUnitTestResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetDebugInfoTestResponse() *api.DebugInfoTestResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_DebugInfoTestResponse); ok {
		return x.DebugInfoTestResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetVmTestResponse() *api.VmTestResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_VmTestResponse); ok {
		return x.VmTestResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetMoblabVmTestResponse() *api.MoblabVmTestResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_MoblabVmTestResponse); ok {
		return x.MoblabVmTestResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetUprevPackagesResponse() *api.UprevPackagesResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_UprevPackagesResponse); ok {
		return x.UprevPackagesResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetGetBestVisibleResponse() *api.GetBestVisibleResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_GetBestVisibleResponse); ok {
		return x.GetBestVisibleResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetGetChromeVersionResponse() *api.GetChromeVersionResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_GetChromeVersionResponse); ok {
		return x.GetChromeVersionResponse
	}
	return nil
}

func (x *AnalysisServiceEvent) GetGetBuilderMetadataResponse() *api.GetBuilderMetadataResponse {
	if x, ok := x.GetResponse().(*AnalysisServiceEvent_GetBuilderMetadataResponse); ok {
		return x.GetBuilderMetadataResponse
	}
	return nil
}

type isAnalysisServiceEvent_Request interface {
	isAnalysisServiceEvent_Request()
}

type AnalysisServiceEvent_InstallPackagesRequest struct {
	InstallPackagesRequest *api.InstallPackagesRequest `protobuf:"bytes,1,opt,name=install_packages_request,json=installPackagesRequest,proto3,oneof"`
}

type AnalysisServiceEvent_BundleRequest struct {
	BundleRequest *api.BundleRequest `protobuf:"bytes,5,opt,name=bundle_request,json=bundleRequest,proto3,oneof"`
}

type AnalysisServiceEvent_BundleVmFilesRequest struct {
	BundleVmFilesRequest *api.BundleVmFilesRequest `protobuf:"bytes,7,opt,name=bundle_vm_files_request,json=bundleVmFilesRequest,proto3,oneof"`
}

type AnalysisServiceEvent_BinhostGetRequest struct {
	BinhostGetRequest *api.BinhostGetRequest `protobuf:"bytes,8,opt,name=binhost_get_request,json=binhostGetRequest,proto3,oneof"`
}

type AnalysisServiceEvent_AclArgsRequest struct {
	AclArgsRequest *api.AclArgsRequest `protobuf:"bytes,10,opt,name=acl_args_request,json=aclArgsRequest,proto3,oneof"`
}

type AnalysisServiceEvent_PrepareBinhostUploadsRequest struct {
	PrepareBinhostUploadsRequest *api.PrepareBinhostUploadsRequest `protobuf:"bytes,12,opt,name=prepare_binhost_uploads_request,json=prepareBinhostUploadsRequest,proto3,oneof"`
}

type AnalysisServiceEvent_SetBinhostRequest struct {
	SetBinhostRequest *api.SetBinhostRequest `protobuf:"bytes,14,opt,name=set_binhost_request,json=setBinhostRequest,proto3,oneof"`
}

type AnalysisServiceEvent_RegenBuildCacheRequest struct {
	RegenBuildCacheRequest *api.RegenBuildCacheRequest `protobuf:"bytes,16,opt,name=regen_build_cache_request,json=regenBuildCacheRequest,proto3,oneof"`
}

type AnalysisServiceEvent_GetBuildDependencyGraphRequest struct {
	GetBuildDependencyGraphRequest *api.GetBuildDependencyGraphRequest `protobuf:"bytes,18,opt,name=get_build_dependency_graph_request,json=getBuildDependencyGraphRequest,proto3,oneof"`
}

type AnalysisServiceEvent_CreateImageRequest struct {
	CreateImageRequest *api.CreateImageRequest `protobuf:"bytes,20,opt,name=create_image_request,json=createImageRequest,proto3,oneof"`
}

type AnalysisServiceEvent_TestImageRequest struct {
	TestImageRequest *api.TestImageRequest `protobuf:"bytes,22,opt,name=test_image_request,json=testImageRequest,proto3,oneof"`
}

type AnalysisServiceEvent_CreateRequest struct {
	CreateRequest *api.CreateRequest `protobuf:"bytes,24,opt,name=create_request,json=createRequest,proto3,oneof"`
}

type AnalysisServiceEvent_UpdateRequest struct {
	UpdateRequest *api.UpdateRequest `protobuf:"bytes,26,opt,name=update_request,json=updateRequest,proto3,oneof"`
}

type AnalysisServiceEvent_SysrootCreateRequest struct {
	SysrootCreateRequest *api.SysrootCreateRequest `protobuf:"bytes,28,opt,name=sysroot_create_request,json=sysrootCreateRequest,proto3,oneof"`
}

type AnalysisServiceEvent_InstallToolchainRequest struct {
	InstallToolchainRequest *api.InstallToolchainRequest `protobuf:"bytes,30,opt,name=install_toolchain_request,json=installToolchainRequest,proto3,oneof"`
}

type AnalysisServiceEvent_BuildTargetUnitTestRequest struct {
	BuildTargetUnitTestRequest *api.BuildTargetUnitTestRequest `protobuf:"bytes,32,opt,name=build_target_unit_test_request,json=buildTargetUnitTestRequest,proto3,oneof"`
}

type AnalysisServiceEvent_ChromiteUnitTestRequest struct {
	ChromiteUnitTestRequest *api.ChromiteUnitTestRequest `protobuf:"bytes,34,opt,name=chromite_unit_test_request,json=chromiteUnitTestRequest,proto3,oneof"`
}

type AnalysisServiceEvent_DebugInfoTestRequest struct {
	DebugInfoTestRequest *api.DebugInfoTestRequest `protobuf:"bytes,36,opt,name=debug_info_test_request,json=debugInfoTestRequest,proto3,oneof"`
}

type AnalysisServiceEvent_VmTestRequest struct {
	VmTestRequest *api.VmTestRequest `protobuf:"bytes,38,opt,name=vm_test_request,json=vmTestRequest,proto3,oneof"`
}

type AnalysisServiceEvent_MoblabVmTestRequest struct {
	MoblabVmTestRequest *api.MoblabVmTestRequest `protobuf:"bytes,40,opt,name=moblab_vm_test_request,json=moblabVmTestRequest,proto3,oneof"`
}

type AnalysisServiceEvent_UprevPackagesRequest struct {
	UprevPackagesRequest *api.UprevPackagesRequest `protobuf:"bytes,44,opt,name=uprev_packages_request,json=uprevPackagesRequest,proto3,oneof"`
}

type AnalysisServiceEvent_GetBestVisibleRequest struct {
	GetBestVisibleRequest *api.GetBestVisibleRequest `protobuf:"bytes,46,opt,name=get_best_visible_request,json=getBestVisibleRequest,proto3,oneof"`
}

type AnalysisServiceEvent_GetChromeVersionRequest struct {
	GetChromeVersionRequest *api.GetChromeVersionRequest `protobuf:"bytes,48,opt,name=get_chrome_version_request,json=getChromeVersionRequest,proto3,oneof"`
}

type AnalysisServiceEvent_GetBuilderMetadataRequest struct {
	GetBuilderMetadataRequest *api.GetBuilderMetadataRequest `protobuf:"bytes,53,opt,name=get_builder_metadata_request,json=getBuilderMetadataRequest,proto3,oneof"`
}

func (*AnalysisServiceEvent_InstallPackagesRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_BundleRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_BundleVmFilesRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_BinhostGetRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_AclArgsRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_PrepareBinhostUploadsRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_SetBinhostRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_RegenBuildCacheRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_GetBuildDependencyGraphRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_CreateImageRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_TestImageRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_CreateRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_UpdateRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_SysrootCreateRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_InstallToolchainRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_BuildTargetUnitTestRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_ChromiteUnitTestRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_DebugInfoTestRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_VmTestRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_MoblabVmTestRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_UprevPackagesRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_GetBestVisibleRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_GetChromeVersionRequest) isAnalysisServiceEvent_Request() {}

func (*AnalysisServiceEvent_GetBuilderMetadataRequest) isAnalysisServiceEvent_Request() {}

type isAnalysisServiceEvent_Response interface {
	isAnalysisServiceEvent_Response()
}

type AnalysisServiceEvent_InstallPackagesResponse struct {
	InstallPackagesResponse *api.InstallPackagesResponse `protobuf:"bytes,2,opt,name=install_packages_response,json=installPackagesResponse,proto3,oneof"`
}

type AnalysisServiceEvent_BundleResponse struct {
	BundleResponse *api.BundleResponse `protobuf:"bytes,6,opt,name=bundle_response,json=bundleResponse,proto3,oneof"`
}

type AnalysisServiceEvent_BinhostGetResponse struct {
	BinhostGetResponse *api.BinhostGetResponse `protobuf:"bytes,9,opt,name=binhost_get_response,json=binhostGetResponse,proto3,oneof"`
}

type AnalysisServiceEvent_AclArgsResponse struct {
	AclArgsResponse *api.AclArgsResponse `protobuf:"bytes,11,opt,name=acl_args_response,json=aclArgsResponse,proto3,oneof"`
}

type AnalysisServiceEvent_PrepareBinhostUploadsResponse struct {
	PrepareBinhostUploadsResponse *api.PrepareBinhostUploadsResponse `protobuf:"bytes,13,opt,name=prepare_binhost_uploads_response,json=prepareBinhostUploadsResponse,proto3,oneof"`
}

type AnalysisServiceEvent_SetBinhostResponse struct {
	SetBinhostResponse *api.SetBinhostResponse `protobuf:"bytes,15,opt,name=set_binhost_response,json=setBinhostResponse,proto3,oneof"`
}

type AnalysisServiceEvent_RegenBuildCacheResponse struct {
	RegenBuildCacheResponse *api.RegenBuildCacheResponse `protobuf:"bytes,17,opt,name=regen_build_cache_response,json=regenBuildCacheResponse,proto3,oneof"`
}

type AnalysisServiceEvent_GetBuildDependencyGraphResponse struct {
	GetBuildDependencyGraphResponse *api.GetBuildDependencyGraphResponse `protobuf:"bytes,19,opt,name=get_build_dependency_graph_response,json=getBuildDependencyGraphResponse,proto3,oneof"`
}

type AnalysisServiceEvent_CreateImageResult struct {
	CreateImageResult *api.CreateImageResult `protobuf:"bytes,21,opt,name=create_image_result,json=createImageResult,proto3,oneof"`
}

type AnalysisServiceEvent_TestImageResult struct {
	TestImageResult *api.TestImageResult `protobuf:"bytes,23,opt,name=test_image_result,json=testImageResult,proto3,oneof"`
}

type AnalysisServiceEvent_CreateResponse struct {
	CreateResponse *api.CreateResponse `protobuf:"bytes,25,opt,name=create_response,json=createResponse,proto3,oneof"`
}

type AnalysisServiceEvent_UpdateResponse struct {
	UpdateResponse *api.UpdateResponse `protobuf:"bytes,27,opt,name=update_response,json=updateResponse,proto3,oneof"`
}

type AnalysisServiceEvent_SysrootCreateResponse struct {
	SysrootCreateResponse *api.SysrootCreateResponse `protobuf:"bytes,29,opt,name=sysroot_create_response,json=sysrootCreateResponse,proto3,oneof"`
}

type AnalysisServiceEvent_InstallToolchainResponse struct {
	InstallToolchainResponse *api.InstallToolchainResponse `protobuf:"bytes,31,opt,name=install_toolchain_response,json=installToolchainResponse,proto3,oneof"`
}

type AnalysisServiceEvent_BuildTargetUnitTestResponse struct {
	BuildTargetUnitTestResponse *api.BuildTargetUnitTestResponse `protobuf:"bytes,33,opt,name=build_target_unit_test_response,json=buildTargetUnitTestResponse,proto3,oneof"`
}

type AnalysisServiceEvent_ChromiteUnitTestResponse struct {
	ChromiteUnitTestResponse *api.ChromiteUnitTestResponse `protobuf:"bytes,35,opt,name=chromite_unit_test_response,json=chromiteUnitTestResponse,proto3,oneof"`
}

type AnalysisServiceEvent_DebugInfoTestResponse struct {
	DebugInfoTestResponse *api.DebugInfoTestResponse `protobuf:"bytes,37,opt,name=debug_info_test_response,json=debugInfoTestResponse,proto3,oneof"`
}

type AnalysisServiceEvent_VmTestResponse struct {
	VmTestResponse *api.VmTestResponse `protobuf:"bytes,39,opt,name=vm_test_response,json=vmTestResponse,proto3,oneof"`
}

type AnalysisServiceEvent_MoblabVmTestResponse struct {
	MoblabVmTestResponse *api.MoblabVmTestResponse `protobuf:"bytes,41,opt,name=moblab_vm_test_response,json=moblabVmTestResponse,proto3,oneof"`
}

type AnalysisServiceEvent_UprevPackagesResponse struct {
	UprevPackagesResponse *api.UprevPackagesResponse `protobuf:"bytes,45,opt,name=uprev_packages_response,json=uprevPackagesResponse,proto3,oneof"`
}

type AnalysisServiceEvent_GetBestVisibleResponse struct {
	GetBestVisibleResponse *api.GetBestVisibleResponse `protobuf:"bytes,47,opt,name=get_best_visible_response,json=getBestVisibleResponse,proto3,oneof"`
}

type AnalysisServiceEvent_GetChromeVersionResponse struct {
	GetChromeVersionResponse *api.GetChromeVersionResponse `protobuf:"bytes,49,opt,name=get_chrome_version_response,json=getChromeVersionResponse,proto3,oneof"`
}

type AnalysisServiceEvent_GetBuilderMetadataResponse struct {
	GetBuilderMetadataResponse *api.GetBuilderMetadataResponse `protobuf:"bytes,54,opt,name=get_builder_metadata_response,json=getBuilderMetadataResponse,proto3,oneof"`
}

func (*AnalysisServiceEvent_InstallPackagesResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_BundleResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_BinhostGetResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_AclArgsResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_PrepareBinhostUploadsResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_SetBinhostResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_RegenBuildCacheResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_GetBuildDependencyGraphResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_CreateImageResult) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_TestImageResult) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_CreateResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_UpdateResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_SysrootCreateResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_InstallToolchainResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_BuildTargetUnitTestResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_ChromiteUnitTestResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_DebugInfoTestResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_VmTestResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_MoblabVmTestResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_UprevPackagesResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_GetBestVisibleResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_GetChromeVersionResponse) isAnalysisServiceEvent_Response() {}

func (*AnalysisServiceEvent_GetBuilderMetadataResponse) isAnalysisServiceEvent_Response() {}

var File_analysis_service_analysis_service_proto protoreflect.FileDescriptor

var file_analysis_service_analysis_service_proto_rawDesc = []byte{
	0x0a, 0x27, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x61, 0x6e, 0x61, 0x6c, 0x79,
	0x73, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a, 0x1c, 0x63, 0x68, 0x72,
	0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61,
	0x63, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x63, 0x68, 0x72, 0x6f, 0x6d,
	0x69, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x70, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x18, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x63, 0x68,
	0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61,
	0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x63, 0x68, 0x72, 0x6f, 0x6d,
	0x69, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x64, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x1a, 0x1a, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f,
	0x73, 0x79, 0x73, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63,
	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x73, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9a, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x65, 0x70,
	0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
	0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x07, 0x72, 0x65, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x64,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
	0x68, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x61,
	0x64, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0c, 0x68, 0x61, 0x64, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x23, 0x0a, 0x0d, 0x77, 0x61, 0x73, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x61, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65,
	0x6c, 0x6c, 0x65, 0x64, 0x22, 0x88, 0x25, 0x0a, 0x14, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69,
	0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a,
	0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x65, 0x70,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x65,
	0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18,
	0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
	0x74, 0x64, 0x65, 0x72, 0x72, 0x12, 0x59, 0x0a, 0x15, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x65, 0x78,
	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x34,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x45, 0x78, 0x65, 0x63,
	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x13, 0x73, 0x74, 0x65,
	0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x12, 0x60, 0x0a, 0x18, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b,
	0x61, 0x67, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70,
	0x69, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x16, 0x69, 0x6e, 0x73, 0x74,
	0x61, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x72,
	0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x75, 0x6e, 0x64, 0x6c,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x62, 0x75, 0x6e, 0x64,
	0x6c, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x68, 0x72, 0x6f,
	0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56,
	0x6d, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x14, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x13, 0x62, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74,
	0x5f, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70,
	0x69, 0x2e, 0x42, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x62, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x47, 0x65,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x63, 0x6c, 0x5f,
	0x61, 0x72, 0x67, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70,
	0x69, 0x2e, 0x41, 0x63, 0x6c, 0x41, 0x72, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x48, 0x00, 0x52, 0x0e, 0x61, 0x63, 0x6c, 0x41, 0x72, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x73, 0x0a, 0x1f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x69,
	0x6e, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x5f, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x68,
	0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61,
	0x72, 0x65, 0x42, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1c, 0x70, 0x72, 0x65, 0x70, 0x61,
	0x72, 0x65, 0x42, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x13, 0x73, 0x65, 0x74, 0x5f, 0x62,
	0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0e,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x73, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x68,
	0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x19, 0x72, 0x65,
	0x67, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f,
	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e,
	0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x67,
	0x65, 0x6e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x16, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x42, 0x75, 0x69, 0x6c,
	0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x7a, 0x0a,
	0x22, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e,
	0x64, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x68, 0x72, 0x6f,
	0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c,
	0x64, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x47, 0x72, 0x61, 0x70, 0x68,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x67, 0x65, 0x74, 0x42, 0x75,
	0x69, 0x6c, 0x64, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x47, 0x72, 0x61,
	0x70, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x14, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69,
	0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61,
	0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x12, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x4e, 0x0a, 0x12, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x68,
	0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x49,
	0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x74,
	0x65, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x44, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69,
	0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
	0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x16, 0x73,
	0x79, 0x73, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x68,
	0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x79, 0x73, 0x72, 0x6f,
	0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
	0x00, 0x52, 0x14, 0x73, 0x79, 0x73, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x63, 0x0a, 0x19, 0x69, 0x6e, 0x73, 0x74, 0x61,
	0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x68, 0x72,
	0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c,
	0x6c, 0x54, 0x6f, 0x6f, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x00, 0x52, 0x17, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x6f, 0x6c,
	0x63, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6e, 0x0a, 0x1e,
	0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x6e, 0x69,
	0x74, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x20,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55,
	0x6e, 0x69, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00,
	0x52, 0x1a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x6e, 0x69,
	0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x64, 0x0a, 0x1a,
	0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x74, 0x65,
	0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x25, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
	0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x54, 0x65, 0x73, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x17, 0x63, 0x68, 0x72, 0x6f, 0x6d,
	0x69, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
	0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x24, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61,
	0x70, 0x69, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x65, 0x73, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x64, 0x65, 0x62, 0x75, 0x67,
	0x49, 0x6e, 0x66, 0x6f, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x45, 0x0a, 0x0f, 0x76, 0x6d, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d,
	0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x76, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x16, 0x6d, 0x6f, 0x62, 0x6c, 0x61, 0x62,
	0x5f, 0x76, 0x6d, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74,
	0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x62, 0x6c, 0x61, 0x62, 0x56, 0x6d, 0x54, 0x65,
	0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x13, 0x6d, 0x6f, 0x62,
	0x6c, 0x61, 0x62, 0x56, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x5a, 0x0a, 0x16, 0x75, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
	0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x22, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
	0x55, 0x70, 0x72, 0x65, 0x76, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x75, 0x70, 0x72, 0x65, 0x76, 0x50, 0x61, 0x63,
	0x6b, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5e, 0x0a, 0x18,
	0x67, 0x65, 0x74, 0x5f, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65,
	0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
	0x74, 0x42, 0x65, 0x73, 0x74, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x15, 0x67, 0x65, 0x74, 0x42, 0x65, 0x73, 0x74, 0x56, 0x69,
	0x73, 0x69, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x64, 0x0a, 0x1a,
	0x67, 0x65, 0x74, 0x5f, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x25, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
	0x47, 0x65, 0x74, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x17, 0x67, 0x65, 0x74, 0x43, 0x68,
	0x72, 0x6f, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x6a, 0x0a, 0x1c, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65,
	0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d,
	0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64,
	0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x00, 0x52, 0x19, 0x67, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x63,
	0x0a, 0x19, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
	0x65, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x25, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69,
	0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x17, 0x69, 0x6e, 0x73, 0x74,
	0x61, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63,
	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x6e, 0x64,
	0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x0e, 0x62, 0x75,
	0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x14,
	0x62, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x72,
	0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x69, 0x6e, 0x68, 0x6f, 0x73,
	0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x12,
	0x62, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x4b, 0x0a, 0x11, 0x61, 0x63, 0x6c, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x5f, 0x72,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
	0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x6c,
	0x41, 0x72, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x0f,
	0x61, 0x63, 0x6c, 0x41, 0x72, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x76, 0x0a, 0x20, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x68, 0x6f,
	0x73, 0x74, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x72, 0x6f,
	0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65,
	0x42, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x1d, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72,
	0x65, 0x42, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x14, 0x73, 0x65, 0x74, 0x5f, 0x62,
	0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18,
	0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x68, 0x6f, 0x73, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x12, 0x73, 0x65, 0x74, 0x42, 0x69,
	0x6e, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a,
	0x1a, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x61, 0x63,
	0x68, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x25, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69,
	0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x17, 0x72, 0x65, 0x67, 0x65,
	0x6e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x23, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
	0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x67, 0x72, 0x61, 0x70,
	0x68, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x2d, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
	0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e,
	0x63, 0x79, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
	0x01, 0x52, 0x1f, 0x67, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x65, 0x70, 0x65, 0x6e,
	0x64, 0x65, 0x6e, 0x63, 0x79, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x51, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6d, 0x61,
	0x67, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x48, 0x01, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4b, 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6d,
	0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1d, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
	0x54, 0x65, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48,
	0x01, 0x52, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68,
	0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x0e, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0f, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x1b,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x48, 0x01, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x17, 0x73, 0x79, 0x73, 0x72, 0x6f, 0x6f, 0x74, 0x5f,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18,
	0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x79, 0x73, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x15, 0x73, 0x79,
	0x73, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x1a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x74,
	0x6f, 0x6f, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69,
	0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x54, 0x6f,
	0x6f, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
	0x01, 0x52, 0x18, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x6f, 0x6c, 0x63, 0x68,
	0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x1f, 0x62,
	0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x74,
	0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x21,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55,
	0x6e, 0x69, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
	0x01, 0x52, 0x1b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x6e,
	0x69, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67,
	0x0a, 0x1b, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x5f,
	0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x23, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61,
	0x70, 0x69, 0x2e, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x54,
	0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x18, 0x63,
	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x18, 0x64, 0x65, 0x62, 0x75, 0x67,
	0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x68, 0x72, 0x6f,
	0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e,
	0x66, 0x6f, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01,
	0x52, 0x15, 0x64, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x65, 0x73, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x10, 0x76, 0x6d, 0x5f, 0x74, 0x65,
	0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69,
	0x2e, 0x56, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
	0x01, 0x52, 0x0e, 0x76, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x5b, 0x0a, 0x17, 0x6d, 0x6f, 0x62, 0x6c, 0x61, 0x62, 0x5f, 0x76, 0x6d, 0x5f, 0x74,
	0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x29, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70,
	0x69, 0x2e, 0x4d, 0x6f, 0x62, 0x6c, 0x61, 0x62, 0x56, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x14, 0x6d, 0x6f, 0x62, 0x6c, 0x61, 0x62,
	0x56, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d,
	0x0a, 0x17, 0x75, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73,
	0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x23, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55,
	0x70, 0x72, 0x65, 0x76, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x15, 0x75, 0x70, 0x72, 0x65, 0x76, 0x50, 0x61, 0x63,
	0x6b, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a,
	0x19, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c,
	0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x24, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
	0x47, 0x65, 0x74, 0x42, 0x65, 0x73, 0x74, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x16, 0x67, 0x65, 0x74, 0x42, 0x65, 0x73,
	0x74, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x67, 0x0a, 0x1b, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x5f, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18,
	0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52,
	0x18, 0x67, 0x65, 0x74, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x1d, 0x67, 0x65, 0x74,
	0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x28, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
	0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x01, 0x52, 0x1a, 0x67, 0x65,
	0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42,
	0x39, 0x5a, 0x37, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f,
	0x72, 0x67, 0x2f, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x69, 0x6e,
	0x66, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73,
	0x69, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x33,
}

var (
	file_analysis_service_analysis_service_proto_rawDescOnce sync.Once
	file_analysis_service_analysis_service_proto_rawDescData = file_analysis_service_analysis_service_proto_rawDesc
)

func file_analysis_service_analysis_service_proto_rawDescGZIP() []byte {
	file_analysis_service_analysis_service_proto_rawDescOnce.Do(func() {
		file_analysis_service_analysis_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_analysis_service_analysis_service_proto_rawDescData)
	})
	return file_analysis_service_analysis_service_proto_rawDescData
}

var file_analysis_service_analysis_service_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_analysis_service_analysis_service_proto_goTypes = []interface{}{
	(*StepExecutionResult)(nil),                 // 0: analysis_service.StepExecutionResult
	(*AnalysisServiceEvent)(nil),                // 1: analysis_service.AnalysisServiceEvent
	(*timestamp.Timestamp)(nil),                 // 2: google.protobuf.Timestamp
	(*api.InstallPackagesRequest)(nil),          // 3: chromite.api.InstallPackagesRequest
	(*api.BundleRequest)(nil),                   // 4: chromite.api.BundleRequest
	(*api.BundleVmFilesRequest)(nil),            // 5: chromite.api.BundleVmFilesRequest
	(*api.BinhostGetRequest)(nil),               // 6: chromite.api.BinhostGetRequest
	(*api.AclArgsRequest)(nil),                  // 7: chromite.api.AclArgsRequest
	(*api.PrepareBinhostUploadsRequest)(nil),    // 8: chromite.api.PrepareBinhostUploadsRequest
	(*api.SetBinhostRequest)(nil),               // 9: chromite.api.SetBinhostRequest
	(*api.RegenBuildCacheRequest)(nil),          // 10: chromite.api.RegenBuildCacheRequest
	(*api.GetBuildDependencyGraphRequest)(nil),  // 11: chromite.api.GetBuildDependencyGraphRequest
	(*api.CreateImageRequest)(nil),              // 12: chromite.api.CreateImageRequest
	(*api.TestImageRequest)(nil),                // 13: chromite.api.TestImageRequest
	(*api.CreateRequest)(nil),                   // 14: chromite.api.CreateRequest
	(*api.UpdateRequest)(nil),                   // 15: chromite.api.UpdateRequest
	(*api.SysrootCreateRequest)(nil),            // 16: chromite.api.SysrootCreateRequest
	(*api.InstallToolchainRequest)(nil),         // 17: chromite.api.InstallToolchainRequest
	(*api.BuildTargetUnitTestRequest)(nil),      // 18: chromite.api.BuildTargetUnitTestRequest
	(*api.ChromiteUnitTestRequest)(nil),         // 19: chromite.api.ChromiteUnitTestRequest
	(*api.DebugInfoTestRequest)(nil),            // 20: chromite.api.DebugInfoTestRequest
	(*api.VmTestRequest)(nil),                   // 21: chromite.api.VmTestRequest
	(*api.MoblabVmTestRequest)(nil),             // 22: chromite.api.MoblabVmTestRequest
	(*api.UprevPackagesRequest)(nil),            // 23: chromite.api.UprevPackagesRequest
	(*api.GetBestVisibleRequest)(nil),           // 24: chromite.api.GetBestVisibleRequest
	(*api.GetChromeVersionRequest)(nil),         // 25: chromite.api.GetChromeVersionRequest
	(*api.GetBuilderMetadataRequest)(nil),       // 26: chromite.api.GetBuilderMetadataRequest
	(*api.InstallPackagesResponse)(nil),         // 27: chromite.api.InstallPackagesResponse
	(*api.BundleResponse)(nil),                  // 28: chromite.api.BundleResponse
	(*api.BinhostGetResponse)(nil),              // 29: chromite.api.BinhostGetResponse
	(*api.AclArgsResponse)(nil),                 // 30: chromite.api.AclArgsResponse
	(*api.PrepareBinhostUploadsResponse)(nil),   // 31: chromite.api.PrepareBinhostUploadsResponse
	(*api.SetBinhostResponse)(nil),              // 32: chromite.api.SetBinhostResponse
	(*api.RegenBuildCacheResponse)(nil),         // 33: chromite.api.RegenBuildCacheResponse
	(*api.GetBuildDependencyGraphResponse)(nil), // 34: chromite.api.GetBuildDependencyGraphResponse
	(*api.CreateImageResult)(nil),               // 35: chromite.api.CreateImageResult
	(*api.TestImageResult)(nil),                 // 36: chromite.api.TestImageResult
	(*api.CreateResponse)(nil),                  // 37: chromite.api.CreateResponse
	(*api.UpdateResponse)(nil),                  // 38: chromite.api.UpdateResponse
	(*api.SysrootCreateResponse)(nil),           // 39: chromite.api.SysrootCreateResponse
	(*api.InstallToolchainResponse)(nil),        // 40: chromite.api.InstallToolchainResponse
	(*api.BuildTargetUnitTestResponse)(nil),     // 41: chromite.api.BuildTargetUnitTestResponse
	(*api.ChromiteUnitTestResponse)(nil),        // 42: chromite.api.ChromiteUnitTestResponse
	(*api.DebugInfoTestResponse)(nil),           // 43: chromite.api.DebugInfoTestResponse
	(*api.VmTestResponse)(nil),                  // 44: chromite.api.VmTestResponse
	(*api.MoblabVmTestResponse)(nil),            // 45: chromite.api.MoblabVmTestResponse
	(*api.UprevPackagesResponse)(nil),           // 46: chromite.api.UprevPackagesResponse
	(*api.GetBestVisibleResponse)(nil),          // 47: chromite.api.GetBestVisibleResponse
	(*api.GetChromeVersionResponse)(nil),        // 48: chromite.api.GetChromeVersionResponse
	(*api.GetBuilderMetadataResponse)(nil),      // 49: chromite.api.GetBuilderMetadataResponse
}
var file_analysis_service_analysis_service_proto_depIdxs = []int32{
	2,  // 0: analysis_service.AnalysisServiceEvent.request_time:type_name -> google.protobuf.Timestamp
	2,  // 1: analysis_service.AnalysisServiceEvent.response_time:type_name -> google.protobuf.Timestamp
	0,  // 2: analysis_service.AnalysisServiceEvent.step_execution_result:type_name -> analysis_service.StepExecutionResult
	3,  // 3: analysis_service.AnalysisServiceEvent.install_packages_request:type_name -> chromite.api.InstallPackagesRequest
	4,  // 4: analysis_service.AnalysisServiceEvent.bundle_request:type_name -> chromite.api.BundleRequest
	5,  // 5: analysis_service.AnalysisServiceEvent.bundle_vm_files_request:type_name -> chromite.api.BundleVmFilesRequest
	6,  // 6: analysis_service.AnalysisServiceEvent.binhost_get_request:type_name -> chromite.api.BinhostGetRequest
	7,  // 7: analysis_service.AnalysisServiceEvent.acl_args_request:type_name -> chromite.api.AclArgsRequest
	8,  // 8: analysis_service.AnalysisServiceEvent.prepare_binhost_uploads_request:type_name -> chromite.api.PrepareBinhostUploadsRequest
	9,  // 9: analysis_service.AnalysisServiceEvent.set_binhost_request:type_name -> chromite.api.SetBinhostRequest
	10, // 10: analysis_service.AnalysisServiceEvent.regen_build_cache_request:type_name -> chromite.api.RegenBuildCacheRequest
	11, // 11: analysis_service.AnalysisServiceEvent.get_build_dependency_graph_request:type_name -> chromite.api.GetBuildDependencyGraphRequest
	12, // 12: analysis_service.AnalysisServiceEvent.create_image_request:type_name -> chromite.api.CreateImageRequest
	13, // 13: analysis_service.AnalysisServiceEvent.test_image_request:type_name -> chromite.api.TestImageRequest
	14, // 14: analysis_service.AnalysisServiceEvent.create_request:type_name -> chromite.api.CreateRequest
	15, // 15: analysis_service.AnalysisServiceEvent.update_request:type_name -> chromite.api.UpdateRequest
	16, // 16: analysis_service.AnalysisServiceEvent.sysroot_create_request:type_name -> chromite.api.SysrootCreateRequest
	17, // 17: analysis_service.AnalysisServiceEvent.install_toolchain_request:type_name -> chromite.api.InstallToolchainRequest
	18, // 18: analysis_service.AnalysisServiceEvent.build_target_unit_test_request:type_name -> chromite.api.BuildTargetUnitTestRequest
	19, // 19: analysis_service.AnalysisServiceEvent.chromite_unit_test_request:type_name -> chromite.api.ChromiteUnitTestRequest
	20, // 20: analysis_service.AnalysisServiceEvent.debug_info_test_request:type_name -> chromite.api.DebugInfoTestRequest
	21, // 21: analysis_service.AnalysisServiceEvent.vm_test_request:type_name -> chromite.api.VmTestRequest
	22, // 22: analysis_service.AnalysisServiceEvent.moblab_vm_test_request:type_name -> chromite.api.MoblabVmTestRequest
	23, // 23: analysis_service.AnalysisServiceEvent.uprev_packages_request:type_name -> chromite.api.UprevPackagesRequest
	24, // 24: analysis_service.AnalysisServiceEvent.get_best_visible_request:type_name -> chromite.api.GetBestVisibleRequest
	25, // 25: analysis_service.AnalysisServiceEvent.get_chrome_version_request:type_name -> chromite.api.GetChromeVersionRequest
	26, // 26: analysis_service.AnalysisServiceEvent.get_builder_metadata_request:type_name -> chromite.api.GetBuilderMetadataRequest
	27, // 27: analysis_service.AnalysisServiceEvent.install_packages_response:type_name -> chromite.api.InstallPackagesResponse
	28, // 28: analysis_service.AnalysisServiceEvent.bundle_response:type_name -> chromite.api.BundleResponse
	29, // 29: analysis_service.AnalysisServiceEvent.binhost_get_response:type_name -> chromite.api.BinhostGetResponse
	30, // 30: analysis_service.AnalysisServiceEvent.acl_args_response:type_name -> chromite.api.AclArgsResponse
	31, // 31: analysis_service.AnalysisServiceEvent.prepare_binhost_uploads_response:type_name -> chromite.api.PrepareBinhostUploadsResponse
	32, // 32: analysis_service.AnalysisServiceEvent.set_binhost_response:type_name -> chromite.api.SetBinhostResponse
	33, // 33: analysis_service.AnalysisServiceEvent.regen_build_cache_response:type_name -> chromite.api.RegenBuildCacheResponse
	34, // 34: analysis_service.AnalysisServiceEvent.get_build_dependency_graph_response:type_name -> chromite.api.GetBuildDependencyGraphResponse
	35, // 35: analysis_service.AnalysisServiceEvent.create_image_result:type_name -> chromite.api.CreateImageResult
	36, // 36: analysis_service.AnalysisServiceEvent.test_image_result:type_name -> chromite.api.TestImageResult
	37, // 37: analysis_service.AnalysisServiceEvent.create_response:type_name -> chromite.api.CreateResponse
	38, // 38: analysis_service.AnalysisServiceEvent.update_response:type_name -> chromite.api.UpdateResponse
	39, // 39: analysis_service.AnalysisServiceEvent.sysroot_create_response:type_name -> chromite.api.SysrootCreateResponse
	40, // 40: analysis_service.AnalysisServiceEvent.install_toolchain_response:type_name -> chromite.api.InstallToolchainResponse
	41, // 41: analysis_service.AnalysisServiceEvent.build_target_unit_test_response:type_name -> chromite.api.BuildTargetUnitTestResponse
	42, // 42: analysis_service.AnalysisServiceEvent.chromite_unit_test_response:type_name -> chromite.api.ChromiteUnitTestResponse
	43, // 43: analysis_service.AnalysisServiceEvent.debug_info_test_response:type_name -> chromite.api.DebugInfoTestResponse
	44, // 44: analysis_service.AnalysisServiceEvent.vm_test_response:type_name -> chromite.api.VmTestResponse
	45, // 45: analysis_service.AnalysisServiceEvent.moblab_vm_test_response:type_name -> chromite.api.MoblabVmTestResponse
	46, // 46: analysis_service.AnalysisServiceEvent.uprev_packages_response:type_name -> chromite.api.UprevPackagesResponse
	47, // 47: analysis_service.AnalysisServiceEvent.get_best_visible_response:type_name -> chromite.api.GetBestVisibleResponse
	48, // 48: analysis_service.AnalysisServiceEvent.get_chrome_version_response:type_name -> chromite.api.GetChromeVersionResponse
	49, // 49: analysis_service.AnalysisServiceEvent.get_builder_metadata_response:type_name -> chromite.api.GetBuilderMetadataResponse
	50, // [50:50] is the sub-list for method output_type
	50, // [50:50] is the sub-list for method input_type
	50, // [50:50] is the sub-list for extension type_name
	50, // [50:50] is the sub-list for extension extendee
	0,  // [0:50] is the sub-list for field type_name
}

func init() { file_analysis_service_analysis_service_proto_init() }
func file_analysis_service_analysis_service_proto_init() {
	if File_analysis_service_analysis_service_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_analysis_service_analysis_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StepExecutionResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_analysis_service_analysis_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnalysisServiceEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_analysis_service_analysis_service_proto_msgTypes[1].OneofWrappers = []interface{}{
		(*AnalysisServiceEvent_InstallPackagesRequest)(nil),
		(*AnalysisServiceEvent_BundleRequest)(nil),
		(*AnalysisServiceEvent_BundleVmFilesRequest)(nil),
		(*AnalysisServiceEvent_BinhostGetRequest)(nil),
		(*AnalysisServiceEvent_AclArgsRequest)(nil),
		(*AnalysisServiceEvent_PrepareBinhostUploadsRequest)(nil),
		(*AnalysisServiceEvent_SetBinhostRequest)(nil),
		(*AnalysisServiceEvent_RegenBuildCacheRequest)(nil),
		(*AnalysisServiceEvent_GetBuildDependencyGraphRequest)(nil),
		(*AnalysisServiceEvent_CreateImageRequest)(nil),
		(*AnalysisServiceEvent_TestImageRequest)(nil),
		(*AnalysisServiceEvent_CreateRequest)(nil),
		(*AnalysisServiceEvent_UpdateRequest)(nil),
		(*AnalysisServiceEvent_SysrootCreateRequest)(nil),
		(*AnalysisServiceEvent_InstallToolchainRequest)(nil),
		(*AnalysisServiceEvent_BuildTargetUnitTestRequest)(nil),
		(*AnalysisServiceEvent_ChromiteUnitTestRequest)(nil),
		(*AnalysisServiceEvent_DebugInfoTestRequest)(nil),
		(*AnalysisServiceEvent_VmTestRequest)(nil),
		(*AnalysisServiceEvent_MoblabVmTestRequest)(nil),
		(*AnalysisServiceEvent_UprevPackagesRequest)(nil),
		(*AnalysisServiceEvent_GetBestVisibleRequest)(nil),
		(*AnalysisServiceEvent_GetChromeVersionRequest)(nil),
		(*AnalysisServiceEvent_GetBuilderMetadataRequest)(nil),
		(*AnalysisServiceEvent_InstallPackagesResponse)(nil),
		(*AnalysisServiceEvent_BundleResponse)(nil),
		(*AnalysisServiceEvent_BinhostGetResponse)(nil),
		(*AnalysisServiceEvent_AclArgsResponse)(nil),
		(*AnalysisServiceEvent_PrepareBinhostUploadsResponse)(nil),
		(*AnalysisServiceEvent_SetBinhostResponse)(nil),
		(*AnalysisServiceEvent_RegenBuildCacheResponse)(nil),
		(*AnalysisServiceEvent_GetBuildDependencyGraphResponse)(nil),
		(*AnalysisServiceEvent_CreateImageResult)(nil),
		(*AnalysisServiceEvent_TestImageResult)(nil),
		(*AnalysisServiceEvent_CreateResponse)(nil),
		(*AnalysisServiceEvent_UpdateResponse)(nil),
		(*AnalysisServiceEvent_SysrootCreateResponse)(nil),
		(*AnalysisServiceEvent_InstallToolchainResponse)(nil),
		(*AnalysisServiceEvent_BuildTargetUnitTestResponse)(nil),
		(*AnalysisServiceEvent_ChromiteUnitTestResponse)(nil),
		(*AnalysisServiceEvent_DebugInfoTestResponse)(nil),
		(*AnalysisServiceEvent_VmTestResponse)(nil),
		(*AnalysisServiceEvent_MoblabVmTestResponse)(nil),
		(*AnalysisServiceEvent_UprevPackagesResponse)(nil),
		(*AnalysisServiceEvent_GetBestVisibleResponse)(nil),
		(*AnalysisServiceEvent_GetChromeVersionResponse)(nil),
		(*AnalysisServiceEvent_GetBuilderMetadataResponse)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_analysis_service_analysis_service_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   2,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_analysis_service_analysis_service_proto_goTypes,
		DependencyIndexes: file_analysis_service_analysis_service_proto_depIdxs,
		MessageInfos:      file_analysis_service_analysis_service_proto_msgTypes,
	}.Build()
	File_analysis_service_analysis_service_proto = out.File
	file_analysis_service_analysis_service_proto_rawDesc = nil
	file_analysis_service_analysis_service_proto_goTypes = nil
	file_analysis_service_analysis_service_proto_depIdxs = nil
}
