pkg/apis/elasticsearch/v1/zz_generated.deepcopy.go (664 lines of code) (raw):

//go:build !ignore_autogenerated // Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one // or more contributor license agreements. Licensed under the Elastic License 2.0; // you may not use this file except in compliance with the Elastic License 2.0. // Code generated by controller-gen. DO NOT EDIT. package v1 import ( commonv1 "github.com/elastic/cloud-on-k8s/v3/pkg/apis/common/v1" "github.com/elastic/cloud-on-k8s/v3/pkg/apis/common/v1alpha1" corev1 "k8s.io/api/core/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Auth) DeepCopyInto(out *Auth) { *out = *in if in.Roles != nil { in, out := &in.Roles, &out.Roles *out = make([]RoleSource, len(*in)) copy(*out, *in) } if in.FileRealm != nil { in, out := &in.FileRealm, &out.FileRealm *out = make([]FileRealmSource, len(*in)) copy(*out, *in) } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Auth. func (in *Auth) DeepCopy() *Auth { if in == nil { return nil } out := new(Auth) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in AutoscaledNodeSets) DeepCopyInto(out *AutoscaledNodeSets) { { in := &in *out = make(AutoscaledNodeSets, len(*in)) for key, val := range *in { var outVal []NodeSet if val == nil { (*out)[key] = nil } else { inVal := (*in)[key] in, out := &inVal, &outVal *out = make(NodeSetList, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } (*out)[key] = outVal } } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoscaledNodeSets. func (in AutoscaledNodeSets) DeepCopy() AutoscaledNodeSets { if in == nil { return nil } out := new(AutoscaledNodeSets) in.DeepCopyInto(out) return *out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ChangeBudget) DeepCopyInto(out *ChangeBudget) { *out = *in if in.MaxUnavailable != nil { in, out := &in.MaxUnavailable, &out.MaxUnavailable *out = new(int32) **out = **in } if in.MaxSurge != nil { in, out := &in.MaxSurge, &out.MaxSurge *out = new(int32) **out = **in } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChangeBudget. func (in *ChangeBudget) DeepCopy() *ChangeBudget { if in == nil { return nil } out := new(ChangeBudget) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ClusterSettings) DeepCopyInto(out *ClusterSettings) { *out = *in if in.InitialMasterNodes != nil { in, out := &in.InitialMasterNodes, &out.InitialMasterNodes *out = make([]string, len(*in)) copy(*out, *in) } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSettings. func (in *ClusterSettings) DeepCopy() *ClusterSettings { if in == nil { return nil } out := new(ClusterSettings) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DownscaleOperation) DeepCopyInto(out *DownscaleOperation) { *out = *in in.LastUpdatedTime.DeepCopyInto(&out.LastUpdatedTime) if in.Nodes != nil { in, out := &in.Nodes, &out.Nodes *out = make([]DownscaledNode, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } if in.Stalled != nil { in, out := &in.Stalled, &out.Stalled *out = new(bool) **out = **in } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownscaleOperation. func (in *DownscaleOperation) DeepCopy() *DownscaleOperation { if in == nil { return nil } out := new(DownscaleOperation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DownscaledNode) DeepCopyInto(out *DownscaledNode) { *out = *in if in.Explanation != nil { in, out := &in.Explanation, &out.Explanation *out = new(string) **out = **in } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownscaledNode. func (in *DownscaledNode) DeepCopy() *DownscaledNode { if in == nil { return nil } out := new(DownscaledNode) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Elasticsearch) DeepCopyInto(out *Elasticsearch) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) in.Spec.DeepCopyInto(&out.Spec) in.Status.DeepCopyInto(&out.Status) if in.AssocConfs != nil { in, out := &in.AssocConfs, &out.AssocConfs *out = make(map[commonv1.ObjectSelector]commonv1.AssociationConf, len(*in)) for key, val := range *in { (*out)[key] = val } } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Elasticsearch. func (in *Elasticsearch) DeepCopy() *Elasticsearch { if in == nil { return nil } out := new(Elasticsearch) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. func (in *Elasticsearch) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } return nil } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ElasticsearchList) DeepCopyInto(out *ElasticsearchList) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items *out = make([]Elasticsearch, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticsearchList. func (in *ElasticsearchList) DeepCopy() *ElasticsearchList { if in == nil { return nil } out := new(ElasticsearchList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. func (in *ElasticsearchList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } return nil } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ElasticsearchSettings) DeepCopyInto(out *ElasticsearchSettings) { *out = *in if in.Node != nil { in, out := &in.Node, &out.Node *out = new(Node) (*in).DeepCopyInto(*out) } in.Cluster.DeepCopyInto(&out.Cluster) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticsearchSettings. func (in *ElasticsearchSettings) DeepCopy() *ElasticsearchSettings { if in == nil { return nil } out := new(ElasticsearchSettings) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ElasticsearchSpec) DeepCopyInto(out *ElasticsearchSpec) { *out = *in out.RemoteClusterServer = in.RemoteClusterServer in.HTTP.DeepCopyInto(&out.HTTP) in.Transport.DeepCopyInto(&out.Transport) if in.NodeSets != nil { in, out := &in.NodeSets, &out.NodeSets *out = make([]NodeSet, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) if in.PodDisruptionBudget != nil { in, out := &in.PodDisruptionBudget, &out.PodDisruptionBudget *out = new(commonv1.PodDisruptionBudgetTemplate) (*in).DeepCopyInto(*out) } in.Auth.DeepCopyInto(&out.Auth) if in.SecureSettings != nil { in, out := &in.SecureSettings, &out.SecureSettings *out = make([]commonv1.SecretSource, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } if in.RemoteClusters != nil { in, out := &in.RemoteClusters, &out.RemoteClusters *out = make([]RemoteCluster, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } in.Monitoring.DeepCopyInto(&out.Monitoring) if in.RevisionHistoryLimit != nil { in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit *out = new(int32) **out = **in } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticsearchSpec. func (in *ElasticsearchSpec) DeepCopy() *ElasticsearchSpec { if in == nil { return nil } out := new(ElasticsearchSpec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ElasticsearchStatus) DeepCopyInto(out *ElasticsearchStatus) { *out = *in if in.MonitoringAssociationsStatus != nil { in, out := &in.MonitoringAssociationsStatus, &out.MonitoringAssociationsStatus *out = make(commonv1.AssociationStatusMap, len(*in)) for key, val := range *in { (*out)[key] = val } } if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions *out = make(v1alpha1.Conditions, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } in.InProgressOperations.DeepCopyInto(&out.InProgressOperations) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticsearchStatus. func (in *ElasticsearchStatus) DeepCopy() *ElasticsearchStatus { if in == nil { return nil } out := new(ElasticsearchStatus) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EsMonitoringAssociation) DeepCopyInto(out *EsMonitoringAssociation) { *out = *in if in.Elasticsearch != nil { in, out := &in.Elasticsearch, &out.Elasticsearch *out = new(Elasticsearch) (*in).DeepCopyInto(*out) } out.ref = in.ref } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EsMonitoringAssociation. func (in *EsMonitoringAssociation) DeepCopy() *EsMonitoringAssociation { if in == nil { return nil } out := new(EsMonitoringAssociation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *FieldSecurity) DeepCopyInto(out *FieldSecurity) { *out = *in if in.Grant != nil { in, out := &in.Grant, &out.Grant *out = make([]string, len(*in)) copy(*out, *in) } if in.Except != nil { in, out := &in.Except, &out.Except *out = make([]string, len(*in)) copy(*out, *in) } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FieldSecurity. func (in *FieldSecurity) DeepCopy() *FieldSecurity { if in == nil { return nil } out := new(FieldSecurity) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *FileRealmSource) DeepCopyInto(out *FileRealmSource) { *out = *in out.SecretRef = in.SecretRef } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileRealmSource. func (in *FileRealmSource) DeepCopy() *FileRealmSource { if in == nil { return nil } out := new(FileRealmSource) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *InProgressOperations) DeepCopyInto(out *InProgressOperations) { *out = *in in.DownscaleOperation.DeepCopyInto(&out.DownscaleOperation) in.UpgradeOperation.DeepCopyInto(&out.UpgradeOperation) in.UpscaleOperation.DeepCopyInto(&out.UpscaleOperation) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InProgressOperations. func (in *InProgressOperations) DeepCopy() *InProgressOperations { if in == nil { return nil } out := new(InProgressOperations) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NewNode) DeepCopyInto(out *NewNode) { *out = *in if in.Message != nil { in, out := &in.Message, &out.Message *out = new(string) **out = **in } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NewNode. func (in *NewNode) DeepCopy() *NewNode { if in == nil { return nil } out := new(NewNode) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Node) DeepCopyInto(out *Node) { *out = *in if in.Master != nil { in, out := &in.Master, &out.Master *out = new(bool) **out = **in } if in.Data != nil { in, out := &in.Data, &out.Data *out = new(bool) **out = **in } if in.Ingest != nil { in, out := &in.Ingest, &out.Ingest *out = new(bool) **out = **in } if in.ML != nil { in, out := &in.ML, &out.ML *out = new(bool) **out = **in } if in.Transform != nil { in, out := &in.Transform, &out.Transform *out = new(bool) **out = **in } if in.RemoteClusterClient != nil { in, out := &in.RemoteClusterClient, &out.RemoteClusterClient *out = new(bool) **out = **in } if in.Roles != nil { in, out := &in.Roles, &out.Roles *out = make([]string, len(*in)) copy(*out, *in) } if in.VotingOnly != nil { in, out := &in.VotingOnly, &out.VotingOnly *out = new(bool) **out = **in } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Node. func (in *Node) DeepCopy() *Node { if in == nil { return nil } out := new(Node) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeSet) DeepCopyInto(out *NodeSet) { *out = *in if in.Config != nil { in, out := &in.Config, &out.Config *out = (*in).DeepCopy() } in.PodTemplate.DeepCopyInto(&out.PodTemplate) if in.VolumeClaimTemplates != nil { in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates *out = make([]corev1.PersistentVolumeClaim, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSet. func (in *NodeSet) DeepCopy() *NodeSet { if in == nil { return nil } out := new(NodeSet) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RemoteCluster) DeepCopyInto(out *RemoteCluster) { *out = *in out.ElasticsearchRef = in.ElasticsearchRef if in.APIKey != nil { in, out := &in.APIKey, &out.APIKey *out = new(RemoteClusterAPIKey) (*in).DeepCopyInto(*out) } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteCluster. func (in *RemoteCluster) DeepCopy() *RemoteCluster { if in == nil { return nil } out := new(RemoteCluster) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RemoteClusterAPIKey) DeepCopyInto(out *RemoteClusterAPIKey) { *out = *in in.Access.DeepCopyInto(&out.Access) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteClusterAPIKey. func (in *RemoteClusterAPIKey) DeepCopy() *RemoteClusterAPIKey { if in == nil { return nil } out := new(RemoteClusterAPIKey) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RemoteClusterAccess) DeepCopyInto(out *RemoteClusterAccess) { *out = *in if in.Search != nil { in, out := &in.Search, &out.Search *out = new(Search) (*in).DeepCopyInto(*out) } if in.Replication != nil { in, out := &in.Replication, &out.Replication *out = new(Replication) (*in).DeepCopyInto(*out) } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteClusterAccess. func (in *RemoteClusterAccess) DeepCopy() *RemoteClusterAccess { if in == nil { return nil } out := new(RemoteClusterAccess) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RemoteClusterServer) DeepCopyInto(out *RemoteClusterServer) { *out = *in } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteClusterServer. func (in *RemoteClusterServer) DeepCopy() *RemoteClusterServer { if in == nil { return nil } out := new(RemoteClusterServer) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Replication) DeepCopyInto(out *Replication) { *out = *in if in.Names != nil { in, out := &in.Names, &out.Names *out = make([]string, len(*in)) copy(*out, *in) } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Replication. func (in *Replication) DeepCopy() *Replication { if in == nil { return nil } out := new(Replication) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RoleSource) DeepCopyInto(out *RoleSource) { *out = *in out.SecretRef = in.SecretRef } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleSource. func (in *RoleSource) DeepCopy() *RoleSource { if in == nil { return nil } out := new(RoleSource) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Search) DeepCopyInto(out *Search) { *out = *in if in.Names != nil { in, out := &in.Names, &out.Names *out = make([]string, len(*in)) copy(*out, *in) } if in.FieldSecurity != nil { in, out := &in.FieldSecurity, &out.FieldSecurity *out = new(FieldSecurity) (*in).DeepCopyInto(*out) } if in.Query != nil { in, out := &in.Query, &out.Query *out = (*in).DeepCopy() } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Search. func (in *Search) DeepCopy() *Search { if in == nil { return nil } out := new(Search) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *SelfSignedTransportCertificates) DeepCopyInto(out *SelfSignedTransportCertificates) { *out = *in } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSignedTransportCertificates. func (in *SelfSignedTransportCertificates) DeepCopy() *SelfSignedTransportCertificates { if in == nil { return nil } out := new(SelfSignedTransportCertificates) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TransportConfig) DeepCopyInto(out *TransportConfig) { *out = *in in.Service.DeepCopyInto(&out.Service) in.TLS.DeepCopyInto(&out.TLS) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportConfig. func (in *TransportConfig) DeepCopy() *TransportConfig { if in == nil { return nil } out := new(TransportConfig) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TransportTLSOptions) DeepCopyInto(out *TransportTLSOptions) { *out = *in if in.SubjectAlternativeNames != nil { in, out := &in.SubjectAlternativeNames, &out.SubjectAlternativeNames *out = make([]commonv1.SubjectAlternativeName, len(*in)) copy(*out, *in) } out.Certificate = in.Certificate out.CertificateAuthorities = in.CertificateAuthorities if in.SelfSignedCertificates != nil { in, out := &in.SelfSignedCertificates, &out.SelfSignedCertificates *out = new(SelfSignedTransportCertificates) **out = **in } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportTLSOptions. func (in *TransportTLSOptions) DeepCopy() *TransportTLSOptions { if in == nil { return nil } out := new(TransportTLSOptions) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *UpdateStrategy) DeepCopyInto(out *UpdateStrategy) { *out = *in in.ChangeBudget.DeepCopyInto(&out.ChangeBudget) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdateStrategy. func (in *UpdateStrategy) DeepCopy() *UpdateStrategy { if in == nil { return nil } out := new(UpdateStrategy) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *UpgradeOperation) DeepCopyInto(out *UpgradeOperation) { *out = *in in.LastUpdatedTime.DeepCopyInto(&out.LastUpdatedTime) if in.Nodes != nil { in, out := &in.Nodes, &out.Nodes *out = make([]UpgradedNode, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradeOperation. func (in *UpgradeOperation) DeepCopy() *UpgradeOperation { if in == nil { return nil } out := new(UpgradeOperation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *UpgradedNode) DeepCopyInto(out *UpgradedNode) { *out = *in if in.Message != nil { in, out := &in.Message, &out.Message *out = new(string) **out = **in } if in.Predicate != nil { in, out := &in.Predicate, &out.Predicate *out = new(string) **out = **in } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradedNode. func (in *UpgradedNode) DeepCopy() *UpgradedNode { if in == nil { return nil } out := new(UpgradedNode) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *UpscaleOperation) DeepCopyInto(out *UpscaleOperation) { *out = *in in.LastUpdatedTime.DeepCopyInto(&out.LastUpdatedTime) if in.Nodes != nil { in, out := &in.Nodes, &out.Nodes *out = make([]NewNode, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpscaleOperation. func (in *UpscaleOperation) DeepCopy() *UpscaleOperation { if in == nil { return nil } out := new(UpscaleOperation) in.DeepCopyInto(out) return out }