From c8bd99a67350ec8d84098862a6613a2f8e6ecda5 Mon Sep 17 00:00:00 2001 From: jonesyang12 <130545229+jonesyang12@users.noreply.github.com> Date: Mon, 23 Oct 2023 10:04:05 +0800 Subject: [PATCH] feature: gameworkload rollout (#2697) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gameworkload rollout * patchType 修改 * 代码规范修改 --- .../cloudprovider/ladder/tasks/utils.go | 2 +- .../qcloud-public/business/node.go | 7 +- .../qcloud-public/business/tke.go | 2 +- .../qcloud-public/business/types.go | 3 +- .../cloudprovider/qcloud-public/nodemgr.go | 3 +- .../qcloud-public/tasks/utils.go | 1 + .../cloudprovider/qcloud-public/utils.go | 4 +- .../cloudprovider/qcloud-public/vpcmgr.go | 2 +- .../internal/cloudprovider/qcloud/api/node.go | 6 +- .../internal/cloudprovider/qcloud/api/tag.go | 6 +- .../cloudprovider/qcloud/api/utils.go | 2 - .../internal/cloudprovider/qcloud/api/vpc.go | 9 +- .../cloudprovider/qcloud/business/network.go | 7 +- .../qcloud/business/network_test.go | 4 +- .../cloudprovider/qcloud/business/node.go | 6 +- .../cloudprovider/qcloud/business/tke.go | 2 +- .../cloudprovider/qcloud/business/types.go | 3 +- .../internal/cloudprovider/qcloud/nodemgr.go | 3 +- .../cloudprovider/qcloud/tasks/utils.go | 1 + .../internal/cloudprovider/qcloud/vpcmgr.go | 2 +- .../internal/remote/cidrtree/cidr.go | 14 +- .../internal/remote/cidrtree/cidr_test.go | 5 +- .../internal/remote/cidrtree/interface.go | 2 +- .../internal/remote/cidrtree/utils.go | 10 +- bcs-services/cluster-resources/go.mod | 23 + .../pkg/action/resource/resource.go | 7 +- .../pkg/handler/customresource/cobj.go | 76 + .../pkg/resource/client/cobj.go | 368 + .../pkg/resource/client/history.go | 224 + .../cluster-resources/cluster-resources.pb.go | 11396 +++++----------- .../cluster-resources.pb.gw.go | 573 + .../cluster-resources.pb.micro.go | 87 + .../cluster-resources.pb.validate.go | 521 + .../cluster-resources/cluster-resources.proto | 98 + .../cluster-resources.swagger.json | 239 + .../cluster-resources_grpc.pb.go | 5833 ++++++++ 36 files changed, 11247 insertions(+), 8304 deletions(-) create mode 100644 bcs-services/cluster-resources/proto/cluster-resources/cluster-resources_grpc.pb.go diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/ladder/tasks/utils.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/ladder/tasks/utils.go index 1053d7f679..4358b7e6cd 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/ladder/tasks/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/ladder/tasks/utils.go @@ -16,9 +16,9 @@ import ( "context" "fmt" + "github.com/Tencent/bk-bcs/bcs-common/common/blog" "github.com/avast/retry-go" - "github.com/Tencent/bk-bcs/bcs-common/common/blog" proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/node.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/node.go index f1909a0b85..2cff7fc65e 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/node.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/node.go @@ -4,12 +4,13 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. */ +// Package business xxx package business import ( @@ -20,14 +21,14 @@ import ( "sync" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/common" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/remote/cmdb" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" - - cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" ) // GetCVMImageIDByImageName get image info by image name diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/tke.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/tke.go index 17155a5067..6996105d2b 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/tke.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/tke.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/types.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/types.go index 5227a9650c..09eebe0fdf 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/types.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business/types.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -16,6 +16,7 @@ import ( "strings" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/nodemgr.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/nodemgr.go index 3f315e99f5..bad315d612 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/nodemgr.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/nodemgr.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -20,6 +20,7 @@ import ( "sync" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/tasks/utils.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/tasks/utils.go index fb8626f703..a9bc60310f 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/tasks/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/tasks/utils.go @@ -19,6 +19,7 @@ import ( "github.com/Tencent/bk-bcs/bcs-common/common/blog" "github.com/Tencent/bk-bcs/bcs-common/pkg/odm/drivers" + cmproto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/business" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/utils.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/utils.go index 144765e5ab..79418eefa1 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/utils.go @@ -42,9 +42,9 @@ const ( // tkeCleanNodeTaskTemplate bk-sops add task template tkeCleanNodeTaskTemplate = "tke-remove node: %s" // tkeAddExternalNodeTaskTemplate bk-sops add task template - tkeAddExternalNodeTaskTemplate = "tke-add external node: %s" + tkeAddExternalNodeTaskTemplate = "tke-add external node: %s" // nolint // tkeCleanExternalNodeTaskTemplate bk-sops add task template - tkeCleanExternalNodeTaskTemplate = "tke-remove external node: %s" + tkeCleanExternalNodeTaskTemplate = "tke-remove external node: %s" // nolint // importClusterTaskTemplate bk-sops add task template importClusterTaskTemplate = "tke-import cluster: %s" // createNodeGroupTaskTemplate bk-sops add task template diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/vpcmgr.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/vpcmgr.go index 0d122e8857..6f206af1d8 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/vpcmgr.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud-public/vpcmgr.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/node.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/node.go index 5d8a4519d4..e9c47cc61a 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/node.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/node.go @@ -16,12 +16,12 @@ import ( "fmt" "github.com/Tencent/bk-bcs/bcs-common/common/blog" - "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" - "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" - "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" + + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" ) // GetCVMClient get cvm client from common option diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/tag.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/tag.go index 150f369c02..549befc6ee 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/tag.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/tag.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -14,11 +14,11 @@ package api import ( "github.com/Tencent/bk-bcs/bcs-common/common/blog" - "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" - "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" tag "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tag/v20180813" + + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" ) const ( diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/utils.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/utils.go index 4f6747a22e..c36973f490 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/utils.go @@ -26,8 +26,6 @@ import ( const ( limit = 100 - - maxFilterValues = 5 ) // FilterKey tke interface filterKey diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/vpc.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/vpc.go index cf7215d026..9147052e57 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/vpc.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api/vpc.go @@ -18,12 +18,12 @@ import ( "strconv" "github.com/Tencent/bk-bcs/bcs-common/common/blog" - "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" - "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" - "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312" + + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" ) // NewVPCClient init VPC client @@ -48,6 +48,7 @@ func NewVPCClient(opt *cloudprovider.CommonOption) (*VpcClient, error) { return &VpcClient{client: cli}, nil } +// VpcClient xxx type VpcClient struct { client *vpc.Client } @@ -275,7 +276,7 @@ func (v *VpcClient) CheckAssistantCidr(vpcId string, news []string, olds []strin req := vpc.NewCheckAssistantCidrRequest() req.VpcId = common.StringPtr(vpcId) req.NewCidrBlocks = common.StringPtrs(news) - //req.OldCidrBlocks = common.StringPtrs(olds) + // req.OldCidrBlocks = common.StringPtrs(olds) resp, err := v.client.CheckAssistantCidr(req) if err != nil { diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network.go index 36b96fa107..e6e44b3d46 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network.go @@ -4,24 +4,25 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. */ +// Package business xxx package business import ( "fmt" "net" + vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312" + "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/remote/cidrtree" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" - - vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312" ) // GetVpcCIDRBlocks 获取vpc所属的cidr段 diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network_test.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network_test.go index 6640b81d98..7892f7d8f9 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network_test.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/network_test.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -38,4 +38,4 @@ func TestAllocateSubnet(t *testing.T) { } t.Log(sub) -} \ No newline at end of file +} diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/node.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/node.go index f1909a0b85..fc99b1dd87 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/node.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/node.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -20,14 +20,14 @@ import ( "sync" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/common" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/remote/cmdb" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/utils" - - cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" ) // GetCVMImageIDByImageName get image info by image name diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/tke.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/tke.go index 02a1482d40..4da8bf1275 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/tke.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/tke.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/types.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/types.go index 5227a9650c..09eebe0fdf 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/types.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business/types.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -16,6 +16,7 @@ import ( "strings" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/nodemgr.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/nodemgr.go index 2581efd65e..2cdb149a2e 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/nodemgr.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/nodemgr.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -20,6 +20,7 @@ import ( "sync" "github.com/Tencent/bk-bcs/bcs-common/common/blog" + proto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/api" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/tasks/utils.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/tasks/utils.go index a5412e5339..ee3dfec2ae 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/tasks/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/tasks/utils.go @@ -19,6 +19,7 @@ import ( "github.com/Tencent/bk-bcs/bcs-common/common/blog" "github.com/Tencent/bk-bcs/bcs-common/pkg/odm/drivers" + cmproto "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/api/clustermanager" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider" "github.com/Tencent/bk-bcs/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/business" diff --git a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/vpcmgr.go b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/vpcmgr.go index 0d122e8857..6f206af1d8 100644 --- a/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/vpcmgr.go +++ b/bcs-services/bcs-cluster-manager/internal/cloudprovider/qcloud/vpcmgr.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. diff --git a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr.go b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr.go index b2cc54acd1..edcd70eff1 100644 --- a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr.go +++ b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr.go @@ -4,12 +4,13 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. */ +// Package cidrtree xxx package cidrtree import ( @@ -20,6 +21,7 @@ import ( "github.com/pkg/errors" ) +// ErrNoEnoughFreeSubnet xxx var ErrNoEnoughFreeSubnet = errors.New("no enough free subnet") // Mananger define interface to manage cidr @@ -40,10 +42,14 @@ func NewCidrManager(cidrBlock *net.IPNet, subnets []*net.IPNet) Mananger { } const ( + // NODE_UNUSED unused NODE_UNUSED byte = 0 - NODE_USED byte = 1 - NODE_SPLIT byte = 2 - NODE_FULL byte = 3 + // NODE_USED use + NODE_USED byte = 1 + // NODE_SPLIT split + NODE_SPLIT byte = 2 + // NODE_FULL fill + NODE_FULL byte = 3 // nolint ) type node struct { diff --git a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr_test.go b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr_test.go index 25bdc0b2ef..e70cc33a96 100644 --- a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr_test.go +++ b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/cidr_test.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -13,10 +13,9 @@ package cidrtree import ( - "testing" - "fmt" "net" + "testing" ) func TestNewCidrManager(t *testing.T) { diff --git a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/interface.go b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/interface.go index b4402bf142..9f3ed0f3f8 100644 --- a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/interface.go +++ b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/interface.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. diff --git a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/utils.go b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/utils.go index 51d2858e86..47d80d9066 100644 --- a/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/utils.go +++ b/bcs-services/bcs-cluster-manager/internal/remote/cidrtree/utils.go @@ -4,7 +4,7 @@ * Licensed under the MIT License (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, software distributed under, + * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. @@ -62,6 +62,7 @@ func GetFreeIPNets(allBlocks, allExistingSubnets []*net.IPNet) []*net.IPNet { exsits := filterSubnet(block, allExistingSubnets) man := NewCidrManager(block, exsits) + // nolint for _, free := range man.GetFrees() { allFrees = append(allFrees, free) } @@ -71,16 +72,17 @@ func GetFreeIPNets(allBlocks, allExistingSubnets []*net.IPNet) []*net.IPNet { // filterSubnet cidr filter allocated subnets func filterSubnet(cidrBlock *net.IPNet, subnets []*net.IPNet) []*net.IPNet { - var filterd []*net.IPNet + var filtered []*net.IPNet for _, subnet := range subnets { if cidrContains(cidrBlock, subnet) { - filterd = append(filterd, subnet) + filtered = append(filtered, subnet) } } - return filterd + return filtered } // subnet exist reserved cidrs +// nolint func inReserved(subnet *net.IPNet, reservedBlocks []*net.IPNet) bool { for _, r := range reservedBlocks { if cidrContains(r, subnet) { diff --git a/bcs-services/cluster-resources/go.mod b/bcs-services/cluster-resources/go.mod index bddb676390..0c365302b2 100644 --- a/bcs-services/cluster-resources/go.mod +++ b/bcs-services/cluster-resources/go.mod @@ -4,12 +4,33 @@ go 1.20 replace ( k8s.io/api => k8s.io/api v0.23.1 + k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.23.1 k8s.io/apimachinery => k8s.io/apimachinery v0.23.1 + k8s.io/apiserver => k8s.io/apiserver v0.23.1 k8s.io/cli-runtime => k8s.io/cli-runtime v0.23.1 k8s.io/client-go => k8s.io/client-go v0.23.1 + k8s.io/cloud-provider => k8s.io/cloud-provider v0.23.1 + k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.23.1 + k8s.io/code-generator => k8s.io/code-generator v0.23.1 + k8s.io/component-base => k8s.io/component-base v0.23.1 + k8s.io/component-helpers => k8s.io/component-helpers v0.23.1 + k8s.io/controller-manager => k8s.io/controller-manager v0.23.1 + k8s.io/cri-api => k8s.io/cri-api v0.23.1 + k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.23.1 + k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.23.1 + k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.23.1 k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 + k8s.io/kube-proxy => k8s.io/kube-proxy v0.23.1 + k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.23.1 k8s.io/kubectl => k8s.io/kubectl v0.23.1 k8s.io/kubectl/pkg/polymorphichelpers => k8s.io/kubectl/pkg/polymorphichelpers v0.26.1 + k8s.io/kubelet => k8s.io/kubelet v0.23.1 + k8s.io/kubernetes => k8s.io/kubernetes v1.23.1 + k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.23.1 + k8s.io/metrics => k8s.io/metrics v0.23.1 + k8s.io/mount-utils => k8s.io/mount-utils v0.23.1 + k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.23.1 + k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.23.1 sigs.k8s.io/kustomize/api => sigs.k8s.io/kustomize/api v0.10.1 sigs.k8s.io/kustomize/kyaml => sigs.k8s.io/kustomize/kyaml v0.13.0 sigs.k8s.io/structured-merge-diff/v4 => sigs.k8s.io/structured-merge-diff/v4 v4.3.0 @@ -211,6 +232,7 @@ require ( require ( github.com/Tencent/bk-bcs/bcs-common/pkg/audit v0.0.0-20230921024236-fc3b5f7e6d87 github.com/Tencent/bk-bcs/bcs-common/pkg/auth v0.0.0-20230921024236-fc3b5f7e6d87 + github.com/Tencent/bk-bcs/bcs-scenarios/kourse v0.0.0-20231011121510-d30829b961ad github.com/go-redis/redis/extra/redisotel/v8 v8.11.5 github.com/googleapis/gnostic v0.5.5 go.opentelemetry.io/contrib/instrumentation/go.mongodb.org/mongo-driver/mongo/otelmongo v0.44.0 @@ -249,6 +271,7 @@ require ( k8s.io/cli-runtime v0.28.0 // indirect k8s.io/component-base v0.28.0 // indirect k8s.io/klog v1.0.0 // indirect + k8s.io/kubernetes v0.0.0-00010101000000-000000000000 // indirect sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect sigs.k8s.io/kustomize/kyaml v0.14.2 // indirect ) diff --git a/bcs-services/cluster-resources/pkg/action/resource/resource.go b/bcs-services/cluster-resources/pkg/action/resource/resource.go index 0ef20c6b89..04789802ff 100644 --- a/bcs-services/cluster-resources/pkg/action/resource/resource.go +++ b/bcs-services/cluster-resources/pkg/action/resource/resource.go @@ -227,8 +227,13 @@ func (m *ResMgr) Restart( resCsts.UpdaterAnnoKey, username, formatter.WorkloadRestartAnnotationKey, metav1.Now().Format(time.RFC3339), formatter.WorkloadRestartVersionAnnotationKey, generation) + pt := types.StrategicMergePatchType + // 自定义资源的调度(patchType diff) + if m.GroupVersion == "tkex.tencent.com/v1alpha1" { + pt = types.MergePatchType + } return resp.BuildPatchAPIResp( - ctx, m.ClusterID, m.Kind, m.GroupVersion, namespace, name, types.StrategicMergePatchType, []byte(patchByte), + ctx, m.ClusterID, m.Kind, m.GroupVersion, namespace, name, pt, []byte(patchByte), opts, ) } diff --git a/bcs-services/cluster-resources/pkg/handler/customresource/cobj.go b/bcs-services/cluster-resources/pkg/handler/customresource/cobj.go index c82e5b0534..ba57affd48 100644 --- a/bcs-services/cluster-resources/pkg/handler/customresource/cobj.go +++ b/bcs-services/cluster-resources/pkg/handler/customresource/cobj.go @@ -215,3 +215,79 @@ func validateNSParam(ctx context.Context, crdInfo map[string]interface{}, namesp } return nil } + +// GetCObjHistoryRevision 获取自定义资源 history revision +func (h *Handler) GetCObjHistoryRevision(ctx context.Context, req *clusterRes.CObjHistoryReq, + resp *clusterRes.CommonListResp) error { + + crdInfo, err := cli.GetCRDInfo(ctx, req.ClusterID, req.CRDName) + if err != nil { + return err + } + if err = validateNSParam(ctx, crdInfo, req.Namespace); err != nil { + return err + } + if err = perm.CheckCObjAccess(ctx, req.ClusterID, req.CRDName, req.Namespace); err != nil { + return err + } + kind := crdInfo["kind"].(string) + + ret, err := cli.NewCRDCliByClusterID(ctx, req.ClusterID).HistoryRevision(ctx, kind, + req.Namespace, req.CobjName) + if err != nil { + return err + } + + resp.Data, err = pbstruct.MapSlice2ListValue(ret) + if err != nil { + return err + } + + return nil +} + +// RestartCObj 重新调度单个自定义资源 +func (h *Handler) RestartCObj(ctx context.Context, req *clusterRes.CObjRestartReq, resp *clusterRes.CommonResp) error { + crdInfo, err := cli.GetCRDInfo(ctx, req.ClusterID, req.CRDName) + if err != nil { + return err + } + if err = validateNSParam(ctx, crdInfo, req.Namespace); err != nil { + return err + } + if err = perm.CheckCObjAccess(ctx, req.ClusterID, req.CRDName, req.Namespace); err != nil { + return err + } + kind, apiVersion := crdInfo["kind"].(string), crdInfo["apiVersion"].(string) + + currentManifest, err := respUtil.BuildRetrieveAPIRespData(ctx, respUtil.GetParams{ + ClusterID: req.ClusterID, ResKind: kind, Namespace: req.Namespace, Name: req.CobjName, + }, metav1.GetOptions{}) + if err != nil { + return err + } + revision := mapx.GetInt64(currentManifest, "manifest.metadata.generation") + // 标记 revision 用来标识应用是否在重启状态 + resp.Data, err = resAction.NewResMgr(req.ClusterID, apiVersion, kind).Restart( + ctx, req.Namespace, req.CobjName, revision+1, metav1.PatchOptions{FieldManager: "kubectl-rollout"}, + ) + return err +} + +// RolloutCObj 回滚自定义资源 +func (h *Handler) RolloutCObj(ctx context.Context, req *clusterRes.CObjRolloutReq, _ *clusterRes.CommonResp) error { + crdInfo, err := cli.GetCRDInfo(ctx, req.ClusterID, req.CRDName) + if err != nil { + return err + } + if err = validateNSParam(ctx, crdInfo, req.Namespace); err != nil { + return err + } + if err = perm.CheckCObjAccess(ctx, req.ClusterID, req.CRDName, req.Namespace); err != nil { + return err + } + kind := crdInfo["kind"].(string) + + return cli.NewCRDCliByClusterID(ctx, req.ClusterID).RolloutRevision(ctx, req.Namespace, + req.CobjName, kind, req.Revision) +} diff --git a/bcs-services/cluster-resources/pkg/resource/client/cobj.go b/bcs-services/cluster-resources/pkg/resource/client/cobj.go index b34384cf40..8efcfe4208 100644 --- a/bcs-services/cluster-resources/pkg/resource/client/cobj.go +++ b/bcs-services/cluster-resources/pkg/resource/client/cobj.go @@ -13,16 +13,36 @@ package client import ( + "bytes" "context" + "encoding/json" + "fmt" + "strings" "sync" + "github.com/Tencent/bk-bcs/bcs-common/common/blog" + gameAppsv1 "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/apis/tkex/v1alpha1" + "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/client/clientset/versioned" + gameScheme "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/client/clientset/versioned/scheme" + "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/client/clientset/versioned/typed/tkex/v1alpha1" "golang.org/x/sync/errgroup" + appsv1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/kubernetes" + "k8s.io/kubectl/pkg/cmd/util" + "k8s.io/kubectl/pkg/describe" + "k8s.io/kubectl/pkg/polymorphichelpers" "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/cluster" + "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/common/action" "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/common/ctxkey" "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/common/errcode" conf "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/config" @@ -35,6 +55,11 @@ import ( "github.com/Tencent/bk-bcs/bcs-services/cluster-resources/pkg/util/slice" ) +const ( + rollbackSuccess = "rolled back" + rollbackSkipped = "skipped rollback" +) + // CRDClient xxx type CRDClient struct { ResClient @@ -110,6 +135,109 @@ func (c *CRDClient) Get(ctx context.Context, name string, opts metav1.GetOptions return ret.UnstructuredContent(), nil } +// HistoryRevision 获取自定义资源的history revision +func (c *CRDClient) HistoryRevision(ctx context.Context, kind, namespace, name string) ([]map[string]interface{}, + error) { + // permValidate IAM 权限校验 + if err := c.permValidate(ctx, action.List, namespace); err != nil { + return nil, err + } + + // 初始化 + m := make([]map[string]interface{}, 0) + + clientSet, err := kubernetes.NewForConfig(c.conf.Rest) + if err != nil { + return m, err + } + + gameClientSet, err := versioned.NewForConfig(c.conf.Rest) + if err != nil { + return m, err + } + + // 通过Group创建HistoryViewer + historyViewer, err := CustomHistoryViewerFor( + schema.GroupKind{Group: c.res.Group, Kind: kind}, clientSet, gameClientSet) + if err != nil { + return m, err + } + + // 获取 history + s, err := historyViewer.GetHistory(namespace, name) + if err != nil { + return m, err + } + + var versions []int64 + for k := range s { + versions = append(versions, k) + } + SortInts64Desc(versions) + + for _, v := range versions { + var unstructuredObj map[string]interface{} + unstructuredObj, err = runtime.DefaultUnstructuredConverter.ToUnstructured(s[v]) + if err != nil { + blog.Errorf("convert to unstructured failed, err %s", err.Error()) + continue + } + ret := formatter.FormatWorkloadRes(unstructuredObj) + ret["revision"] = v + m = append(m, ret) + } + return m, err +} + +// RolloutRevision 自定义资源回滚history revision +func (c *CRDClient) RolloutRevision(ctx context.Context, namespace, name, kind string, revision int64) error { + // permValidate IAM 权限校验 + if err := c.permValidate(ctx, action.Update, namespace); err != nil { + return err + } + clientSet, err := kubernetes.NewForConfig(c.conf.Rest) + if err != nil { + return err + } + gameClientSet, err := versioned.NewForConfig(c.conf.Rest) + if err != nil { + return err + } + gameCli := gameClientSet.TkexV1alpha1() + // 根据kind获取对应资源客户端 + var deploy interface{} + var rollBacker polymorphichelpers.Rollbacker + switch strings.ToLower(kind) { + case "gamedeployment": + rollBacker = &GameDeploymentRollbacker{ + c: clientSet, + g: gameCli, + } + deploy, err = gameCli.GameDeployments(namespace).Get(ctx, name, metav1.GetOptions{}) + if err != nil { + return err + } + case "gamestatefulset": + rollBacker = &GameStatefulSetRollbacker{ + c: clientSet, + g: gameCli, + } + deploy, err = gameCli.GameStatefulSets(namespace).Get(ctx, name, metav1.GetOptions{}) + if err != nil { + return err + } + default: + return fmt.Errorf("%s kind doesn't exist", kind) + } + + object, ok := deploy.(runtime.Object) + if !ok { + return fmt.Errorf("%s Type assertion failed", kind) + } + _, err = rollBacker.Rollback(object, nil, revision, util.DryRunNone) + return err +} + // Watch xxx func (c *CRDClient) Watch( ctx context.Context, clusterType string, opts metav1.ListOptions, @@ -202,3 +330,243 @@ func GetCObjManifest( } return ret.UnstructuredContent(), nil } + +// GameDeploymentRollbacker gameDeployment rollback +type GameDeploymentRollbacker struct { + c kubernetes.Interface + g v1alpha1.TkexV1alpha1Interface +} + +// Rollback toRevision a non-negative integer, with 0 being reserved to indicate rolling back to previous configuration +func (r *GameDeploymentRollbacker) Rollback(obj runtime.Object, updatedAnnotations map[string]string, toRevision int64, + dryRunStrategy util.DryRunStrategy) (string, error) { + if toRevision < 0 { + return "", fmt.Errorf("unable to find specified revision %v in history", r) + } + accessor, err := meta.Accessor(obj) + if err != nil { + return "", fmt.Errorf("failed to create accessor for kind %v: %s", obj.GetObjectKind(), err.Error()) + } + ds, history, err := gameDeploymentHistory(r.c.AppsV1(), r.g, accessor.GetNamespace(), accessor.GetName()) + if err != nil { + return "", err + } + if toRevision == 0 && len(history) <= 1 { + return "", fmt.Errorf("no last revision to roll back to") + } + + toHistory := findHistory(toRevision, history) + if toHistory == nil { + return "", fmt.Errorf("unable to find specified revision %v in history", r) + } + + if dryRunStrategy == util.DryRunClient { + // nolint + appliedSS, err := gDSApplyRevision(ds, toHistory) + if err != nil { + return "", err + } + return printPodTemplate(&appliedSS.Spec.Template) + } + + // Skip if the revision already matches current StatefulSet + done, err := gameDeploymentMatch(ds, toHistory) + if err != nil { + return "", err + } + if done { + return fmt.Sprintf("%s (current template already matches revision %d)", rollbackSkipped, toRevision), nil + } + + patchOptions := metav1.PatchOptions{} + if dryRunStrategy == util.DryRunServer { + patchOptions.DryRun = []string{metav1.DryRunAll} + } + // Restore revision + if _, err = r.g.GameDeployments(ds.Namespace).Patch(context.TODO(), ds.Name, types.MergePatchType, + toHistory.Data.Raw, patchOptions); err != nil { + return "", fmt.Errorf("failed restoring revision %d: %v", toRevision, err) + } + + return rollbackSuccess, nil +} + +// GameStatefulSetRollbacker gameStatefulSet rollback +type GameStatefulSetRollbacker struct { + c kubernetes.Interface + g v1alpha1.TkexV1alpha1Interface +} + +// Rollback toRevision a non-negative integer, with 0 being reserved to indicate rolling back to previous configuration +func (r *GameStatefulSetRollbacker) Rollback(obj runtime.Object, updatedAnnotations map[string]string, toRevision int64, + dryRunStrategy util.DryRunStrategy) (string, error) { + if toRevision < 0 { + return "", fmt.Errorf("unable to find specified revision %v in history", toRevision) + } + accessor, err := meta.Accessor(obj) + if err != nil { + return "", fmt.Errorf("failed to create accessor for kind %v: %s", obj.GetObjectKind(), err.Error()) + } + sts, history, err := gameStatefulSetHistory(r.c.AppsV1(), r.g, accessor.GetNamespace(), accessor.GetName()) + if err != nil { + return "", err + } + if toRevision == 0 && len(history) <= 1 { + return "", fmt.Errorf("no last revision to roll back to") + } + + toHistory := findHistory(toRevision, history) + if toHistory == nil { + return "", fmt.Errorf("unable to find specified revision %v in history", toRevision) + } + + if dryRunStrategy == util.DryRunClient { + // nolint + appliedSS, err := gSTSApplyRevision(sts, toHistory) + if err != nil { + return "", err + } + return printPodTemplate(&appliedSS.Spec.Template) + } + + // Skip if the revision already matches current StatefulSet + done, err := gameStatefulSetMatch(sts, toHistory) + if err != nil { + return "", err + } + if done { + return fmt.Sprintf("%s (current template already matches revision %d)", rollbackSkipped, toRevision), nil + } + + patchOptions := metav1.PatchOptions{} + if dryRunStrategy == util.DryRunServer { + patchOptions.DryRun = []string{metav1.DryRunAll} + } + // Restore revision + if _, err = r.g.GameStatefulSets(sts.Namespace).Patch(context.TODO(), sts.Name, types.MergePatchType, + toHistory.Data.Raw, patchOptions); err != nil { + return "", fmt.Errorf("failed restoring revision %d: %v", toRevision, err) + } + + return rollbackSuccess, nil +} + +var appsCodec = gameScheme.Codecs.LegacyCodec(gameAppsv1.GroupVersion) + +// gDSApplyRevision returns a new GameDeployment constructed by restoring the state in revision to set. +// If the returned error is nil, the returned GameDeployment is valid. +func gDSApplyRevision(set *gameAppsv1.GameDeployment, revision *appsv1.ControllerRevision) (*gameAppsv1.GameDeployment, + error) { + patched, err := strategicpatch.StrategicMergePatch([]byte(runtime.EncodeOrDie(appsCodec, set)), + revision.Data.Raw, set) + if err != nil { + return nil, err + } + result := &gameAppsv1.GameDeployment{} + err = json.Unmarshal(patched, result) + if err != nil { + return nil, err + } + return result, nil +} + +// gSTSApplyRevision returns a new GameStatefulSet constructed by restoring the state in revision to set. +// If the returned error is nil, the returned GameStatefulSet is valid. +func gSTSApplyRevision(set *gameAppsv1.GameStatefulSet, + revision *appsv1.ControllerRevision) (*gameAppsv1.GameStatefulSet, error) { + patched, err := strategicpatch.StrategicMergePatch([]byte(runtime.EncodeOrDie(appsCodec, set)), + revision.Data.Raw, set) + if err != nil { + return nil, err + } + result := &gameAppsv1.GameStatefulSet{} + err = json.Unmarshal(patched, result) + if err != nil { + return nil, err + } + return result, nil +} + +// gameDeploymentMatch check if the given Deployment's template matches the template stored in the given history. +func gameDeploymentMatch(ss *gameAppsv1.GameDeployment, history *appsv1.ControllerRevision) (bool, error) { + patch, err := getGameDeploymentPatch(ss) + if err != nil { + return false, err + } + return bytes.Equal(patch, history.Data.Raw), nil +} + +// gameStatefulSetMatch check if the given StatefulSet's template matches the template stored in the given history. +func gameStatefulSetMatch(ss *gameAppsv1.GameStatefulSet, history *appsv1.ControllerRevision) (bool, error) { + patch, err := getGameStatefulSetPatch(ss) + if err != nil { + return false, err + } + return bytes.Equal(patch, history.Data.Raw), nil +} + +// getStatefulSetPatch returns a strategic merge patch that can be applied to restore a Deployment to a +// previous version. If the returned error is nil the patch is valid. The current state that we save is just the +// PodSpecTemplate. We can modify this later to encompass more state (or less) and remain compatible with previously +// recorded patches. +func getGameDeploymentPatch(set *gameAppsv1.GameDeployment) ([]byte, error) { + str, err := runtime.Encode(appsCodec, set) + if err != nil { + return nil, err + } + var raw map[string]interface{} + if err = json.Unmarshal(str, &raw); err != nil { + return nil, err + } + objCopy := make(map[string]interface{}) + specCopy := make(map[string]interface{}) + spec := raw["spec"].(map[string]interface{}) + template := spec["template"].(map[string]interface{}) + specCopy["template"] = template + template["$patch"] = "replace" + objCopy["spec"] = specCopy + patch, err := json.Marshal(objCopy) + return patch, err +} + +// getGameStatefulSetPatch returns a strategic merge patch that can be applied to restore a StatefulSet to a +// previous version. If the returned error is nil the patch is valid. The current state that we save is just the +// PodSpecTemplate. We can modify this later to encompass more state (or less) and remain compatible with previously +// recorded patches. +func getGameStatefulSetPatch(set *gameAppsv1.GameStatefulSet) ([]byte, error) { + str, err := runtime.Encode(appsCodec, set) + if err != nil { + return nil, err + } + var raw map[string]interface{} + if err = json.Unmarshal(str, &raw); err != nil { + return nil, err + } + objCopy := make(map[string]interface{}) + specCopy := make(map[string]interface{}) + spec := raw["spec"].(map[string]interface{}) + template := spec["template"].(map[string]interface{}) + specCopy["template"] = template + template["$patch"] = "replace" + objCopy["spec"] = specCopy + patch, err := json.Marshal(objCopy) + return patch, err +} + +// printPodTemplate converts a given pod template into a human-readable string. +func printPodTemplate(specTemplate *corev1.PodTemplateSpec) (string, error) { + podSpec, err := printTemplate(specTemplate) + if err != nil { + return "", err + } + return fmt.Sprintf("will roll back to %s", podSpec), nil +} + +// NOCC:golint/unparam(设计如此) +// nolint +func printTemplate(template *corev1.PodTemplateSpec) (string, error) { + buf := bytes.NewBuffer([]byte{}) + w := describe.NewPrefixWriter(buf) + describe.DescribePodTemplate(template, w) + return buf.String(), nil +} diff --git a/bcs-services/cluster-resources/pkg/resource/client/history.go b/bcs-services/cluster-resources/pkg/resource/client/history.go index 1cc3c7695b..0454d73588 100644 --- a/bcs-services/cluster-resources/pkg/resource/client/history.go +++ b/bcs-services/cluster-resources/pkg/resource/client/history.go @@ -17,8 +17,12 @@ import ( "context" "fmt" "io" + "sort" "text/tabwriter" + gameAppsv1 "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/apis/tkex/v1alpha1" + "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/client/clientset/versioned" + "github.com/Tencent/bk-bcs/bcs-scenarios/kourse/pkg/client/clientset/versioned/typed/tkex/v1alpha1" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" @@ -86,6 +90,26 @@ func (v *HistoryVisitor) VisitReplicationController(kind apps.GroupKindElement) // VisitCronJob visits a cronjob func (v *HistoryVisitor) VisitCronJob(kind apps.GroupKindElement) {} +// CustomHistoryViewerFor returns an implementation of HistoryViewer interface for the given schema kind +func CustomHistoryViewerFor(kind schema.GroupKind, c kubernetes.Interface, g versioned.Interface) ( + HistoryViewer, error) { + elem := apps.GroupKindElement(kind) + var historyViwer HistoryViewer + switch { + case elem.GroupMatch("apiextensions.k8s.io") && elem.Kind == "GameDeployment": + historyViwer = &GameDeploymentHistoryViewer{c: c, g: g.TkexV1alpha1()} + case elem.GroupMatch("apiextensions.k8s.io") && elem.Kind == "GameStatefulSet": + historyViwer = &GameStatefulSetHistoryViewer{c: c, g: g.TkexV1alpha1()} + default: + historyViwer = nil + } + + if historyViwer == nil { + return nil, fmt.Errorf("%q is not custom resource, has no history view", kind.String()) + } + return historyViwer, nil +} + // HistoryViewerFor returns an implementation of HistoryViewer interface for the given schema kind func HistoryViewerFor(kind schema.GroupKind, c kubernetes.Interface) (HistoryViewer, error) { elem := apps.GroupKindElement(kind) @@ -107,6 +131,87 @@ func HistoryViewerFor(kind schema.GroupKind, c kubernetes.Interface) (HistoryVie return visitor.result, nil } +// GameStatefulSetHistoryViewer is an implementation of HistoryViewer for GameStatefulSet +type GameStatefulSetHistoryViewer struct { + c kubernetes.Interface + g v1alpha1.TkexV1alpha1Interface +} + +// ViewHistory returns a list of the revision history of a statefulset +// DOTO: this should be a describer +func (h *GameStatefulSetHistoryViewer) ViewHistory(namespace, name string, revision int64) (string, error) { + sts, history, err := gameStatefulSetHistory(h.c.AppsV1(), h.g, namespace, name) + if err != nil { + return "", err + } + return printHistory(history, revision, func(history *appsv1.ControllerRevision) (*corev1.PodTemplateSpec, error) { + stsOfHistory, err := applyGameStatefulSetHistory(sts, history) + if err != nil { + return nil, err + } + return &stsOfHistory.Spec.Template, err + }) +} + +// GetHistory returns the revisions associated with a StatefulSet +func (h *GameStatefulSetHistoryViewer) GetHistory(namespace, name string) (map[int64]runtime.Object, error) { + sts, history, err := gameStatefulSetHistory(h.c.AppsV1(), h.g, namespace, name) + if err != nil { + return nil, err + } + + result := make(map[int64]runtime.Object) + for _, h := range history { + applied, err := applyGameStatefulSetHistory(sts, h) + if err != nil { + return nil, err + } + result[h.Revision] = applied + } + + return result, nil +} + +// GameDeploymentHistoryViewer is an implementation of HistoryViewer for GameDeployment +type GameDeploymentHistoryViewer struct { + c kubernetes.Interface + g v1alpha1.TkexV1alpha1Interface +} + +// ViewHistory returns a list of the revision history of a GameDeployment +func (h *GameDeploymentHistoryViewer) ViewHistory(namespace, name string, revision int64) (string, error) { + ds, history, err := gameDeploymentHistory(h.c.AppsV1(), h.g, namespace, name) + if err != nil { + return "", err + } + return printHistory(history, revision, func(history *appsv1.ControllerRevision) (*corev1.PodTemplateSpec, error) { + dsOfHistory, err := applyGameDeploymentHistory(ds, history) + if err != nil { + return nil, err + } + return &dsOfHistory.Spec.Template, err + }) +} + +// GetHistory returns the revisions associated with a GameDeployment +func (h *GameDeploymentHistoryViewer) GetHistory(namespace, name string) (map[int64]runtime.Object, error) { + ds, history, err := gameDeploymentHistory(h.c.AppsV1(), h.g, namespace, name) + if err != nil { + return nil, err + } + + result := make(map[int64]runtime.Object) + for _, h := range history { + applied, err := applyGameDeploymentHistory(ds, h) + if err != nil { + return nil, err + } + result[h.Revision] = applied + } + + return result, nil +} + // DeploymentHistoryViewer is an implementation of HistoryViewer for deployments type DeploymentHistoryViewer struct { c kubernetes.Interface @@ -444,6 +549,53 @@ func statefulSetHistory( return sts, history, nil } +// statefulSetHistory returns the StatefulSet named name in namespace and all ControllerRevisions in its history. +func gameStatefulSetHistory( + apps clientappsv1.AppsV1Interface, + gapps v1alpha1.TkexV1alpha1Interface, + namespace, name string) (*gameAppsv1.GameStatefulSet, []*appsv1.ControllerRevision, error) { + sts, err := gapps.GameStatefulSets(namespace).Get(context.TODO(), name, metav1.GetOptions{}) + if err != nil { + return nil, nil, fmt.Errorf("failed to retrieve gameStatefulSet %s: %s", name, err.Error()) + } + selector, err := metav1.LabelSelectorAsSelector(sts.Spec.Selector) + if err != nil { + return nil, nil, fmt.Errorf("failed to create selector for gameStatefulSet %s: %s", name, err.Error()) + } + accessor, err := meta.Accessor(sts) + if err != nil { + return nil, nil, fmt.Errorf("failed to obtain accessor for gameStatefulSet %s: %s", name, err.Error()) + } + history, err := controlledHistoryV1(apps, namespace, selector, accessor) + if err != nil { + return nil, nil, fmt.Errorf("unable to find history controlled by gameStatefulSet %s: %v", name, err) + } + return sts, history, nil +} + +func gameDeploymentHistory( + apps clientappsv1.AppsV1Interface, + gapps v1alpha1.TkexV1alpha1Interface, + namespace, name string) (*gameAppsv1.GameDeployment, []*appsv1.ControllerRevision, error) { + ds, err := gapps.GameDeployments(namespace).Get(context.TODO(), name, metav1.GetOptions{}) + if err != nil { + return nil, nil, fmt.Errorf("failed to retrieve gameDeployment %s: %s", name, err.Error()) + } + selector, err := metav1.LabelSelectorAsSelector(ds.Spec.Selector) + if err != nil { + return nil, nil, fmt.Errorf("failed to create selector for gameDeployment %s: %s", name, err.Error()) + } + accessor, err := meta.Accessor(ds) + if err != nil { + return nil, nil, fmt.Errorf("failed to obtain accessor for gameDeployment %s: %s", name, err.Error()) + } + history, err := controlledHistoryV1(apps, namespace, selector, accessor) + if err != nil { + return nil, nil, fmt.Errorf("unable to find history controlled by gameDeployment %s: %v", name, err) + } + return ds, history, nil +} + // applyDaemonSetHistory returns a specific revision of DaemonSet by applying the given history to a copy of // the given DaemonSet func applyDaemonSetHistory(ds *appsv1.DaemonSet, history *appsv1.ControllerRevision) (*appsv1.DaemonSet, error) { @@ -482,6 +634,78 @@ func applyStatefulSetHistory(sts *appsv1.StatefulSet, history *appsv1.Controller return result, nil } +// applyGameStatefulSetHistory returns a specific revision by applying the given history to a copy of the given workload +func applyGameStatefulSetHistory(sts interface{}, history *appsv1.ControllerRevision) (*gameAppsv1.GameStatefulSet, + error) { + stsBytes, err := json.Marshal(sts) + if err != nil { + return nil, err + } + patched, err := strategicpatch.StrategicMergePatch(stsBytes, history.Data.Raw, sts) + if err != nil { + return nil, err + } + result := &gameAppsv1.GameStatefulSet{} + err = json.Unmarshal(patched, result) + if err != nil { + return nil, err + } + return result, nil +} + +// applyGameStatefulSetHistory returns a specific revision by applying the given history to a copy of the given workload +func applyGameDeploymentHistory(sts interface{}, history *appsv1.ControllerRevision) (*gameAppsv1.GameDeployment, + error) { + stsBytes, err := json.Marshal(sts) + if err != nil { + return nil, err + } + patched, err := strategicpatch.StrategicMergePatch(stsBytes, history.Data.Raw, sts) + if err != nil { + return nil, err + } + result := &gameAppsv1.GameDeployment{} + err = json.Unmarshal(patched, result) + if err != nil { + return nil, err + } + return result, nil +} + +type historiesByRevision []*appsv1.ControllerRevision + +func (h historiesByRevision) Len() int { return len(h) } +func (h historiesByRevision) Swap(i, j int) { h[i], h[j] = h[j], h[i] } +func (h historiesByRevision) Less(i, j int) bool { + return h[i].Revision < h[j].Revision +} + +// findHistory returns a controllerrevision of a specific revision from the given controllerrevisions. +// It returns nil if no such controllerrevision exists. +// If toRevision is 0, the last previously used history is returned. +func findHistory(toRevision int64, allHistory []*appsv1.ControllerRevision) *appsv1.ControllerRevision { + if toRevision == 0 && len(allHistory) <= 1 { + return nil + } + + // Find the history to rollback to + var toHistory *appsv1.ControllerRevision + if toRevision == 0 { + // If toRevision == 0, find the latest revision (2nd max) + sort.Sort(historiesByRevision(allHistory)) + toHistory = allHistory[len(allHistory)-2] + } else { + for _, h := range allHistory { + if h.Revision == toRevision { + // If toRevision != 0, find the history with matching revision + return h + } + } + } + + return toHistory +} + // DOTO: copied here until this becomes a describer // nolint func tabbedString(f func(io.Writer) error) (string, error) { diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.go b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.go index 64ad3e59a5..6c440b8a21 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.go +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.go @@ -12,21 +12,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.20.3 +// protoc-gen-go v1.31.0 +// protoc v4.22.0 // source: cluster-resources.proto package clusterresources import ( - context "context" _ "github.com/envoyproxy/protoc-gen-validate/validate" _struct "github.com/golang/protobuf/ptypes/struct" _ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options" _ "google.golang.org/genproto/googleapis/api/annotations" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -1815,6 +1811,251 @@ func (x *CObjGetReq) GetFormat() string { return "" } +type CObjHistoryReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectID string `protobuf:"bytes,1,opt,name=projectID,proto3" json:"projectID,omitempty"` + ClusterID string `protobuf:"bytes,2,opt,name=clusterID,proto3" json:"clusterID,omitempty"` + CRDName string `protobuf:"bytes,3,opt,name=CRDName,proto3" json:"CRDName,omitempty"` + CobjName string `protobuf:"bytes,4,opt,name=cobjName,proto3" json:"cobjName,omitempty"` + Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` +} + +func (x *CObjHistoryReq) Reset() { + *x = CObjHistoryReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cluster_resources_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CObjHistoryReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CObjHistoryReq) ProtoMessage() {} + +func (x *CObjHistoryReq) ProtoReflect() protoreflect.Message { + mi := &file_cluster_resources_proto_msgTypes[25] + 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 CObjHistoryReq.ProtoReflect.Descriptor instead. +func (*CObjHistoryReq) Descriptor() ([]byte, []int) { + return file_cluster_resources_proto_rawDescGZIP(), []int{25} +} + +func (x *CObjHistoryReq) GetProjectID() string { + if x != nil { + return x.ProjectID + } + return "" +} + +func (x *CObjHistoryReq) GetClusterID() string { + if x != nil { + return x.ClusterID + } + return "" +} + +func (x *CObjHistoryReq) GetCRDName() string { + if x != nil { + return x.CRDName + } + return "" +} + +func (x *CObjHistoryReq) GetCobjName() string { + if x != nil { + return x.CobjName + } + return "" +} + +func (x *CObjHistoryReq) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +type CObjRestartReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectID string `protobuf:"bytes,1,opt,name=projectID,proto3" json:"projectID,omitempty"` + ClusterID string `protobuf:"bytes,2,opt,name=clusterID,proto3" json:"clusterID,omitempty"` + CRDName string `protobuf:"bytes,3,opt,name=CRDName,proto3" json:"CRDName,omitempty"` + CobjName string `protobuf:"bytes,4,opt,name=cobjName,proto3" json:"cobjName,omitempty"` + Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` +} + +func (x *CObjRestartReq) Reset() { + *x = CObjRestartReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cluster_resources_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CObjRestartReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CObjRestartReq) ProtoMessage() {} + +func (x *CObjRestartReq) ProtoReflect() protoreflect.Message { + mi := &file_cluster_resources_proto_msgTypes[26] + 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 CObjRestartReq.ProtoReflect.Descriptor instead. +func (*CObjRestartReq) Descriptor() ([]byte, []int) { + return file_cluster_resources_proto_rawDescGZIP(), []int{26} +} + +func (x *CObjRestartReq) GetProjectID() string { + if x != nil { + return x.ProjectID + } + return "" +} + +func (x *CObjRestartReq) GetClusterID() string { + if x != nil { + return x.ClusterID + } + return "" +} + +func (x *CObjRestartReq) GetCRDName() string { + if x != nil { + return x.CRDName + } + return "" +} + +func (x *CObjRestartReq) GetCobjName() string { + if x != nil { + return x.CobjName + } + return "" +} + +func (x *CObjRestartReq) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +type CObjRolloutReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProjectID string `protobuf:"bytes,1,opt,name=projectID,proto3" json:"projectID,omitempty"` + ClusterID string `protobuf:"bytes,2,opt,name=clusterID,proto3" json:"clusterID,omitempty"` + CRDName string `protobuf:"bytes,3,opt,name=CRDName,proto3" json:"CRDName,omitempty"` + CobjName string `protobuf:"bytes,4,opt,name=cobjName,proto3" json:"cobjName,omitempty"` + Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` + Revision int64 `protobuf:"varint,6,opt,name=revision,proto3" json:"revision,omitempty"` +} + +func (x *CObjRolloutReq) Reset() { + *x = CObjRolloutReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cluster_resources_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CObjRolloutReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CObjRolloutReq) ProtoMessage() {} + +func (x *CObjRolloutReq) ProtoReflect() protoreflect.Message { + mi := &file_cluster_resources_proto_msgTypes[27] + 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 CObjRolloutReq.ProtoReflect.Descriptor instead. +func (*CObjRolloutReq) Descriptor() ([]byte, []int) { + return file_cluster_resources_proto_rawDescGZIP(), []int{27} +} + +func (x *CObjRolloutReq) GetProjectID() string { + if x != nil { + return x.ProjectID + } + return "" +} + +func (x *CObjRolloutReq) GetClusterID() string { + if x != nil { + return x.ClusterID + } + return "" +} + +func (x *CObjRolloutReq) GetCRDName() string { + if x != nil { + return x.CRDName + } + return "" +} + +func (x *CObjRolloutReq) GetCobjName() string { + if x != nil { + return x.CobjName + } + return "" +} + +func (x *CObjRolloutReq) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *CObjRolloutReq) GetRevision() int64 { + if x != nil { + return x.Revision + } + return 0 +} + type CObjCreateReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1830,7 +2071,7 @@ type CObjCreateReq struct { func (x *CObjCreateReq) Reset() { *x = CObjCreateReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[25] + mi := &file_cluster_resources_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1843,7 +2084,7 @@ func (x *CObjCreateReq) String() string { func (*CObjCreateReq) ProtoMessage() {} func (x *CObjCreateReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[25] + mi := &file_cluster_resources_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1856,7 +2097,7 @@ func (x *CObjCreateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CObjCreateReq.ProtoReflect.Descriptor instead. func (*CObjCreateReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{25} + return file_cluster_resources_proto_rawDescGZIP(), []int{28} } func (x *CObjCreateReq) GetProjectID() string { @@ -1911,7 +2152,7 @@ type CObjUpdateReq struct { func (x *CObjUpdateReq) Reset() { *x = CObjUpdateReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[26] + mi := &file_cluster_resources_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1924,7 +2165,7 @@ func (x *CObjUpdateReq) String() string { func (*CObjUpdateReq) ProtoMessage() {} func (x *CObjUpdateReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[26] + mi := &file_cluster_resources_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1937,7 +2178,7 @@ func (x *CObjUpdateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CObjUpdateReq.ProtoReflect.Descriptor instead. func (*CObjUpdateReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{26} + return file_cluster_resources_proto_rawDescGZIP(), []int{29} } func (x *CObjUpdateReq) GetProjectID() string { @@ -2005,7 +2246,7 @@ type CObjScaleReq struct { func (x *CObjScaleReq) Reset() { *x = CObjScaleReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[27] + mi := &file_cluster_resources_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2018,7 +2259,7 @@ func (x *CObjScaleReq) String() string { func (*CObjScaleReq) ProtoMessage() {} func (x *CObjScaleReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[27] + mi := &file_cluster_resources_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2031,7 +2272,7 @@ func (x *CObjScaleReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CObjScaleReq.ProtoReflect.Descriptor instead. func (*CObjScaleReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{27} + return file_cluster_resources_proto_rawDescGZIP(), []int{30} } func (x *CObjScaleReq) GetProjectID() string { @@ -2091,7 +2332,7 @@ type CObjDeleteReq struct { func (x *CObjDeleteReq) Reset() { *x = CObjDeleteReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[28] + mi := &file_cluster_resources_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2104,7 +2345,7 @@ func (x *CObjDeleteReq) String() string { func (*CObjDeleteReq) ProtoMessage() {} func (x *CObjDeleteReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[28] + mi := &file_cluster_resources_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2117,7 +2358,7 @@ func (x *CObjDeleteReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CObjDeleteReq.ProtoReflect.Descriptor instead. func (*CObjDeleteReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{28} + return file_cluster_resources_proto_rawDescGZIP(), []int{31} } func (x *CObjDeleteReq) GetProjectID() string { @@ -2172,7 +2413,7 @@ type CObjBatchRescheduleReq struct { func (x *CObjBatchRescheduleReq) Reset() { *x = CObjBatchRescheduleReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[29] + mi := &file_cluster_resources_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2185,7 +2426,7 @@ func (x *CObjBatchRescheduleReq) String() string { func (*CObjBatchRescheduleReq) ProtoMessage() {} func (x *CObjBatchRescheduleReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[29] + mi := &file_cluster_resources_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2198,7 +2439,7 @@ func (x *CObjBatchRescheduleReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CObjBatchRescheduleReq.ProtoReflect.Descriptor instead. func (*CObjBatchRescheduleReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{29} + return file_cluster_resources_proto_rawDescGZIP(), []int{32} } func (x *CObjBatchRescheduleReq) GetProjectID() string { @@ -2265,7 +2506,7 @@ type CommonResp struct { func (x *CommonResp) Reset() { *x = CommonResp{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[30] + mi := &file_cluster_resources_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2278,7 +2519,7 @@ func (x *CommonResp) String() string { func (*CommonResp) ProtoMessage() {} func (x *CommonResp) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[30] + mi := &file_cluster_resources_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2291,7 +2532,7 @@ func (x *CommonResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. func (*CommonResp) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{30} + return file_cluster_resources_proto_rawDescGZIP(), []int{33} } func (x *CommonResp) GetCode() int32 { @@ -2344,7 +2585,7 @@ type CommonListResp struct { func (x *CommonListResp) Reset() { *x = CommonListResp{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[31] + mi := &file_cluster_resources_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2357,7 +2598,7 @@ func (x *CommonListResp) String() string { func (*CommonListResp) ProtoMessage() {} func (x *CommonListResp) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[31] + mi := &file_cluster_resources_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2370,7 +2611,7 @@ func (x *CommonListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonListResp.ProtoReflect.Descriptor instead. func (*CommonListResp) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{31} + return file_cluster_resources_proto_rawDescGZIP(), []int{34} } func (x *CommonListResp) GetCode() int32 { @@ -2425,7 +2666,7 @@ type SubscribeReq struct { func (x *SubscribeReq) Reset() { *x = SubscribeReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[32] + mi := &file_cluster_resources_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2438,7 +2679,7 @@ func (x *SubscribeReq) String() string { func (*SubscribeReq) ProtoMessage() {} func (x *SubscribeReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[32] + mi := &file_cluster_resources_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2451,7 +2692,7 @@ func (x *SubscribeReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeReq.ProtoReflect.Descriptor instead. func (*SubscribeReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{32} + return file_cluster_resources_proto_rawDescGZIP(), []int{35} } func (x *SubscribeReq) GetProjectID() string { @@ -2520,7 +2761,7 @@ type SubscribeResp struct { func (x *SubscribeResp) Reset() { *x = SubscribeResp{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[33] + mi := &file_cluster_resources_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2533,7 +2774,7 @@ func (x *SubscribeResp) String() string { func (*SubscribeResp) ProtoMessage() {} func (x *SubscribeResp) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[33] + mi := &file_cluster_resources_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2546,7 +2787,7 @@ func (x *SubscribeResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeResp.ProtoReflect.Descriptor instead. func (*SubscribeResp) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{33} + return file_cluster_resources_proto_rawDescGZIP(), []int{36} } func (x *SubscribeResp) GetCode() int32 { @@ -2611,7 +2852,7 @@ type InvalidateDiscoveryCacheReq struct { func (x *InvalidateDiscoveryCacheReq) Reset() { *x = InvalidateDiscoveryCacheReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[34] + mi := &file_cluster_resources_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2624,7 +2865,7 @@ func (x *InvalidateDiscoveryCacheReq) String() string { func (*InvalidateDiscoveryCacheReq) ProtoMessage() {} func (x *InvalidateDiscoveryCacheReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[34] + mi := &file_cluster_resources_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2637,7 +2878,7 @@ func (x *InvalidateDiscoveryCacheReq) ProtoReflect() protoreflect.Message { // Deprecated: Use InvalidateDiscoveryCacheReq.ProtoReflect.Descriptor instead. func (*InvalidateDiscoveryCacheReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{34} + return file_cluster_resources_proto_rawDescGZIP(), []int{37} } func (x *InvalidateDiscoveryCacheReq) GetProjectID() string { @@ -2675,7 +2916,7 @@ type FormRenderPreviewReq struct { func (x *FormRenderPreviewReq) Reset() { *x = FormRenderPreviewReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[35] + mi := &file_cluster_resources_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2688,7 +2929,7 @@ func (x *FormRenderPreviewReq) String() string { func (*FormRenderPreviewReq) ProtoMessage() {} func (x *FormRenderPreviewReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[35] + mi := &file_cluster_resources_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2701,7 +2942,7 @@ func (x *FormRenderPreviewReq) ProtoReflect() protoreflect.Message { // Deprecated: Use FormRenderPreviewReq.ProtoReflect.Descriptor instead. func (*FormRenderPreviewReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{35} + return file_cluster_resources_proto_rawDescGZIP(), []int{38} } func (x *FormRenderPreviewReq) GetProjectID() string { @@ -2747,7 +2988,7 @@ type GetResFormSchemaReq struct { func (x *GetResFormSchemaReq) Reset() { *x = GetResFormSchemaReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[36] + mi := &file_cluster_resources_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2760,7 +3001,7 @@ func (x *GetResFormSchemaReq) String() string { func (*GetResFormSchemaReq) ProtoMessage() {} func (x *GetResFormSchemaReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[36] + mi := &file_cluster_resources_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2773,7 +3014,7 @@ func (x *GetResFormSchemaReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetResFormSchemaReq.ProtoReflect.Descriptor instead. func (*GetResFormSchemaReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{36} + return file_cluster_resources_proto_rawDescGZIP(), []int{39} } func (x *GetResFormSchemaReq) GetProjectID() string { @@ -2824,7 +3065,7 @@ type GetFormSupportedApiVersionsReq struct { func (x *GetFormSupportedApiVersionsReq) Reset() { *x = GetFormSupportedApiVersionsReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[37] + mi := &file_cluster_resources_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2837,7 +3078,7 @@ func (x *GetFormSupportedApiVersionsReq) String() string { func (*GetFormSupportedApiVersionsReq) ProtoMessage() {} func (x *GetFormSupportedApiVersionsReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[37] + mi := &file_cluster_resources_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2850,7 +3091,7 @@ func (x *GetFormSupportedApiVersionsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFormSupportedApiVersionsReq.ProtoReflect.Descriptor instead. func (*GetFormSupportedApiVersionsReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{37} + return file_cluster_resources_proto_rawDescGZIP(), []int{40} } func (x *GetFormSupportedApiVersionsReq) GetProjectID() string { @@ -2890,7 +3131,7 @@ type GetResSelectItemsReq struct { func (x *GetResSelectItemsReq) Reset() { *x = GetResSelectItemsReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[38] + mi := &file_cluster_resources_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2903,7 +3144,7 @@ func (x *GetResSelectItemsReq) String() string { func (*GetResSelectItemsReq) ProtoMessage() {} func (x *GetResSelectItemsReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[38] + mi := &file_cluster_resources_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2916,7 +3157,7 @@ func (x *GetResSelectItemsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetResSelectItemsReq.ProtoReflect.Descriptor instead. func (*GetResSelectItemsReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{38} + return file_cluster_resources_proto_rawDescGZIP(), []int{41} } func (x *GetResSelectItemsReq) GetProjectID() string { @@ -2965,7 +3206,7 @@ type ListViewConfigsReq struct { func (x *ListViewConfigsReq) Reset() { *x = ListViewConfigsReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[39] + mi := &file_cluster_resources_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2978,7 +3219,7 @@ func (x *ListViewConfigsReq) String() string { func (*ListViewConfigsReq) ProtoMessage() {} func (x *ListViewConfigsReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[39] + mi := &file_cluster_resources_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2991,7 +3232,7 @@ func (x *ListViewConfigsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListViewConfigsReq.ProtoReflect.Descriptor instead. func (*ListViewConfigsReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{39} + return file_cluster_resources_proto_rawDescGZIP(), []int{42} } func (x *ListViewConfigsReq) GetProjectCode() string { @@ -3013,7 +3254,7 @@ type GetViewConfigReq struct { func (x *GetViewConfigReq) Reset() { *x = GetViewConfigReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[40] + mi := &file_cluster_resources_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3026,7 +3267,7 @@ func (x *GetViewConfigReq) String() string { func (*GetViewConfigReq) ProtoMessage() {} func (x *GetViewConfigReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[40] + mi := &file_cluster_resources_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3039,7 +3280,7 @@ func (x *GetViewConfigReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetViewConfigReq.ProtoReflect.Descriptor instead. func (*GetViewConfigReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{40} + return file_cluster_resources_proto_rawDescGZIP(), []int{43} } func (x *GetViewConfigReq) GetId() string { @@ -3069,7 +3310,7 @@ type ViewFilter struct { func (x *ViewFilter) Reset() { *x = ViewFilter{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[41] + mi := &file_cluster_resources_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3082,7 +3323,7 @@ func (x *ViewFilter) String() string { func (*ViewFilter) ProtoMessage() {} func (x *ViewFilter) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[41] + mi := &file_cluster_resources_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3095,7 +3336,7 @@ func (x *ViewFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use ViewFilter.ProtoReflect.Descriptor instead. func (*ViewFilter) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{41} + return file_cluster_resources_proto_rawDescGZIP(), []int{44} } func (x *ViewFilter) GetName() string { @@ -3135,7 +3376,7 @@ type CreateViewConfigReq struct { func (x *CreateViewConfigReq) Reset() { *x = CreateViewConfigReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[42] + mi := &file_cluster_resources_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3148,7 +3389,7 @@ func (x *CreateViewConfigReq) String() string { func (*CreateViewConfigReq) ProtoMessage() {} func (x *CreateViewConfigReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[42] + mi := &file_cluster_resources_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3161,7 +3402,7 @@ func (x *CreateViewConfigReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateViewConfigReq.ProtoReflect.Descriptor instead. func (*CreateViewConfigReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{42} + return file_cluster_resources_proto_rawDescGZIP(), []int{45} } func (x *CreateViewConfigReq) GetProjectCode() string { @@ -3222,7 +3463,7 @@ type UpdateViewConfigReq struct { func (x *UpdateViewConfigReq) Reset() { *x = UpdateViewConfigReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[43] + mi := &file_cluster_resources_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3235,7 +3476,7 @@ func (x *UpdateViewConfigReq) String() string { func (*UpdateViewConfigReq) ProtoMessage() {} func (x *UpdateViewConfigReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[43] + mi := &file_cluster_resources_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3248,7 +3489,7 @@ func (x *UpdateViewConfigReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateViewConfigReq.ProtoReflect.Descriptor instead. func (*UpdateViewConfigReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{43} + return file_cluster_resources_proto_rawDescGZIP(), []int{46} } func (x *UpdateViewConfigReq) GetId() string { @@ -3306,7 +3547,7 @@ type RenameViewConfigReq struct { func (x *RenameViewConfigReq) Reset() { *x = RenameViewConfigReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[44] + mi := &file_cluster_resources_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3319,7 +3560,7 @@ func (x *RenameViewConfigReq) String() string { func (*RenameViewConfigReq) ProtoMessage() {} func (x *RenameViewConfigReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[44] + mi := &file_cluster_resources_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3332,7 +3573,7 @@ func (x *RenameViewConfigReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RenameViewConfigReq.ProtoReflect.Descriptor instead. func (*RenameViewConfigReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{44} + return file_cluster_resources_proto_rawDescGZIP(), []int{47} } func (x *RenameViewConfigReq) GetId() string { @@ -3368,7 +3609,7 @@ type DeleteViewConfigReq struct { func (x *DeleteViewConfigReq) Reset() { *x = DeleteViewConfigReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[45] + mi := &file_cluster_resources_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3381,7 +3622,7 @@ func (x *DeleteViewConfigReq) String() string { func (*DeleteViewConfigReq) ProtoMessage() {} func (x *DeleteViewConfigReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[45] + mi := &file_cluster_resources_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3394,7 +3635,7 @@ func (x *DeleteViewConfigReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteViewConfigReq.ProtoReflect.Descriptor instead. func (*DeleteViewConfigReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{45} + return file_cluster_resources_proto_rawDescGZIP(), []int{48} } func (x *DeleteViewConfigReq) GetId() string { @@ -3423,7 +3664,7 @@ type ClusterNamespaces struct { func (x *ClusterNamespaces) Reset() { *x = ClusterNamespaces{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[46] + mi := &file_cluster_resources_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3436,7 +3677,7 @@ func (x *ClusterNamespaces) String() string { func (*ClusterNamespaces) ProtoMessage() {} func (x *ClusterNamespaces) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[46] + mi := &file_cluster_resources_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3449,7 +3690,7 @@ func (x *ClusterNamespaces) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterNamespaces.ProtoReflect.Descriptor instead. func (*ClusterNamespaces) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{46} + return file_cluster_resources_proto_rawDescGZIP(), []int{49} } func (x *ClusterNamespaces) GetClusterID() string { @@ -3479,7 +3720,7 @@ type LabelSelector struct { func (x *LabelSelector) Reset() { *x = LabelSelector{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[47] + mi := &file_cluster_resources_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3492,7 +3733,7 @@ func (x *LabelSelector) String() string { func (*LabelSelector) ProtoMessage() {} func (x *LabelSelector) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[47] + mi := &file_cluster_resources_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3505,7 +3746,7 @@ func (x *LabelSelector) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelSelector.ProtoReflect.Descriptor instead. func (*LabelSelector) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{47} + return file_cluster_resources_proto_rawDescGZIP(), []int{50} } func (x *LabelSelector) GetKey() string { @@ -3547,7 +3788,7 @@ type FetchMultiClusterResourceReq struct { func (x *FetchMultiClusterResourceReq) Reset() { *x = FetchMultiClusterResourceReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[48] + mi := &file_cluster_resources_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3560,7 +3801,7 @@ func (x *FetchMultiClusterResourceReq) String() string { func (*FetchMultiClusterResourceReq) ProtoMessage() {} func (x *FetchMultiClusterResourceReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[48] + mi := &file_cluster_resources_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3573,7 +3814,7 @@ func (x *FetchMultiClusterResourceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use FetchMultiClusterResourceReq.ProtoReflect.Descriptor instead. func (*FetchMultiClusterResourceReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{48} + return file_cluster_resources_proto_rawDescGZIP(), []int{51} } func (x *FetchMultiClusterResourceReq) GetProjectCode() string { @@ -3650,7 +3891,7 @@ type FetchMultiClusterCustomResourceReq struct { func (x *FetchMultiClusterCustomResourceReq) Reset() { *x = FetchMultiClusterCustomResourceReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[49] + mi := &file_cluster_resources_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3663,7 +3904,7 @@ func (x *FetchMultiClusterCustomResourceReq) String() string { func (*FetchMultiClusterCustomResourceReq) ProtoMessage() {} func (x *FetchMultiClusterCustomResourceReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[49] + mi := &file_cluster_resources_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3676,7 +3917,7 @@ func (x *FetchMultiClusterCustomResourceReq) ProtoReflect() protoreflect.Message // Deprecated: Use FetchMultiClusterCustomResourceReq.ProtoReflect.Descriptor instead. func (*FetchMultiClusterCustomResourceReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{49} + return file_cluster_resources_proto_rawDescGZIP(), []int{52} } func (x *FetchMultiClusterCustomResourceReq) GetProjectCode() string { @@ -3750,7 +3991,7 @@ type MultiClusterResourceCountReq struct { func (x *MultiClusterResourceCountReq) Reset() { *x = MultiClusterResourceCountReq{} if protoimpl.UnsafeEnabled { - mi := &file_cluster_resources_proto_msgTypes[50] + mi := &file_cluster_resources_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3763,7 +4004,7 @@ func (x *MultiClusterResourceCountReq) String() string { func (*MultiClusterResourceCountReq) ProtoMessage() {} func (x *MultiClusterResourceCountReq) ProtoReflect() protoreflect.Message { - mi := &file_cluster_resources_proto_msgTypes[50] + mi := &file_cluster_resources_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3776,7 +4017,7 @@ func (x *MultiClusterResourceCountReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MultiClusterResourceCountReq.ProtoReflect.Descriptor instead. func (*MultiClusterResourceCountReq) Descriptor() ([]byte, []int) { - return file_cluster_resources_proto_rawDescGZIP(), []int{50} + return file_cluster_resources_proto_rawDescGZIP(), []int{53} } func (x *MultiClusterResourceCountReq) GetProjectCode() string { @@ -4395,98 +4636,111 @@ var file_cluster_resources_proto_rawDesc = []byte{ 0x34, 0x0a, 0x32, 0x2a, 0x0a, 0x43, 0x4f, 0x62, 0x6a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe6, 0x9f, 0xa5, 0xe8, 0xaf, 0xa2, 0xe8, 0xaf, 0xb7, 0xe6, - 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xa7, 0x03, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, - 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, - 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, - 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, - 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, - 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, - 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x17, - 0x92, 0x41, 0x14, 0x2a, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, - 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x61, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x49, 0x92, 0x41, 0x2b, 0x2a, 0x29, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, 0x85, 0x8d, - 0xe7, 0xbd, 0xae, 0xe6, 0xa0, 0xbc, 0xe5, 0xbc, 0x8f, 0xef, 0xbc, 0x88, 0x6d, 0x61, 0x6e, 0x69, - 0x66, 0x65, 0x73, 0x74, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0xef, 0xbc, 0x89, - 0xfa, 0x42, 0x18, 0x72, 0x16, 0x52, 0x00, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, - 0x74, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, 0x2a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, - 0xba, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, - 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, - 0xb0, 0x04, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, - 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, - 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, - 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, - 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x31, 0x0a, 0x07, 0x43, - 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, - 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, - 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, - 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, - 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, - 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, - 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, - 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, - 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x42, 0x17, 0x92, 0x41, 0x14, 0x2a, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, 0x85, - 0x8d, 0xe7, 0xbd, 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x72, 0x61, 0x77, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x61, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x49, 0x92, 0x41, 0x2b, 0x2a, 0x29, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, - 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe6, 0xa0, 0xbc, 0xe5, 0xbc, 0x8f, 0xef, 0xbc, 0x88, 0x6d, - 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, - 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x18, 0x72, 0x16, 0x52, 0x00, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, - 0x66, 0x65, 0x73, 0x74, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, 0x2a, 0x0d, 0x43, - 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe6, 0x9b, - 0xb4, 0xe6, 0x96, 0xb0, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, - 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, - 0xbd, 0x93, 0x22, 0xcb, 0x03, 0x0a, 0x0c, 0x43, 0x4f, 0x62, 0x6a, 0x53, 0x63, 0x61, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, - 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, - 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, - 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, - 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x47, 0x0a, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0x89, 0x03, 0x0a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, + 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, + 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, + 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, + 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, + 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, + 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, + 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, + 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, + 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, + 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, + 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, + 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, + 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x41, + 0x92, 0x41, 0x3e, 0x0a, 0x3c, 0x2a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x32, 0x2a, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, + 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe5, 0x8e, 0x86, 0xe5, + 0x8f, 0xb2, 0xe7, 0x89, 0x88, 0xe6, 0x9c, 0xac, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, + 0x93, 0x22, 0x89, 0x03, 0x0a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, + 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, + 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, + 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, + 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x31, + 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, + 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, + 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, + 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, + 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x41, 0x92, 0x41, 0x3e, 0x0a, + 0x3c, 0x2a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x32, 0x2a, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe9, 0x83, 0xa8, 0xe7, 0xbd, 0xb2, 0xe5, + 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, + 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xb6, 0x03, + 0x0a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, + 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, + 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, + 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, + 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, + 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, + 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, + 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, + 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, + 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, + 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, + 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, - 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, - 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, - 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, - 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, - 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, - 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x27, 0x92, 0x41, 0x1a, - 0x2a, 0x18, 0xe5, 0x89, 0xaf, 0xe6, 0x9c, 0xac, 0xe6, 0x95, 0xb0, 0xe9, 0x87, 0x8f, 0xef, 0xbc, - 0x88, 0x30, 0x2d, 0x38, 0x31, 0x39, 0x32, 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x07, 0x22, 0x05, 0x18, - 0x80, 0x40, 0x28, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x3a, 0x40, - 0x92, 0x41, 0x3d, 0x0a, 0x3b, 0x2a, 0x0b, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x32, 0x2c, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0x20, 0x6b, 0x38, 0x73, 0x20, 0xe8, - 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x89, - 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, - 0x22, 0x81, 0x03, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x1b, 0x92, 0x41, 0x11, 0x2a, 0x0f, 0x72, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0xe7, 0x89, 0x88, 0xe6, 0x9c, 0xac, 0xfa, 0x42, + 0x04, 0x22, 0x02, 0x28, 0x00, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x3a, + 0x35, 0x92, 0x41, 0x32, 0x0a, 0x30, 0x2a, 0x0e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x32, 0x1e, 0xe5, 0x9b, 0x9e, 0xe6, 0xbb, 0x9a, 0xe8, 0x87, + 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, + 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xa7, 0x03, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, + 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, + 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, + 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, + 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, + 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, + 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, + 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, + 0x17, 0x92, 0x41, 0x14, 0x2a, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, 0x85, 0x8d, 0xe7, + 0xbd, 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x61, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x49, 0x92, 0x41, 0x2b, 0x2a, 0x29, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, 0x85, + 0x8d, 0xe7, 0xbd, 0xae, 0xe6, 0xa0, 0xbc, 0xe5, 0xbc, 0x8f, 0xef, 0xbc, 0x88, 0x6d, 0x61, 0x6e, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0xef, 0xbc, + 0x89, 0xfa, 0x42, 0x18, 0x72, 0x16, 0x52, 0x00, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, + 0x73, 0x74, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, 0x2a, 0x0d, 0x43, 0x4f, 0x62, + 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe5, 0x88, 0x9b, 0xe5, + 0xbb, 0xba, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, + 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, + 0x22, 0xb0, 0x04, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, @@ -4506,746 +4760,762 @@ var file_cluster_resources_proto_rawDesc = []byte{ 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, 0x2a, - 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, 0x24, - 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, - 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, - 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xfc, 0x04, 0x0a, 0x16, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, - 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, - 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, - 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, - 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, - 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, - 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, - 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, - 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, - 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, - 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, - 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, - 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0x92, 0x41, - 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, 0xe5, - 0x99, 0xa8, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x10, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x92, 0x01, 0x0a, 0x08, 0x70, 0x6f, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x76, 0x92, 0x41, - 0x22, 0x2a, 0x20, 0xe5, 0xbe, 0x85, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, - 0xba, 0xa6, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe5, 0x88, 0x97, - 0xe8, 0xa1, 0xa8, 0xfa, 0x42, 0x4e, 0x92, 0x01, 0x4b, 0x08, 0x01, 0x18, 0x01, 0x22, 0x45, 0x72, - 0x43, 0x18, 0xfd, 0x01, 0x32, 0x3e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, 0x5b, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x42, 0x17, 0x92, 0x41, 0x14, 0x2a, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe9, + 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x72, 0x61, 0x77, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x61, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x49, 0x92, 0x41, 0x2b, 0x2a, 0x29, 0xe8, 0xb5, 0x84, 0xe6, 0xba, + 0x90, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe6, 0xa0, 0xbc, 0xe5, 0xbc, 0x8f, 0xef, 0xbc, 0x88, + 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, + 0x61, 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x18, 0x72, 0x16, 0x52, 0x00, 0x52, 0x08, 0x6d, 0x61, 0x6e, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, 0x2a, 0x0d, + 0x43, 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe6, + 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, 0xe5, 0xae, + 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, + 0xe4, 0xbd, 0x93, 0x22, 0xcb, 0x03, 0x0a, 0x0c, 0x43, 0x4f, 0x62, 0x6a, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, + 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, + 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, + 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, + 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x47, + 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, + 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, + 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, + 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, + 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, + 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, + 0x17, 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, + 0xba, 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, + 0x52, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x27, 0x92, 0x41, + 0x1a, 0x2a, 0x18, 0xe5, 0x89, 0xaf, 0xe6, 0x9c, 0xac, 0xe6, 0x95, 0xb0, 0xe9, 0x87, 0x8f, 0xef, + 0xbc, 0x88, 0x30, 0x2d, 0x38, 0x31, 0x39, 0x32, 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x07, 0x22, 0x05, + 0x18, 0x80, 0x40, 0x28, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x3a, + 0x40, 0x92, 0x41, 0x3d, 0x0a, 0x3b, 0x2a, 0x0b, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x32, 0x2c, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0x20, 0x6b, 0x38, 0x73, 0x20, + 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, + 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, + 0x93, 0x22, 0x81, 0x03, 0x0a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, + 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, + 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, + 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, + 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x31, 0x0a, + 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, + 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, + 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, + 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, + 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, + 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x3a, 0x92, 0x41, 0x37, 0x0a, 0x35, + 0x2a, 0x0d, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x32, + 0x24, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0x87, 0xaa, + 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, + 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xfc, 0x04, 0x0a, 0x16, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, + 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, + 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, + 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, + 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x47, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0x92, + 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, + 0xfa, 0x42, 0x15, 0x72, 0x13, 0x18, 0x3f, 0x32, 0x0f, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, + 0x7a, 0x41, 0x2d, 0x5a, 0x2d, 0x5d, 0x2a, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, + 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x07, 0x43, + 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe8, + 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x90, + 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x02, 0x52, 0x08, 0x63, 0x6f, + 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0x92, + 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, + 0xe5, 0x99, 0xa8, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x10, 0x52, 0x0d, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x92, 0x01, 0x0a, 0x08, 0x70, + 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x76, 0x92, + 0x41, 0x22, 0x2a, 0x20, 0xe5, 0xbe, 0x85, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, + 0xe5, 0xba, 0xa6, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe5, 0x88, + 0x97, 0xe8, 0xa1, 0xa8, 0xfa, 0x42, 0x4e, 0x92, 0x01, 0x4b, 0x08, 0x01, 0x18, 0x01, 0x22, 0x45, + 0x72, 0x43, 0x18, 0xfd, 0x01, 0x32, 0x3e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, + 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, + 0x39, 0x5d, 0x29, 0x3f, 0x28, 0x2e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, - 0x5d, 0x29, 0x3f, 0x28, 0x2e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, 0x5b, 0x2d, - 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, - 0x29, 0x3f, 0x29, 0x2a, 0x52, 0x08, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x3a, 0x53, - 0x92, 0x41, 0x50, 0x0a, 0x4e, 0x2a, 0x16, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x32, 0x34, 0xe9, - 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x6b, 0x38, 0x73, 0x20, - 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe4, - 0xb8, 0x8b, 0xe5, 0xb1, 0x9e, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, - 0xe4, 0xbd, 0x93, 0x22, 0xe2, 0x03, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x0f, 0xe8, 0xbf, 0x94, - 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe7, 0xa0, 0x81, 0x52, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x20, 0x92, 0x41, 0x1d, 0x2a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x32, 0x12, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe4, - 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, - 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, - 0x69, 0x64, 0x32, 0x09, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0x20, 0x49, 0x44, 0x52, 0x09, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, - 0x17, 0x92, 0x41, 0x14, 0x2a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, - 0xba, 0x90, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x60, - 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, - 0x1f, 0x92, 0x41, 0x1c, 0x2a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x32, 0x0a, 0x77, 0x65, 0x62, 0x20, 0xe6, 0xb3, 0xa8, 0xe8, 0xa7, 0xa3, - 0x52, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x3a, 0x85, 0x01, 0x92, 0x41, 0x81, 0x01, 0x0a, 0x7f, 0x2a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x32, 0x71, 0xe9, 0x80, 0x9a, 0xe7, 0x94, 0xa8, 0xe5, 0x93, 0x8d, - 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0xef, 0xbc, 0x8c, 0xe9, 0x80, 0x82, 0xe7, 0x94, 0xa8, 0xe4, - 0xba, 0x8e, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x9e, 0x8b, 0x20, 0x41, 0x50, 0x49, 0x20, - 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xef, 0xbc, 0x8c, 0xe5, - 0xa6, 0x82, 0xe9, 0x9c, 0x80, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xaf, 0xa6, 0xe7, 0xbb, - 0x86, 0xe7, 0x9a, 0x84, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0xe7, 0xbb, 0x93, 0xe6, 0x9e, 0x84, - 0xe5, 0x88, 0x99, 0xe4, 0xb8, 0x8d, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe8, 0xaf, 0xa5, 0xe5, - 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0x22, 0xee, 0x03, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x32, 0x0f, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, - 0xaf, 0xaf, 0xe7, 0xa0, 0x81, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0x92, 0x41, - 0x1d, 0x2a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0xe8, 0xbf, 0x94, 0xe5, - 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, - 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x64, 0x32, 0x09, 0xe8, 0xaf, 0xb7, - 0xe6, 0xb1, 0x82, 0x20, 0x49, 0x44, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, - 0x44, 0x12, 0x47, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 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, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x17, 0x92, 0x41, 0x14, - 0x2a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe4, 0xbf, - 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x60, 0x0a, 0x0e, 0x77, 0x65, - 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x1f, 0x92, 0x41, 0x1c, - 0x2a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x32, 0x0a, 0x77, 0x65, 0x62, 0x20, 0xe6, 0xb3, 0xa8, 0xe8, 0xa7, 0xa3, 0x52, 0x0e, 0x77, 0x65, - 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x8a, 0x01, 0x92, - 0x41, 0x86, 0x01, 0x0a, 0x83, 0x01, 0x2a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x32, 0x71, 0xe9, 0x80, 0x9a, 0xe7, 0x94, 0xa8, 0xe5, 0x93, + 0x5d, 0x29, 0x3f, 0x29, 0x2a, 0x52, 0x08, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x3a, + 0x53, 0x92, 0x41, 0x50, 0x0a, 0x4e, 0x2a, 0x16, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x32, 0x34, + 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x6b, 0x38, 0x73, + 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, + 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, 0x9e, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, + 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xe2, 0x03, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x0f, 0xe8, 0xbf, + 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe7, 0xa0, 0x81, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0x92, 0x41, 0x1d, 0x2a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x32, 0x12, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, + 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x38, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x20, 0x69, 0x64, 0x32, 0x09, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0x20, 0x49, 0x44, 0x52, 0x09, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x42, 0x17, 0x92, 0x41, 0x14, 0x2a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x0c, 0xe8, 0xb5, 0x84, + 0xe6, 0xba, 0x90, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x60, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x42, 0x1f, 0x92, 0x41, 0x1c, 0x2a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0x0a, 0x77, 0x65, 0x62, 0x20, 0xe6, 0xb3, 0xa8, 0xe8, 0xa7, + 0xa3, 0x52, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x3a, 0x85, 0x01, 0x92, 0x41, 0x81, 0x01, 0x0a, 0x7f, 0x2a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x32, 0x71, 0xe9, 0x80, 0x9a, 0xe7, 0x94, 0xa8, 0xe5, 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0xef, 0xbc, 0x8c, 0xe9, 0x80, 0x82, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x9e, 0x8b, 0x20, 0x41, 0x50, 0x49, 0x20, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xef, 0xbc, 0x8c, 0xe5, 0xa6, 0x82, 0xe9, 0x9c, 0x80, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xaf, 0xa6, 0xe7, 0xbb, 0x86, 0xe7, 0x9a, 0x84, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0xe7, 0xbb, 0x93, 0xe6, 0x9e, 0x84, 0xe5, 0x88, 0x99, 0xe4, 0xb8, 0x8d, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe8, 0xaf, 0xa5, - 0xe5, 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, - 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, - 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, - 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, - 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, - 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x45, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0x92, - 0x41, 0x11, 0x2a, 0x0f, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0x89, 0x88, 0xe6, 0x9c, 0xac, - 0xe5, 0x8f, 0xb7, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, 0x0c, - 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, 0x72, - 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x43, 0x52, - 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, - 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, 0x72, - 0x03, 0x18, 0x80, 0x01, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, - 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x41, 0x50, 0x49, 0x20, 0xe7, 0x89, 0x88, 0xe6, - 0x9c, 0xac, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0x92, 0x41, 0x0e, 0x2a, 0x0c, - 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x18, 0x40, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x2a, - 0x92, 0x41, 0x27, 0x0a, 0x25, 0x2a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x52, 0x65, 0x71, 0x32, 0x15, 0xe8, 0xae, 0xa2, 0xe9, 0x98, 0x85, 0xe8, 0xb5, 0x84, 0xe6, 0xba, - 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xbb, 0x03, 0x0a, 0x0d, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, + 0xe5, 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0x22, 0xee, 0x03, 0x0a, 0x0e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x0f, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe7, 0xa0, 0x81, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0x92, 0x41, 0x1d, 0x2a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x14, 0x2a, 0x04, 0x6b, 0x69, 0x6e, - 0x64, 0x32, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0x52, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x32, 0x0c, 0xe6, 0x93, 0x8d, 0xe4, 0xbd, 0x9c, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x16, 0x92, 0x41, 0x13, 0x2a, 0x03, 0x75, 0x69, 0x64, 0x32, 0x0c, 0xe5, 0x94, - 0xaf, 0xe4, 0xb8, 0x80, 0xe6, 0xa0, 0x87, 0xe8, 0xaf, 0x86, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, - 0x56, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x21, 0x92, 0x41, 0x1e, 0x2a, - 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x32, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, - 0x90, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x08, 0x6d, - 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x69, 0x66, - 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x24, 0x92, 0x41, 0x21, 0x2a, 0x0b, 0x6d, 0x61, 0x6e, 0x69, - 0x66, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x32, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, - 0x89, 0xa9, 0xe5, 0xb1, 0x95, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x0b, 0x6d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x22, 0x91, 0x02, 0x0a, 0x1b, 0x49, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, - 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, - 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, - 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, - 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x3a, 0x4a, 0x92, 0x41, 0x47, 0x0a, 0x45, 0x2a, 0x1b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x52, 0x65, 0x71, 0x32, 0x26, 0xe4, 0xb8, 0xbb, 0xe5, 0x8a, 0xa8, 0xe4, 0xbd, 0xbf, 0xe9, - 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x20, - 0xe7, 0xbc, 0x93, 0xe5, 0xad, 0x98, 0xe5, 0xa4, 0xb1, 0xe6, 0x95, 0x88, 0x22, 0xce, 0x02, 0x0a, - 0x14, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, - 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, - 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, - 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, - 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, - 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, - 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x49, - 0x0a, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x14, 0x92, 0x41, 0x11, 0x2a, 0x0f, - 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0x52, - 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x42, 0x92, 0x41, 0x3f, 0x0a, 0x3d, - 0x2a, 0x14, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x32, 0x25, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe6, 0x95, - 0xb0, 0xe6, 0x8d, 0xae, 0xe6, 0xb8, 0xb2, 0xe6, 0x9f, 0x93, 0xe4, 0xb8, 0xba, 0x20, 0x4d, 0x61, - 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x20, 0xe9, 0xa2, 0x84, 0xe8, 0xa7, 0x88, 0x22, 0xa9, 0x03, - 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, - 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, - 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, - 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, - 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, - 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, - 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x36, - 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x18, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, - 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x40, 0x52, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x55, 0x92, 0x41, 0x3b, 0x2a, 0x39, 0xe6, 0xa8, 0xa1, - 0xe6, 0x9d, 0xbf, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe5, 0x9c, 0xba, 0xe6, 0x99, 0xaf, 0xef, - 0xbc, 0x88, 0xe5, 0xa6, 0x82, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, - 0xba, 0xef, 0xbc, 0x8c, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, - 0xe7, 0xad, 0x89, 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x14, 0x72, 0x12, 0x52, 0x00, 0x52, 0x06, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x42, 0x92, 0x41, 0x3f, 0x0a, 0x3d, 0x2a, 0x13, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, - 0x71, 0x32, 0x26, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, - 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0x20, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, - 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xa5, 0x02, 0x0a, 0x1e, 0x47, 0x65, - 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x70, - 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, - 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, - 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, - 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, - 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, - 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x3a, 0x5a, 0x92, 0x41, 0x57, 0x0a, 0x55, 0x2a, 0x1e, 0x47, 0x65, - 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x70, - 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x32, 0x33, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, - 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, - 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0x86, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, - 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, - 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, - 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, - 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, - 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, - 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, - 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, - 0x18, 0x80, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, - 0x0a, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0x92, - 0x41, 0x0e, 0x2a, 0x0c, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe5, 0x9c, 0xba, 0xe6, 0x99, 0xaf, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x3a, 0x5a, - 0x92, 0x41, 0x57, 0x0a, 0x55, 0x2a, 0x1e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x32, 0x33, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, - 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xe4, - 0xba, 0x8e, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, 0x41, - 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x12, 0x4c, - 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, - 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, - 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, - 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x3a, - 0x33, 0x92, 0x41, 0x30, 0x0a, 0x2e, 0x2a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, - 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe5, 0x88, - 0x97, 0xe8, 0xa1, 0xa8, 0x22, 0xab, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, - 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, - 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, - 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x3a, - 0x31, 0x92, 0x41, 0x2e, 0x0a, 0x2c, 0x2a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe8, 0xaf, 0xa6, 0xe6, - 0x83, 0x85, 0x22, 0xd3, 0x01, 0x0a, 0x0a, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x55, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x40, 0x0a, 0x12, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbf, 0x03, 0x0a, 0x13, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, - 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, - 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, - 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x42, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, + 0x2a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x69, 0x64, 0x32, 0x09, 0xe8, 0xaf, + 0xb7, 0xe6, 0xb1, 0x82, 0x20, 0x49, 0x44, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x44, 0x12, 0x47, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 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, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x17, 0x92, 0x41, + 0x14, 0x2a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe4, + 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x60, 0x0a, 0x0e, 0x77, + 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x1f, 0x92, 0x41, + 0x1c, 0x2a, 0x0e, 0x77, 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x32, 0x0a, 0x77, 0x65, 0x62, 0x20, 0xe6, 0xb3, 0xa8, 0xe8, 0xa7, 0xa3, 0x52, 0x0e, 0x77, + 0x65, 0x62, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x8a, 0x01, + 0x92, 0x41, 0x86, 0x01, 0x0a, 0x83, 0x01, 0x2a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x32, 0x71, 0xe9, 0x80, 0x9a, 0xe7, 0x94, 0xa8, 0xe5, + 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0xef, 0xbc, 0x8c, 0xe9, 0x80, 0x82, 0xe7, 0x94, + 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x9e, 0x8b, 0x20, 0x41, 0x50, + 0x49, 0x20, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xef, 0xbc, + 0x8c, 0xe5, 0xa6, 0x82, 0xe9, 0x9c, 0x80, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xaf, 0xa6, + 0xe7, 0xbb, 0x86, 0xe7, 0x9a, 0x84, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0xe7, 0xbb, 0x93, 0xe6, + 0x9e, 0x84, 0xe5, 0x88, 0x99, 0xe4, 0xb8, 0x8d, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe8, 0xaf, + 0xa5, 0xe5, 0x93, 0x8d, 0xe5, 0xba, 0x94, 0xe4, 0xbd, 0x93, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, + 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, + 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, + 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x24, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, - 0x44, 0xfa, 0x42, 0x13, 0x72, 0x11, 0x32, 0x0f, 0x5e, 0x42, 0x43, 0x53, 0x2d, 0x4b, 0x38, 0x53, - 0x2d, 0x5c, 0x64, 0x7b, 0x35, 0x7d, 0x24, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x55, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, - 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x23, 0x72, 0x21, 0x32, 0x1f, 0x5e, - 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, 0x2d, - 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x24, 0x52, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xa7, - 0x86, 0xe5, 0x9b, 0xbe, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, - 0x01, 0x18, 0x40, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, 0x65, - 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x11, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe7, 0xad, - 0x9b, 0xe9, 0x80, 0x89, 0xe6, 0x9d, 0xa1, 0xe4, 0xbb, 0xb6, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x61, 0x76, 0x65, 0x41, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x0e, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe5, 0x8f, 0xa6, 0xe5, 0xad, 0x98, 0xe4, - 0xb8, 0xba, 0x52, 0x06, 0x73, 0x61, 0x76, 0x65, 0x41, 0x73, 0x3a, 0x2e, 0x92, 0x41, 0x2b, 0x0a, - 0x29, 0x2a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0xe8, 0xa7, - 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xbf, 0x03, 0x0a, 0x13, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, - 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, 0x42, - 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, - 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0x92, 0x41, 0x0b, - 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x13, 0x72, 0x11, - 0x32, 0x0f, 0x5e, 0x42, 0x43, 0x53, 0x2d, 0x4b, 0x38, 0x53, 0x2d, 0x5c, 0x64, 0x7b, 0x35, 0x7d, - 0x24, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x55, 0x0a, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x37, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, - 0x97, 0xb4, 0xfa, 0x42, 0x23, 0x72, 0x21, 0x32, 0x1f, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, - 0x39, 0x5d, 0x28, 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, - 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe5, 0x90, - 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x42, 0x11, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe7, 0xad, 0x9b, 0xe9, 0x80, 0x89, 0xe6, 0x9d, - 0xa1, 0xe4, 0xbb, 0xb6, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x2e, 0x92, 0x41, - 0x2b, 0x0a, 0x29, 0x2a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, - 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xdb, 0x01, 0x0a, - 0x13, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, - 0xfa, 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, - 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, - 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, 0x04, - 0x10, 0x01, 0x18, 0x40, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x2e, 0x92, 0x41, 0x2b, 0x0a, - 0x29, 0x2a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0xe8, 0xa7, - 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xb2, 0x01, 0x0a, 0x13, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, - 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, 0x42, - 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, - 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x3a, 0x35, 0x92, 0x41, 0x32, 0x0a, 0x30, 0x2a, - 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x73, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, 0x95, - 0xe4, 0xb8, 0xaa, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, - 0x6a, 0x0a, 0x11, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, - 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, - 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x0d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x11, 0x92, 0x41, 0x05, 0x2a, - 0x03, 0x6b, 0x65, 0x79, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x40, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, - 0x92, 0x41, 0x04, 0x2a, 0x02, 0x6f, 0x70, 0xfa, 0x42, 0x26, 0x72, 0x24, 0x52, 0x01, 0x3d, 0x52, - 0x02, 0x49, 0x6e, 0x52, 0x05, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x52, 0x06, 0x45, 0x78, 0x69, 0x73, - 0x74, 0x73, 0x52, 0x0c, 0x44, 0x6f, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, - 0x52, 0x02, 0x6f, 0x70, 0x12, 0x23, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x0b, 0x92, 0x41, 0x08, 0x2a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x1c, 0x46, 0x65, - 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, - 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, 0x11, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe9, - 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, - 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x11, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, - 0x2c, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0x92, - 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x26, 0x0a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, - 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, 0x92, - 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, - 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x14, 0x92, 0x41, 0x07, 0x2a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0xfa, 0x42, 0x07, 0x2a, - 0x05, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2a, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x12, 0x92, - 0x41, 0x08, 0x2a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, 0x43, 0x92, 0x41, 0x40, 0x0a, 0x3e, - 0x2a, 0x1c, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x32, 0x1e, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, - 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xcc, - 0x04, 0x0a, 0x22, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, - 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, - 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, - 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, - 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x03, 0x63, 0x72, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0f, 0x92, 0x41, 0x05, 0x2a, 0x03, 0x63, 0x72, - 0x64, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x63, 0x72, 0x64, 0x12, 0x26, 0x0a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, - 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, 0x92, - 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, - 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x14, 0x92, 0x41, 0x07, 0x2a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0xfa, 0x42, 0x07, 0x2a, - 0x05, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2a, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x12, 0x92, - 0x41, 0x08, 0x2a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, 0x52, 0x92, 0x41, 0x4f, 0x0a, 0x4d, - 0x2a, 0x22, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x32, 0x27, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, - 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, - 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xc2, 0x03, - 0x0a, 0x1c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x3c, - 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, - 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, - 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, 0x11, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, 0x41, - 0x17, 0x2a, 0x15, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, 0xe5, - 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, - 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x42, 0x14, 0x92, 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, - 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x49, 0x92, 0x41, 0x46, 0x0a, 0x44, 0x2a, 0x1c, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0xb5, 0x84, - 0xe6, 0xba, 0x90, 0xe6, 0x95, 0xb0, 0xe9, 0x87, 0x8f, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, - 0xbd, 0x93, 0x32, 0x9a, 0x05, 0x0a, 0x05, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x92, 0x01, 0x0a, - 0x04, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x19, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x71, - 0x1a, 0x1a, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x53, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x63, 0x68, 0x6f, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x2c, 0x12, 0x08, 0x45, 0x63, 0x68, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x20, 0x45, 0x63, 0x68, 0x6f, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, 0x8c, 0xe7, - 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe5, 0xbc, 0x80, 0xe5, 0x8f, 0x91, 0xe6, 0xb5, 0x8b, 0xe8, 0xaf, - 0x95, 0x12, 0x9b, 0x01, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x50, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x5c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x69, 0x6e, 0x67, 0x92, 0x41, 0x38, 0x12, 0x08, 0x50, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, + 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, + 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x45, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, + 0x92, 0x41, 0x11, 0x2a, 0x0f, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0x89, 0x88, 0xe6, 0x9c, + 0xac, 0xe5, 0x8f, 0xb7, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, 0x0f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x04, + 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, + 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, + 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x43, + 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, + 0x0c, 0x2a, 0x0a, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x05, + 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x07, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, + 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0c, 0x2a, 0x0a, 0x41, 0x50, 0x49, 0x20, 0xe7, 0x89, 0x88, + 0xe6, 0x9c, 0xac, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x0a, 0x61, 0x70, 0x69, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0x92, 0x41, 0x0e, 0x2a, + 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x18, 0x40, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, + 0x2a, 0x92, 0x41, 0x27, 0x0a, 0x25, 0x2a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x52, 0x65, 0x71, 0x32, 0x15, 0xe8, 0xae, 0xa2, 0xe9, 0x98, 0x85, 0xe8, 0xb5, 0x84, 0xe6, + 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xbb, 0x03, 0x0a, 0x0d, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x1a, 0x92, 0x41, 0x17, + 0x2a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x0f, 0xe8, 0xbf, 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, + 0x99, 0xe8, 0xaf, 0xaf, 0xe7, 0xa0, 0x81, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, + 0x92, 0x41, 0x1d, 0x2a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0xe8, 0xbf, + 0x94, 0xe5, 0x9b, 0x9e, 0xe9, 0x94, 0x99, 0xe8, 0xaf, 0xaf, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, + 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x14, 0x2a, 0x04, 0x6b, 0x69, + 0x6e, 0x64, 0x32, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, + 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x17, 0x2a, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x32, 0x0c, 0xe6, 0x93, 0x8d, 0xe4, 0xbd, 0x9c, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x16, 0x92, 0x41, 0x13, 0x2a, 0x03, 0x75, 0x69, 0x64, 0x32, 0x0c, 0xe5, + 0x94, 0xaf, 0xe4, 0xb8, 0x80, 0xe6, 0xa0, 0x87, 0xe8, 0xaf, 0x86, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x12, 0x56, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x21, 0x92, 0x41, 0x1e, + 0x2a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x32, 0x12, 0xe8, 0xb5, 0x84, 0xe6, + 0xba, 0x90, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x08, + 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x69, + 0x66, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x24, 0x92, 0x41, 0x21, 0x2a, 0x0b, 0x6d, 0x61, 0x6e, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x32, 0x12, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, + 0xe6, 0x89, 0xa9, 0xe5, 0xb1, 0x95, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x52, 0x0b, 0x6d, 0x61, + 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x22, 0x91, 0x02, 0x0a, 0x1b, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x79, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, + 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, + 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, + 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, + 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0x41, 0x75, 0x74, + 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x3a, 0x4a, 0x92, 0x41, 0x47, 0x0a, 0x45, 0x2a, 0x1b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x52, 0x65, 0x71, 0x32, 0x26, 0xe4, 0xb8, 0xbb, 0xe5, 0x8a, 0xa8, 0xe4, 0xbd, 0xbf, + 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x20, 0xe7, 0xbc, 0x93, 0xe5, 0xad, 0x98, 0xe5, 0xa4, 0xb1, 0xe6, 0x95, 0x88, 0x22, 0xce, 0x02, + 0x0a, 0x14, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, + 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, + 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, + 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, + 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, + 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, + 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, + 0x49, 0x0a, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x14, 0x92, 0x41, 0x11, 0x2a, + 0x0f, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, + 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x42, 0x92, 0x41, 0x3f, 0x0a, + 0x3d, 0x2a, 0x14, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, + 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x32, 0x25, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe6, + 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0xe6, 0xb8, 0xb2, 0xe6, 0x9f, 0x93, 0xe4, 0xb8, 0xba, 0x20, 0x4d, + 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x20, 0xe9, 0xa2, 0x84, 0xe8, 0xa7, 0x88, 0x22, 0xa9, + 0x03, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, + 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, + 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, + 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, + 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, + 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, + 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, + 0x36, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x18, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, + 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x40, 0x52, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x55, 0x92, 0x41, 0x3b, 0x2a, 0x39, 0xe6, 0xa8, + 0xa1, 0xe6, 0x9d, 0xbf, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe5, 0x9c, 0xba, 0xe6, 0x99, 0xaf, + 0xef, 0xbc, 0x88, 0xe5, 0xa6, 0x82, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x88, 0x9b, 0xe5, + 0xbb, 0xba, 0xef, 0xbc, 0x8c, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, + 0xb0, 0xe7, 0xad, 0x89, 0xef, 0xbc, 0x89, 0xfa, 0x42, 0x14, 0x72, 0x12, 0x52, 0x00, 0x52, 0x06, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x42, 0x92, 0x41, 0x3f, 0x0a, 0x3d, 0x2a, 0x13, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, + 0x65, 0x71, 0x32, 0x26, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, + 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0x20, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x20, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xa5, 0x02, 0x0a, 0x1e, 0x47, + 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, + 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, + 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x23, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, + 0xfa, 0x42, 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, + 0x7b, 0x33, 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, + 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, + 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, + 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x3a, 0x5a, 0x92, 0x41, 0x57, 0x0a, 0x55, 0x2a, 0x1e, 0x47, + 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, + 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x32, 0x33, 0xe8, + 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, + 0x90, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, + 0xe5, 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x86, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, + 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0x20, 0x49, 0x44, 0xfa, 0x42, + 0x12, 0x72, 0x10, 0x32, 0x0e, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x66, 0x5d, 0x7b, 0x33, + 0x32, 0x7d, 0x24, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x35, + 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, + 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x19, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, + 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, 0x8b, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x04, + 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, + 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, + 0x01, 0x18, 0x80, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, + 0x2e, 0x0a, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe5, 0x9c, 0xba, 0xe6, 0x99, + 0xaf, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x3a, + 0x5a, 0x92, 0x41, 0x57, 0x0a, 0x55, 0x2a, 0x1e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x32, 0x33, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, + 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, + 0xe4, 0xba, 0x8e, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, + 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x12, + 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, + 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, + 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, + 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x3a, 0x33, 0x92, 0x41, 0x30, 0x0a, 0x2e, 0x2a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, + 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe8, 0x8e, 0xb7, + 0xe5, 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe5, + 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x22, 0xab, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, + 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, + 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, + 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, + 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x3a, 0x31, 0x92, 0x41, 0x2e, 0x0a, 0x2c, 0x2a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, + 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe8, 0xaf, 0xa6, + 0xe6, 0x83, 0x85, 0x22, 0xd3, 0x01, 0x0a, 0x0a, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x55, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x40, 0x0a, 0x12, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbf, 0x03, 0x0a, 0x13, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, + 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, + 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x42, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x24, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, + 0x49, 0x44, 0xfa, 0x42, 0x13, 0x72, 0x11, 0x32, 0x0f, 0x5e, 0x42, 0x43, 0x53, 0x2d, 0x4b, 0x38, + 0x53, 0x2d, 0x5c, 0x64, 0x7b, 0x35, 0x7d, 0x24, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x55, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, + 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x23, 0x72, 0x21, 0x32, 0x1f, + 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x28, 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, + 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x24, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, + 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, 0x04, + 0x10, 0x01, 0x18, 0x40, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, + 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x11, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe7, + 0xad, 0x9b, 0xe9, 0x80, 0x89, 0xe6, 0x9d, 0xa1, 0xe4, 0xbb, 0xb6, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x61, 0x76, 0x65, 0x41, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x0e, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe5, 0x8f, 0xa6, 0xe5, 0xad, 0x98, + 0xe4, 0xb8, 0xba, 0x52, 0x06, 0x73, 0x61, 0x76, 0x65, 0x41, 0x73, 0x3a, 0x2e, 0x92, 0x41, 0x2b, + 0x0a, 0x29, 0x2a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0xe8, + 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xbf, 0x03, 0x0a, 0x13, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, + 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0x92, 0x41, + 0x0b, 0x2a, 0x09, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x13, 0x72, + 0x11, 0x32, 0x0f, 0x5e, 0x42, 0x43, 0x53, 0x2d, 0x4b, 0x38, 0x53, 0x2d, 0x5c, 0x64, 0x7b, 0x35, + 0x7d, 0x24, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x55, 0x0a, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x37, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, + 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x23, 0x72, 0x21, 0x32, 0x1f, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, + 0x2d, 0x39, 0x5d, 0x28, 0x5b, 0x2d, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2a, 0x5b, 0x61, + 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe5, + 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x42, 0x11, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe7, 0xad, 0x9b, 0xe9, 0x80, 0x89, 0xe6, + 0x9d, 0xa1, 0xe4, 0xbb, 0xb6, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x2e, 0x92, + 0x41, 0x2b, 0x0a, 0x29, 0x2a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, + 0xb0, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xdb, 0x01, + 0x0a, 0x13, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, + 0x44, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, + 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, + 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, + 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xfa, 0x42, 0x06, 0x72, + 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x2e, 0x92, 0x41, 0x2b, + 0x0a, 0x29, 0x2a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x32, 0x12, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0xe8, + 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x22, 0xb2, 0x01, 0x0a, 0x13, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x16, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0x20, 0x49, 0x44, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x18, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, + 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x3a, 0x35, 0x92, 0x41, 0x32, 0x0a, 0x30, + 0x2a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x32, 0x18, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, + 0x95, 0xe4, 0xb8, 0xaa, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, + 0x22, 0x6a, 0x0a, 0x11, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0x92, 0x41, 0x0b, 0x2a, 0x09, 0xe9, + 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0x20, 0x49, 0x44, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x0d, 0x18, + 0x0e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x9b, 0x01, 0x0a, + 0x0d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x23, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x11, 0x92, 0x41, 0x05, + 0x2a, 0x03, 0x6b, 0x65, 0x79, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x30, 0x92, 0x41, 0x04, 0x2a, 0x02, 0x6f, 0x70, 0xfa, 0x42, 0x26, 0x72, 0x24, 0x52, 0x01, 0x3d, + 0x52, 0x02, 0x49, 0x6e, 0x52, 0x05, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x52, 0x06, 0x45, 0x78, 0x69, + 0x73, 0x74, 0x73, 0x52, 0x0c, 0x44, 0x6f, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x23, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0b, 0x92, 0x41, 0x08, 0x2a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x1c, 0x46, + 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, + 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, 0x11, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, + 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, + 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x11, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x12, 0x2c, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe7, 0xb1, 0xbb, 0xe5, 0x9e, + 0x8b, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x26, + 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0c, 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, + 0x92, 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, + 0xa9, 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x14, 0x92, 0x41, 0x07, 0x2a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0xfa, 0x42, 0x07, + 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2a, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x12, + 0x92, 0x41, 0x08, 0x2a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0xfa, 0x42, 0x04, 0x2a, 0x02, + 0x28, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, 0x43, 0x92, 0x41, 0x40, 0x0a, + 0x3e, 0x2a, 0x1c, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x32, + 0x1e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, + 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, + 0xcc, 0x04, 0x0a, 0x22, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, + 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, + 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, 0x41, 0x17, 0x2a, 0x15, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, + 0xa4, 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, + 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x03, 0x63, + 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0f, 0x92, 0x41, 0x05, 0x2a, 0x03, 0x63, + 0x72, 0x64, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x63, 0x72, 0x64, 0x12, 0x26, + 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0c, 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, + 0x92, 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, + 0xa9, 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x14, 0x92, 0x41, 0x07, 0x2a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0xfa, 0x42, 0x07, + 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2a, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x12, + 0x92, 0x41, 0x08, 0x2a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0xfa, 0x42, 0x04, 0x2a, 0x02, + 0x28, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, 0x52, 0x92, 0x41, 0x4f, 0x0a, + 0x4d, 0x2a, 0x22, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x32, 0x27, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, + 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, + 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0x22, 0xc2, + 0x03, 0x0a, 0x1c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0x92, 0x41, 0x0e, 0x2a, 0x0c, 0xe9, 0xa1, 0xb9, 0xe7, 0x9b, + 0xae, 0xe7, 0xbc, 0x96, 0xe7, 0xa0, 0x81, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x40, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x75, 0x0a, + 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x22, 0x92, + 0x41, 0x17, 0x2a, 0x15, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe5, 0x92, 0x8c, 0xe5, 0x91, 0xbd, + 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, + 0x01, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0x92, 0x41, 0x09, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x0d, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, 0x92, 0x41, 0x11, 0x2a, 0x0f, 0xe6, 0xa0, 0x87, 0xe7, 0xad, + 0xbe, 0xe9, 0x80, 0x89, 0xe6, 0x8b, 0xa9, 0xe5, 0x99, 0xa8, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0x92, 0x41, 0x06, 0x2a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x49, 0x92, 0x41, 0x46, 0x0a, 0x44, 0x2a, + 0x1c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x32, 0x24, 0xe8, + 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0xb5, + 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x95, 0xb0, 0xe9, 0x87, 0x8f, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, + 0xe4, 0xbd, 0x93, 0x32, 0x9a, 0x05, 0x0a, 0x05, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x92, 0x01, + 0x0a, 0x04, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x19, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, + 0x71, 0x1a, 0x1a, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x53, 0x92, + 0x41, 0x2c, 0x12, 0x08, 0x45, 0x63, 0x68, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x20, 0x45, 0x63, + 0x68, 0x6f, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, 0x8c, 0xe7, 0x94, 0xa8, 0xe4, + 0xba, 0x8e, 0xe5, 0xbc, 0x80, 0xe5, 0x8f, 0x91, 0xe6, 0xb5, 0x8b, 0xe8, 0xaf, 0x95, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x63, + 0x68, 0x6f, 0x12, 0x9b, 0x01, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x5c, 0x92, 0x41, 0x38, 0x12, 0x08, 0x50, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x2c, 0x50, 0x69, 0x6e, 0x67, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, 0x8c, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe6, 0xa3, 0x80, 0xe6, 0x9f, 0xa5, 0xe6, 0x9c, 0x8d, - 0xe5, 0x8a, 0xa1, 0xe6, 0x98, 0xaf, 0xe5, 0x90, 0xa6, 0xe5, 0xad, 0x98, 0xe6, 0xb4, 0xbb, 0x12, - 0xad, 0x01, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x48, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x7a, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, - 0x12, 0x1c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x92, 0x41, - 0x3e, 0x12, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x2f, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, - 0x8c, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe6, 0xa3, 0x80, 0xe6, 0x9f, 0xa5, 0xe6, 0x9c, 0x8d, - 0xe5, 0x8a, 0xa1, 0xe5, 0x81, 0xa5, 0xe5, 0xba, 0xb7, 0xe7, 0x8a, 0xb6, 0xe6, 0x80, 0x81, 0x12, - 0xad, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, - 0x12, 0x1c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x92, 0x41, - 0x3e, 0x12, 0x0b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x2f, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, - 0x8c, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x9c, 0x8d, - 0xe5, 0x8a, 0xa1, 0xe7, 0x89, 0x88, 0xe6, 0x9c, 0xac, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x32, - 0xc2, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, - 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x92, - 0x41, 0x22, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x12, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0x8a, 0x82, 0xe7, 0x82, 0xb9, 0xe5, 0x88, - 0x97, 0xe8, 0xa1, 0xa8, 0x32, 0xce, 0x01, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x12, 0xc0, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x12, 0x1c, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x4b, 0x12, 0x49, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x92, 0x41, 0x26, 0x12, - 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, - 0xe5, 0x8f, 0x96, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xe5, - 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x32, 0x9a, 0x6d, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x12, 0xeb, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa0, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x92, 0x41, 0x2a, 0x12, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, - 0x12, 0xe8, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1b, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x74, 0x12, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x22, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0xd6, 0x01, 0x0a, 0x0c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x63, + 0xe5, 0x8a, 0xa1, 0xe6, 0x98, 0xaf, 0xe5, 0x90, 0xa6, 0xe5, 0xad, 0x98, 0xe6, 0xb4, 0xbb, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x69, 0x6e, 0x67, + 0x12, 0xad, 0x01, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x92, 0x41, 0x3e, 0x12, 0x0b, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x2f, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x7a, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, 0x8c, 0xe7, 0x94, + 0xa8, 0xe4, 0xba, 0x8e, 0xe6, 0xa3, 0x80, 0xe6, 0x9f, 0xa5, 0xe6, 0x9c, 0x8d, 0xe5, 0x8a, 0xa1, + 0xe5, 0x81, 0xa5, 0xe5, 0xba, 0xb7, 0xe7, 0x8a, 0xb6, 0xe6, 0x80, 0x81, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, + 0x12, 0xad, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x87, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x59, 0x22, 0x54, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x25, 0x12, - 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x11, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0xf4, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0xa5, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x77, 0x1a, 0x72, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x25, 0x12, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, - 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x02, 0x0a, 0x0d, - 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1f, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x92, 0x41, 0x3e, 0x12, 0x0b, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x2f, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x20, 0xe6, 0x8e, 0xa5, 0xe5, 0x8f, 0xa3, 0xef, 0xbc, 0x8c, 0xe7, 0x94, + 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x9c, 0x8d, 0xe5, 0x8a, 0xa1, + 0xe7, 0x89, 0x88, 0xe6, 0x9c, 0xac, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x32, 0xc2, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x08, 0x4c, 0x69, + 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x71, 0x92, 0x41, 0x22, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, + 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0x8a, 0x82, + 0xe7, 0x82, 0xb9, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, + 0x44, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x32, 0xce, 0x01, 0x0a, 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0xc0, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb4, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x7f, 0x1a, 0x7a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x2c, 0x12, 0x11, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe9, 0x87, 0x8d, 0xe6, - 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0xa9, 0x02, 0x0a, 0x13, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4f, 0x72, 0x52, - 0x65, 0x73, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x25, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xcc, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8d, 0x01, 0x1a, 0x87, 0x01, 0x2f, 0x63, 0x6c, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x92, 0x41, 0x26, 0x12, + 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, + 0xe5, 0x8f, 0x96, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0xe7, 0xa9, 0xba, 0xe9, 0x97, 0xb4, 0xe5, + 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x2f, 0x7b, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x35, 0x12, 0x17, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x4f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe6, 0x9a, 0x82, 0xe5, 0x81, 0x9c, 0xe6, 0x88, 0x96, 0xe6, 0x81, - 0xa2, 0xe5, 0xa4, 0x8d, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0xfa, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, - 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xad, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x7d, 0x1a, 0x78, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x27, 0x12, 0x0f, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x14, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x20, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0x12, 0xa9, 0x02, 0x0a, - 0x12, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x50, 0x6f, 0x12, 0x27, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x82, 0x01, 0x1a, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x32, 0x9a, 0x6d, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x12, 0xeb, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa0, + 0x01, 0x92, 0x41, 0x2a, 0x12, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x3f, 0x12, 0x16, 0x52, 0x65, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x6f, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x25, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, - 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, - 0x9e, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x6f, 0x64, 0x12, 0xf1, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, - 0x2a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x25, 0x12, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe5, 0x88, 0xa0, 0xe9, 0x99, - 0xa4, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0xa2, 0x02, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, + 0x73, 0x12, 0xe8, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, + 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, 0x92, 0x41, 0x22, + 0x12, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x12, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd6, 0x01, 0x0a, + 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, - 0xbf, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7c, 0x12, 0x7a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x87, 0x01, 0x92, 0x41, + 0x25, 0x12, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, 0x3a, 0x01, 0x2a, 0x22, + 0x54, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xf4, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xa5, 0x01, 0x92, 0x41, 0x25, 0x12, 0x10, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe6, 0x9b, + 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x77, 0x3a, 0x01, 0x2a, 0x1a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x92, 0x41, 0x3a, 0x12, 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0xb6, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x12, 0x24, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0xd8, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8a, 0x01, 0x12, 0x87, 0x01, 0x2f, 0x63, 0x6c, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x85, 0x02, 0x0a, + 0x0d, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1f, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb4, 0x01, + 0x92, 0x41, 0x2c, 0x12, 0x11, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, + 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x7f, 0x3a, 0x01, 0x2a, 0x1a, 0x7a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0xa9, 0x02, 0x0a, 0x13, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4f, 0x72, + 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x25, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x52, 0x65, 0x73, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0xcc, 0x01, 0x92, 0x41, 0x35, 0x12, 0x17, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4f, 0x72, + 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x1a, 0xe6, 0x9a, 0x82, 0xe5, 0x81, 0x9c, 0xe6, 0x88, 0x96, 0xe6, 0x81, 0xa2, 0xe5, 0xa4, + 0x8d, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x8d, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x87, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x70, 0x61, 0x75, 0x73, + 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x7d, + 0x12, 0xfa, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xad, 0x01, + 0x92, 0x41, 0x27, 0x12, 0x0f, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x14, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x20, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7d, + 0x3a, 0x01, 0x2a, 0x1a, 0x78, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0xa9, 0x02, + 0x0a, 0x12, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x50, 0x6f, 0x12, 0x27, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x92, 0x41, + 0x3f, 0x12, 0x16, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x25, 0xe9, 0x87, 0x8d, 0xe6, 0x96, + 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, 0x9e, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x6f, 0x64, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x82, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, @@ -5253,285 +5523,356 @@ var file_cluster_resources_proto_rawDesc = []byte{ 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x7d, 0x92, 0x41, 0x44, 0x12, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0xf1, 0x01, 0x0a, 0x0c, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa2, 0x01, 0x92, 0x41, 0x25, 0x12, 0x10, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x11, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x2a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, + 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa2, 0x02, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x22, 0xbf, 0x01, 0x92, 0x41, 0x3a, 0x12, 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7c, 0x12, 0x7a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x12, 0xb6, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x12, 0x24, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0xd8, 0x01, 0x92, 0x41, 0x44, 0x12, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x25, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0xe5, 0xb7, - 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x12, 0xaa, 0x02, 0x0a, 0x15, 0x52, - 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcc, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x8b, 0x01, 0x1a, 0x85, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2f, - 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x37, - 0x12, 0x19, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe5, 0x9b, 0x9e, - 0xe6, 0xbb, 0x9a, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xe4, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8a, + 0x01, 0x12, 0x87, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xaa, 0x02, 0x0a, 0x15, + 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcc, 0x01, 0x92, 0x41, 0x37, 0x12, + 0x19, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe5, 0x9b, 0x9e, 0xe6, + 0xbb, 0x9a, 0x20, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8b, 0x01, 0x3a, 0x01, 0x2a, + 0x1a, 0x85, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2f, 0x7b, 0x72, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xe4, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x9d, 0x01, 0x92, 0x41, 0x27, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x53, 0x20, 0x41, 0x50, + 0x49, 0x1a, 0x19, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x73, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x65, 0x74, 0x73, 0x12, + 0xe1, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, 0x69, + 0x73, 0x74, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, + 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, + 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x12, 0x6a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x73, 0x65, 0x74, 0x73, 0x92, 0x41, 0x27, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x53, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x19, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x73, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xe1, - 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x12, 0x6a, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, + 0x65, 0x74, 0x73, 0x12, 0xde, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x44, 0x53, 0x12, 0x1b, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x99, 0x01, 0x92, 0x41, 0x1d, 0x12, 0x09, + 0x47, 0x65, 0x74, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, + 0x96, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x73, 0x12, 0x71, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xcc, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x81, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x53, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x44, 0x61, 0x65, 0x6d, + 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x3a, 0x01, 0x2a, 0x22, 0x53, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, - 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, - 0x69, 0x73, 0x74, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, - 0x96, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, - 0xa1, 0xa8, 0x12, 0xde, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x44, 0x53, 0x12, 0x1b, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x99, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x73, - 0x12, 0x71, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1d, 0x12, 0x09, 0x47, 0x65, 0x74, 0x44, 0x53, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x10, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x12, 0xcc, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x53, + 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, + 0x65, 0x74, 0x73, 0x12, 0xea, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x81, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x22, 0x53, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, + 0x01, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x53, 0x20, 0x41, + 0x50, 0x49, 0x1a, 0x10, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x53, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x76, 0x3a, 0x01, 0x2a, 0x1a, 0x71, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, + 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x12, 0xff, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x53, 0x12, 0x1f, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb2, 0x01, + 0x92, 0x41, 0x2b, 0x12, 0x11, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, + 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x7e, 0x3a, 0x01, 0x2a, 0x1a, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, - 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x10, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, - 0x65, 0x74, 0x12, 0xea, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x53, 0x12, - 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x76, 0x1a, 0x71, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, - 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x20, 0x12, - 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe6, - 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x12, - 0xff, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x53, 0x12, 0x1f, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb2, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x7e, 0x1a, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x2b, 0x12, 0x11, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe9, 0x87, 0x8d, 0xe6, 0x96, - 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x12, 0x98, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xb9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x12, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, - 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, - 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x92, 0x41, 0x35, 0x12, 0x18, 0x47, 0x65, 0x74, 0x44, 0x53, 0x48, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, + 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x98, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x53, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, + 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x22, 0xb9, 0x01, 0x92, 0x41, 0x35, 0x12, 0x18, 0x47, 0x65, 0x74, 0x44, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x19, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xab, 0x02, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, - 0x66, 0x66, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd1, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x89, 0x01, - 0x12, 0x86, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x92, 0x41, 0x3e, 0x12, 0x15, 0x47, 0x65, - 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x25, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x61, 0x65, 0x6d, - 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0xe5, 0xb7, - 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x12, 0xa0, 0x02, 0x0a, 0x11, 0x52, - 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0xc6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8a, 0x01, 0x1a, 0x84, - 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, - 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x32, 0x12, 0x15, 0x52, 0x6f, 0x6c, + 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x7b, 0x12, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0xab, 0x02, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, + 0x69, 0x66, 0x66, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd1, 0x01, 0x92, 0x41, 0x3e, 0x12, 0x15, 0x47, + 0x65, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x25, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x44, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0xe5, + 0xb7, 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x89, 0x01, 0x12, 0x86, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xa0, 0x02, 0x0a, 0x11, + 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xc6, 0x01, 0x92, 0x41, 0x32, 0x12, 0x15, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x44, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x19, 0xe5, 0x9b, 0x9e, 0xe6, 0xbb, 0x9a, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xe7, 0x01, - 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x73, 0x2a, 0x71, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, - 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x44, 0x61, - 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x12, 0xe7, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x54, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x9f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6e, 0x12, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x6e, 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x8a, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x84, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, - 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x92, 0x41, 0x28, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x19, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, - 0xa8, 0x12, 0xe4, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, 0x12, 0x1b, 0x2e, 0x63, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, + 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xe7, + 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x01, 0x92, 0x41, 0x20, 0x12, + 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, + 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x73, 0x2a, 0x71, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x65, 0x74, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe7, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x54, 0x53, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x9f, 0x01, 0x92, 0x41, 0x28, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x54, 0x53, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x19, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x6e, 0x12, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, + 0x74, 0x73, 0x12, 0xe4, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, 0x12, 0x1b, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0a, + 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x75, 0x12, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, + 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd2, 0x01, 0x0a, 0x09, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe5, 0x88, 0x9b, 0xe5, + 0xbb, 0xba, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x5a, 0x3a, 0x01, 0x2a, 0x22, 0x55, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x12, 0xf0, + 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x75, - 0x12, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x20, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x12, 0xd2, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5a, 0x22, 0x55, 0x2f, + 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa4, 0x01, 0x92, 0x41, 0x23, + 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x12, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, + 0x53, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x78, 0x3a, 0x01, 0x2a, 0x1a, 0x73, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x12, 0x85, 0x02, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x54, 0x53, + 0x12, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0xb7, 0x01, 0x92, 0x41, 0x2d, 0x12, 0x11, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, + 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, + 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x80, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x7b, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x9e, 0x02, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x53, 0x54, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xbe, 0x01, 0x92, 0x41, 0x38, 0x12, + 0x19, 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7d, 0x12, 0x7b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, - 0x73, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, - 0xba, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x12, 0xf0, 0x01, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0xb1, 0x02, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, + 0x66, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd6, 0x01, 0x92, 0x41, 0x41, 0x12, 0x16, 0x47, 0x65, 0x74, + 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x27, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0xe5, 0xb7, 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x8b, 0x01, 0x12, 0x88, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, + 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xa6, + 0x02, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa4, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x78, 0x1a, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe6, 0x9b, - 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, - 0x12, 0x85, 0x02, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x54, 0x53, 0x12, - 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb7, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x80, 0x01, 0x1a, 0x7b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, - 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x2d, 0x12, 0x11, 0x52, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, - 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x12, 0x9e, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x53, 0x54, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xbe, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x7d, 0x12, 0x7b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x92, 0x41, - 0x38, 0x12, 0x19, 0x47, 0x65, 0x74, 0x53, 0x54, 0x53, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, - 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xb1, 0x02, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, - 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0xd6, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8b, 0x01, 0x12, 0x88, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x92, 0x41, 0x35, 0x12, + 0x16, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe5, 0x9b, 0x9e, 0xe6, 0xbb, 0x9a, 0x20, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8c, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x86, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, @@ -5539,437 +5880,416 @@ var file_cluster_resources_proto_rawDesc = []byte{ 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x92, 0x41, 0x41, 0x12, 0x16, 0x47, 0x65, - 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x27, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0xe5, 0xb7, 0xae, 0xe5, 0xbc, 0x82, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x12, 0xa6, 0x02, - 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x8c, 0x01, 0x1a, 0x86, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, - 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, - 0x35, 0x12, 0x16, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x54, 0x53, 0x52, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe5, 0x9b, 0x9e, 0xe6, 0xbb, - 0x9a, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0x52, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xf6, 0x01, 0x0a, 0x08, 0x53, 0x63, 0x61, 0x6c, 0x65, - 0x53, 0x54, 0x53, 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xac, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7e, 0x1a, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2f, 0x7b, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xf6, 0x01, 0x0a, 0x08, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x53, 0x54, 0x53, 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0xac, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0c, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x53, 0x54, + 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, + 0x65, 0x74, 0x20, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x7e, 0x3a, 0x01, 0x2a, 0x1a, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, + 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x12, 0xa6, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, + 0x54, 0x53, 0x50, 0x6f, 0x12, 0x27, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x92, 0x41, + 0x3e, 0x12, 0x13, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x54, 0x53, + 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x27, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, + 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, + 0x73, 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, 0x9e, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x6f, 0x64, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x83, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x25, 0x12, 0x0c, 0x53, 0x63, 0x61, 0x6c, - 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, - 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0x12, - 0xa6, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x54, - 0x53, 0x50, 0x6f, 0x12, 0x27, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcb, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x83, 0x01, 0x1a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, + 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0xed, 0x01, 0x0a, 0x09, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa1, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x53, 0x54, 0x53, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe5, 0x88, 0xa0, 0xe9, + 0x99, 0xa4, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x75, 0x2a, 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, - 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x3e, 0x12, 0x13, 0x52, 0x65, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x54, 0x53, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x27, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, - 0x9e, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x6f, 0x64, 0x12, 0xed, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x54, 0x53, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0xa1, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x75, 0x2a, 0x73, 0x2f, + 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xdd, 0x01, 0x0a, 0x06, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x4a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x96, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x4a, 0x20, 0x41, + 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, + 0x6f, 0x62, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, + 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, + 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x05, 0x47, 0x65, + 0x74, 0x43, 0x4a, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, + 0x01, 0x92, 0x41, 0x1b, 0x12, 0x09, 0x47, 0x65, 0x74, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x0e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xc7, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x43, 0x4a, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x7d, 0x92, 0x41, 0x1e, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4a, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x43, 0x72, 0x6f, + 0x6e, 0x4a, 0x6f, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x3a, 0x01, 0x2a, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x92, 0x41, 0x23, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x54, 0x53, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x12, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x12, 0xdd, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x4a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x96, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, + 0x12, 0xe6, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4a, 0x12, 0x1e, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x92, 0x41, + 0x1e, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x0e, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x3a, 0x01, 0x2a, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, - 0x62, 0x73, 0x92, 0x41, 0x23, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x4a, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, - 0x62, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xda, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, - 0x43, 0x4a, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1b, 0x12, 0x09, 0x47, 0x65, 0x74, 0x43, - 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x72, - 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0xc7, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x43, 0x4a, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, - 0x1e, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x0e, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, - 0xe6, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4a, 0x12, 0x1e, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x74, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x62, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe3, 0x01, 0x0a, 0x08, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x43, 0x4a, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x92, 0x41, 0x1e, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, + 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, + 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, + 0xd7, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1c, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8f, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, + 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x4a, 0x6f, 0x62, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x66, 0x12, 0x64, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0xd4, 0x01, 0x0a, 0x06, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x8e, 0x01, 0x92, 0x41, 0x18, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, + 0x49, 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x4a, 0x6f, 0x62, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1e, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, - 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0xe3, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x43, 0x4a, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x12, 0xc1, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1e, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x76, 0x92, 0x41, + 0x1b, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x0a, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x4a, 0x6f, 0x62, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x52, 0x3a, 0x01, 0x2a, 0x22, 0x4d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, + 0x6a, 0x6f, 0x62, 0x73, 0x12, 0xe0, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x94, 0x01, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, + 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x4a, 0x6f, + 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x3a, 0x01, 0x2a, 0x1a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xdd, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x63, 0x72, - 0x6f, 0x6e, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1e, - 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x4a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, - 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0xd7, - 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x12, - 0x64, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, - 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, - 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x4a, 0x6f, - 0x62, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xd4, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, - 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, + 0x20, 0x4a, 0x6f, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x2a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd5, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x6f, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8e, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x18, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x4a, 0x6f, 0x62, 0x12, - 0xc1, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1e, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x76, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x52, 0x22, 0x4d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, - 0x62, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, - 0x4a, 0x6f, 0x62, 0x12, 0xe0, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x94, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x1a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x01, 0x92, 0x41, 0x1f, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x88, 0x97, + 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x12, 0x64, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, + 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x12, + 0xf6, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, + 0x12, 0x21, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa0, 0x01, 0x92, 0x41, 0x37, 0x12, 0x10, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x23, 0xe9, + 0x80, 0x9a, 0xe8, 0xbf, 0x87, 0xe8, 0x8a, 0x82, 0xe7, 0x82, 0xb9, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, + 0xb0, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x88, 0x97, 0xe8, + 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x12, 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe6, 0x9b, 0xb4, 0xe6, - 0x96, 0xb0, 0x20, 0x4a, 0x6f, 0x62, 0x12, 0xdd, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x91, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x2a, 0x6b, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x6a, 0x6f, 0x62, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0xa0, 0xe9, - 0x99, 0xa4, 0x20, 0x4a, 0x6f, 0x62, 0x12, 0xd5, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x6f, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x7b, + 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x12, 0xd2, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, + 0x50, 0x6f, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8e, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x12, 0x64, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x92, 0x41, 0x1f, 0x12, - 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, - 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xf6, - 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x12, - 0x21, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x22, 0xa0, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x12, 0x5e, 0x2f, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x6f, - 0x64, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x77, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x92, 0x41, 0x37, - 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x42, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x23, 0xe9, 0x80, 0x9a, 0xe8, 0xbf, 0x87, 0xe8, 0x8a, 0x82, 0xe7, 0x82, 0xb9, - 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, - 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xd2, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x50, - 0x6f, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8d, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x92, 0x41, 0x17, 0x12, 0x09, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x12, 0xbf, 0x01, 0x0a, - 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x22, - 0x4d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x3a, 0x01, - 0x2a, 0x92, 0x41, 0x1a, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x50, 0x6f, 0x64, 0x12, 0xde, - 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x93, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x70, 0x1a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, - 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x1a, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x6f, 0x64, 0x12, - 0xdb, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8d, 0x01, + 0x92, 0x41, 0x17, 0x12, 0x09, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, + 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, + 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, + 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xbf, 0x01, + 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x92, 0x41, 0x1a, 0x12, 0x0c, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0x9b, + 0xe5, 0xbb, 0xba, 0x20, 0x50, 0x6f, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x3a, 0x01, 0x2a, + 0x22, 0x4d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, + 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x12, + 0xde, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x90, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x6d, 0x2a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x93, 0x01, 0x92, 0x41, 0x1a, + 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, + 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x6f, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, + 0x3a, 0x01, 0x2a, 0x1a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x92, 0x41, 0x1a, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x50, 0x6f, 0x64, 0x12, 0xed, 0x01, - 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x50, 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, 0x6c, + 0x12, 0xdb, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x90, 0x01, 0x92, 0x41, + 0x1a, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x0a, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x50, 0x6f, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x6d, 0x2a, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xed, + 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x50, 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa4, 0x01, 0x92, 0x41, 0x29, 0x12, 0x0d, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x6f, 0x50, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, + 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, + 0x9a, 0x84, 0x20, 0x50, 0x56, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x72, 0x12, 0x70, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, + 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x70, 0x76, 0x63, 0x73, 0x12, 0xf7, + 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x43, 0x4d, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x72, 0x12, - 0x70, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xaf, 0x01, 0x92, 0x41, 0x2e, 0x12, 0x0c, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x6f, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1e, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, 0x9a, 0x84, + 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x78, + 0x12, 0x76, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, + 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x12, 0xf9, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x6f, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xad, 0x01, 0x92, 0x41, 0x2f, 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x6f, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0x8e, + 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, + 0x9a, 0x84, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x75, 0x12, + 0x73, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, - 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x70, 0x76, 0x63, - 0x73, 0x92, 0x41, 0x29, 0x12, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x50, 0x56, 0x43, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, - 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x56, 0x43, 0x12, 0xf7, 0x01, - 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x43, 0x4d, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xaf, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x78, 0x12, 0x76, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, - 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x92, 0x41, 0x2e, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x6f, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, - 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, 0x9a, 0x84, 0x20, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0xf9, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, - 0x50, 0x6f, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x73, 0x12, 0xf7, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0xad, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x75, 0x12, 0x73, 0x2f, 0x63, + 0x65, 0x73, 0x70, 0x22, 0xa8, 0x01, 0x92, 0x41, 0x24, 0x12, 0x10, 0x52, 0x65, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe9, 0x87, 0x8d, + 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x50, 0x6f, 0x64, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x7b, 0x3a, 0x01, 0x2a, 0x1a, 0x76, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x91, + 0x02, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb9, 0x01, 0x92, 0x41, 0x35, 0x12, 0x11, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x20, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x8c, 0x85, 0xe5, + 0x90, 0xab, 0xe7, 0x9a, 0x84, 0xe5, 0xae, 0xb9, 0xe5, 0x99, 0xa8, 0xe5, 0x88, 0x97, 0xe8, 0xa1, + 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x12, 0x79, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x70, + 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x73, 0x12, 0xa2, 0x02, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xd0, 0x01, 0x92, 0x41, 0x3a, 0x12, 0x10, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x26, 0xe8, 0x8e, + 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe4, + 0xb8, 0x8b, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe5, 0xae, 0xb9, 0xe5, 0x99, 0xa8, 0xe4, 0xbf, + 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8c, 0x01, 0x12, 0x89, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, - 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x73, 0x92, 0x41, 0x2f, 0x12, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, - 0x6f, 0x64, 0x20, 0xe5, 0x85, 0xb3, 0xe8, 0x81, 0x94, 0xe7, 0x9a, 0x84, 0x20, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x12, 0xf7, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x50, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0xa8, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x1a, 0x76, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, 0x70, 0x6f, 0x64, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x24, 0x12, 0x10, 0x52, 0x65, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe9, 0x87, 0x8d, - 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0x50, 0x6f, 0x64, 0x12, 0x91, 0x02, - 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, - 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb9, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x12, 0x79, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, - 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x92, 0x41, 0x35, 0x12, 0x11, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x20, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe5, 0x8c, 0x85, 0xe5, - 0x90, 0xab, 0xe7, 0x9a, 0x84, 0xe5, 0xae, 0xb9, 0xe5, 0x99, 0xa8, 0xe5, 0x88, 0x97, 0xe8, 0xa1, - 0xa8, 0x12, 0xa2, 0x02, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x12, 0x21, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0xd0, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8c, 0x01, 0x12, 0x89, 0x01, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, - 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x3a, 0x12, 0x10, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x26, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0x20, 0x50, 0x6f, 0x64, - 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe5, 0xae, 0xb9, 0xe5, 0x99, 0xa8, - 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x12, 0xc9, 0x02, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0xec, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x95, 0x01, 0x12, 0x92, 0x01, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2f, - 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x92, 0x41, 0x4d, 0x12, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x49, 0x6e, 0x66, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x32, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0x20, 0x50, 0x6f, 0x64, - 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe5, 0xae, 0xb9, 0xe5, 0x99, 0xa8, - 0xe7, 0x8e, 0xaf, 0xe5, 0xa2, 0x83, 0xe5, 0x8f, 0x98, 0xe9, 0x87, 0x8f, 0xe4, 0xbf, 0xa1, 0xe6, - 0x81, 0xaf, 0x32, 0x9d, 0x1c, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0xdf, - 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x67, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x97, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, - 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xc9, 0x02, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x21, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xec, 0x01, 0x92, 0x41, 0x4d, 0x12, 0x17, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x45, 0x6e, 0x76, 0x49, 0x6e, 0x66, 0x6f, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x32, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, + 0x9a, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe4, 0xb8, 0x8b, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, 0xe5, + 0xae, 0xb9, 0xe5, 0x99, 0xa8, 0xe7, 0x8e, 0xaf, 0xe5, 0xa2, 0x83, 0xe5, 0x8f, 0x98, 0xe9, 0x87, + 0x8f, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x95, 0x01, 0x12, 0x92, + 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x92, 0x41, 0x24, 0x12, 0x0b, 0x4c, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, - 0x96, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, - 0x12, 0xdc, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x12, 0x1b, 0x2e, 0x63, 0x6c, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, + 0x2f, 0x70, 0x6f, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x32, 0x9d, 0x1c, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0xdf, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x67, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x97, 0x01, 0x92, 0x41, 0x24, 0x12, 0x0b, 0x4c, + 0x69, 0x73, 0x74, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, + 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x12, 0xdc, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x12, 0x1b, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x92, 0x41, 0x1c, 0x12, 0x0a, 0x47, + 0x65, 0x74, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, + 0x96, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, @@ -5977,1102 +6297,1151 @@ var file_cluster_resources_proto_rawDesc = []byte{ 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x92, 0x41, 0x1c, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x0e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0xc9, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x56, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0x9b, - 0xe5, 0xbb, 0xba, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0xe8, 0x01, 0x0a, 0x09, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, - 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, - 0x2f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x49, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0xe5, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x99, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1f, 0x12, - 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, - 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0xde, - 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x56, 0x43, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x12, - 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x92, 0x41, 0x24, 0x12, 0x0b, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, - 0xdb, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x53, 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, + 0x12, 0xc9, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7e, 0x92, 0x41, + 0x1f, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x0e, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x3a, 0x01, 0x2a, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0xe8, 0x01, 0x0a, + 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x12, 0x6e, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x01, 0x92, 0x41, 0x1f, 0x12, 0x0d, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe6, + 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x74, 0x3a, 0x01, 0x2a, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe5, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x49, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x99, 0x01, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x49, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, + 0x20, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, - 0x1c, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe8, - 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc8, 0x01, - 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, + 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, + 0xde, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x56, 0x43, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x55, 0x22, 0x50, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, - 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xe7, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x73, 0x1a, 0x6e, 0x2f, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, - 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x0e, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0xe4, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x56, 0x43, - 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x2a, 0x6e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x92, 0x41, 0x24, 0x12, 0x0b, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, + 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x12, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0xa0, 0xe9, 0x99, - 0xa4, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xdf, 0x01, 0x0a, 0x06, 0x4c, 0x69, - 0x73, 0x74, 0x45, 0x50, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x98, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, - 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x50, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xdc, 0x01, 0x0a, 0x05, - 0x47, 0x65, 0x74, 0x45, 0x50, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x97, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, - 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x1d, 0x12, 0x09, 0x47, - 0x65, 0x74, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0xf6, 0x01, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x45, 0x50, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xab, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x78, 0x12, 0x76, + 0x12, 0xdb, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x53, 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, 0x01, 0x92, 0x41, 0x1c, 0x12, 0x0a, 0x47, 0x65, + 0x74, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, + 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x12, 0x6e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x92, 0x41, 0x2a, 0x12, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x50, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, - 0x8f, 0x96, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, 0xe7, 0x8a, 0xb6, - 0xe6, 0x80, 0x81, 0x12, 0xc9, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x50, - 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7f, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x20, 0x12, - 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, - 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, - 0xe8, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x50, 0x12, 0x1e, 0x2e, 0x63, + 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xc8, + 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x74, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7d, 0x92, 0x41, 0x1f, 0x12, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, + 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x55, 0x3a, 0x01, 0x2a, 0x22, 0x50, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0xe7, 0x01, 0x0a, 0x09, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe6, 0x9b, 0xb4, 0xe6, + 0x96, 0xb0, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x73, + 0x3a, 0x01, 0x2a, 0x1a, 0x6e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, - 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0xe5, 0x01, 0x0a, 0x08, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x50, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, - 0x41, 0x20, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x10, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x32, 0xd2, 0x11, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xdf, 0x01, - 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x4d, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, 0x68, 0x2f, + 0x72, 0x6b, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x12, 0xe4, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x56, + 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x98, 0x01, 0x92, 0x41, 0x1f, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x56, 0x43, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0e, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x70, 0x2a, 0x6e, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xdf, 0x01, 0x0a, 0x06, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x50, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x98, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x50, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x6a, 0x12, 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0xdc, 0x01, 0x0a, + 0x05, 0x47, 0x65, 0x74, 0x45, 0x50, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x97, 0x01, 0x92, 0x41, 0x1d, 0x12, 0x09, 0x47, 0x65, 0x74, 0x45, 0x50, 0x20, 0x41, + 0x50, 0x49, 0x1a, 0x10, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xf6, 0x01, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x45, 0x50, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xab, 0x01, 0x92, 0x41, 0x2a, 0x12, 0x0f, 0x47, 0x65, + 0x74, 0x45, 0x50, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, + 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, + 0xe7, 0x8a, 0xb6, 0xe6, 0x80, 0x81, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x78, 0x12, 0x76, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0xc9, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, + 0x50, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x7f, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, + 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x3a, 0x01, 0x2a, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, - 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, - 0xdc, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x43, 0x4d, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x97, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x12, 0xe8, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x50, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, - 0x1d, 0x12, 0x09, 0x47, 0x65, 0x74, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0xc9, - 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x56, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x6d, 0x61, 0x70, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, - 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0xe8, 0x01, 0x0a, 0x08, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, 0x01, 0x92, 0x41, + 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x10, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x3a, 0x01, 0x2a, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe5, 0x01, 0x0a, 0x08, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x50, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x45, 0x50, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0xa0, 0xe9, + 0x99, 0xa4, 0x20, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x71, 0x2a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x32, 0xd2, 0x11, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xdf, + 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x4d, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x1a, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0a, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x12, 0x68, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, + 0x12, 0xdc, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x43, 0x4d, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x97, 0x01, 0x92, 0x41, 0x1d, 0x12, 0x09, 0x47, 0x65, 0x74, + 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0xe5, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x9a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, - 0x61, 0x70, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0xa0, - 0xe9, 0x99, 0xa4, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0xe1, 0x01, - 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x63, + 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, + 0xc9, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x67, 0x12, 0x65, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, - 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x92, 0x41, 0x26, 0x12, 0x0e, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x14, 0xe8, 0x8e, 0xb7, - 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, - 0xa8, 0x12, 0xde, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, - 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x6e, 0x12, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x92, 0x41, 0x1e, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x0d, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x12, 0xcb, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x7d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x22, 0x4e, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x21, 0x12, - 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x0d, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x12, 0xea, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x9b, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x1a, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7f, 0x92, 0x41, 0x20, 0x12, + 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, + 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x3a, 0x01, 0x2a, 0x22, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x21, 0x12, 0x10, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0d, - 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0xe7, 0x01, - 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1e, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x6e, 0x2a, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x12, 0xe8, 0x01, 0x0a, 0x08, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x43, 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe6, 0x9b, 0xb4, 0xe6, + 0x96, 0xb0, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x74, 0x3a, 0x01, 0x2a, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x21, 0x12, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0d, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, - 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x32, 0xb8, 0x1d, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x12, 0xd8, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x12, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x5c, 0x12, 0x5a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x92, - 0x41, 0x2c, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1e, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xd5, - 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x50, 0x56, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x90, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x12, 0x61, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, - 0x41, 0x24, 0x12, 0x09, 0x47, 0x65, 0x74, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, - 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0xda, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x56, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe5, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x43, 0x4d, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x8f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x22, 0x5a, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x27, 0x12, 0x0c, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe5, 0x88, 0x9b, 0xe5, - 0xbb, 0xba, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x12, 0xe1, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, - 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x1a, 0x61, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, - 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x27, - 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, - 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0xde, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x50, 0x56, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x93, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x2a, 0x61, 0x2f, 0x63, 0x6c, + 0x70, 0x22, 0x9a, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, + 0x4d, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x10, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x2a, 0x6f, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x6d, 0x61, 0x70, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe1, + 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x92, 0x41, 0x26, 0x12, + 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x14, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0xe5, + 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x67, 0x12, 0x65, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, - 0x27, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, - 0x17, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0xfc, 0x01, 0x0a, 0x07, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x56, 0x43, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x73, 0x12, 0xde, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x95, 0x01, 0x92, 0x41, + 0x1e, 0x12, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x0d, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x6e, 0x12, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x12, 0xcb, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x7d, 0x92, 0x41, 0x21, 0x12, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0d, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, + 0xba, 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x3a, 0x01, + 0x2a, 0x22, 0x4e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x73, 0x12, 0xea, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xb4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x79, 0x12, 0x77, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, - 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x73, 0x92, 0x41, 0x32, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x43, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x23, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xfa, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x50, - 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb4, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x80, 0x01, 0x12, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x2a, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x50, - 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, - 0x6c, 0x61, 0x69, 0x6d, 0x12, 0xb0, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x56, 0x43, 0x4d, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0xe1, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8c, 0x01, 0x12, 0x89, 0x01, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x92, 0x41, 0x4b, 0x12, 0x13, 0x47, 0x65, - 0x74, 0x50, 0x56, 0x43, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x34, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x20, - 0xe8, 0xa2, 0xab, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe6, 0x8c, 0x82, 0xe8, 0xbd, 0xbd, 0xe7, 0x9a, - 0x84, 0xe4, 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x12, 0xe7, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x65, 0x22, 0x60, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x3a, 0x01, - 0x2a, 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x50, 0x65, 0x72, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x12, 0x86, 0x02, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, 0x12, - 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xba, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x83, 0x01, 0x1a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe6, 0x9b, - 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x83, 0x02, 0x0a, 0x09, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb7, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x80, 0x01, - 0x2a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x22, 0x9b, 0x01, 0x92, 0x41, 0x21, 0x12, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0d, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, + 0x20, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x71, 0x3a, 0x01, 0x2a, + 0x1a, 0x6c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, - 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x1c, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x12, 0xd1, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x43, 0x12, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, - 0x12, 0x57, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x92, 0x41, 0x28, 0x12, 0x0a, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0xe5, 0x88, - 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xce, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x53, 0x43, 0x12, 0x1b, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x89, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x60, 0x12, 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x92, 0x41, 0x20, 0x12, 0x09, 0x47, 0x65, 0x74, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x13, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0xd3, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x88, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, 0x22, 0x57, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x23, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x08, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x1a, - 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x23, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x43, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0xd7, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x8c, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x2a, 0x5e, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x23, 0x12, - 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe5, - 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x32, 0x8f, 0x09, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x12, 0xe7, 0x01, 0x0a, 0x06, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x41, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0xa0, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x7d, 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x92, 0x41, 0x2a, 0x12, 0x0a, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0xe5, - 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xe4, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x53, 0x41, 0x12, - 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x74, 0x12, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xe7, + 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, + 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, + 0x92, 0x41, 0x21, 0x12, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0d, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6e, 0x2a, 0x6c, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0xb8, 0x1d, 0x0a, 0x07, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x12, 0xd8, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x12, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x92, 0x41, + 0x2c, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1e, 0xe8, + 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x5c, 0x12, 0x5a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x22, 0x12, 0x09, 0x47, 0x65, 0x74, 0x53, - 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xd2, 0x01, 0x0a, - 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, + 0xd5, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x50, 0x56, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x87, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, - 0x22, 0x54, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x25, 0x12, 0x0c, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe5, 0x88, 0x9b, 0xe5, - 0xbb, 0xba, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0xf0, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x41, 0x12, 0x1e, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa5, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x77, 0x1a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x72, 0x62, 0x61, - 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x25, 0x12, - 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe6, - 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xed, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, - 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0xa2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x2a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x90, 0x01, 0x92, 0x41, 0x24, 0x12, 0x09, 0x47, 0x65, 0x74, 0x50, + 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x63, 0x12, 0x61, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xda, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x56, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x8f, 0x01, 0x92, 0x41, 0x27, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x50, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x3a, 0x01, 0x2a, 0x22, 0x5a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, - 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x25, 0x12, - 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe5, - 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x86, 0x08, 0x0a, 0x03, 0x48, 0x50, 0x41, 0x12, 0xcc, 0x01, 0x0a, - 0x07, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x50, 0x41, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x84, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x12, 0x59, 0x2f, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, 0x69, 0x73, - 0x74, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0x20, 0x48, 0x50, 0x41, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xc9, 0x01, 0x0a, 0x06, - 0x47, 0x65, 0x74, 0x48, 0x50, 0x41, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x83, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x62, 0x12, 0x60, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x18, 0x12, - 0x0a, 0x47, 0x65, 0x74, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, - 0xe5, 0x8f, 0x96, 0x20, 0x48, 0x50, 0x41, 0x12, 0xb6, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x73, 0x12, 0xe1, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x56, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x96, 0x01, 0x92, 0x41, 0x27, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x66, 0x3a, 0x01, 0x2a, 0x1a, 0x61, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xde, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x50, 0x56, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x22, 0x42, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x48, 0x50, 0x41, - 0x12, 0xd5, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, 0x1e, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x89, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x65, 0x1a, 0x60, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x70, 0x22, 0x93, 0x01, 0x92, 0x41, 0x27, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x50, 0x56, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, + 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x2a, 0x61, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, + 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xfc, 0x01, 0x0a, 0x07, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x56, 0x43, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0xb4, 0x01, 0x92, 0x41, 0x32, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x56, 0x43, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x23, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x79, 0x12, + 0x77, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, + 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0xfa, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, + 0x50, 0x56, 0x43, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb4, + 0x01, 0x92, 0x41, 0x2a, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, + 0x1a, 0x1c, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x80, 0x01, 0x12, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, 0x61, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe6, 0x9b, - 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x48, 0x50, 0x41, 0x12, 0xd2, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xb0, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x56, 0x43, + 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x62, 0x2a, 0x60, 0x2f, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xe1, 0x01, 0x92, 0x41, 0x4b, 0x12, 0x13, 0x47, 0x65, 0x74, 0x50, + 0x56, 0x43, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, + 0x34, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x20, 0xe8, 0xa2, + 0xab, 0x20, 0x50, 0x6f, 0x64, 0x20, 0xe6, 0x8c, 0x82, 0xe8, 0xbd, 0xbd, 0xe7, 0x9a, 0x84, 0xe4, + 0xbf, 0xa1, 0xe6, 0x81, 0xaf, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8c, 0x01, 0x12, 0x89, 0x01, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, - 0x41, 0x1b, 0x12, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, - 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x48, 0x50, 0x41, 0x32, 0xea, 0x10, - 0x0a, 0x09, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x07, - 0x4c, 0x69, 0x73, 0x74, 0x43, 0x52, 0x44, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x63, 0x6c, + 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xe7, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x01, 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, + 0xba, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x65, 0x3a, 0x01, 0x2a, + 0x22, 0x60, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, + 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, + 0x6d, 0x73, 0x12, 0x86, 0x02, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, + 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xba, + 0x01, 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, + 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x83, 0x01, 0x3a, 0x01, 0x2a, 0x1a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, - 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x52, 0x44, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x52, 0x44, 0x20, 0xe5, 0x88, 0x97, - 0xe8, 0xa1, 0xa8, 0x12, 0xb2, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x43, 0x52, 0x44, 0x12, 0x1b, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x4c, 0x12, 0x4a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x83, 0x02, 0x0a, 0x09, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x56, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb7, 0x01, 0x92, 0x41, 0x2d, 0x12, 0x0d, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x56, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe5, 0x88, + 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x80, + 0x01, 0x2a, 0x7e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x18, - 0x12, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x52, 0x44, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x52, 0x44, 0x12, 0xde, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x94, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x12, 0x5c, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, - 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x92, 0x41, 0x2d, 0x12, 0x0c, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1d, 0xe8, 0x8e, 0xb7, 0xe5, - 0x8f, 0x96, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, - 0xba, 0x90, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xdf, 0x01, 0x0a, 0x07, 0x47, 0x65, - 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x97, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x12, 0x67, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, - 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, - 0x6d, 0x65, 0x7d, 0x92, 0x41, 0x25, 0x12, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x20, - 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0xe8, 0x87, 0xaa, 0xe5, - 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x12, 0xe0, 0x01, 0x0a, 0x0a, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1f, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, - 0x62, 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x92, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x61, 0x22, 0x5c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, - 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x28, 0x12, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4f, - 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0xe8, - 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x12, 0xeb, - 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1f, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9d, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x1a, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x3a, 0x01, - 0x2a, 0x92, 0x41, 0x28, 0x12, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0xe8, 0x87, 0xaa, - 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x12, 0xa0, 0x02, 0x0a, - 0x09, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, - 0x62, 0x6a, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x73, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x12, 0xd1, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x43, 0x12, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x52, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x72, 0x1a, 0x6d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, - 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, - 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x63, 0x61, 0x6c, 0x65, - 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x59, 0x12, 0x0d, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x43, 0x4f, 0x62, - 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x48, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, - 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0xef, - 0xbc, 0x88, 0xe4, 0xbb, 0x85, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, - 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xef, 0xbc, 0x89, 0x12, - 0xe8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1f, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x2a, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8a, 0x01, 0x92, 0x41, 0x28, 0x12, 0x0a, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1a, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, + 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, 0x12, 0x57, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0xce, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x53, 0x43, 0x12, + 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x89, 0x01, 0x92, 0x41, 0x20, + 0x12, 0x09, 0x47, 0x65, 0x74, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe8, 0x8e, 0xb7, + 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x12, 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, - 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x92, - 0x41, 0x28, 0x12, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, - 0x50, 0x49, 0x1a, 0x16, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, - 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x12, 0xcd, 0x02, 0x0a, 0x10, 0x52, - 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x50, 0x6f, 0x12, - 0x28, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd3, 0x01, 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x88, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, + 0x3a, 0x01, 0x2a, 0x22, 0x57, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0xda, 0x01, 0x0a, + 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xf0, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x77, - 0x1a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x70, 0x12, 0x14, 0x52, 0x65, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, - 0x1a, 0x58, 0xe9, 0x87, 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0xe8, 0x87, - 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe4, 0xb8, 0x8b, - 0xe5, 0xb1, 0x9e, 0xe7, 0x9a, 0x84, 0x20, 0x50, 0x6f, 0x64, 0xef, 0xbc, 0x88, 0xe4, 0xbb, 0x85, - 0x20, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x2c, - 0x20, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, - 0x20, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xef, 0xbc, 0x89, 0x32, 0xef, 0x0d, 0x0a, 0x08, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0xe8, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4b, - 0x38, 0x53, 0x52, 0x65, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x8c, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x12, 0x51, 0x2f, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x65, 0x78, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x73, 0x92, - 0x41, 0x30, 0x12, 0x15, 0x47, 0x65, 0x74, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x73, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, - 0x96, 0x20, 0x4b, 0x38, 0x53, 0x20, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0xa8, 0xa1, 0xe7, - 0x89, 0x88, 0x12, 0xc0, 0x01, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x12, 0x48, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8f, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe6, 0x9b, 0xb4, + 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x3a, 0x01, 0x2a, 0x1a, 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x92, 0x41, 0x1d, 0x12, 0x0d, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0c, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xae, 0xa2, - 0xe9, 0x98, 0x85, 0x30, 0x01, 0x12, 0xe8, 0x01, 0x0a, 0x18, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x12, 0x2d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x22, 0x2f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x79, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x42, 0x12, 0x1e, - 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x79, 0x20, 0x43, 0x61, 0x63, 0x68, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x20, - 0xe4, 0xb8, 0xbb, 0xe5, 0x8a, 0xa8, 0xe4, 0xbd, 0xbf, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x79, 0x20, 0xe7, 0xbc, 0x93, 0xe5, 0xad, 0x98, 0xe5, 0xa4, 0xb1, 0xe6, 0x95, 0x88, - 0x12, 0xff, 0x01, 0x0a, 0x15, 0x46, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x26, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x46, 0x6f, - 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x9f, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x22, 0x56, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd7, 0x01, 0x0a, 0x08, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x53, 0x43, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x8c, 0x01, 0x92, 0x41, 0x23, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x43, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x13, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, + 0x20, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x60, 0x2a, 0x5e, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x32, 0x8f, 0x09, 0x0a, 0x04, 0x52, 0x42, 0x41, 0x43, 0x12, 0xe7, 0x01, 0x0a, + 0x06, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x41, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0xa0, 0x01, 0x92, 0x41, 0x2a, 0x12, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0xe5, 0x88, 0x97, + 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6d, 0x12, 0x6b, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, - 0x77, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x3b, 0x12, 0x1c, 0x46, 0x6f, 0x72, 0x6d, 0x20, 0x64, 0x61, - 0x74, 0x61, 0x20, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, - 0x77, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, - 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0xe6, 0xb8, 0xb2, 0xe6, 0x9f, 0x93, 0xe9, 0xa2, 0x84, 0xe8, - 0xa7, 0x88, 0x12, 0xf0, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, - 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x96, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x12, 0x4a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x92, 0x41, 0x41, 0x12, 0x1e, 0x47, 0x65, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x27, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1f, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, - 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0x20, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0xb8, 0x02, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, - 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, - 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xc8, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, 0x12, 0x5a, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x66, - 0x6f, 0x72, 0x6d, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x92, 0x41, 0x63, 0x12, 0x2d, 0x47, - 0x65, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x27, 0x73, 0x20, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x1a, 0x32, 0xe8, 0x8e, - 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, - 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xa1, 0xa8, 0xe5, 0x8d, 0x95, 0xe5, - 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x99, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x26, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xbd, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, - 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x92, 0x41, 0x63, 0x12, 0x24, 0x47, 0x65, 0x74, 0x20, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x27, 0x73, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x1a, - 0x3b, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe4, 0xb8, 0x8b, - 0xe6, 0x8b, 0x89, 0xe6, 0xa1, 0x86, 0xe9, 0x80, 0x89, 0xe9, 0xa1, 0xb9, 0xe7, 0x9a, 0x84, 0xe8, - 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0xef, 0xbc, 0x88, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0xef, 0xbc, 0x89, 0x32, 0xed, 0x09, 0x0a, - 0x0a, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xca, 0x01, 0x0a, 0x0f, - 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, - 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, - 0x38, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, - 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x92, 0x41, 0x2c, 0x12, 0x10, 0x47, 0x65, - 0x74, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x1a, 0x18, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, - 0xbd, 0xae, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xcd, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, - 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, - 0x69, 0x64, 0x7d, 0x92, 0x41, 0x32, 0x12, 0x16, 0x47, 0x65, 0x74, 0x20, 0x76, 0x69, 0x65, 0x77, - 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, 0x18, - 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, - 0xbd, 0xae, 0xe8, 0xaf, 0xa6, 0xe6, 0x83, 0x85, 0x12, 0xc8, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, + 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0xe4, 0x01, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x53, 0x41, + 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x38, 0x2f, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x29, 0x12, 0x12, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x13, - 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, - 0xbd, 0xae, 0x31, 0x12, 0xcc, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, - 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x73, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x1a, 0x3d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, - 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x28, 0x12, 0x12, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x12, - 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, - 0xbd, 0xae, 0x12, 0xd5, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, - 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x49, 0x1a, 0x44, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, - 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x2a, - 0x12, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x0f, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, - 0xbe, 0xe9, 0x87, 0x8d, 0xe5, 0x91, 0xbd, 0xe5, 0x90, 0x8d, 0x12, 0xcf, 0x01, 0x0a, 0x10, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x76, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x2a, 0x3d, 0x2f, 0x63, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, 0x92, 0x41, + 0x22, 0x12, 0x09, 0x47, 0x65, 0x74, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe8, 0x8e, + 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, 0x12, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, + 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd2, 0x01, + 0x0a, 0x08, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x87, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0c, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe5, 0x88, + 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, 0x3a, 0x01, 0x2a, 0x22, 0x54, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x92, 0x41, 0x2e, 0x12, 0x12, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x1a, 0x18, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, 0xaa, - 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x32, 0xc3, 0x06, 0x0a, - 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x84, 0x02, - 0x0a, 0x19, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x46, - 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x72, 0x62, 0x61, + 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x12, 0xf0, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x41, 0x12, + 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa5, 0x01, + 0x92, 0x41, 0x25, 0x12, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x41, 0x20, 0x41, 0x50, + 0x49, 0x1a, 0x15, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x77, 0x3a, 0x01, + 0x2a, 0x1a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xed, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x53, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0xa2, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x41, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x15, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x74, 0x2a, 0x72, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x72, 0x62, 0x61, 0x63, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0x86, 0x08, 0x0a, 0x03, 0x48, 0x50, 0x41, 0x12, 0xcc, 0x01, + 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x50, 0x41, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x84, 0x01, 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, 0x69, 0x73, + 0x74, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, + 0x20, 0x48, 0x50, 0x41, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x5b, 0x12, 0x59, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x12, 0xc9, 0x01, 0x0a, + 0x06, 0x47, 0x65, 0x74, 0x48, 0x50, 0x41, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x83, 0x01, 0x92, 0x41, 0x18, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x48, 0x50, 0x41, + 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x48, 0x50, 0x41, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x62, 0x12, 0x60, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, + 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xb6, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x6b, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, + 0x20, 0x48, 0x50, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x01, 0x2a, 0x22, 0x42, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x68, 0x70, + 0x61, 0x12, 0xd5, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, + 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x89, 0x01, + 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x50, 0x41, 0x20, 0x41, + 0x50, 0x49, 0x1a, 0x0a, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, 0x20, 0x48, 0x50, 0x41, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x65, 0x3a, 0x01, 0x2a, 0x1a, 0x60, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2f, 0x68, + 0x70, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xd2, 0x01, 0x0a, 0x09, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x48, 0x50, 0x41, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x92, 0x41, 0x1b, 0x12, 0x0d, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x48, 0x50, 0x41, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe5, 0x88, 0xa0, 0xe9, + 0x99, 0xa4, 0x20, 0x48, 0x50, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x62, 0x2a, 0x60, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x7d, 0x2f, 0x68, 0x70, 0x61, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0x8f, + 0x17, 0x0a, 0x09, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x12, 0xb5, 0x01, 0x0a, + 0x07, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x52, 0x44, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x6e, 0x92, 0x41, 0x20, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x43, + 0x52, 0x44, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x11, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x43, + 0x52, 0x44, 0x20, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, + 0x43, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x72, 0x64, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x43, 0x52, 0x44, 0x12, + 0x1b, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6d, 0x92, 0x41, 0x18, 0x12, + 0x0a, 0x47, 0x65, 0x74, 0x43, 0x52, 0x44, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0a, 0xe8, 0x8e, 0xb7, + 0xe5, 0x8f, 0x96, 0x20, 0x43, 0x52, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x12, 0x4a, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, + 0x64, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xde, 0x01, 0x0a, 0x08, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x94, 0x01, 0x92, 0x41, 0x2d, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, + 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1d, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, + 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x20, + 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x12, 0x5c, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, + 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0xdf, 0x01, 0x0a, 0x07, 0x47, + 0x65, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x97, 0x01, 0x92, 0x41, 0x25, 0x12, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x4f, 0x62, + 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0xe8, 0x87, + 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x69, 0x12, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x96, 0x02, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb7, 0x01, 0x92, 0x41, + 0x3d, 0x12, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1f, 0xe8, + 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, + 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x71, 0x12, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x68, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0xfc, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xac, 0x01, 0x92, 0x41, 0x2f, 0x12, 0x0f, 0x52, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1c, 0xe9, 0x87, + 0x8d, 0xe6, 0x96, 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, + 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x74, + 0x3a, 0x01, 0x2a, 0x1a, 0x6f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x8a, 0x02, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x52, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0xba, 0x01, 0x92, 0x41, 0x32, 0x12, 0x0f, 0x52, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1f, 0xe5, 0x9b, 0x9e, + 0xe6, 0xbb, 0x9a, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, + 0xe6, 0xba, 0x90, 0x20, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x7f, 0x3a, 0x01, 0x2a, 0x1a, 0x7a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, + 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2f, 0x7b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x7d, 0x12, 0xe0, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x62, 0x6a, + 0x12, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x92, 0x01, 0x92, 0x41, 0x28, 0x12, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x4f, 0x62, + 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0x20, 0xe8, 0x87, + 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x61, 0x3a, 0x01, 0x2a, 0x22, 0x5c, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, + 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x12, 0xeb, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x4f, 0x62, 0x6a, 0x12, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x9d, 0x01, 0x92, 0x41, 0x28, 0x12, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe6, 0x9b, 0xb4, 0xe6, 0x96, 0xb0, + 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x3a, 0x01, 0x2a, 0x1a, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, + 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, + 0x65, 0x7d, 0x12, 0xa0, 0x02, 0x0a, 0x09, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x43, 0x4f, 0x62, 0x6a, + 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd4, + 0x01, 0x92, 0x41, 0x59, 0x12, 0x0d, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x20, + 0x41, 0x50, 0x49, 0x1a, 0x48, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, + 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x89, 0xa9, 0xe7, 0xbc, 0xa9, 0xe5, 0xae, 0xb9, 0xef, 0xbc, 0x88, + 0xe4, 0xbb, 0x85, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x2c, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, + 0x53, 0x65, 0x74, 0x20, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xef, 0xbc, 0x89, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x72, 0x3a, 0x01, 0x2a, 0x1a, 0x6d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, + 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0xe8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x43, 0x4f, 0x62, 0x6a, 0x12, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x9a, 0x01, 0x92, 0x41, 0x28, 0x12, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x43, 0x4f, 0x62, 0x6a, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x16, 0xe5, 0x88, 0xa0, 0xe9, 0x99, + 0xa4, 0x20, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, + 0x90, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x2a, 0x67, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, 0x73, 0x2f, 0x7b, 0x43, 0x52, + 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, 0x4e, 0x61, 0x6d, 0x65, 0x7d, + 0x12, 0xcd, 0x02, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, + 0x4f, 0x62, 0x6a, 0x50, 0x6f, 0x12, 0x28, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x4f, 0x62, 0x6a, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xf0, 0x01, + 0x92, 0x41, 0x70, 0x12, 0x14, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, + 0x4f, 0x62, 0x6a, 0x50, 0x6f, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x58, 0xe9, 0x87, 0x8d, 0xe6, 0x96, + 0xb0, 0xe8, 0xb0, 0x83, 0xe5, 0xba, 0xa6, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, + 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe4, 0xb8, 0x8b, 0xe5, 0xb1, 0x9e, 0xe7, 0x9a, 0x84, 0x20, + 0x50, 0x6f, 0x64, 0xef, 0xbc, 0x88, 0xe4, 0xbb, 0x85, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x66, 0x75, 0x6c, 0x53, 0x65, 0x74, 0x20, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, + 0xef, 0xbc, 0x89, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x77, 0x3a, 0x01, 0x2a, 0x1a, 0x72, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x72, 0x64, + 0x73, 0x2f, 0x7b, 0x43, 0x52, 0x44, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x62, 0x6a, + 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x32, 0xef, 0x0d, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0xe8, 0x01, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x73, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x98, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x4f, 0x22, 0x4a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6b, 0x69, 0x6e, 0x64, 0x7d, 0x3a, 0x01, - 0x2a, 0x92, 0x41, 0x40, 0x12, 0x1b, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x20, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x1a, 0x21, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, - 0xbe, 0xa4, 0xe5, 0x8e, 0x9f, 0xe7, 0x94, 0x9f, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x88, - 0x97, 0xe8, 0xa1, 0xa8, 0x12, 0xa8, 0x02, 0x0a, 0x1f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x34, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x46, 0x65, 0x74, 0x63, - 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb0, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x5d, 0x22, 0x58, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8c, 0x01, 0x92, 0x41, 0x30, 0x12, + 0x15, 0x47, 0x65, 0x74, 0x4b, 0x38, 0x53, 0x52, 0x65, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x17, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0x20, 0x4b, + 0x38, 0x53, 0x20, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0xa8, 0xa1, 0xe7, 0x89, 0x88, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x12, 0x51, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x7d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x64, 0x7d, - 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x4a, 0x12, 0x22, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x20, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x24, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, - 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0x87, 0xaa, 0xe5, 0xae, 0x9a, - 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x12, - 0x80, 0x02, 0x0a, 0x19, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x2e, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x6d, + 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x73, 0x12, 0xc0, 0x01, 0x0a, 0x09, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x70, 0x92, 0x41, 0x1d, 0x12, 0x0d, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x0c, 0xe8, 0xb5, 0x84, + 0xe6, 0xba, 0x90, 0xe8, 0xae, 0xa2, 0xe9, 0x98, 0x85, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x12, + 0x48, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x30, 0x01, 0x12, 0xe8, 0x01, 0x0a, 0x18, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x79, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x2d, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7f, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x20, 0x43, 0x61, 0x63, 0x68, 0x65, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x20, 0xe4, 0xb8, 0xbb, 0xe5, + 0x8a, 0xa8, 0xe4, 0xbd, 0xbf, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x20, + 0xe7, 0xbc, 0x93, 0xe5, 0xad, 0x98, 0xe5, 0xa4, 0xb1, 0xe6, 0x95, 0x88, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0xff, 0x01, 0x0a, 0x15, 0x46, 0x6f, 0x72, 0x6d, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, + 0x12, 0x26, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, + 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, 0x92, 0x41, 0x3b, 0x12, 0x1c, 0x46, 0x6f, + 0x72, 0x6d, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x70, + 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1b, 0xe8, 0xa1, 0xa8, 0xe5, + 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0xe6, 0xb8, 0xb2, 0xe6, 0x9f, + 0x93, 0xe9, 0xa2, 0x84, 0xe8, 0xa7, 0x88, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x3a, 0x01, 0x2a, + 0x22, 0x56, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, + 0x2f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, + 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0xf0, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x96, 0x01, 0x92, 0x41, 0x41, 0x12, 0x1e, 0x47, 0x65, 0x74, 0x20, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x27, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x20, 0x41, 0x50, 0x49, 0x1a, 0x1f, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, + 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe8, 0xa1, 0xa8, 0xe5, + 0x8d, 0x95, 0x20, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x12, + 0x4a, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, + 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0xb8, 0x02, 0x0a, 0x1b, + 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, + 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x94, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x4e, 0x22, 0x49, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xc8, 0x01, 0x92, 0x41, + 0x63, 0x12, 0x2d, 0x47, 0x65, 0x74, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x27, + 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x61, 0x70, 0x69, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x1a, 0x32, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe6, 0x8c, 0x87, 0xe5, 0xae, 0x9a, 0xe8, 0xb5, + 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x8f, 0xaf, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe8, 0xa1, 0xa8, + 0xe5, 0x8d, 0x95, 0xe5, 0x8c, 0x96, 0xe7, 0x9a, 0x84, 0x20, 0x41, 0x50, 0x49, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, 0x12, 0x5a, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x7d, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x5f, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x99, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x26, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0xbd, 0x01, 0x92, 0x41, 0x63, 0x12, 0x24, 0x47, 0x65, 0x74, 0x20, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x27, 0x73, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x1a, 0x3b, + 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe7, 0x94, 0xa8, 0xe4, 0xba, 0x8e, 0xe4, 0xb8, 0x8b, 0xe6, + 0x8b, 0x89, 0xe6, 0xa1, 0x86, 0xe9, 0x80, 0x89, 0xe9, 0xa1, 0xb9, 0xe7, 0x9a, 0x84, 0xe8, 0xb5, + 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x95, 0xb0, 0xe6, 0x8d, 0xae, 0xef, 0xbc, 0x88, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0xef, 0xbc, 0x89, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x51, 0x12, 0x4f, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x7d, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, + 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x32, 0xed, 0x09, 0x0a, 0x0a, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0xca, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x65, + 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6f, 0x92, + 0x41, 0x2c, 0x12, 0x10, 0x47, 0x65, 0x74, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, + 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x7d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, - 0x01, 0x2a, 0x92, 0x41, 0x3d, 0x12, 0x21, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0xcd, + 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x22, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x7a, 0x92, 0x41, 0x32, 0x12, 0x16, 0x47, 0x65, 0x74, 0x20, 0x76, 0x69, 0x65, + 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, + 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, + 0xe7, 0xbd, 0xae, 0xe8, 0xaf, 0xa6, 0xe6, 0x83, 0x85, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, + 0x3d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, + 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xc8, + 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6f, 0x92, 0x41, 0x29, 0x12, 0x12, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x1a, 0x13, 0xe5, 0x88, 0x9b, 0xe5, 0xbb, 0xba, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, + 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x01, 0x2a, 0x22, + 0x38, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, + 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0xcc, 0x01, 0x0a, 0x10, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x73, 0x92, 0x41, 0x28, 0x12, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x12, 0xe6, 0x9b, + 0xb4, 0xe6, 0x96, 0xb0, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x01, 0x2a, 0x1a, 0x3d, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xd5, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x7c, 0x92, 0x41, 0x2a, 0x12, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, + 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x1a, 0x0f, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x87, 0x8d, 0xe5, 0x91, 0xbd, 0xe5, 0x90, + 0x8d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x01, 0x2a, 0x1a, 0x44, 0x2f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0xcf, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x76, 0x92, 0x41, 0x2e, 0x12, + 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x76, 0x69, 0x65, 0x77, 0x20, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x1a, 0x18, 0xe5, 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe5, 0x8d, 0x95, 0xe4, 0xb8, + 0xaa, 0xe8, 0xa7, 0x86, 0xe5, 0x9b, 0xbe, 0xe9, 0x85, 0x8d, 0xe7, 0xbd, 0xae, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x3f, 0x2a, 0x3d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, + 0x2f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x32, 0xc3, 0x06, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x12, 0x84, 0x02, 0x0a, 0x19, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x98, 0x01, 0x92, 0x41, 0x40, 0x12, 0x1b, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, - 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x95, 0xb0, 0xe9, - 0x87, 0x8f, 0x42, 0x43, 0x5a, 0x13, 0x2e, 0x2f, 0x3b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x92, 0x41, 0x2b, 0x12, 0x26, 0x0a, 0x18, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x20, 0x41, 0x70, 0x69, 0x44, 0x6f, 0x63, 0x2a, 0x05, 0x0a, 0x03, 0x4d, 0x49, 0x54, 0x32, - 0x03, 0x31, 0x2e, 0x30, 0x2a, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x1a, 0x21, 0xe8, 0x8e, 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, + 0xe7, 0xbe, 0xa4, 0xe5, 0x8e, 0x9f, 0xe7, 0x94, 0x9f, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, + 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x01, 0x2a, 0x22, 0x4a, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6b, 0x69, 0x6e, 0x64, 0x7d, 0x12, 0xa8, 0x02, 0x0a, 0x1f, 0x46, + 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x34, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0xb0, 0x01, 0x92, 0x41, 0x4a, 0x12, 0x22, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x24, 0xe8, 0x8e, + 0xb7, 0xe5, 0x8f, 0x96, 0xe5, 0xa4, 0x9a, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0x87, 0xaa, + 0xe5, 0xae, 0x9a, 0xe4, 0xb9, 0x89, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe5, 0x88, 0x97, 0xe8, + 0xa1, 0xa8, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5d, 0x3a, 0x01, 0x2a, 0x22, 0x58, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x76, + 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x7b, 0x63, 0x72, 0x64, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x80, 0x02, 0x0a, 0x19, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x94, 0x01, 0x92, 0x41, 0x3d, 0x12, 0x21, 0x47, 0x65, 0x74, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x18, 0xe8, 0x8e, 0xb7, 0xe5, + 0x8f, 0x96, 0xe9, 0x9b, 0x86, 0xe7, 0xbe, 0xa4, 0xe8, 0xb5, 0x84, 0xe6, 0xba, 0x90, 0xe6, 0x95, + 0xb0, 0xe9, 0x87, 0x8f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x3a, 0x01, 0x2a, 0x22, 0x49, 0x2f, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x7d, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x43, 0x92, 0x41, 0x2b, 0x12, 0x26, 0x0a, + 0x18, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x20, 0x41, 0x70, 0x69, 0x44, 0x6f, 0x63, 0x2a, 0x05, 0x0a, 0x03, 0x4d, 0x49, 0x54, + 0x32, 0x03, 0x31, 0x2e, 0x30, 0x2a, 0x01, 0x01, 0x5a, 0x13, 0x2e, 0x2f, 0x3b, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -7087,7 +7456,7 @@ func file_cluster_resources_proto_rawDescGZIP() []byte { return file_cluster_resources_proto_rawDescData } -var file_cluster_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 52) +var file_cluster_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 55) var file_cluster_resources_proto_goTypes = []interface{}{ (*EchoReq)(nil), // 0: clusterresources.EchoReq (*EchoResp)(nil), // 1: clusterresources.EchoResp @@ -7114,57 +7483,60 @@ var file_cluster_resources_proto_goTypes = []interface{}{ (*GetK8SResTemplateReq)(nil), // 22: clusterresources.GetK8SResTemplateReq (*CObjListReq)(nil), // 23: clusterresources.CObjListReq (*CObjGetReq)(nil), // 24: clusterresources.CObjGetReq - (*CObjCreateReq)(nil), // 25: clusterresources.CObjCreateReq - (*CObjUpdateReq)(nil), // 26: clusterresources.CObjUpdateReq - (*CObjScaleReq)(nil), // 27: clusterresources.CObjScaleReq - (*CObjDeleteReq)(nil), // 28: clusterresources.CObjDeleteReq - (*CObjBatchRescheduleReq)(nil), // 29: clusterresources.CObjBatchRescheduleReq - (*CommonResp)(nil), // 30: clusterresources.CommonResp - (*CommonListResp)(nil), // 31: clusterresources.CommonListResp - (*SubscribeReq)(nil), // 32: clusterresources.SubscribeReq - (*SubscribeResp)(nil), // 33: clusterresources.SubscribeResp - (*InvalidateDiscoveryCacheReq)(nil), // 34: clusterresources.InvalidateDiscoveryCacheReq - (*FormRenderPreviewReq)(nil), // 35: clusterresources.FormRenderPreviewReq - (*GetResFormSchemaReq)(nil), // 36: clusterresources.GetResFormSchemaReq - (*GetFormSupportedApiVersionsReq)(nil), // 37: clusterresources.GetFormSupportedApiVersionsReq - (*GetResSelectItemsReq)(nil), // 38: clusterresources.GetResSelectItemsReq - (*ListViewConfigsReq)(nil), // 39: clusterresources.ListViewConfigsReq - (*GetViewConfigReq)(nil), // 40: clusterresources.GetViewConfigReq - (*ViewFilter)(nil), // 41: clusterresources.ViewFilter - (*CreateViewConfigReq)(nil), // 42: clusterresources.CreateViewConfigReq - (*UpdateViewConfigReq)(nil), // 43: clusterresources.UpdateViewConfigReq - (*RenameViewConfigReq)(nil), // 44: clusterresources.RenameViewConfigReq - (*DeleteViewConfigReq)(nil), // 45: clusterresources.DeleteViewConfigReq - (*ClusterNamespaces)(nil), // 46: clusterresources.ClusterNamespaces - (*LabelSelector)(nil), // 47: clusterresources.LabelSelector - (*FetchMultiClusterResourceReq)(nil), // 48: clusterresources.FetchMultiClusterResourceReq - (*FetchMultiClusterCustomResourceReq)(nil), // 49: clusterresources.FetchMultiClusterCustomResourceReq - (*MultiClusterResourceCountReq)(nil), // 50: clusterresources.MultiClusterResourceCountReq - nil, // 51: clusterresources.ViewFilter.LabelSelectorEntry - (*_struct.Struct)(nil), // 52: google.protobuf.Struct - (*_struct.ListValue)(nil), // 53: google.protobuf.ListValue + (*CObjHistoryReq)(nil), // 25: clusterresources.CObjHistoryReq + (*CObjRestartReq)(nil), // 26: clusterresources.CObjRestartReq + (*CObjRolloutReq)(nil), // 27: clusterresources.CObjRolloutReq + (*CObjCreateReq)(nil), // 28: clusterresources.CObjCreateReq + (*CObjUpdateReq)(nil), // 29: clusterresources.CObjUpdateReq + (*CObjScaleReq)(nil), // 30: clusterresources.CObjScaleReq + (*CObjDeleteReq)(nil), // 31: clusterresources.CObjDeleteReq + (*CObjBatchRescheduleReq)(nil), // 32: clusterresources.CObjBatchRescheduleReq + (*CommonResp)(nil), // 33: clusterresources.CommonResp + (*CommonListResp)(nil), // 34: clusterresources.CommonListResp + (*SubscribeReq)(nil), // 35: clusterresources.SubscribeReq + (*SubscribeResp)(nil), // 36: clusterresources.SubscribeResp + (*InvalidateDiscoveryCacheReq)(nil), // 37: clusterresources.InvalidateDiscoveryCacheReq + (*FormRenderPreviewReq)(nil), // 38: clusterresources.FormRenderPreviewReq + (*GetResFormSchemaReq)(nil), // 39: clusterresources.GetResFormSchemaReq + (*GetFormSupportedApiVersionsReq)(nil), // 40: clusterresources.GetFormSupportedApiVersionsReq + (*GetResSelectItemsReq)(nil), // 41: clusterresources.GetResSelectItemsReq + (*ListViewConfigsReq)(nil), // 42: clusterresources.ListViewConfigsReq + (*GetViewConfigReq)(nil), // 43: clusterresources.GetViewConfigReq + (*ViewFilter)(nil), // 44: clusterresources.ViewFilter + (*CreateViewConfigReq)(nil), // 45: clusterresources.CreateViewConfigReq + (*UpdateViewConfigReq)(nil), // 46: clusterresources.UpdateViewConfigReq + (*RenameViewConfigReq)(nil), // 47: clusterresources.RenameViewConfigReq + (*DeleteViewConfigReq)(nil), // 48: clusterresources.DeleteViewConfigReq + (*ClusterNamespaces)(nil), // 49: clusterresources.ClusterNamespaces + (*LabelSelector)(nil), // 50: clusterresources.LabelSelector + (*FetchMultiClusterResourceReq)(nil), // 51: clusterresources.FetchMultiClusterResourceReq + (*FetchMultiClusterCustomResourceReq)(nil), // 52: clusterresources.FetchMultiClusterCustomResourceReq + (*MultiClusterResourceCountReq)(nil), // 53: clusterresources.MultiClusterResourceCountReq + nil, // 54: clusterresources.ViewFilter.LabelSelectorEntry + (*_struct.Struct)(nil), // 55: google.protobuf.Struct + (*_struct.ListValue)(nil), // 56: google.protobuf.ListValue } var file_cluster_resources_proto_depIdxs = []int32{ - 52, // 0: clusterresources.ResCreateReq.rawData:type_name -> google.protobuf.Struct - 52, // 1: clusterresources.ResUpdateReq.rawData:type_name -> google.protobuf.Struct - 52, // 2: clusterresources.CObjCreateReq.rawData:type_name -> google.protobuf.Struct - 52, // 3: clusterresources.CObjUpdateReq.rawData:type_name -> google.protobuf.Struct - 52, // 4: clusterresources.CommonResp.data:type_name -> google.protobuf.Struct - 52, // 5: clusterresources.CommonResp.webAnnotations:type_name -> google.protobuf.Struct - 53, // 6: clusterresources.CommonListResp.data:type_name -> google.protobuf.ListValue - 52, // 7: clusterresources.CommonListResp.webAnnotations:type_name -> google.protobuf.Struct - 52, // 8: clusterresources.SubscribeResp.manifest:type_name -> google.protobuf.Struct - 52, // 9: clusterresources.SubscribeResp.manifestExt:type_name -> google.protobuf.Struct - 52, // 10: clusterresources.FormRenderPreviewReq.formData:type_name -> google.protobuf.Struct - 51, // 11: clusterresources.ViewFilter.labelSelector:type_name -> clusterresources.ViewFilter.LabelSelectorEntry - 41, // 12: clusterresources.CreateViewConfigReq.filter:type_name -> clusterresources.ViewFilter - 41, // 13: clusterresources.UpdateViewConfigReq.filter:type_name -> clusterresources.ViewFilter - 46, // 14: clusterresources.FetchMultiClusterResourceReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces - 47, // 15: clusterresources.FetchMultiClusterResourceReq.labelSelector:type_name -> clusterresources.LabelSelector - 46, // 16: clusterresources.FetchMultiClusterCustomResourceReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces - 47, // 17: clusterresources.FetchMultiClusterCustomResourceReq.labelSelector:type_name -> clusterresources.LabelSelector - 46, // 18: clusterresources.MultiClusterResourceCountReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces - 47, // 19: clusterresources.MultiClusterResourceCountReq.labelSelector:type_name -> clusterresources.LabelSelector + 55, // 0: clusterresources.ResCreateReq.rawData:type_name -> google.protobuf.Struct + 55, // 1: clusterresources.ResUpdateReq.rawData:type_name -> google.protobuf.Struct + 55, // 2: clusterresources.CObjCreateReq.rawData:type_name -> google.protobuf.Struct + 55, // 3: clusterresources.CObjUpdateReq.rawData:type_name -> google.protobuf.Struct + 55, // 4: clusterresources.CommonResp.data:type_name -> google.protobuf.Struct + 55, // 5: clusterresources.CommonResp.webAnnotations:type_name -> google.protobuf.Struct + 56, // 6: clusterresources.CommonListResp.data:type_name -> google.protobuf.ListValue + 55, // 7: clusterresources.CommonListResp.webAnnotations:type_name -> google.protobuf.Struct + 55, // 8: clusterresources.SubscribeResp.manifest:type_name -> google.protobuf.Struct + 55, // 9: clusterresources.SubscribeResp.manifestExt:type_name -> google.protobuf.Struct + 55, // 10: clusterresources.FormRenderPreviewReq.formData:type_name -> google.protobuf.Struct + 54, // 11: clusterresources.ViewFilter.labelSelector:type_name -> clusterresources.ViewFilter.LabelSelectorEntry + 44, // 12: clusterresources.CreateViewConfigReq.filter:type_name -> clusterresources.ViewFilter + 44, // 13: clusterresources.UpdateViewConfigReq.filter:type_name -> clusterresources.ViewFilter + 49, // 14: clusterresources.FetchMultiClusterResourceReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces + 50, // 15: clusterresources.FetchMultiClusterResourceReq.labelSelector:type_name -> clusterresources.LabelSelector + 49, // 16: clusterresources.FetchMultiClusterCustomResourceReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces + 50, // 17: clusterresources.FetchMultiClusterCustomResourceReq.labelSelector:type_name -> clusterresources.LabelSelector + 49, // 18: clusterresources.MultiClusterResourceCountReq.clusterNamespaces:type_name -> clusterresources.ClusterNamespaces + 50, // 19: clusterresources.MultiClusterResourceCountReq.labelSelector:type_name -> clusterresources.LabelSelector 0, // 20: clusterresources.Basic.Echo:input_type -> clusterresources.EchoReq 2, // 21: clusterresources.Basic.Ping:input_type -> clusterresources.PingReq 4, // 22: clusterresources.Basic.Healthz:input_type -> clusterresources.HealthzReq @@ -7283,168 +7655,174 @@ var file_cluster_resources_proto_depIdxs = []int32{ 9, // 135: clusterresources.CustomRes.GetCRD:input_type -> clusterresources.ResGetReq 23, // 136: clusterresources.CustomRes.ListCObj:input_type -> clusterresources.CObjListReq 24, // 137: clusterresources.CustomRes.GetCObj:input_type -> clusterresources.CObjGetReq - 25, // 138: clusterresources.CustomRes.CreateCObj:input_type -> clusterresources.CObjCreateReq - 26, // 139: clusterresources.CustomRes.UpdateCObj:input_type -> clusterresources.CObjUpdateReq - 27, // 140: clusterresources.CustomRes.ScaleCObj:input_type -> clusterresources.CObjScaleReq - 28, // 141: clusterresources.CustomRes.DeleteCObj:input_type -> clusterresources.CObjDeleteReq - 29, // 142: clusterresources.CustomRes.RescheduleCObjPo:input_type -> clusterresources.CObjBatchRescheduleReq - 22, // 143: clusterresources.Resource.GetK8SResTemplate:input_type -> clusterresources.GetK8SResTemplateReq - 32, // 144: clusterresources.Resource.Subscribe:input_type -> clusterresources.SubscribeReq - 34, // 145: clusterresources.Resource.InvalidateDiscoveryCache:input_type -> clusterresources.InvalidateDiscoveryCacheReq - 35, // 146: clusterresources.Resource.FormDataRenderPreview:input_type -> clusterresources.FormRenderPreviewReq - 36, // 147: clusterresources.Resource.GetResFormSchema:input_type -> clusterresources.GetResFormSchemaReq - 37, // 148: clusterresources.Resource.GetFormSupportedAPIVersions:input_type -> clusterresources.GetFormSupportedApiVersionsReq - 38, // 149: clusterresources.Resource.GetResSelectItems:input_type -> clusterresources.GetResSelectItemsReq - 39, // 150: clusterresources.ViewConfig.ListViewConfigs:input_type -> clusterresources.ListViewConfigsReq - 40, // 151: clusterresources.ViewConfig.GetViewConfig:input_type -> clusterresources.GetViewConfigReq - 42, // 152: clusterresources.ViewConfig.CreateViewConfig:input_type -> clusterresources.CreateViewConfigReq - 43, // 153: clusterresources.ViewConfig.UpdateViewConfig:input_type -> clusterresources.UpdateViewConfigReq - 44, // 154: clusterresources.ViewConfig.RenameViewConfig:input_type -> clusterresources.RenameViewConfigReq - 45, // 155: clusterresources.ViewConfig.DeleteViewConfig:input_type -> clusterresources.DeleteViewConfigReq - 48, // 156: clusterresources.MultiCluster.FetchMultiClusterResource:input_type -> clusterresources.FetchMultiClusterResourceReq - 49, // 157: clusterresources.MultiCluster.FetchMultiClusterCustomResource:input_type -> clusterresources.FetchMultiClusterCustomResourceReq - 50, // 158: clusterresources.MultiCluster.MultiClusterResourceCount:input_type -> clusterresources.MultiClusterResourceCountReq - 1, // 159: clusterresources.Basic.Echo:output_type -> clusterresources.EchoResp - 3, // 160: clusterresources.Basic.Ping:output_type -> clusterresources.PingResp - 5, // 161: clusterresources.Basic.Healthz:output_type -> clusterresources.HealthzResp - 7, // 162: clusterresources.Basic.Version:output_type -> clusterresources.VersionResp - 30, // 163: clusterresources.Node.ListNode:output_type -> clusterresources.CommonResp - 30, // 164: clusterresources.Namespace.ListNS:output_type -> clusterresources.CommonResp - 30, // 165: clusterresources.Workload.ListDeploy:output_type -> clusterresources.CommonResp - 30, // 166: clusterresources.Workload.GetDeploy:output_type -> clusterresources.CommonResp - 30, // 167: clusterresources.Workload.CreateDeploy:output_type -> clusterresources.CommonResp - 30, // 168: clusterresources.Workload.UpdateDeploy:output_type -> clusterresources.CommonResp - 30, // 169: clusterresources.Workload.RestartDeploy:output_type -> clusterresources.CommonResp - 30, // 170: clusterresources.Workload.PauseOrResumeDeploy:output_type -> clusterresources.CommonResp - 30, // 171: clusterresources.Workload.ScaleDeploy:output_type -> clusterresources.CommonResp - 30, // 172: clusterresources.Workload.RescheduleDeployPo:output_type -> clusterresources.CommonResp - 30, // 173: clusterresources.Workload.DeleteDeploy:output_type -> clusterresources.CommonResp - 31, // 174: clusterresources.Workload.GetDeployHistoryRevision:output_type -> clusterresources.CommonListResp - 30, // 175: clusterresources.Workload.GetDeployRevisionDiff:output_type -> clusterresources.CommonResp - 30, // 176: clusterresources.Workload.RolloutDeployRevision:output_type -> clusterresources.CommonResp - 30, // 177: clusterresources.Workload.ListRS:output_type -> clusterresources.CommonResp - 30, // 178: clusterresources.Workload.ListDS:output_type -> clusterresources.CommonResp - 30, // 179: clusterresources.Workload.GetDS:output_type -> clusterresources.CommonResp - 30, // 180: clusterresources.Workload.CreateDS:output_type -> clusterresources.CommonResp - 30, // 181: clusterresources.Workload.UpdateDS:output_type -> clusterresources.CommonResp - 30, // 182: clusterresources.Workload.RestartDS:output_type -> clusterresources.CommonResp - 31, // 183: clusterresources.Workload.GetDSHistoryRevision:output_type -> clusterresources.CommonListResp - 30, // 184: clusterresources.Workload.GetDSRevisionDiff:output_type -> clusterresources.CommonResp - 30, // 185: clusterresources.Workload.RolloutDSRevision:output_type -> clusterresources.CommonResp - 30, // 186: clusterresources.Workload.DeleteDS:output_type -> clusterresources.CommonResp - 30, // 187: clusterresources.Workload.ListSTS:output_type -> clusterresources.CommonResp - 30, // 188: clusterresources.Workload.GetSTS:output_type -> clusterresources.CommonResp - 30, // 189: clusterresources.Workload.CreateSTS:output_type -> clusterresources.CommonResp - 30, // 190: clusterresources.Workload.UpdateSTS:output_type -> clusterresources.CommonResp - 30, // 191: clusterresources.Workload.RestartSTS:output_type -> clusterresources.CommonResp - 31, // 192: clusterresources.Workload.GetSTSHistoryRevision:output_type -> clusterresources.CommonListResp - 30, // 193: clusterresources.Workload.GetSTSRevisionDiff:output_type -> clusterresources.CommonResp - 30, // 194: clusterresources.Workload.RolloutSTSRevision:output_type -> clusterresources.CommonResp - 30, // 195: clusterresources.Workload.ScaleSTS:output_type -> clusterresources.CommonResp - 30, // 196: clusterresources.Workload.RescheduleSTSPo:output_type -> clusterresources.CommonResp - 30, // 197: clusterresources.Workload.DeleteSTS:output_type -> clusterresources.CommonResp - 30, // 198: clusterresources.Workload.ListCJ:output_type -> clusterresources.CommonResp - 30, // 199: clusterresources.Workload.GetCJ:output_type -> clusterresources.CommonResp - 30, // 200: clusterresources.Workload.CreateCJ:output_type -> clusterresources.CommonResp - 30, // 201: clusterresources.Workload.UpdateCJ:output_type -> clusterresources.CommonResp - 30, // 202: clusterresources.Workload.DeleteCJ:output_type -> clusterresources.CommonResp - 30, // 203: clusterresources.Workload.ListJob:output_type -> clusterresources.CommonResp - 30, // 204: clusterresources.Workload.GetJob:output_type -> clusterresources.CommonResp - 30, // 205: clusterresources.Workload.CreateJob:output_type -> clusterresources.CommonResp - 30, // 206: clusterresources.Workload.UpdateJob:output_type -> clusterresources.CommonResp - 30, // 207: clusterresources.Workload.DeleteJob:output_type -> clusterresources.CommonResp - 30, // 208: clusterresources.Workload.ListPo:output_type -> clusterresources.CommonResp - 31, // 209: clusterresources.Workload.ListPoByNode:output_type -> clusterresources.CommonListResp - 30, // 210: clusterresources.Workload.GetPo:output_type -> clusterresources.CommonResp - 30, // 211: clusterresources.Workload.CreatePo:output_type -> clusterresources.CommonResp - 30, // 212: clusterresources.Workload.UpdatePo:output_type -> clusterresources.CommonResp - 30, // 213: clusterresources.Workload.DeletePo:output_type -> clusterresources.CommonResp - 30, // 214: clusterresources.Workload.ListPoPVC:output_type -> clusterresources.CommonResp - 30, // 215: clusterresources.Workload.ListPoCM:output_type -> clusterresources.CommonResp - 30, // 216: clusterresources.Workload.ListPoSecret:output_type -> clusterresources.CommonResp - 30, // 217: clusterresources.Workload.ReschedulePo:output_type -> clusterresources.CommonResp - 31, // 218: clusterresources.Workload.ListContainer:output_type -> clusterresources.CommonListResp - 30, // 219: clusterresources.Workload.GetContainer:output_type -> clusterresources.CommonResp - 31, // 220: clusterresources.Workload.GetContainerEnvInfo:output_type -> clusterresources.CommonListResp - 30, // 221: clusterresources.Network.ListIng:output_type -> clusterresources.CommonResp - 30, // 222: clusterresources.Network.GetIng:output_type -> clusterresources.CommonResp - 30, // 223: clusterresources.Network.CreateIng:output_type -> clusterresources.CommonResp - 30, // 224: clusterresources.Network.UpdateIng:output_type -> clusterresources.CommonResp - 30, // 225: clusterresources.Network.DeleteIng:output_type -> clusterresources.CommonResp - 30, // 226: clusterresources.Network.ListSVC:output_type -> clusterresources.CommonResp - 30, // 227: clusterresources.Network.GetSVC:output_type -> clusterresources.CommonResp - 30, // 228: clusterresources.Network.CreateSVC:output_type -> clusterresources.CommonResp - 30, // 229: clusterresources.Network.UpdateSVC:output_type -> clusterresources.CommonResp - 30, // 230: clusterresources.Network.DeleteSVC:output_type -> clusterresources.CommonResp - 30, // 231: clusterresources.Network.ListEP:output_type -> clusterresources.CommonResp - 30, // 232: clusterresources.Network.GetEP:output_type -> clusterresources.CommonResp - 30, // 233: clusterresources.Network.GetEPStatus:output_type -> clusterresources.CommonResp - 30, // 234: clusterresources.Network.CreateEP:output_type -> clusterresources.CommonResp - 30, // 235: clusterresources.Network.UpdateEP:output_type -> clusterresources.CommonResp - 30, // 236: clusterresources.Network.DeleteEP:output_type -> clusterresources.CommonResp - 30, // 237: clusterresources.Config.ListCM:output_type -> clusterresources.CommonResp - 30, // 238: clusterresources.Config.GetCM:output_type -> clusterresources.CommonResp - 30, // 239: clusterresources.Config.CreateCM:output_type -> clusterresources.CommonResp - 30, // 240: clusterresources.Config.UpdateCM:output_type -> clusterresources.CommonResp - 30, // 241: clusterresources.Config.DeleteCM:output_type -> clusterresources.CommonResp - 30, // 242: clusterresources.Config.ListSecret:output_type -> clusterresources.CommonResp - 30, // 243: clusterresources.Config.GetSecret:output_type -> clusterresources.CommonResp - 30, // 244: clusterresources.Config.CreateSecret:output_type -> clusterresources.CommonResp - 30, // 245: clusterresources.Config.UpdateSecret:output_type -> clusterresources.CommonResp - 30, // 246: clusterresources.Config.DeleteSecret:output_type -> clusterresources.CommonResp - 30, // 247: clusterresources.Storage.ListPV:output_type -> clusterresources.CommonResp - 30, // 248: clusterresources.Storage.GetPV:output_type -> clusterresources.CommonResp - 30, // 249: clusterresources.Storage.CreatePV:output_type -> clusterresources.CommonResp - 30, // 250: clusterresources.Storage.UpdatePV:output_type -> clusterresources.CommonResp - 30, // 251: clusterresources.Storage.DeletePV:output_type -> clusterresources.CommonResp - 30, // 252: clusterresources.Storage.ListPVC:output_type -> clusterresources.CommonResp - 30, // 253: clusterresources.Storage.GetPVC:output_type -> clusterresources.CommonResp - 30, // 254: clusterresources.Storage.GetPVCMountInfo:output_type -> clusterresources.CommonResp - 30, // 255: clusterresources.Storage.CreatePVC:output_type -> clusterresources.CommonResp - 30, // 256: clusterresources.Storage.UpdatePVC:output_type -> clusterresources.CommonResp - 30, // 257: clusterresources.Storage.DeletePVC:output_type -> clusterresources.CommonResp - 30, // 258: clusterresources.Storage.ListSC:output_type -> clusterresources.CommonResp - 30, // 259: clusterresources.Storage.GetSC:output_type -> clusterresources.CommonResp - 30, // 260: clusterresources.Storage.CreateSC:output_type -> clusterresources.CommonResp - 30, // 261: clusterresources.Storage.UpdateSC:output_type -> clusterresources.CommonResp - 30, // 262: clusterresources.Storage.DeleteSC:output_type -> clusterresources.CommonResp - 30, // 263: clusterresources.RBAC.ListSA:output_type -> clusterresources.CommonResp - 30, // 264: clusterresources.RBAC.GetSA:output_type -> clusterresources.CommonResp - 30, // 265: clusterresources.RBAC.CreateSA:output_type -> clusterresources.CommonResp - 30, // 266: clusterresources.RBAC.UpdateSA:output_type -> clusterresources.CommonResp - 30, // 267: clusterresources.RBAC.DeleteSA:output_type -> clusterresources.CommonResp - 30, // 268: clusterresources.HPA.ListHPA:output_type -> clusterresources.CommonResp - 30, // 269: clusterresources.HPA.GetHPA:output_type -> clusterresources.CommonResp - 30, // 270: clusterresources.HPA.CreateHPA:output_type -> clusterresources.CommonResp - 30, // 271: clusterresources.HPA.UpdateHPA:output_type -> clusterresources.CommonResp - 30, // 272: clusterresources.HPA.DeleteHPA:output_type -> clusterresources.CommonResp - 30, // 273: clusterresources.CustomRes.ListCRD:output_type -> clusterresources.CommonResp - 30, // 274: clusterresources.CustomRes.GetCRD:output_type -> clusterresources.CommonResp - 30, // 275: clusterresources.CustomRes.ListCObj:output_type -> clusterresources.CommonResp - 30, // 276: clusterresources.CustomRes.GetCObj:output_type -> clusterresources.CommonResp - 30, // 277: clusterresources.CustomRes.CreateCObj:output_type -> clusterresources.CommonResp - 30, // 278: clusterresources.CustomRes.UpdateCObj:output_type -> clusterresources.CommonResp - 30, // 279: clusterresources.CustomRes.ScaleCObj:output_type -> clusterresources.CommonResp - 30, // 280: clusterresources.CustomRes.DeleteCObj:output_type -> clusterresources.CommonResp - 30, // 281: clusterresources.CustomRes.RescheduleCObjPo:output_type -> clusterresources.CommonResp - 30, // 282: clusterresources.Resource.GetK8SResTemplate:output_type -> clusterresources.CommonResp - 33, // 283: clusterresources.Resource.Subscribe:output_type -> clusterresources.SubscribeResp - 30, // 284: clusterresources.Resource.InvalidateDiscoveryCache:output_type -> clusterresources.CommonResp - 30, // 285: clusterresources.Resource.FormDataRenderPreview:output_type -> clusterresources.CommonResp - 30, // 286: clusterresources.Resource.GetResFormSchema:output_type -> clusterresources.CommonResp - 30, // 287: clusterresources.Resource.GetFormSupportedAPIVersions:output_type -> clusterresources.CommonResp - 30, // 288: clusterresources.Resource.GetResSelectItems:output_type -> clusterresources.CommonResp - 31, // 289: clusterresources.ViewConfig.ListViewConfigs:output_type -> clusterresources.CommonListResp - 30, // 290: clusterresources.ViewConfig.GetViewConfig:output_type -> clusterresources.CommonResp - 30, // 291: clusterresources.ViewConfig.CreateViewConfig:output_type -> clusterresources.CommonResp - 30, // 292: clusterresources.ViewConfig.UpdateViewConfig:output_type -> clusterresources.CommonResp - 30, // 293: clusterresources.ViewConfig.RenameViewConfig:output_type -> clusterresources.CommonResp - 30, // 294: clusterresources.ViewConfig.DeleteViewConfig:output_type -> clusterresources.CommonResp - 30, // 295: clusterresources.MultiCluster.FetchMultiClusterResource:output_type -> clusterresources.CommonResp - 30, // 296: clusterresources.MultiCluster.FetchMultiClusterCustomResource:output_type -> clusterresources.CommonResp - 30, // 297: clusterresources.MultiCluster.MultiClusterResourceCount:output_type -> clusterresources.CommonResp - 159, // [159:298] is the sub-list for method output_type - 20, // [20:159] is the sub-list for method input_type + 25, // 138: clusterresources.CustomRes.GetCObjHistoryRevision:input_type -> clusterresources.CObjHistoryReq + 26, // 139: clusterresources.CustomRes.RestartCObj:input_type -> clusterresources.CObjRestartReq + 27, // 140: clusterresources.CustomRes.RolloutCObj:input_type -> clusterresources.CObjRolloutReq + 28, // 141: clusterresources.CustomRes.CreateCObj:input_type -> clusterresources.CObjCreateReq + 29, // 142: clusterresources.CustomRes.UpdateCObj:input_type -> clusterresources.CObjUpdateReq + 30, // 143: clusterresources.CustomRes.ScaleCObj:input_type -> clusterresources.CObjScaleReq + 31, // 144: clusterresources.CustomRes.DeleteCObj:input_type -> clusterresources.CObjDeleteReq + 32, // 145: clusterresources.CustomRes.RescheduleCObjPo:input_type -> clusterresources.CObjBatchRescheduleReq + 22, // 146: clusterresources.Resource.GetK8SResTemplate:input_type -> clusterresources.GetK8SResTemplateReq + 35, // 147: clusterresources.Resource.Subscribe:input_type -> clusterresources.SubscribeReq + 37, // 148: clusterresources.Resource.InvalidateDiscoveryCache:input_type -> clusterresources.InvalidateDiscoveryCacheReq + 38, // 149: clusterresources.Resource.FormDataRenderPreview:input_type -> clusterresources.FormRenderPreviewReq + 39, // 150: clusterresources.Resource.GetResFormSchema:input_type -> clusterresources.GetResFormSchemaReq + 40, // 151: clusterresources.Resource.GetFormSupportedAPIVersions:input_type -> clusterresources.GetFormSupportedApiVersionsReq + 41, // 152: clusterresources.Resource.GetResSelectItems:input_type -> clusterresources.GetResSelectItemsReq + 42, // 153: clusterresources.ViewConfig.ListViewConfigs:input_type -> clusterresources.ListViewConfigsReq + 43, // 154: clusterresources.ViewConfig.GetViewConfig:input_type -> clusterresources.GetViewConfigReq + 45, // 155: clusterresources.ViewConfig.CreateViewConfig:input_type -> clusterresources.CreateViewConfigReq + 46, // 156: clusterresources.ViewConfig.UpdateViewConfig:input_type -> clusterresources.UpdateViewConfigReq + 47, // 157: clusterresources.ViewConfig.RenameViewConfig:input_type -> clusterresources.RenameViewConfigReq + 48, // 158: clusterresources.ViewConfig.DeleteViewConfig:input_type -> clusterresources.DeleteViewConfigReq + 51, // 159: clusterresources.MultiCluster.FetchMultiClusterResource:input_type -> clusterresources.FetchMultiClusterResourceReq + 52, // 160: clusterresources.MultiCluster.FetchMultiClusterCustomResource:input_type -> clusterresources.FetchMultiClusterCustomResourceReq + 53, // 161: clusterresources.MultiCluster.MultiClusterResourceCount:input_type -> clusterresources.MultiClusterResourceCountReq + 1, // 162: clusterresources.Basic.Echo:output_type -> clusterresources.EchoResp + 3, // 163: clusterresources.Basic.Ping:output_type -> clusterresources.PingResp + 5, // 164: clusterresources.Basic.Healthz:output_type -> clusterresources.HealthzResp + 7, // 165: clusterresources.Basic.Version:output_type -> clusterresources.VersionResp + 33, // 166: clusterresources.Node.ListNode:output_type -> clusterresources.CommonResp + 33, // 167: clusterresources.Namespace.ListNS:output_type -> clusterresources.CommonResp + 33, // 168: clusterresources.Workload.ListDeploy:output_type -> clusterresources.CommonResp + 33, // 169: clusterresources.Workload.GetDeploy:output_type -> clusterresources.CommonResp + 33, // 170: clusterresources.Workload.CreateDeploy:output_type -> clusterresources.CommonResp + 33, // 171: clusterresources.Workload.UpdateDeploy:output_type -> clusterresources.CommonResp + 33, // 172: clusterresources.Workload.RestartDeploy:output_type -> clusterresources.CommonResp + 33, // 173: clusterresources.Workload.PauseOrResumeDeploy:output_type -> clusterresources.CommonResp + 33, // 174: clusterresources.Workload.ScaleDeploy:output_type -> clusterresources.CommonResp + 33, // 175: clusterresources.Workload.RescheduleDeployPo:output_type -> clusterresources.CommonResp + 33, // 176: clusterresources.Workload.DeleteDeploy:output_type -> clusterresources.CommonResp + 34, // 177: clusterresources.Workload.GetDeployHistoryRevision:output_type -> clusterresources.CommonListResp + 33, // 178: clusterresources.Workload.GetDeployRevisionDiff:output_type -> clusterresources.CommonResp + 33, // 179: clusterresources.Workload.RolloutDeployRevision:output_type -> clusterresources.CommonResp + 33, // 180: clusterresources.Workload.ListRS:output_type -> clusterresources.CommonResp + 33, // 181: clusterresources.Workload.ListDS:output_type -> clusterresources.CommonResp + 33, // 182: clusterresources.Workload.GetDS:output_type -> clusterresources.CommonResp + 33, // 183: clusterresources.Workload.CreateDS:output_type -> clusterresources.CommonResp + 33, // 184: clusterresources.Workload.UpdateDS:output_type -> clusterresources.CommonResp + 33, // 185: clusterresources.Workload.RestartDS:output_type -> clusterresources.CommonResp + 34, // 186: clusterresources.Workload.GetDSHistoryRevision:output_type -> clusterresources.CommonListResp + 33, // 187: clusterresources.Workload.GetDSRevisionDiff:output_type -> clusterresources.CommonResp + 33, // 188: clusterresources.Workload.RolloutDSRevision:output_type -> clusterresources.CommonResp + 33, // 189: clusterresources.Workload.DeleteDS:output_type -> clusterresources.CommonResp + 33, // 190: clusterresources.Workload.ListSTS:output_type -> clusterresources.CommonResp + 33, // 191: clusterresources.Workload.GetSTS:output_type -> clusterresources.CommonResp + 33, // 192: clusterresources.Workload.CreateSTS:output_type -> clusterresources.CommonResp + 33, // 193: clusterresources.Workload.UpdateSTS:output_type -> clusterresources.CommonResp + 33, // 194: clusterresources.Workload.RestartSTS:output_type -> clusterresources.CommonResp + 34, // 195: clusterresources.Workload.GetSTSHistoryRevision:output_type -> clusterresources.CommonListResp + 33, // 196: clusterresources.Workload.GetSTSRevisionDiff:output_type -> clusterresources.CommonResp + 33, // 197: clusterresources.Workload.RolloutSTSRevision:output_type -> clusterresources.CommonResp + 33, // 198: clusterresources.Workload.ScaleSTS:output_type -> clusterresources.CommonResp + 33, // 199: clusterresources.Workload.RescheduleSTSPo:output_type -> clusterresources.CommonResp + 33, // 200: clusterresources.Workload.DeleteSTS:output_type -> clusterresources.CommonResp + 33, // 201: clusterresources.Workload.ListCJ:output_type -> clusterresources.CommonResp + 33, // 202: clusterresources.Workload.GetCJ:output_type -> clusterresources.CommonResp + 33, // 203: clusterresources.Workload.CreateCJ:output_type -> clusterresources.CommonResp + 33, // 204: clusterresources.Workload.UpdateCJ:output_type -> clusterresources.CommonResp + 33, // 205: clusterresources.Workload.DeleteCJ:output_type -> clusterresources.CommonResp + 33, // 206: clusterresources.Workload.ListJob:output_type -> clusterresources.CommonResp + 33, // 207: clusterresources.Workload.GetJob:output_type -> clusterresources.CommonResp + 33, // 208: clusterresources.Workload.CreateJob:output_type -> clusterresources.CommonResp + 33, // 209: clusterresources.Workload.UpdateJob:output_type -> clusterresources.CommonResp + 33, // 210: clusterresources.Workload.DeleteJob:output_type -> clusterresources.CommonResp + 33, // 211: clusterresources.Workload.ListPo:output_type -> clusterresources.CommonResp + 34, // 212: clusterresources.Workload.ListPoByNode:output_type -> clusterresources.CommonListResp + 33, // 213: clusterresources.Workload.GetPo:output_type -> clusterresources.CommonResp + 33, // 214: clusterresources.Workload.CreatePo:output_type -> clusterresources.CommonResp + 33, // 215: clusterresources.Workload.UpdatePo:output_type -> clusterresources.CommonResp + 33, // 216: clusterresources.Workload.DeletePo:output_type -> clusterresources.CommonResp + 33, // 217: clusterresources.Workload.ListPoPVC:output_type -> clusterresources.CommonResp + 33, // 218: clusterresources.Workload.ListPoCM:output_type -> clusterresources.CommonResp + 33, // 219: clusterresources.Workload.ListPoSecret:output_type -> clusterresources.CommonResp + 33, // 220: clusterresources.Workload.ReschedulePo:output_type -> clusterresources.CommonResp + 34, // 221: clusterresources.Workload.ListContainer:output_type -> clusterresources.CommonListResp + 33, // 222: clusterresources.Workload.GetContainer:output_type -> clusterresources.CommonResp + 34, // 223: clusterresources.Workload.GetContainerEnvInfo:output_type -> clusterresources.CommonListResp + 33, // 224: clusterresources.Network.ListIng:output_type -> clusterresources.CommonResp + 33, // 225: clusterresources.Network.GetIng:output_type -> clusterresources.CommonResp + 33, // 226: clusterresources.Network.CreateIng:output_type -> clusterresources.CommonResp + 33, // 227: clusterresources.Network.UpdateIng:output_type -> clusterresources.CommonResp + 33, // 228: clusterresources.Network.DeleteIng:output_type -> clusterresources.CommonResp + 33, // 229: clusterresources.Network.ListSVC:output_type -> clusterresources.CommonResp + 33, // 230: clusterresources.Network.GetSVC:output_type -> clusterresources.CommonResp + 33, // 231: clusterresources.Network.CreateSVC:output_type -> clusterresources.CommonResp + 33, // 232: clusterresources.Network.UpdateSVC:output_type -> clusterresources.CommonResp + 33, // 233: clusterresources.Network.DeleteSVC:output_type -> clusterresources.CommonResp + 33, // 234: clusterresources.Network.ListEP:output_type -> clusterresources.CommonResp + 33, // 235: clusterresources.Network.GetEP:output_type -> clusterresources.CommonResp + 33, // 236: clusterresources.Network.GetEPStatus:output_type -> clusterresources.CommonResp + 33, // 237: clusterresources.Network.CreateEP:output_type -> clusterresources.CommonResp + 33, // 238: clusterresources.Network.UpdateEP:output_type -> clusterresources.CommonResp + 33, // 239: clusterresources.Network.DeleteEP:output_type -> clusterresources.CommonResp + 33, // 240: clusterresources.Config.ListCM:output_type -> clusterresources.CommonResp + 33, // 241: clusterresources.Config.GetCM:output_type -> clusterresources.CommonResp + 33, // 242: clusterresources.Config.CreateCM:output_type -> clusterresources.CommonResp + 33, // 243: clusterresources.Config.UpdateCM:output_type -> clusterresources.CommonResp + 33, // 244: clusterresources.Config.DeleteCM:output_type -> clusterresources.CommonResp + 33, // 245: clusterresources.Config.ListSecret:output_type -> clusterresources.CommonResp + 33, // 246: clusterresources.Config.GetSecret:output_type -> clusterresources.CommonResp + 33, // 247: clusterresources.Config.CreateSecret:output_type -> clusterresources.CommonResp + 33, // 248: clusterresources.Config.UpdateSecret:output_type -> clusterresources.CommonResp + 33, // 249: clusterresources.Config.DeleteSecret:output_type -> clusterresources.CommonResp + 33, // 250: clusterresources.Storage.ListPV:output_type -> clusterresources.CommonResp + 33, // 251: clusterresources.Storage.GetPV:output_type -> clusterresources.CommonResp + 33, // 252: clusterresources.Storage.CreatePV:output_type -> clusterresources.CommonResp + 33, // 253: clusterresources.Storage.UpdatePV:output_type -> clusterresources.CommonResp + 33, // 254: clusterresources.Storage.DeletePV:output_type -> clusterresources.CommonResp + 33, // 255: clusterresources.Storage.ListPVC:output_type -> clusterresources.CommonResp + 33, // 256: clusterresources.Storage.GetPVC:output_type -> clusterresources.CommonResp + 33, // 257: clusterresources.Storage.GetPVCMountInfo:output_type -> clusterresources.CommonResp + 33, // 258: clusterresources.Storage.CreatePVC:output_type -> clusterresources.CommonResp + 33, // 259: clusterresources.Storage.UpdatePVC:output_type -> clusterresources.CommonResp + 33, // 260: clusterresources.Storage.DeletePVC:output_type -> clusterresources.CommonResp + 33, // 261: clusterresources.Storage.ListSC:output_type -> clusterresources.CommonResp + 33, // 262: clusterresources.Storage.GetSC:output_type -> clusterresources.CommonResp + 33, // 263: clusterresources.Storage.CreateSC:output_type -> clusterresources.CommonResp + 33, // 264: clusterresources.Storage.UpdateSC:output_type -> clusterresources.CommonResp + 33, // 265: clusterresources.Storage.DeleteSC:output_type -> clusterresources.CommonResp + 33, // 266: clusterresources.RBAC.ListSA:output_type -> clusterresources.CommonResp + 33, // 267: clusterresources.RBAC.GetSA:output_type -> clusterresources.CommonResp + 33, // 268: clusterresources.RBAC.CreateSA:output_type -> clusterresources.CommonResp + 33, // 269: clusterresources.RBAC.UpdateSA:output_type -> clusterresources.CommonResp + 33, // 270: clusterresources.RBAC.DeleteSA:output_type -> clusterresources.CommonResp + 33, // 271: clusterresources.HPA.ListHPA:output_type -> clusterresources.CommonResp + 33, // 272: clusterresources.HPA.GetHPA:output_type -> clusterresources.CommonResp + 33, // 273: clusterresources.HPA.CreateHPA:output_type -> clusterresources.CommonResp + 33, // 274: clusterresources.HPA.UpdateHPA:output_type -> clusterresources.CommonResp + 33, // 275: clusterresources.HPA.DeleteHPA:output_type -> clusterresources.CommonResp + 33, // 276: clusterresources.CustomRes.ListCRD:output_type -> clusterresources.CommonResp + 33, // 277: clusterresources.CustomRes.GetCRD:output_type -> clusterresources.CommonResp + 33, // 278: clusterresources.CustomRes.ListCObj:output_type -> clusterresources.CommonResp + 33, // 279: clusterresources.CustomRes.GetCObj:output_type -> clusterresources.CommonResp + 34, // 280: clusterresources.CustomRes.GetCObjHistoryRevision:output_type -> clusterresources.CommonListResp + 33, // 281: clusterresources.CustomRes.RestartCObj:output_type -> clusterresources.CommonResp + 33, // 282: clusterresources.CustomRes.RolloutCObj:output_type -> clusterresources.CommonResp + 33, // 283: clusterresources.CustomRes.CreateCObj:output_type -> clusterresources.CommonResp + 33, // 284: clusterresources.CustomRes.UpdateCObj:output_type -> clusterresources.CommonResp + 33, // 285: clusterresources.CustomRes.ScaleCObj:output_type -> clusterresources.CommonResp + 33, // 286: clusterresources.CustomRes.DeleteCObj:output_type -> clusterresources.CommonResp + 33, // 287: clusterresources.CustomRes.RescheduleCObjPo:output_type -> clusterresources.CommonResp + 33, // 288: clusterresources.Resource.GetK8SResTemplate:output_type -> clusterresources.CommonResp + 36, // 289: clusterresources.Resource.Subscribe:output_type -> clusterresources.SubscribeResp + 33, // 290: clusterresources.Resource.InvalidateDiscoveryCache:output_type -> clusterresources.CommonResp + 33, // 291: clusterresources.Resource.FormDataRenderPreview:output_type -> clusterresources.CommonResp + 33, // 292: clusterresources.Resource.GetResFormSchema:output_type -> clusterresources.CommonResp + 33, // 293: clusterresources.Resource.GetFormSupportedAPIVersions:output_type -> clusterresources.CommonResp + 33, // 294: clusterresources.Resource.GetResSelectItems:output_type -> clusterresources.CommonResp + 34, // 295: clusterresources.ViewConfig.ListViewConfigs:output_type -> clusterresources.CommonListResp + 33, // 296: clusterresources.ViewConfig.GetViewConfig:output_type -> clusterresources.CommonResp + 33, // 297: clusterresources.ViewConfig.CreateViewConfig:output_type -> clusterresources.CommonResp + 33, // 298: clusterresources.ViewConfig.UpdateViewConfig:output_type -> clusterresources.CommonResp + 33, // 299: clusterresources.ViewConfig.RenameViewConfig:output_type -> clusterresources.CommonResp + 33, // 300: clusterresources.ViewConfig.DeleteViewConfig:output_type -> clusterresources.CommonResp + 33, // 301: clusterresources.MultiCluster.FetchMultiClusterResource:output_type -> clusterresources.CommonResp + 33, // 302: clusterresources.MultiCluster.FetchMultiClusterCustomResource:output_type -> clusterresources.CommonResp + 33, // 303: clusterresources.MultiCluster.MultiClusterResourceCount:output_type -> clusterresources.CommonResp + 162, // [162:304] is the sub-list for method output_type + 20, // [20:162] is the sub-list for method input_type 20, // [20:20] is the sub-list for extension type_name 20, // [20:20] is the sub-list for extension extendee 0, // [0:20] is the sub-list for field type_name @@ -7757,7 +8135,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CObjCreateReq); i { + switch v := v.(*CObjHistoryReq); i { case 0: return &v.state case 1: @@ -7769,7 +8147,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CObjUpdateReq); i { + switch v := v.(*CObjRestartReq); i { case 0: return &v.state case 1: @@ -7781,7 +8159,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CObjScaleReq); i { + switch v := v.(*CObjRolloutReq); i { case 0: return &v.state case 1: @@ -7793,7 +8171,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CObjDeleteReq); i { + switch v := v.(*CObjCreateReq); i { case 0: return &v.state case 1: @@ -7805,7 +8183,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CObjBatchRescheduleReq); i { + switch v := v.(*CObjUpdateReq); i { case 0: return &v.state case 1: @@ -7817,7 +8195,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResp); i { + switch v := v.(*CObjScaleReq); i { case 0: return &v.state case 1: @@ -7829,7 +8207,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonListResp); i { + switch v := v.(*CObjDeleteReq); i { case 0: return &v.state case 1: @@ -7841,7 +8219,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeReq); i { + switch v := v.(*CObjBatchRescheduleReq); i { case 0: return &v.state case 1: @@ -7853,7 +8231,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeResp); i { + switch v := v.(*CommonResp); i { case 0: return &v.state case 1: @@ -7865,7 +8243,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InvalidateDiscoveryCacheReq); i { + switch v := v.(*CommonListResp); i { case 0: return &v.state case 1: @@ -7877,7 +8255,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FormRenderPreviewReq); i { + switch v := v.(*SubscribeReq); i { case 0: return &v.state case 1: @@ -7889,7 +8267,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetResFormSchemaReq); i { + switch v := v.(*SubscribeResp); i { case 0: return &v.state case 1: @@ -7901,7 +8279,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFormSupportedApiVersionsReq); i { + switch v := v.(*InvalidateDiscoveryCacheReq); i { case 0: return &v.state case 1: @@ -7913,7 +8291,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetResSelectItemsReq); i { + switch v := v.(*FormRenderPreviewReq); i { case 0: return &v.state case 1: @@ -7925,7 +8303,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListViewConfigsReq); i { + switch v := v.(*GetResFormSchemaReq); i { case 0: return &v.state case 1: @@ -7937,7 +8315,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetViewConfigReq); i { + switch v := v.(*GetFormSupportedApiVersionsReq); i { case 0: return &v.state case 1: @@ -7949,7 +8327,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ViewFilter); i { + switch v := v.(*GetResSelectItemsReq); i { case 0: return &v.state case 1: @@ -7961,7 +8339,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateViewConfigReq); i { + switch v := v.(*ListViewConfigsReq); i { case 0: return &v.state case 1: @@ -7973,7 +8351,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateViewConfigReq); i { + switch v := v.(*GetViewConfigReq); i { case 0: return &v.state case 1: @@ -7985,7 +8363,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RenameViewConfigReq); i { + switch v := v.(*ViewFilter); i { case 0: return &v.state case 1: @@ -7997,7 +8375,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteViewConfigReq); i { + switch v := v.(*CreateViewConfigReq); i { case 0: return &v.state case 1: @@ -8009,7 +8387,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClusterNamespaces); i { + switch v := v.(*UpdateViewConfigReq); i { case 0: return &v.state case 1: @@ -8021,7 +8399,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LabelSelector); i { + switch v := v.(*RenameViewConfigReq); i { case 0: return &v.state case 1: @@ -8033,7 +8411,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FetchMultiClusterResourceReq); i { + switch v := v.(*DeleteViewConfigReq); i { case 0: return &v.state case 1: @@ -8045,7 +8423,7 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FetchMultiClusterCustomResourceReq); i { + switch v := v.(*ClusterNamespaces); i { case 0: return &v.state case 1: @@ -8057,6 +8435,42 @@ func file_cluster_resources_proto_init() { } } file_cluster_resources_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LabelSelector); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cluster_resources_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchMultiClusterResourceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cluster_resources_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchMultiClusterCustomResourceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cluster_resources_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MultiClusterResourceCountReq); i { case 0: return &v.state @@ -8075,7 +8489,7 @@ func file_cluster_resources_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cluster_resources_proto_rawDesc, NumEnums: 0, - NumMessages: 52, + NumMessages: 55, NumExtensions: 0, NumServices: 13, }, @@ -8088,5535 +8502,3 @@ func file_cluster_resources_proto_init() { file_cluster_resources_proto_goTypes = nil file_cluster_resources_proto_depIdxs = nil } - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// BasicClient is the client API for Basic service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type BasicClient interface { - Echo(ctx context.Context, in *EchoReq, opts ...grpc.CallOption) (*EchoResp, error) - Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error) - Healthz(ctx context.Context, in *HealthzReq, opts ...grpc.CallOption) (*HealthzResp, error) - Version(ctx context.Context, in *VersionReq, opts ...grpc.CallOption) (*VersionResp, error) -} - -type basicClient struct { - cc grpc.ClientConnInterface -} - -func NewBasicClient(cc grpc.ClientConnInterface) BasicClient { - return &basicClient{cc} -} - -func (c *basicClient) Echo(ctx context.Context, in *EchoReq, opts ...grpc.CallOption) (*EchoResp, error) { - out := new(EchoResp) - err := c.cc.Invoke(ctx, "/clusterresources.Basic/Echo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *basicClient) Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error) { - out := new(PingResp) - err := c.cc.Invoke(ctx, "/clusterresources.Basic/Ping", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *basicClient) Healthz(ctx context.Context, in *HealthzReq, opts ...grpc.CallOption) (*HealthzResp, error) { - out := new(HealthzResp) - err := c.cc.Invoke(ctx, "/clusterresources.Basic/Healthz", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *basicClient) Version(ctx context.Context, in *VersionReq, opts ...grpc.CallOption) (*VersionResp, error) { - out := new(VersionResp) - err := c.cc.Invoke(ctx, "/clusterresources.Basic/Version", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// BasicServer is the server API for Basic service. -type BasicServer interface { - Echo(context.Context, *EchoReq) (*EchoResp, error) - Ping(context.Context, *PingReq) (*PingResp, error) - Healthz(context.Context, *HealthzReq) (*HealthzResp, error) - Version(context.Context, *VersionReq) (*VersionResp, error) -} - -// UnimplementedBasicServer can be embedded to have forward compatible implementations. -type UnimplementedBasicServer struct { -} - -func (*UnimplementedBasicServer) Echo(context.Context, *EchoReq) (*EchoResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method Echo not implemented") -} -func (*UnimplementedBasicServer) Ping(context.Context, *PingReq) (*PingResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") -} -func (*UnimplementedBasicServer) Healthz(context.Context, *HealthzReq) (*HealthzResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method Healthz not implemented") -} -func (*UnimplementedBasicServer) Version(context.Context, *VersionReq) (*VersionResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method Version not implemented") -} - -func RegisterBasicServer(s *grpc.Server, srv BasicServer) { - s.RegisterService(&_Basic_serviceDesc, srv) -} - -func _Basic_Echo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(EchoReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(BasicServer).Echo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Basic/Echo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(BasicServer).Echo(ctx, req.(*EchoReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Basic_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PingReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(BasicServer).Ping(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Basic/Ping", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(BasicServer).Ping(ctx, req.(*PingReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Basic_Healthz_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(HealthzReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(BasicServer).Healthz(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Basic/Healthz", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(BasicServer).Healthz(ctx, req.(*HealthzReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Basic_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(VersionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(BasicServer).Version(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Basic/Version", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(BasicServer).Version(ctx, req.(*VersionReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Basic_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Basic", - HandlerType: (*BasicServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Echo", - Handler: _Basic_Echo_Handler, - }, - { - MethodName: "Ping", - Handler: _Basic_Ping_Handler, - }, - { - MethodName: "Healthz", - Handler: _Basic_Healthz_Handler, - }, - { - MethodName: "Version", - Handler: _Basic_Version_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// NodeClient is the client API for Node service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type NodeClient interface { - ListNode(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type nodeClient struct { - cc grpc.ClientConnInterface -} - -func NewNodeClient(cc grpc.ClientConnInterface) NodeClient { - return &nodeClient{cc} -} - -func (c *nodeClient) ListNode(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Node/ListNode", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// NodeServer is the server API for Node service. -type NodeServer interface { - ListNode(context.Context, *ResListReq) (*CommonResp, error) -} - -// UnimplementedNodeServer can be embedded to have forward compatible implementations. -type UnimplementedNodeServer struct { -} - -func (*UnimplementedNodeServer) ListNode(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListNode not implemented") -} - -func RegisterNodeServer(s *grpc.Server, srv NodeServer) { - s.RegisterService(&_Node_serviceDesc, srv) -} - -func _Node_ListNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NodeServer).ListNode(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Node/ListNode", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NodeServer).ListNode(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Node_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Node", - HandlerType: (*NodeServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListNode", - Handler: _Node_ListNode_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// NamespaceClient is the client API for Namespace service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type NamespaceClient interface { - ListNS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type namespaceClient struct { - cc grpc.ClientConnInterface -} - -func NewNamespaceClient(cc grpc.ClientConnInterface) NamespaceClient { - return &namespaceClient{cc} -} - -func (c *namespaceClient) ListNS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Namespace/ListNS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// NamespaceServer is the server API for Namespace service. -type NamespaceServer interface { - ListNS(context.Context, *ResListReq) (*CommonResp, error) -} - -// UnimplementedNamespaceServer can be embedded to have forward compatible implementations. -type UnimplementedNamespaceServer struct { -} - -func (*UnimplementedNamespaceServer) ListNS(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListNS not implemented") -} - -func RegisterNamespaceServer(s *grpc.Server, srv NamespaceServer) { - s.RegisterService(&_Namespace_serviceDesc, srv) -} - -func _Namespace_ListNS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NamespaceServer).ListNS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Namespace/ListNS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NamespaceServer).ListNS(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Namespace_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Namespace", - HandlerType: (*NamespaceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListNS", - Handler: _Namespace_ListNS_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// WorkloadClient is the client API for Workload service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type WorkloadClient interface { - ListDeploy(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetDeploy(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateDeploy(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateDeploy(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - RestartDeploy(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) - PauseOrResumeDeploy(ctx context.Context, in *ResPauseOrResumeReq, opts ...grpc.CallOption) (*CommonResp, error) - ScaleDeploy(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) - RescheduleDeployPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteDeploy(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - GetDeployHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) - GetDeployRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - RolloutDeployRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - ListRS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - ListDS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetDS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateDS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateDS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - RestartDS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) - GetDSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) - GetDSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - RolloutDSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteDS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListSTS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSTS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateSTS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateSTS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - RestartSTS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSTSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) - GetSTSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - RolloutSTSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) - ScaleSTS(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) - RescheduleSTSPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteSTS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListCJ(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetCJ(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateCJ(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateCJ(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteCJ(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListJob(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetJob(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateJob(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateJob(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteJob(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPo(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPoByNode(ctx context.Context, in *ListPoByNodeReq, opts ...grpc.CallOption) (*CommonListResp, error) - GetPo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreatePo(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdatePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeletePo(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPoPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPoCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPoSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - ReschedulePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - ListContainer(ctx context.Context, in *ContainerListReq, opts ...grpc.CallOption) (*CommonListResp, error) - GetContainer(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonResp, error) - GetContainerEnvInfo(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonListResp, error) -} - -type workloadClient struct { - cc grpc.ClientConnInterface -} - -func NewWorkloadClient(cc grpc.ClientConnInterface) WorkloadClient { - return &workloadClient{cc} -} - -func (c *workloadClient) ListDeploy(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDeploy(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreateDeploy(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdateDeploy(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RestartDeploy(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) PauseOrResumeDeploy(ctx context.Context, in *ResPauseOrResumeReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/PauseOrResumeDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ScaleDeploy(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ScaleDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RescheduleDeployPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RescheduleDeployPo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeleteDeploy(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteDeploy", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDeployHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeployHistoryRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDeployRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeployRevisionDiff", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RolloutDeployRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutDeployRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListRS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListRS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListDS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreateDS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdateDS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RestartDS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDSHistoryRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetDSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDSRevisionDiff", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RolloutDSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutDSRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeleteDS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteDS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListSTS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetSTS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreateSTS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdateSTS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RestartSTS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetSTSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTSHistoryRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetSTSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTSRevisionDiff", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RolloutSTSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutSTSRevision", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ScaleSTS(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ScaleSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) RescheduleSTSPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/RescheduleSTSPo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeleteSTS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteSTS", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListCJ(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListCJ", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetCJ(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetCJ", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreateCJ(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateCJ", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdateCJ(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateCJ", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeleteCJ(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteCJ", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListJob(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetJob(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreateJob(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdateJob(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeleteJob(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteJob", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListPo(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListPoByNode(ctx context.Context, in *ListPoByNodeReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoByNode", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetPo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetPo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) CreatePo(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreatePo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) UpdatePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdatePo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) DeletePo(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeletePo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListPoPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoPVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListPoCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListPoSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ReschedulePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ReschedulePo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) ListContainer(ctx context.Context, in *ContainerListReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListContainer", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetContainer(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetContainer", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *workloadClient) GetContainerEnvInfo(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetContainerEnvInfo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// WorkloadServer is the server API for Workload service. -type WorkloadServer interface { - ListDeploy(context.Context, *ResListReq) (*CommonResp, error) - GetDeploy(context.Context, *ResGetReq) (*CommonResp, error) - CreateDeploy(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateDeploy(context.Context, *ResUpdateReq) (*CommonResp, error) - RestartDeploy(context.Context, *ResRestartReq) (*CommonResp, error) - PauseOrResumeDeploy(context.Context, *ResPauseOrResumeReq) (*CommonResp, error) - ScaleDeploy(context.Context, *ResScaleReq) (*CommonResp, error) - RescheduleDeployPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) - DeleteDeploy(context.Context, *ResDeleteReq) (*CommonResp, error) - GetDeployHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) - GetDeployRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) - RolloutDeployRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) - ListRS(context.Context, *ResListReq) (*CommonResp, error) - ListDS(context.Context, *ResListReq) (*CommonResp, error) - GetDS(context.Context, *ResGetReq) (*CommonResp, error) - CreateDS(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateDS(context.Context, *ResUpdateReq) (*CommonResp, error) - RestartDS(context.Context, *ResRestartReq) (*CommonResp, error) - GetDSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) - GetDSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) - RolloutDSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) - DeleteDS(context.Context, *ResDeleteReq) (*CommonResp, error) - ListSTS(context.Context, *ResListReq) (*CommonResp, error) - GetSTS(context.Context, *ResGetReq) (*CommonResp, error) - CreateSTS(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateSTS(context.Context, *ResUpdateReq) (*CommonResp, error) - RestartSTS(context.Context, *ResRestartReq) (*CommonResp, error) - GetSTSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) - GetSTSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) - RolloutSTSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) - ScaleSTS(context.Context, *ResScaleReq) (*CommonResp, error) - RescheduleSTSPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) - DeleteSTS(context.Context, *ResDeleteReq) (*CommonResp, error) - ListCJ(context.Context, *ResListReq) (*CommonResp, error) - GetCJ(context.Context, *ResGetReq) (*CommonResp, error) - CreateCJ(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateCJ(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteCJ(context.Context, *ResDeleteReq) (*CommonResp, error) - ListJob(context.Context, *ResListReq) (*CommonResp, error) - GetJob(context.Context, *ResGetReq) (*CommonResp, error) - CreateJob(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateJob(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteJob(context.Context, *ResDeleteReq) (*CommonResp, error) - ListPo(context.Context, *ResListReq) (*CommonResp, error) - ListPoByNode(context.Context, *ListPoByNodeReq) (*CommonListResp, error) - GetPo(context.Context, *ResGetReq) (*CommonResp, error) - CreatePo(context.Context, *ResCreateReq) (*CommonResp, error) - UpdatePo(context.Context, *ResUpdateReq) (*CommonResp, error) - DeletePo(context.Context, *ResDeleteReq) (*CommonResp, error) - ListPoPVC(context.Context, *ResGetReq) (*CommonResp, error) - ListPoCM(context.Context, *ResGetReq) (*CommonResp, error) - ListPoSecret(context.Context, *ResGetReq) (*CommonResp, error) - ReschedulePo(context.Context, *ResUpdateReq) (*CommonResp, error) - ListContainer(context.Context, *ContainerListReq) (*CommonListResp, error) - GetContainer(context.Context, *ContainerGetReq) (*CommonResp, error) - GetContainerEnvInfo(context.Context, *ContainerGetReq) (*CommonListResp, error) -} - -// UnimplementedWorkloadServer can be embedded to have forward compatible implementations. -type UnimplementedWorkloadServer struct { -} - -func (*UnimplementedWorkloadServer) ListDeploy(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListDeploy not implemented") -} -func (*UnimplementedWorkloadServer) GetDeploy(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDeploy not implemented") -} -func (*UnimplementedWorkloadServer) CreateDeploy(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateDeploy not implemented") -} -func (*UnimplementedWorkloadServer) UpdateDeploy(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateDeploy not implemented") -} -func (*UnimplementedWorkloadServer) RestartDeploy(context.Context, *ResRestartReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RestartDeploy not implemented") -} -func (*UnimplementedWorkloadServer) PauseOrResumeDeploy(context.Context, *ResPauseOrResumeReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method PauseOrResumeDeploy not implemented") -} -func (*UnimplementedWorkloadServer) ScaleDeploy(context.Context, *ResScaleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ScaleDeploy not implemented") -} -func (*UnimplementedWorkloadServer) RescheduleDeployPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RescheduleDeployPo not implemented") -} -func (*UnimplementedWorkloadServer) DeleteDeploy(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteDeploy not implemented") -} -func (*UnimplementedWorkloadServer) GetDeployHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDeployHistoryRevision not implemented") -} -func (*UnimplementedWorkloadServer) GetDeployRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDeployRevisionDiff not implemented") -} -func (*UnimplementedWorkloadServer) RolloutDeployRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RolloutDeployRevision not implemented") -} -func (*UnimplementedWorkloadServer) ListRS(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListRS not implemented") -} -func (*UnimplementedWorkloadServer) ListDS(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListDS not implemented") -} -func (*UnimplementedWorkloadServer) GetDS(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDS not implemented") -} -func (*UnimplementedWorkloadServer) CreateDS(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateDS not implemented") -} -func (*UnimplementedWorkloadServer) UpdateDS(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateDS not implemented") -} -func (*UnimplementedWorkloadServer) RestartDS(context.Context, *ResRestartReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RestartDS not implemented") -} -func (*UnimplementedWorkloadServer) GetDSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDSHistoryRevision not implemented") -} -func (*UnimplementedWorkloadServer) GetDSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDSRevisionDiff not implemented") -} -func (*UnimplementedWorkloadServer) RolloutDSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RolloutDSRevision not implemented") -} -func (*UnimplementedWorkloadServer) DeleteDS(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteDS not implemented") -} -func (*UnimplementedWorkloadServer) ListSTS(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListSTS not implemented") -} -func (*UnimplementedWorkloadServer) GetSTS(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSTS not implemented") -} -func (*UnimplementedWorkloadServer) CreateSTS(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateSTS not implemented") -} -func (*UnimplementedWorkloadServer) UpdateSTS(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateSTS not implemented") -} -func (*UnimplementedWorkloadServer) RestartSTS(context.Context, *ResRestartReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RestartSTS not implemented") -} -func (*UnimplementedWorkloadServer) GetSTSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSTSHistoryRevision not implemented") -} -func (*UnimplementedWorkloadServer) GetSTSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSTSRevisionDiff not implemented") -} -func (*UnimplementedWorkloadServer) RolloutSTSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RolloutSTSRevision not implemented") -} -func (*UnimplementedWorkloadServer) ScaleSTS(context.Context, *ResScaleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ScaleSTS not implemented") -} -func (*UnimplementedWorkloadServer) RescheduleSTSPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RescheduleSTSPo not implemented") -} -func (*UnimplementedWorkloadServer) DeleteSTS(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteSTS not implemented") -} -func (*UnimplementedWorkloadServer) ListCJ(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListCJ not implemented") -} -func (*UnimplementedWorkloadServer) GetCJ(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetCJ not implemented") -} -func (*UnimplementedWorkloadServer) CreateCJ(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateCJ not implemented") -} -func (*UnimplementedWorkloadServer) UpdateCJ(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateCJ not implemented") -} -func (*UnimplementedWorkloadServer) DeleteCJ(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteCJ not implemented") -} -func (*UnimplementedWorkloadServer) ListJob(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListJob not implemented") -} -func (*UnimplementedWorkloadServer) GetJob(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetJob not implemented") -} -func (*UnimplementedWorkloadServer) CreateJob(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateJob not implemented") -} -func (*UnimplementedWorkloadServer) UpdateJob(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateJob not implemented") -} -func (*UnimplementedWorkloadServer) DeleteJob(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteJob not implemented") -} -func (*UnimplementedWorkloadServer) ListPo(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPo not implemented") -} -func (*UnimplementedWorkloadServer) ListPoByNode(context.Context, *ListPoByNodeReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPoByNode not implemented") -} -func (*UnimplementedWorkloadServer) GetPo(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetPo not implemented") -} -func (*UnimplementedWorkloadServer) CreatePo(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreatePo not implemented") -} -func (*UnimplementedWorkloadServer) UpdatePo(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdatePo not implemented") -} -func (*UnimplementedWorkloadServer) DeletePo(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeletePo not implemented") -} -func (*UnimplementedWorkloadServer) ListPoPVC(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPoPVC not implemented") -} -func (*UnimplementedWorkloadServer) ListPoCM(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPoCM not implemented") -} -func (*UnimplementedWorkloadServer) ListPoSecret(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPoSecret not implemented") -} -func (*UnimplementedWorkloadServer) ReschedulePo(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ReschedulePo not implemented") -} -func (*UnimplementedWorkloadServer) ListContainer(context.Context, *ContainerListReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListContainer not implemented") -} -func (*UnimplementedWorkloadServer) GetContainer(context.Context, *ContainerGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetContainer not implemented") -} -func (*UnimplementedWorkloadServer) GetContainerEnvInfo(context.Context, *ContainerGetReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetContainerEnvInfo not implemented") -} - -func RegisterWorkloadServer(s *grpc.Server, srv WorkloadServer) { - s.RegisterService(&_Workload_serviceDesc, srv) -} - -func _Workload_ListDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListDeploy(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDeploy(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreateDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreateDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreateDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreateDeploy(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdateDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdateDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdateDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdateDeploy(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RestartDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResRestartReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RestartDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RestartDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RestartDeploy(ctx, req.(*ResRestartReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_PauseOrResumeDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResPauseOrResumeReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).PauseOrResumeDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/PauseOrResumeDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).PauseOrResumeDeploy(ctx, req.(*ResPauseOrResumeReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ScaleDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResScaleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ScaleDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ScaleDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ScaleDeploy(ctx, req.(*ResScaleReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RescheduleDeployPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResBatchRescheduleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RescheduleDeployPo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RescheduleDeployPo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RescheduleDeployPo(ctx, req.(*ResBatchRescheduleReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeleteDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeleteDeploy(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeleteDeploy", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeleteDeploy(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDeployHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetResHistoryReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDeployHistoryRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDeployHistoryRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDeployHistoryRevision(ctx, req.(*GetResHistoryReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDeployRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDeployRevisionDiff(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDeployRevisionDiff", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDeployRevisionDiff(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RolloutDeployRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RolloutDeployRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RolloutDeployRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RolloutDeployRevision(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListRS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListRS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListRS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListRS(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListDS(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDS(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreateDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreateDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreateDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreateDS(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdateDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdateDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdateDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdateDS(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RestartDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResRestartReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RestartDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RestartDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RestartDS(ctx, req.(*ResRestartReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDSHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetResHistoryReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDSHistoryRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDSHistoryRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDSHistoryRevision(ctx, req.(*GetResHistoryReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetDSRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetDSRevisionDiff(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetDSRevisionDiff", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetDSRevisionDiff(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RolloutDSRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RolloutDSRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RolloutDSRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RolloutDSRevision(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeleteDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeleteDS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeleteDS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeleteDS(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListSTS(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetSTS(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreateSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreateSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreateSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreateSTS(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdateSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdateSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdateSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdateSTS(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RestartSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResRestartReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RestartSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RestartSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RestartSTS(ctx, req.(*ResRestartReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetSTSHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetResHistoryReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetSTSHistoryRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetSTSHistoryRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetSTSHistoryRevision(ctx, req.(*GetResHistoryReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetSTSRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetSTSRevisionDiff(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetSTSRevisionDiff", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetSTSRevisionDiff(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RolloutSTSRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RolloutRevisionReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RolloutSTSRevision(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RolloutSTSRevision", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RolloutSTSRevision(ctx, req.(*RolloutRevisionReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ScaleSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResScaleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ScaleSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ScaleSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ScaleSTS(ctx, req.(*ResScaleReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_RescheduleSTSPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResBatchRescheduleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).RescheduleSTSPo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/RescheduleSTSPo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).RescheduleSTSPo(ctx, req.(*ResBatchRescheduleReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeleteSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeleteSTS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeleteSTS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeleteSTS(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListCJ(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListCJ", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListCJ(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetCJ(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetCJ", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetCJ(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreateCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreateCJ(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreateCJ", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreateCJ(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdateCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdateCJ(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdateCJ", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdateCJ(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeleteCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeleteCJ(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeleteCJ", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeleteCJ(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListJob(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetJob(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreateJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreateJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreateJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreateJob(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdateJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdateJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdateJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdateJob(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeleteJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeleteJob(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeleteJob", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeleteJob(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListPo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListPo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListPo(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListPoByNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListPoByNodeReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListPoByNode(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListPoByNode", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListPoByNode(ctx, req.(*ListPoByNodeReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetPo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetPo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetPo(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_CreatePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).CreatePo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/CreatePo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).CreatePo(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_UpdatePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).UpdatePo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/UpdatePo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).UpdatePo(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_DeletePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).DeletePo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/DeletePo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).DeletePo(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListPoPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListPoPVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListPoPVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListPoPVC(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListPoCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListPoCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListPoCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListPoCM(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListPoSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListPoSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListPoSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListPoSecret(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ReschedulePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ReschedulePo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ReschedulePo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ReschedulePo(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_ListContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ContainerListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).ListContainer(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/ListContainer", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).ListContainer(ctx, req.(*ContainerListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ContainerGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetContainer(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetContainer", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetContainer(ctx, req.(*ContainerGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Workload_GetContainerEnvInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ContainerGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WorkloadServer).GetContainerEnvInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Workload/GetContainerEnvInfo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WorkloadServer).GetContainerEnvInfo(ctx, req.(*ContainerGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Workload_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Workload", - HandlerType: (*WorkloadServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListDeploy", - Handler: _Workload_ListDeploy_Handler, - }, - { - MethodName: "GetDeploy", - Handler: _Workload_GetDeploy_Handler, - }, - { - MethodName: "CreateDeploy", - Handler: _Workload_CreateDeploy_Handler, - }, - { - MethodName: "UpdateDeploy", - Handler: _Workload_UpdateDeploy_Handler, - }, - { - MethodName: "RestartDeploy", - Handler: _Workload_RestartDeploy_Handler, - }, - { - MethodName: "PauseOrResumeDeploy", - Handler: _Workload_PauseOrResumeDeploy_Handler, - }, - { - MethodName: "ScaleDeploy", - Handler: _Workload_ScaleDeploy_Handler, - }, - { - MethodName: "RescheduleDeployPo", - Handler: _Workload_RescheduleDeployPo_Handler, - }, - { - MethodName: "DeleteDeploy", - Handler: _Workload_DeleteDeploy_Handler, - }, - { - MethodName: "GetDeployHistoryRevision", - Handler: _Workload_GetDeployHistoryRevision_Handler, - }, - { - MethodName: "GetDeployRevisionDiff", - Handler: _Workload_GetDeployRevisionDiff_Handler, - }, - { - MethodName: "RolloutDeployRevision", - Handler: _Workload_RolloutDeployRevision_Handler, - }, - { - MethodName: "ListRS", - Handler: _Workload_ListRS_Handler, - }, - { - MethodName: "ListDS", - Handler: _Workload_ListDS_Handler, - }, - { - MethodName: "GetDS", - Handler: _Workload_GetDS_Handler, - }, - { - MethodName: "CreateDS", - Handler: _Workload_CreateDS_Handler, - }, - { - MethodName: "UpdateDS", - Handler: _Workload_UpdateDS_Handler, - }, - { - MethodName: "RestartDS", - Handler: _Workload_RestartDS_Handler, - }, - { - MethodName: "GetDSHistoryRevision", - Handler: _Workload_GetDSHistoryRevision_Handler, - }, - { - MethodName: "GetDSRevisionDiff", - Handler: _Workload_GetDSRevisionDiff_Handler, - }, - { - MethodName: "RolloutDSRevision", - Handler: _Workload_RolloutDSRevision_Handler, - }, - { - MethodName: "DeleteDS", - Handler: _Workload_DeleteDS_Handler, - }, - { - MethodName: "ListSTS", - Handler: _Workload_ListSTS_Handler, - }, - { - MethodName: "GetSTS", - Handler: _Workload_GetSTS_Handler, - }, - { - MethodName: "CreateSTS", - Handler: _Workload_CreateSTS_Handler, - }, - { - MethodName: "UpdateSTS", - Handler: _Workload_UpdateSTS_Handler, - }, - { - MethodName: "RestartSTS", - Handler: _Workload_RestartSTS_Handler, - }, - { - MethodName: "GetSTSHistoryRevision", - Handler: _Workload_GetSTSHistoryRevision_Handler, - }, - { - MethodName: "GetSTSRevisionDiff", - Handler: _Workload_GetSTSRevisionDiff_Handler, - }, - { - MethodName: "RolloutSTSRevision", - Handler: _Workload_RolloutSTSRevision_Handler, - }, - { - MethodName: "ScaleSTS", - Handler: _Workload_ScaleSTS_Handler, - }, - { - MethodName: "RescheduleSTSPo", - Handler: _Workload_RescheduleSTSPo_Handler, - }, - { - MethodName: "DeleteSTS", - Handler: _Workload_DeleteSTS_Handler, - }, - { - MethodName: "ListCJ", - Handler: _Workload_ListCJ_Handler, - }, - { - MethodName: "GetCJ", - Handler: _Workload_GetCJ_Handler, - }, - { - MethodName: "CreateCJ", - Handler: _Workload_CreateCJ_Handler, - }, - { - MethodName: "UpdateCJ", - Handler: _Workload_UpdateCJ_Handler, - }, - { - MethodName: "DeleteCJ", - Handler: _Workload_DeleteCJ_Handler, - }, - { - MethodName: "ListJob", - Handler: _Workload_ListJob_Handler, - }, - { - MethodName: "GetJob", - Handler: _Workload_GetJob_Handler, - }, - { - MethodName: "CreateJob", - Handler: _Workload_CreateJob_Handler, - }, - { - MethodName: "UpdateJob", - Handler: _Workload_UpdateJob_Handler, - }, - { - MethodName: "DeleteJob", - Handler: _Workload_DeleteJob_Handler, - }, - { - MethodName: "ListPo", - Handler: _Workload_ListPo_Handler, - }, - { - MethodName: "ListPoByNode", - Handler: _Workload_ListPoByNode_Handler, - }, - { - MethodName: "GetPo", - Handler: _Workload_GetPo_Handler, - }, - { - MethodName: "CreatePo", - Handler: _Workload_CreatePo_Handler, - }, - { - MethodName: "UpdatePo", - Handler: _Workload_UpdatePo_Handler, - }, - { - MethodName: "DeletePo", - Handler: _Workload_DeletePo_Handler, - }, - { - MethodName: "ListPoPVC", - Handler: _Workload_ListPoPVC_Handler, - }, - { - MethodName: "ListPoCM", - Handler: _Workload_ListPoCM_Handler, - }, - { - MethodName: "ListPoSecret", - Handler: _Workload_ListPoSecret_Handler, - }, - { - MethodName: "ReschedulePo", - Handler: _Workload_ReschedulePo_Handler, - }, - { - MethodName: "ListContainer", - Handler: _Workload_ListContainer_Handler, - }, - { - MethodName: "GetContainer", - Handler: _Workload_GetContainer_Handler, - }, - { - MethodName: "GetContainerEnvInfo", - Handler: _Workload_GetContainerEnvInfo_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// NetworkClient is the client API for Network service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type NetworkClient interface { - ListIng(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetIng(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateIng(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateIng(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteIng(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListSVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateSVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateSVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteSVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListEP(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetEP(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - GetEPStatus(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateEP(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateEP(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteEP(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type networkClient struct { - cc grpc.ClientConnInterface -} - -func NewNetworkClient(cc grpc.ClientConnInterface) NetworkClient { - return &networkClient{cc} -} - -func (c *networkClient) ListIng(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/ListIng", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) GetIng(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/GetIng", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) CreateIng(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateIng", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) UpdateIng(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateIng", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) DeleteIng(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteIng", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) ListSVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/ListSVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) GetSVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/GetSVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) CreateSVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateSVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) UpdateSVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateSVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) DeleteSVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteSVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) ListEP(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/ListEP", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) GetEP(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/GetEP", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) GetEPStatus(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/GetEPStatus", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) CreateEP(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateEP", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) UpdateEP(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateEP", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *networkClient) DeleteEP(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteEP", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// NetworkServer is the server API for Network service. -type NetworkServer interface { - ListIng(context.Context, *ResListReq) (*CommonResp, error) - GetIng(context.Context, *ResGetReq) (*CommonResp, error) - CreateIng(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateIng(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteIng(context.Context, *ResDeleteReq) (*CommonResp, error) - ListSVC(context.Context, *ResListReq) (*CommonResp, error) - GetSVC(context.Context, *ResGetReq) (*CommonResp, error) - CreateSVC(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateSVC(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteSVC(context.Context, *ResDeleteReq) (*CommonResp, error) - ListEP(context.Context, *ResListReq) (*CommonResp, error) - GetEP(context.Context, *ResGetReq) (*CommonResp, error) - GetEPStatus(context.Context, *ResGetReq) (*CommonResp, error) - CreateEP(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateEP(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteEP(context.Context, *ResDeleteReq) (*CommonResp, error) -} - -// UnimplementedNetworkServer can be embedded to have forward compatible implementations. -type UnimplementedNetworkServer struct { -} - -func (*UnimplementedNetworkServer) ListIng(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListIng not implemented") -} -func (*UnimplementedNetworkServer) GetIng(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetIng not implemented") -} -func (*UnimplementedNetworkServer) CreateIng(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateIng not implemented") -} -func (*UnimplementedNetworkServer) UpdateIng(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateIng not implemented") -} -func (*UnimplementedNetworkServer) DeleteIng(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteIng not implemented") -} -func (*UnimplementedNetworkServer) ListSVC(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListSVC not implemented") -} -func (*UnimplementedNetworkServer) GetSVC(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSVC not implemented") -} -func (*UnimplementedNetworkServer) CreateSVC(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateSVC not implemented") -} -func (*UnimplementedNetworkServer) UpdateSVC(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateSVC not implemented") -} -func (*UnimplementedNetworkServer) DeleteSVC(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteSVC not implemented") -} -func (*UnimplementedNetworkServer) ListEP(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListEP not implemented") -} -func (*UnimplementedNetworkServer) GetEP(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetEP not implemented") -} -func (*UnimplementedNetworkServer) GetEPStatus(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetEPStatus not implemented") -} -func (*UnimplementedNetworkServer) CreateEP(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateEP not implemented") -} -func (*UnimplementedNetworkServer) UpdateEP(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateEP not implemented") -} -func (*UnimplementedNetworkServer) DeleteEP(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteEP not implemented") -} - -func RegisterNetworkServer(s *grpc.Server, srv NetworkServer) { - s.RegisterService(&_Network_serviceDesc, srv) -} - -func _Network_ListIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).ListIng(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/ListIng", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).ListIng(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_GetIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).GetIng(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/GetIng", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).GetIng(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_CreateIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).CreateIng(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/CreateIng", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).CreateIng(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_UpdateIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).UpdateIng(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/UpdateIng", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).UpdateIng(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_DeleteIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).DeleteIng(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/DeleteIng", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).DeleteIng(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_ListSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).ListSVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/ListSVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).ListSVC(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_GetSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).GetSVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/GetSVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).GetSVC(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_CreateSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).CreateSVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/CreateSVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).CreateSVC(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_UpdateSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).UpdateSVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/UpdateSVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).UpdateSVC(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_DeleteSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).DeleteSVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/DeleteSVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).DeleteSVC(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_ListEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).ListEP(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/ListEP", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).ListEP(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_GetEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).GetEP(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/GetEP", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).GetEP(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_GetEPStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).GetEPStatus(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/GetEPStatus", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).GetEPStatus(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_CreateEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).CreateEP(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/CreateEP", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).CreateEP(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_UpdateEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).UpdateEP(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/UpdateEP", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).UpdateEP(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Network_DeleteEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NetworkServer).DeleteEP(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Network/DeleteEP", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkServer).DeleteEP(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Network_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Network", - HandlerType: (*NetworkServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListIng", - Handler: _Network_ListIng_Handler, - }, - { - MethodName: "GetIng", - Handler: _Network_GetIng_Handler, - }, - { - MethodName: "CreateIng", - Handler: _Network_CreateIng_Handler, - }, - { - MethodName: "UpdateIng", - Handler: _Network_UpdateIng_Handler, - }, - { - MethodName: "DeleteIng", - Handler: _Network_DeleteIng_Handler, - }, - { - MethodName: "ListSVC", - Handler: _Network_ListSVC_Handler, - }, - { - MethodName: "GetSVC", - Handler: _Network_GetSVC_Handler, - }, - { - MethodName: "CreateSVC", - Handler: _Network_CreateSVC_Handler, - }, - { - MethodName: "UpdateSVC", - Handler: _Network_UpdateSVC_Handler, - }, - { - MethodName: "DeleteSVC", - Handler: _Network_DeleteSVC_Handler, - }, - { - MethodName: "ListEP", - Handler: _Network_ListEP_Handler, - }, - { - MethodName: "GetEP", - Handler: _Network_GetEP_Handler, - }, - { - MethodName: "GetEPStatus", - Handler: _Network_GetEPStatus_Handler, - }, - { - MethodName: "CreateEP", - Handler: _Network_CreateEP_Handler, - }, - { - MethodName: "UpdateEP", - Handler: _Network_UpdateEP_Handler, - }, - { - MethodName: "DeleteEP", - Handler: _Network_DeleteEP_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// ConfigClient is the client API for Config service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type ConfigClient interface { - ListCM(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateCM(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateCM(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteCM(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListSecret(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateSecret(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateSecret(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteSecret(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type configClient struct { - cc grpc.ClientConnInterface -} - -func NewConfigClient(cc grpc.ClientConnInterface) ConfigClient { - return &configClient{cc} -} - -func (c *configClient) ListCM(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/ListCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) GetCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/GetCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) CreateCM(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/CreateCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) UpdateCM(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/UpdateCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) DeleteCM(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/DeleteCM", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) ListSecret(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/ListSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) GetSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/GetSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) CreateSecret(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/CreateSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) UpdateSecret(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/UpdateSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *configClient) DeleteSecret(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Config/DeleteSecret", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ConfigServer is the server API for Config service. -type ConfigServer interface { - ListCM(context.Context, *ResListReq) (*CommonResp, error) - GetCM(context.Context, *ResGetReq) (*CommonResp, error) - CreateCM(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateCM(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteCM(context.Context, *ResDeleteReq) (*CommonResp, error) - ListSecret(context.Context, *ResListReq) (*CommonResp, error) - GetSecret(context.Context, *ResGetReq) (*CommonResp, error) - CreateSecret(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateSecret(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteSecret(context.Context, *ResDeleteReq) (*CommonResp, error) -} - -// UnimplementedConfigServer can be embedded to have forward compatible implementations. -type UnimplementedConfigServer struct { -} - -func (*UnimplementedConfigServer) ListCM(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListCM not implemented") -} -func (*UnimplementedConfigServer) GetCM(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetCM not implemented") -} -func (*UnimplementedConfigServer) CreateCM(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateCM not implemented") -} -func (*UnimplementedConfigServer) UpdateCM(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateCM not implemented") -} -func (*UnimplementedConfigServer) DeleteCM(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteCM not implemented") -} -func (*UnimplementedConfigServer) ListSecret(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListSecret not implemented") -} -func (*UnimplementedConfigServer) GetSecret(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSecret not implemented") -} -func (*UnimplementedConfigServer) CreateSecret(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateSecret not implemented") -} -func (*UnimplementedConfigServer) UpdateSecret(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateSecret not implemented") -} -func (*UnimplementedConfigServer) DeleteSecret(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteSecret not implemented") -} - -func RegisterConfigServer(s *grpc.Server, srv ConfigServer) { - s.RegisterService(&_Config_serviceDesc, srv) -} - -func _Config_ListCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).ListCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/ListCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).ListCM(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_GetCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).GetCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/GetCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).GetCM(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_CreateCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).CreateCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/CreateCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).CreateCM(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_UpdateCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).UpdateCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/UpdateCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).UpdateCM(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_DeleteCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).DeleteCM(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/DeleteCM", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).DeleteCM(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_ListSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).ListSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/ListSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).ListSecret(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_GetSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).GetSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/GetSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).GetSecret(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_CreateSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).CreateSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/CreateSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).CreateSecret(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_UpdateSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).UpdateSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/UpdateSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).UpdateSecret(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Config_DeleteSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ConfigServer).DeleteSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Config/DeleteSecret", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ConfigServer).DeleteSecret(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Config_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Config", - HandlerType: (*ConfigServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListCM", - Handler: _Config_ListCM_Handler, - }, - { - MethodName: "GetCM", - Handler: _Config_GetCM_Handler, - }, - { - MethodName: "CreateCM", - Handler: _Config_CreateCM_Handler, - }, - { - MethodName: "UpdateCM", - Handler: _Config_UpdateCM_Handler, - }, - { - MethodName: "DeleteCM", - Handler: _Config_DeleteCM_Handler, - }, - { - MethodName: "ListSecret", - Handler: _Config_ListSecret_Handler, - }, - { - MethodName: "GetSecret", - Handler: _Config_GetSecret_Handler, - }, - { - MethodName: "CreateSecret", - Handler: _Config_CreateSecret_Handler, - }, - { - MethodName: "UpdateSecret", - Handler: _Config_UpdateSecret_Handler, - }, - { - MethodName: "DeleteSecret", - Handler: _Config_DeleteSecret_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// StorageClient is the client API for Storage service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type StorageClient interface { - ListPV(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetPV(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreatePV(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdatePV(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeletePV(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListPVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - GetPVCMountInfo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreatePVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdatePVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeletePVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - ListSC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateSC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateSC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteSC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type storageClient struct { - cc grpc.ClientConnInterface -} - -func NewStorageClient(cc grpc.ClientConnInterface) StorageClient { - return &storageClient{cc} -} - -func (c *storageClient) ListPV(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListPV", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) GetPV(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPV", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) CreatePV(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreatePV", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) UpdatePV(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdatePV", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) DeletePV(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeletePV", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) ListPVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListPVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) GetPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) GetPVCMountInfo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPVCMountInfo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) CreatePVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreatePVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) UpdatePVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdatePVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) DeletePVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeletePVC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) ListSC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListSC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) GetSC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetSC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) CreateSC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreateSC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) UpdateSC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdateSC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *storageClient) DeleteSC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeleteSC", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// StorageServer is the server API for Storage service. -type StorageServer interface { - ListPV(context.Context, *ResListReq) (*CommonResp, error) - GetPV(context.Context, *ResGetReq) (*CommonResp, error) - CreatePV(context.Context, *ResCreateReq) (*CommonResp, error) - UpdatePV(context.Context, *ResUpdateReq) (*CommonResp, error) - DeletePV(context.Context, *ResDeleteReq) (*CommonResp, error) - ListPVC(context.Context, *ResListReq) (*CommonResp, error) - GetPVC(context.Context, *ResGetReq) (*CommonResp, error) - GetPVCMountInfo(context.Context, *ResGetReq) (*CommonResp, error) - CreatePVC(context.Context, *ResCreateReq) (*CommonResp, error) - UpdatePVC(context.Context, *ResUpdateReq) (*CommonResp, error) - DeletePVC(context.Context, *ResDeleteReq) (*CommonResp, error) - ListSC(context.Context, *ResListReq) (*CommonResp, error) - GetSC(context.Context, *ResGetReq) (*CommonResp, error) - CreateSC(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateSC(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteSC(context.Context, *ResDeleteReq) (*CommonResp, error) -} - -// UnimplementedStorageServer can be embedded to have forward compatible implementations. -type UnimplementedStorageServer struct { -} - -func (*UnimplementedStorageServer) ListPV(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPV not implemented") -} -func (*UnimplementedStorageServer) GetPV(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetPV not implemented") -} -func (*UnimplementedStorageServer) CreatePV(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreatePV not implemented") -} -func (*UnimplementedStorageServer) UpdatePV(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdatePV not implemented") -} -func (*UnimplementedStorageServer) DeletePV(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeletePV not implemented") -} -func (*UnimplementedStorageServer) ListPVC(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPVC not implemented") -} -func (*UnimplementedStorageServer) GetPVC(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetPVC not implemented") -} -func (*UnimplementedStorageServer) GetPVCMountInfo(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetPVCMountInfo not implemented") -} -func (*UnimplementedStorageServer) CreatePVC(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreatePVC not implemented") -} -func (*UnimplementedStorageServer) UpdatePVC(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdatePVC not implemented") -} -func (*UnimplementedStorageServer) DeletePVC(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeletePVC not implemented") -} -func (*UnimplementedStorageServer) ListSC(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListSC not implemented") -} -func (*UnimplementedStorageServer) GetSC(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSC not implemented") -} -func (*UnimplementedStorageServer) CreateSC(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateSC not implemented") -} -func (*UnimplementedStorageServer) UpdateSC(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateSC not implemented") -} -func (*UnimplementedStorageServer) DeleteSC(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteSC not implemented") -} - -func RegisterStorageServer(s *grpc.Server, srv StorageServer) { - s.RegisterService(&_Storage_serviceDesc, srv) -} - -func _Storage_ListPV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).ListPV(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/ListPV", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).ListPV(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_GetPV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).GetPV(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/GetPV", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).GetPV(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_CreatePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).CreatePV(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/CreatePV", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).CreatePV(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_UpdatePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).UpdatePV(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/UpdatePV", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).UpdatePV(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_DeletePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).DeletePV(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/DeletePV", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).DeletePV(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_ListPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).ListPVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/ListPVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).ListPVC(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_GetPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).GetPVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/GetPVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).GetPVC(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_GetPVCMountInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).GetPVCMountInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/GetPVCMountInfo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).GetPVCMountInfo(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_CreatePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).CreatePVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/CreatePVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).CreatePVC(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_UpdatePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).UpdatePVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/UpdatePVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).UpdatePVC(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_DeletePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).DeletePVC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/DeletePVC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).DeletePVC(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_ListSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).ListSC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/ListSC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).ListSC(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_GetSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).GetSC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/GetSC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).GetSC(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_CreateSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).CreateSC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/CreateSC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).CreateSC(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_UpdateSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).UpdateSC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/UpdateSC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).UpdateSC(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Storage_DeleteSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(StorageServer).DeleteSC(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Storage/DeleteSC", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(StorageServer).DeleteSC(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Storage_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Storage", - HandlerType: (*StorageServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListPV", - Handler: _Storage_ListPV_Handler, - }, - { - MethodName: "GetPV", - Handler: _Storage_GetPV_Handler, - }, - { - MethodName: "CreatePV", - Handler: _Storage_CreatePV_Handler, - }, - { - MethodName: "UpdatePV", - Handler: _Storage_UpdatePV_Handler, - }, - { - MethodName: "DeletePV", - Handler: _Storage_DeletePV_Handler, - }, - { - MethodName: "ListPVC", - Handler: _Storage_ListPVC_Handler, - }, - { - MethodName: "GetPVC", - Handler: _Storage_GetPVC_Handler, - }, - { - MethodName: "GetPVCMountInfo", - Handler: _Storage_GetPVCMountInfo_Handler, - }, - { - MethodName: "CreatePVC", - Handler: _Storage_CreatePVC_Handler, - }, - { - MethodName: "UpdatePVC", - Handler: _Storage_UpdatePVC_Handler, - }, - { - MethodName: "DeletePVC", - Handler: _Storage_DeletePVC_Handler, - }, - { - MethodName: "ListSC", - Handler: _Storage_ListSC_Handler, - }, - { - MethodName: "GetSC", - Handler: _Storage_GetSC_Handler, - }, - { - MethodName: "CreateSC", - Handler: _Storage_CreateSC_Handler, - }, - { - MethodName: "UpdateSC", - Handler: _Storage_UpdateSC_Handler, - }, - { - MethodName: "DeleteSC", - Handler: _Storage_DeleteSC_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// RBACClient is the client API for RBAC service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type RBACClient interface { - ListSA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetSA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateSA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateSA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteSA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type rBACClient struct { - cc grpc.ClientConnInterface -} - -func NewRBACClient(cc grpc.ClientConnInterface) RBACClient { - return &rBACClient{cc} -} - -func (c *rBACClient) ListSA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.RBAC/ListSA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *rBACClient) GetSA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.RBAC/GetSA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *rBACClient) CreateSA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.RBAC/CreateSA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *rBACClient) UpdateSA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.RBAC/UpdateSA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *rBACClient) DeleteSA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.RBAC/DeleteSA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// RBACServer is the server API for RBAC service. -type RBACServer interface { - ListSA(context.Context, *ResListReq) (*CommonResp, error) - GetSA(context.Context, *ResGetReq) (*CommonResp, error) - CreateSA(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateSA(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteSA(context.Context, *ResDeleteReq) (*CommonResp, error) -} - -// UnimplementedRBACServer can be embedded to have forward compatible implementations. -type UnimplementedRBACServer struct { -} - -func (*UnimplementedRBACServer) ListSA(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListSA not implemented") -} -func (*UnimplementedRBACServer) GetSA(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetSA not implemented") -} -func (*UnimplementedRBACServer) CreateSA(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateSA not implemented") -} -func (*UnimplementedRBACServer) UpdateSA(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateSA not implemented") -} -func (*UnimplementedRBACServer) DeleteSA(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteSA not implemented") -} - -func RegisterRBACServer(s *grpc.Server, srv RBACServer) { - s.RegisterService(&_RBAC_serviceDesc, srv) -} - -func _RBAC_ListSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RBACServer).ListSA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.RBAC/ListSA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RBACServer).ListSA(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _RBAC_GetSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RBACServer).GetSA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.RBAC/GetSA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RBACServer).GetSA(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _RBAC_CreateSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RBACServer).CreateSA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.RBAC/CreateSA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RBACServer).CreateSA(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _RBAC_UpdateSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RBACServer).UpdateSA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.RBAC/UpdateSA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RBACServer).UpdateSA(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _RBAC_DeleteSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RBACServer).DeleteSA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.RBAC/DeleteSA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RBACServer).DeleteSA(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _RBAC_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.RBAC", - HandlerType: (*RBACServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListSA", - Handler: _RBAC_ListSA_Handler, - }, - { - MethodName: "GetSA", - Handler: _RBAC_GetSA_Handler, - }, - { - MethodName: "CreateSA", - Handler: _RBAC_CreateSA_Handler, - }, - { - MethodName: "UpdateSA", - Handler: _RBAC_UpdateSA_Handler, - }, - { - MethodName: "DeleteSA", - Handler: _RBAC_DeleteSA_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// HPAClient is the client API for HPA service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type HPAClient interface { - ListHPA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetHPA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateHPA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateHPA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteHPA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type hPAClient struct { - cc grpc.ClientConnInterface -} - -func NewHPAClient(cc grpc.ClientConnInterface) HPAClient { - return &hPAClient{cc} -} - -func (c *hPAClient) ListHPA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.HPA/ListHPA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *hPAClient) GetHPA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.HPA/GetHPA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *hPAClient) CreateHPA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.HPA/CreateHPA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *hPAClient) UpdateHPA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.HPA/UpdateHPA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *hPAClient) DeleteHPA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.HPA/DeleteHPA", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// HPAServer is the server API for HPA service. -type HPAServer interface { - ListHPA(context.Context, *ResListReq) (*CommonResp, error) - GetHPA(context.Context, *ResGetReq) (*CommonResp, error) - CreateHPA(context.Context, *ResCreateReq) (*CommonResp, error) - UpdateHPA(context.Context, *ResUpdateReq) (*CommonResp, error) - DeleteHPA(context.Context, *ResDeleteReq) (*CommonResp, error) -} - -// UnimplementedHPAServer can be embedded to have forward compatible implementations. -type UnimplementedHPAServer struct { -} - -func (*UnimplementedHPAServer) ListHPA(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListHPA not implemented") -} -func (*UnimplementedHPAServer) GetHPA(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetHPA not implemented") -} -func (*UnimplementedHPAServer) CreateHPA(context.Context, *ResCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateHPA not implemented") -} -func (*UnimplementedHPAServer) UpdateHPA(context.Context, *ResUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateHPA not implemented") -} -func (*UnimplementedHPAServer) DeleteHPA(context.Context, *ResDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteHPA not implemented") -} - -func RegisterHPAServer(s *grpc.Server, srv HPAServer) { - s.RegisterService(&_HPA_serviceDesc, srv) -} - -func _HPA_ListHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HPAServer).ListHPA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.HPA/ListHPA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HPAServer).ListHPA(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _HPA_GetHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HPAServer).GetHPA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.HPA/GetHPA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HPAServer).GetHPA(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _HPA_CreateHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HPAServer).CreateHPA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.HPA/CreateHPA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HPAServer).CreateHPA(ctx, req.(*ResCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _HPA_UpdateHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HPAServer).UpdateHPA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.HPA/UpdateHPA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HPAServer).UpdateHPA(ctx, req.(*ResUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _HPA_DeleteHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(HPAServer).DeleteHPA(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.HPA/DeleteHPA", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HPAServer).DeleteHPA(ctx, req.(*ResDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _HPA_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.HPA", - HandlerType: (*HPAServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListHPA", - Handler: _HPA_ListHPA_Handler, - }, - { - MethodName: "GetHPA", - Handler: _HPA_GetHPA_Handler, - }, - { - MethodName: "CreateHPA", - Handler: _HPA_CreateHPA_Handler, - }, - { - MethodName: "UpdateHPA", - Handler: _HPA_UpdateHPA_Handler, - }, - { - MethodName: "DeleteHPA", - Handler: _HPA_DeleteHPA_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// CustomResClient is the client API for CustomRes service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type CustomResClient interface { - ListCRD(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetCRD(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) - ListCObj(ctx context.Context, in *CObjListReq, opts ...grpc.CallOption) (*CommonResp, error) - GetCObj(ctx context.Context, in *CObjGetReq, opts ...grpc.CallOption) (*CommonResp, error) - CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...grpc.CallOption) (*CommonResp, error) - UpdateCObj(ctx context.Context, in *CObjUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) - ScaleCObj(ctx context.Context, in *CObjScaleReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteCObj(ctx context.Context, in *CObjDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) - RescheduleCObjPo(ctx context.Context, in *CObjBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type customResClient struct { - cc grpc.ClientConnInterface -} - -func NewCustomResClient(cc grpc.ClientConnInterface) CustomResClient { - return &customResClient{cc} -} - -func (c *customResClient) ListCRD(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ListCRD", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) GetCRD(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/GetCRD", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) ListCObj(ctx context.Context, in *CObjListReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ListCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) GetCObj(ctx context.Context, in *CObjGetReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/GetCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/CreateCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) UpdateCObj(ctx context.Context, in *CObjUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/UpdateCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) ScaleCObj(ctx context.Context, in *CObjScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ScaleCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) DeleteCObj(ctx context.Context, in *CObjDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/DeleteCObj", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *customResClient) RescheduleCObjPo(ctx context.Context, in *CObjBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/RescheduleCObjPo", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// CustomResServer is the server API for CustomRes service. -type CustomResServer interface { - ListCRD(context.Context, *ResListReq) (*CommonResp, error) - GetCRD(context.Context, *ResGetReq) (*CommonResp, error) - ListCObj(context.Context, *CObjListReq) (*CommonResp, error) - GetCObj(context.Context, *CObjGetReq) (*CommonResp, error) - CreateCObj(context.Context, *CObjCreateReq) (*CommonResp, error) - UpdateCObj(context.Context, *CObjUpdateReq) (*CommonResp, error) - ScaleCObj(context.Context, *CObjScaleReq) (*CommonResp, error) - DeleteCObj(context.Context, *CObjDeleteReq) (*CommonResp, error) - RescheduleCObjPo(context.Context, *CObjBatchRescheduleReq) (*CommonResp, error) -} - -// UnimplementedCustomResServer can be embedded to have forward compatible implementations. -type UnimplementedCustomResServer struct { -} - -func (*UnimplementedCustomResServer) ListCRD(context.Context, *ResListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListCRD not implemented") -} -func (*UnimplementedCustomResServer) GetCRD(context.Context, *ResGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetCRD not implemented") -} -func (*UnimplementedCustomResServer) ListCObj(context.Context, *CObjListReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListCObj not implemented") -} -func (*UnimplementedCustomResServer) GetCObj(context.Context, *CObjGetReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetCObj not implemented") -} -func (*UnimplementedCustomResServer) CreateCObj(context.Context, *CObjCreateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateCObj not implemented") -} -func (*UnimplementedCustomResServer) UpdateCObj(context.Context, *CObjUpdateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateCObj not implemented") -} -func (*UnimplementedCustomResServer) ScaleCObj(context.Context, *CObjScaleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ScaleCObj not implemented") -} -func (*UnimplementedCustomResServer) DeleteCObj(context.Context, *CObjDeleteReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteCObj not implemented") -} -func (*UnimplementedCustomResServer) RescheduleCObjPo(context.Context, *CObjBatchRescheduleReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RescheduleCObjPo not implemented") -} - -func RegisterCustomResServer(s *grpc.Server, srv CustomResServer) { - s.RegisterService(&_CustomRes_serviceDesc, srv) -} - -func _CustomRes_ListCRD_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).ListCRD(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/ListCRD", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).ListCRD(ctx, req.(*ResListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_GetCRD_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).GetCRD(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/GetCRD", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).GetCRD(ctx, req.(*ResGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_ListCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).ListCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/ListCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).ListCObj(ctx, req.(*CObjListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_GetCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjGetReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).GetCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/GetCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).GetCObj(ctx, req.(*CObjGetReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_CreateCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjCreateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).CreateCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/CreateCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).CreateCObj(ctx, req.(*CObjCreateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_UpdateCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjUpdateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).UpdateCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/UpdateCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).UpdateCObj(ctx, req.(*CObjUpdateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_ScaleCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjScaleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).ScaleCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/ScaleCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).ScaleCObj(ctx, req.(*CObjScaleReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_DeleteCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjDeleteReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).DeleteCObj(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/DeleteCObj", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).DeleteCObj(ctx, req.(*CObjDeleteReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _CustomRes_RescheduleCObjPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CObjBatchRescheduleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(CustomResServer).RescheduleCObjPo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.CustomRes/RescheduleCObjPo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CustomResServer).RescheduleCObjPo(ctx, req.(*CObjBatchRescheduleReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _CustomRes_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.CustomRes", - HandlerType: (*CustomResServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListCRD", - Handler: _CustomRes_ListCRD_Handler, - }, - { - MethodName: "GetCRD", - Handler: _CustomRes_GetCRD_Handler, - }, - { - MethodName: "ListCObj", - Handler: _CustomRes_ListCObj_Handler, - }, - { - MethodName: "GetCObj", - Handler: _CustomRes_GetCObj_Handler, - }, - { - MethodName: "CreateCObj", - Handler: _CustomRes_CreateCObj_Handler, - }, - { - MethodName: "UpdateCObj", - Handler: _CustomRes_UpdateCObj_Handler, - }, - { - MethodName: "ScaleCObj", - Handler: _CustomRes_ScaleCObj_Handler, - }, - { - MethodName: "DeleteCObj", - Handler: _CustomRes_DeleteCObj_Handler, - }, - { - MethodName: "RescheduleCObjPo", - Handler: _CustomRes_RescheduleCObjPo_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// ResourceClient is the client API for Resource service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type ResourceClient interface { - // 示例模板接口 - GetK8SResTemplate(ctx context.Context, in *GetK8SResTemplateReq, opts ...grpc.CallOption) (*CommonResp, error) - // 订阅接口 - Subscribe(ctx context.Context, in *SubscribeReq, opts ...grpc.CallOption) (Resource_SubscribeClient, error) - // 主动使 Discover 缓存失效 - InvalidateDiscoveryCache(ctx context.Context, in *InvalidateDiscoveryCacheReq, opts ...grpc.CallOption) (*CommonResp, error) - // 表单化数据渲染预览 - FormDataRenderPreview(ctx context.Context, in *FormRenderPreviewReq, opts ...grpc.CallOption) (*CommonResp, error) - // 获取指定资源表单 Schema - GetResFormSchema(ctx context.Context, in *GetResFormSchemaReq, opts ...grpc.CallOption) (*CommonResp, error) - GetFormSupportedAPIVersions(ctx context.Context, in *GetFormSupportedApiVersionsReq, opts ...grpc.CallOption) (*CommonResp, error) - // 获取用于下拉框选项的资源数据 - GetResSelectItems(ctx context.Context, in *GetResSelectItemsReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type resourceClient struct { - cc grpc.ClientConnInterface -} - -func NewResourceClient(cc grpc.ClientConnInterface) ResourceClient { - return &resourceClient{cc} -} - -func (c *resourceClient) GetK8SResTemplate(ctx context.Context, in *GetK8SResTemplateReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetK8SResTemplate", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *resourceClient) Subscribe(ctx context.Context, in *SubscribeReq, opts ...grpc.CallOption) (Resource_SubscribeClient, error) { - stream, err := c.cc.NewStream(ctx, &_Resource_serviceDesc.Streams[0], "/clusterresources.Resource/Subscribe", opts...) - if err != nil { - return nil, err - } - x := &resourceSubscribeClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type Resource_SubscribeClient interface { - Recv() (*SubscribeResp, error) - grpc.ClientStream -} - -type resourceSubscribeClient struct { - grpc.ClientStream -} - -func (x *resourceSubscribeClient) Recv() (*SubscribeResp, error) { - m := new(SubscribeResp) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func (c *resourceClient) InvalidateDiscoveryCache(ctx context.Context, in *InvalidateDiscoveryCacheReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/InvalidateDiscoveryCache", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *resourceClient) FormDataRenderPreview(ctx context.Context, in *FormRenderPreviewReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/FormDataRenderPreview", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *resourceClient) GetResFormSchema(ctx context.Context, in *GetResFormSchemaReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetResFormSchema", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *resourceClient) GetFormSupportedAPIVersions(ctx context.Context, in *GetFormSupportedApiVersionsReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetFormSupportedAPIVersions", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *resourceClient) GetResSelectItems(ctx context.Context, in *GetResSelectItemsReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetResSelectItems", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ResourceServer is the server API for Resource service. -type ResourceServer interface { - // 示例模板接口 - GetK8SResTemplate(context.Context, *GetK8SResTemplateReq) (*CommonResp, error) - // 订阅接口 - Subscribe(*SubscribeReq, Resource_SubscribeServer) error - // 主动使 Discover 缓存失效 - InvalidateDiscoveryCache(context.Context, *InvalidateDiscoveryCacheReq) (*CommonResp, error) - // 表单化数据渲染预览 - FormDataRenderPreview(context.Context, *FormRenderPreviewReq) (*CommonResp, error) - // 获取指定资源表单 Schema - GetResFormSchema(context.Context, *GetResFormSchemaReq) (*CommonResp, error) - GetFormSupportedAPIVersions(context.Context, *GetFormSupportedApiVersionsReq) (*CommonResp, error) - // 获取用于下拉框选项的资源数据 - GetResSelectItems(context.Context, *GetResSelectItemsReq) (*CommonResp, error) -} - -// UnimplementedResourceServer can be embedded to have forward compatible implementations. -type UnimplementedResourceServer struct { -} - -func (*UnimplementedResourceServer) GetK8SResTemplate(context.Context, *GetK8SResTemplateReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetK8SResTemplate not implemented") -} -func (*UnimplementedResourceServer) Subscribe(*SubscribeReq, Resource_SubscribeServer) error { - return status.Errorf(codes.Unimplemented, "method Subscribe not implemented") -} -func (*UnimplementedResourceServer) InvalidateDiscoveryCache(context.Context, *InvalidateDiscoveryCacheReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method InvalidateDiscoveryCache not implemented") -} -func (*UnimplementedResourceServer) FormDataRenderPreview(context.Context, *FormRenderPreviewReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method FormDataRenderPreview not implemented") -} -func (*UnimplementedResourceServer) GetResFormSchema(context.Context, *GetResFormSchemaReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetResFormSchema not implemented") -} -func (*UnimplementedResourceServer) GetFormSupportedAPIVersions(context.Context, *GetFormSupportedApiVersionsReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetFormSupportedAPIVersions not implemented") -} -func (*UnimplementedResourceServer) GetResSelectItems(context.Context, *GetResSelectItemsReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetResSelectItems not implemented") -} - -func RegisterResourceServer(s *grpc.Server, srv ResourceServer) { - s.RegisterService(&_Resource_serviceDesc, srv) -} - -func _Resource_GetK8SResTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetK8SResTemplateReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).GetK8SResTemplate(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/GetK8SResTemplate", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).GetK8SResTemplate(ctx, req.(*GetK8SResTemplateReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Resource_Subscribe_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(SubscribeReq) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(ResourceServer).Subscribe(m, &resourceSubscribeServer{stream}) -} - -type Resource_SubscribeServer interface { - Send(*SubscribeResp) error - grpc.ServerStream -} - -type resourceSubscribeServer struct { - grpc.ServerStream -} - -func (x *resourceSubscribeServer) Send(m *SubscribeResp) error { - return x.ServerStream.SendMsg(m) -} - -func _Resource_InvalidateDiscoveryCache_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(InvalidateDiscoveryCacheReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).InvalidateDiscoveryCache(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/InvalidateDiscoveryCache", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).InvalidateDiscoveryCache(ctx, req.(*InvalidateDiscoveryCacheReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Resource_FormDataRenderPreview_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FormRenderPreviewReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).FormDataRenderPreview(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/FormDataRenderPreview", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).FormDataRenderPreview(ctx, req.(*FormRenderPreviewReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Resource_GetResFormSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetResFormSchemaReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).GetResFormSchema(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/GetResFormSchema", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).GetResFormSchema(ctx, req.(*GetResFormSchemaReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Resource_GetFormSupportedAPIVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFormSupportedApiVersionsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).GetFormSupportedAPIVersions(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/GetFormSupportedAPIVersions", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).GetFormSupportedAPIVersions(ctx, req.(*GetFormSupportedApiVersionsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Resource_GetResSelectItems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetResSelectItemsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ResourceServer).GetResSelectItems(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.Resource/GetResSelectItems", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ResourceServer).GetResSelectItems(ctx, req.(*GetResSelectItemsReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Resource_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.Resource", - HandlerType: (*ResourceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetK8SResTemplate", - Handler: _Resource_GetK8SResTemplate_Handler, - }, - { - MethodName: "InvalidateDiscoveryCache", - Handler: _Resource_InvalidateDiscoveryCache_Handler, - }, - { - MethodName: "FormDataRenderPreview", - Handler: _Resource_FormDataRenderPreview_Handler, - }, - { - MethodName: "GetResFormSchema", - Handler: _Resource_GetResFormSchema_Handler, - }, - { - MethodName: "GetFormSupportedAPIVersions", - Handler: _Resource_GetFormSupportedAPIVersions_Handler, - }, - { - MethodName: "GetResSelectItems", - Handler: _Resource_GetResSelectItems_Handler, - }, - }, - Streams: []grpc.StreamDesc{ - { - StreamName: "Subscribe", - Handler: _Resource_Subscribe_Handler, - ServerStreams: true, - }, - }, - Metadata: "cluster-resources.proto", -} - -// ViewConfigClient is the client API for ViewConfig service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type ViewConfigClient interface { - // 获取视图配置列表 - ListViewConfigs(ctx context.Context, in *ListViewConfigsReq, opts ...grpc.CallOption) (*CommonListResp, error) - // 获取视图配置详情 - GetViewConfig(ctx context.Context, in *GetViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) - // 创建视图配置 - CreateViewConfig(ctx context.Context, in *CreateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) - // 更新视图配置 - UpdateViewConfig(ctx context.Context, in *UpdateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) - // 视图重命名 - RenameViewConfig(ctx context.Context, in *RenameViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) - // 删除视图配置 - DeleteViewConfig(ctx context.Context, in *DeleteViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type viewConfigClient struct { - cc grpc.ClientConnInterface -} - -func NewViewConfigClient(cc grpc.ClientConnInterface) ViewConfigClient { - return &viewConfigClient{cc} -} - -func (c *viewConfigClient) ListViewConfigs(ctx context.Context, in *ListViewConfigsReq, opts ...grpc.CallOption) (*CommonListResp, error) { - out := new(CommonListResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/ListViewConfigs", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewConfigClient) GetViewConfig(ctx context.Context, in *GetViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/GetViewConfig", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewConfigClient) CreateViewConfig(ctx context.Context, in *CreateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/CreateViewConfig", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewConfigClient) UpdateViewConfig(ctx context.Context, in *UpdateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/UpdateViewConfig", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewConfigClient) RenameViewConfig(ctx context.Context, in *RenameViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/RenameViewConfig", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewConfigClient) DeleteViewConfig(ctx context.Context, in *DeleteViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/DeleteViewConfig", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ViewConfigServer is the server API for ViewConfig service. -type ViewConfigServer interface { - // 获取视图配置列表 - ListViewConfigs(context.Context, *ListViewConfigsReq) (*CommonListResp, error) - // 获取视图配置详情 - GetViewConfig(context.Context, *GetViewConfigReq) (*CommonResp, error) - // 创建视图配置 - CreateViewConfig(context.Context, *CreateViewConfigReq) (*CommonResp, error) - // 更新视图配置 - UpdateViewConfig(context.Context, *UpdateViewConfigReq) (*CommonResp, error) - // 视图重命名 - RenameViewConfig(context.Context, *RenameViewConfigReq) (*CommonResp, error) - // 删除视图配置 - DeleteViewConfig(context.Context, *DeleteViewConfigReq) (*CommonResp, error) -} - -// UnimplementedViewConfigServer can be embedded to have forward compatible implementations. -type UnimplementedViewConfigServer struct { -} - -func (*UnimplementedViewConfigServer) ListViewConfigs(context.Context, *ListViewConfigsReq) (*CommonListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListViewConfigs not implemented") -} -func (*UnimplementedViewConfigServer) GetViewConfig(context.Context, *GetViewConfigReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetViewConfig not implemented") -} -func (*UnimplementedViewConfigServer) CreateViewConfig(context.Context, *CreateViewConfigReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateViewConfig not implemented") -} -func (*UnimplementedViewConfigServer) UpdateViewConfig(context.Context, *UpdateViewConfigReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateViewConfig not implemented") -} -func (*UnimplementedViewConfigServer) RenameViewConfig(context.Context, *RenameViewConfigReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RenameViewConfig not implemented") -} -func (*UnimplementedViewConfigServer) DeleteViewConfig(context.Context, *DeleteViewConfigReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteViewConfig not implemented") -} - -func RegisterViewConfigServer(s *grpc.Server, srv ViewConfigServer) { - s.RegisterService(&_ViewConfig_serviceDesc, srv) -} - -func _ViewConfig_ListViewConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListViewConfigsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).ListViewConfigs(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/ListViewConfigs", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).ListViewConfigs(ctx, req.(*ListViewConfigsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ViewConfig_GetViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetViewConfigReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).GetViewConfig(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/GetViewConfig", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).GetViewConfig(ctx, req.(*GetViewConfigReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ViewConfig_CreateViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateViewConfigReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).CreateViewConfig(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/CreateViewConfig", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).CreateViewConfig(ctx, req.(*CreateViewConfigReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ViewConfig_UpdateViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateViewConfigReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).UpdateViewConfig(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/UpdateViewConfig", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).UpdateViewConfig(ctx, req.(*UpdateViewConfigReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ViewConfig_RenameViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RenameViewConfigReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).RenameViewConfig(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/RenameViewConfig", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).RenameViewConfig(ctx, req.(*RenameViewConfigReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _ViewConfig_DeleteViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteViewConfigReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ViewConfigServer).DeleteViewConfig(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.ViewConfig/DeleteViewConfig", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewConfigServer).DeleteViewConfig(ctx, req.(*DeleteViewConfigReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _ViewConfig_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.ViewConfig", - HandlerType: (*ViewConfigServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListViewConfigs", - Handler: _ViewConfig_ListViewConfigs_Handler, - }, - { - MethodName: "GetViewConfig", - Handler: _ViewConfig_GetViewConfig_Handler, - }, - { - MethodName: "CreateViewConfig", - Handler: _ViewConfig_CreateViewConfig_Handler, - }, - { - MethodName: "UpdateViewConfig", - Handler: _ViewConfig_UpdateViewConfig_Handler, - }, - { - MethodName: "RenameViewConfig", - Handler: _ViewConfig_RenameViewConfig_Handler, - }, - { - MethodName: "DeleteViewConfig", - Handler: _ViewConfig_DeleteViewConfig_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} - -// MultiClusterClient is the client API for MultiCluster service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type MultiClusterClient interface { - FetchMultiClusterResource(ctx context.Context, in *FetchMultiClusterResourceReq, opts ...grpc.CallOption) (*CommonResp, error) - FetchMultiClusterCustomResource(ctx context.Context, in *FetchMultiClusterCustomResourceReq, opts ...grpc.CallOption) (*CommonResp, error) - MultiClusterResourceCount(ctx context.Context, in *MultiClusterResourceCountReq, opts ...grpc.CallOption) (*CommonResp, error) -} - -type multiClusterClient struct { - cc grpc.ClientConnInterface -} - -func NewMultiClusterClient(cc grpc.ClientConnInterface) MultiClusterClient { - return &multiClusterClient{cc} -} - -func (c *multiClusterClient) FetchMultiClusterResource(ctx context.Context, in *FetchMultiClusterResourceReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/FetchMultiClusterResource", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *multiClusterClient) FetchMultiClusterCustomResource(ctx context.Context, in *FetchMultiClusterCustomResourceReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/FetchMultiClusterCustomResource", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *multiClusterClient) MultiClusterResourceCount(ctx context.Context, in *MultiClusterResourceCountReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/MultiClusterResourceCount", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// MultiClusterServer is the server API for MultiCluster service. -type MultiClusterServer interface { - FetchMultiClusterResource(context.Context, *FetchMultiClusterResourceReq) (*CommonResp, error) - FetchMultiClusterCustomResource(context.Context, *FetchMultiClusterCustomResourceReq) (*CommonResp, error) - MultiClusterResourceCount(context.Context, *MultiClusterResourceCountReq) (*CommonResp, error) -} - -// UnimplementedMultiClusterServer can be embedded to have forward compatible implementations. -type UnimplementedMultiClusterServer struct { -} - -func (*UnimplementedMultiClusterServer) FetchMultiClusterResource(context.Context, *FetchMultiClusterResourceReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method FetchMultiClusterResource not implemented") -} -func (*UnimplementedMultiClusterServer) FetchMultiClusterCustomResource(context.Context, *FetchMultiClusterCustomResourceReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method FetchMultiClusterCustomResource not implemented") -} -func (*UnimplementedMultiClusterServer) MultiClusterResourceCount(context.Context, *MultiClusterResourceCountReq) (*CommonResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method MultiClusterResourceCount not implemented") -} - -func RegisterMultiClusterServer(s *grpc.Server, srv MultiClusterServer) { - s.RegisterService(&_MultiCluster_serviceDesc, srv) -} - -func _MultiCluster_FetchMultiClusterResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FetchMultiClusterResourceReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MultiClusterServer).FetchMultiClusterResource(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.MultiCluster/FetchMultiClusterResource", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MultiClusterServer).FetchMultiClusterResource(ctx, req.(*FetchMultiClusterResourceReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _MultiCluster_FetchMultiClusterCustomResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FetchMultiClusterCustomResourceReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MultiClusterServer).FetchMultiClusterCustomResource(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.MultiCluster/FetchMultiClusterCustomResource", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MultiClusterServer).FetchMultiClusterCustomResource(ctx, req.(*FetchMultiClusterCustomResourceReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _MultiCluster_MultiClusterResourceCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MultiClusterResourceCountReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MultiClusterServer).MultiClusterResourceCount(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/clusterresources.MultiCluster/MultiClusterResourceCount", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MultiClusterServer).MultiClusterResourceCount(ctx, req.(*MultiClusterResourceCountReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _MultiCluster_serviceDesc = grpc.ServiceDesc{ - ServiceName: "clusterresources.MultiCluster", - HandlerType: (*MultiClusterServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "FetchMultiClusterResource", - Handler: _MultiCluster_FetchMultiClusterResource_Handler, - }, - { - MethodName: "FetchMultiClusterCustomResource", - Handler: _MultiCluster_FetchMultiClusterCustomResource_Handler, - }, - { - MethodName: "MultiClusterResourceCount", - Handler: _MultiCluster_MultiClusterResourceCount_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "cluster-resources.proto", -} diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.gw.go b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.gw.go index daf736cf36..40716aa82e 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.gw.go +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.gw.go @@ -14097,6 +14097,438 @@ func local_request_CustomRes_GetCObj_0(ctx context.Context, marshaler runtime.Ma } +var ( + filter_CustomRes_GetCObjHistoryRevision_0 = &utilities.DoubleArray{Encoding: map[string]int{"projectID": 0, "clusterID": 1, "CRDName": 2, "cobjName": 3}, Base: []int{1, 1, 2, 3, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 1, 2, 3, 4, 5}} +) + +func request_CustomRes_GetCObjHistoryRevision_0(ctx context.Context, marshaler runtime.Marshaler, client CustomResClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjHistoryReq + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CustomRes_GetCObjHistoryRevision_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetCObjHistoryRevision(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_CustomRes_GetCObjHistoryRevision_0(ctx context.Context, marshaler runtime.Marshaler, server CustomResServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjHistoryReq + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CustomRes_GetCObjHistoryRevision_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetCObjHistoryRevision(ctx, &protoReq) + return msg, metadata, err + +} + +func request_CustomRes_RestartCObj_0(ctx context.Context, marshaler runtime.Marshaler, client CustomResClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjRestartReq + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + msg, err := client.RestartCObj(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_CustomRes_RestartCObj_0(ctx context.Context, marshaler runtime.Marshaler, server CustomResServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjRestartReq + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + msg, err := server.RestartCObj(ctx, &protoReq) + return msg, metadata, err + +} + +func request_CustomRes_RolloutCObj_0(ctx context.Context, marshaler runtime.Marshaler, client CustomResClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjRolloutReq + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + val, ok = pathParams["revision"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "revision") + } + + protoReq.Revision, err = runtime.Int64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "revision", err) + } + + msg, err := client.RolloutCObj(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_CustomRes_RolloutCObj_0(ctx context.Context, marshaler runtime.Marshaler, server CustomResServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CObjRolloutReq + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["projectID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "projectID") + } + + protoReq.ProjectID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "projectID", err) + } + + val, ok = pathParams["clusterID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "clusterID") + } + + protoReq.ClusterID, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "clusterID", err) + } + + val, ok = pathParams["CRDName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "CRDName") + } + + protoReq.CRDName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "CRDName", err) + } + + val, ok = pathParams["cobjName"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cobjName") + } + + protoReq.CobjName, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cobjName", err) + } + + val, ok = pathParams["revision"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "revision") + } + + protoReq.Revision, err = runtime.Int64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "revision", err) + } + + msg, err := server.RolloutCObj(ctx, &protoReq) + return msg, metadata, err + +} + func request_CustomRes_CreateCObj_0(ctx context.Context, marshaler runtime.Marshaler, client CustomResClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq CObjCreateReq var metadata runtime.ServerMetadata @@ -18831,6 +19263,75 @@ func RegisterCustomResGwServer(ctx context.Context, mux *runtime.ServeMux, serve }) + mux.Handle("GET", pattern_CustomRes_GetCObjHistoryRevision_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CustomRes_GetCObjHistoryRevision_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_GetCObjHistoryRevision_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_CustomRes_RestartCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CustomRes_RestartCObj_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_RestartCObj_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_CustomRes_RolloutCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CustomRes_RolloutCObj_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_RolloutCObj_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_CustomRes_CreateCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -22587,6 +23088,66 @@ func RegisterCustomResGwClient(ctx context.Context, mux *runtime.ServeMux, clien }) + mux.Handle("GET", pattern_CustomRes_GetCObjHistoryRevision_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CustomRes_GetCObjHistoryRevision_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_GetCObjHistoryRevision_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_CustomRes_RestartCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CustomRes_RestartCObj_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_RestartCObj_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PUT", pattern_CustomRes_RolloutCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CustomRes_RolloutCObj_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CustomRes_RolloutCObj_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_CustomRes_CreateCObj_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -22699,6 +23260,12 @@ var ( pattern_CustomRes_GetCObj_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8, 1, 0, 4, 1, 5, 9}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects", "cobjName"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CustomRes_GetCObjHistoryRevision_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8, 1, 0, 4, 1, 5, 9, 2, 10}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects", "cobjName", "history"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_CustomRes_RestartCObj_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8, 1, 0, 4, 1, 5, 9, 2, 10}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects", "cobjName", "restart"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_CustomRes_RolloutCObj_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8, 1, 0, 4, 1, 5, 9, 2, 10, 1, 0, 4, 1, 5, 11}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects", "cobjName", "rollout", "revision"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CustomRes_CreateCObj_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects"}, "", runtime.AssumeColonVerbOpt(true))) pattern_CustomRes_UpdateCObj_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6, 1, 0, 4, 1, 5, 7, 2, 8, 1, 0, 4, 1, 5, 9}, []string{"clusterresources", "v1", "projects", "projectID", "clusters", "clusterID", "crds", "CRDName", "custom_objects", "cobjName"}, "", runtime.AssumeColonVerbOpt(true))) @@ -22719,6 +23286,12 @@ var ( forward_CustomRes_GetCObj_0 = runtime.ForwardResponseMessage + forward_CustomRes_GetCObjHistoryRevision_0 = runtime.ForwardResponseMessage + + forward_CustomRes_RestartCObj_0 = runtime.ForwardResponseMessage + + forward_CustomRes_RolloutCObj_0 = runtime.ForwardResponseMessage + forward_CustomRes_CreateCObj_0 = runtime.ForwardResponseMessage forward_CustomRes_UpdateCObj_0 = runtime.ForwardResponseMessage diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.micro.go b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.micro.go index a7e312203e..b68a75c976 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.micro.go +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.micro.go @@ -3752,6 +3752,24 @@ func NewCustomResEndpoints() []*api.Endpoint { Method: []string{"GET"}, Handler: "rpc", }, + { + Name: "CustomRes.GetCObjHistoryRevision", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/history"}, + Method: []string{"GET"}, + Handler: "rpc", + }, + { + Name: "CustomRes.RestartCObj", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/restart"}, + Method: []string{"PUT"}, + Handler: "rpc", + }, + { + Name: "CustomRes.RolloutCObj", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/rollout/{revision}"}, + Method: []string{"PUT"}, + Handler: "rpc", + }, { Name: "CustomRes.CreateCObj", Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects"}, @@ -3792,6 +3810,9 @@ type CustomResService interface { GetCRD(ctx context.Context, in *ResGetReq, opts ...client.CallOption) (*CommonResp, error) ListCObj(ctx context.Context, in *CObjListReq, opts ...client.CallOption) (*CommonResp, error) GetCObj(ctx context.Context, in *CObjGetReq, opts ...client.CallOption) (*CommonResp, error) + GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, opts ...client.CallOption) (*CommonListResp, error) + RestartCObj(ctx context.Context, in *CObjRestartReq, opts ...client.CallOption) (*CommonResp, error) + RolloutCObj(ctx context.Context, in *CObjRolloutReq, opts ...client.CallOption) (*CommonResp, error) CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...client.CallOption) (*CommonResp, error) UpdateCObj(ctx context.Context, in *CObjUpdateReq, opts ...client.CallOption) (*CommonResp, error) ScaleCObj(ctx context.Context, in *CObjScaleReq, opts ...client.CallOption) (*CommonResp, error) @@ -3851,6 +3872,36 @@ func (c *customResService) GetCObj(ctx context.Context, in *CObjGetReq, opts ... return out, nil } +func (c *customResService) GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, opts ...client.CallOption) (*CommonListResp, error) { + req := c.c.NewRequest(c.name, "CustomRes.GetCObjHistoryRevision", in) + out := new(CommonListResp) + err := c.c.Call(ctx, req, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResService) RestartCObj(ctx context.Context, in *CObjRestartReq, opts ...client.CallOption) (*CommonResp, error) { + req := c.c.NewRequest(c.name, "CustomRes.RestartCObj", in) + out := new(CommonResp) + err := c.c.Call(ctx, req, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResService) RolloutCObj(ctx context.Context, in *CObjRolloutReq, opts ...client.CallOption) (*CommonResp, error) { + req := c.c.NewRequest(c.name, "CustomRes.RolloutCObj", in) + out := new(CommonResp) + err := c.c.Call(ctx, req, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *customResService) CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...client.CallOption) (*CommonResp, error) { req := c.c.NewRequest(c.name, "CustomRes.CreateCObj", in) out := new(CommonResp) @@ -3908,6 +3959,9 @@ type CustomResHandler interface { GetCRD(context.Context, *ResGetReq, *CommonResp) error ListCObj(context.Context, *CObjListReq, *CommonResp) error GetCObj(context.Context, *CObjGetReq, *CommonResp) error + GetCObjHistoryRevision(context.Context, *CObjHistoryReq, *CommonListResp) error + RestartCObj(context.Context, *CObjRestartReq, *CommonResp) error + RolloutCObj(context.Context, *CObjRolloutReq, *CommonResp) error CreateCObj(context.Context, *CObjCreateReq, *CommonResp) error UpdateCObj(context.Context, *CObjUpdateReq, *CommonResp) error ScaleCObj(context.Context, *CObjScaleReq, *CommonResp) error @@ -3921,6 +3975,9 @@ func RegisterCustomResHandler(s server.Server, hdlr CustomResHandler, opts ...se GetCRD(ctx context.Context, in *ResGetReq, out *CommonResp) error ListCObj(ctx context.Context, in *CObjListReq, out *CommonResp) error GetCObj(ctx context.Context, in *CObjGetReq, out *CommonResp) error + GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, out *CommonListResp) error + RestartCObj(ctx context.Context, in *CObjRestartReq, out *CommonResp) error + RolloutCObj(ctx context.Context, in *CObjRolloutReq, out *CommonResp) error CreateCObj(ctx context.Context, in *CObjCreateReq, out *CommonResp) error UpdateCObj(ctx context.Context, in *CObjUpdateReq, out *CommonResp) error ScaleCObj(ctx context.Context, in *CObjScaleReq, out *CommonResp) error @@ -3955,6 +4012,24 @@ func RegisterCustomResHandler(s server.Server, hdlr CustomResHandler, opts ...se Method: []string{"GET"}, Handler: "rpc", })) + opts = append(opts, api.WithEndpoint(&api.Endpoint{ + Name: "CustomRes.GetCObjHistoryRevision", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/history"}, + Method: []string{"GET"}, + Handler: "rpc", + })) + opts = append(opts, api.WithEndpoint(&api.Endpoint{ + Name: "CustomRes.RestartCObj", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/restart"}, + Method: []string{"PUT"}, + Handler: "rpc", + })) + opts = append(opts, api.WithEndpoint(&api.Endpoint{ + Name: "CustomRes.RolloutCObj", + Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/rollout/{revision}"}, + Method: []string{"PUT"}, + Handler: "rpc", + })) opts = append(opts, api.WithEndpoint(&api.Endpoint{ Name: "CustomRes.CreateCObj", Path: []string{"/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects"}, @@ -4008,6 +4083,18 @@ func (h *customResHandler) GetCObj(ctx context.Context, in *CObjGetReq, out *Com return h.CustomResHandler.GetCObj(ctx, in, out) } +func (h *customResHandler) GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, out *CommonListResp) error { + return h.CustomResHandler.GetCObjHistoryRevision(ctx, in, out) +} + +func (h *customResHandler) RestartCObj(ctx context.Context, in *CObjRestartReq, out *CommonResp) error { + return h.CustomResHandler.RestartCObj(ctx, in, out) +} + +func (h *customResHandler) RolloutCObj(ctx context.Context, in *CObjRolloutReq, out *CommonResp) error { + return h.CustomResHandler.RolloutCObj(ctx, in, out) +} + func (h *customResHandler) CreateCObj(ctx context.Context, in *CObjCreateReq, out *CommonResp) error { return h.CustomResHandler.CreateCObj(ctx, in, out) } diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.validate.go b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.validate.go index c9b0bcaa47..42987cfc93 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.validate.go +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.pb.validate.go @@ -4013,6 +4013,527 @@ var _CObjGetReq_Format_InLookup = map[string]struct{}{ "formData": {}, } +// Validate checks the field values on CObjHistoryReq with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *CObjHistoryReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CObjHistoryReq with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in CObjHistoryReqMultiError, +// or nil if none found. +func (m *CObjHistoryReq) ValidateAll() error { + return m.validate(true) +} + +func (m *CObjHistoryReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if !_CObjHistoryReq_ProjectID_Pattern.MatchString(m.GetProjectID()) { + err := CObjHistoryReqValidationError{ + field: "ProjectID", + reason: "value does not match regex pattern \"^[0-9a-f]{32}$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if l := utf8.RuneCountInString(m.GetClusterID()); l < 13 || l > 14 { + err := CObjHistoryReqValidationError{ + field: "ClusterID", + reason: "value length must be between 13 and 14 runes, inclusive", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCRDName()) > 256 { + err := CObjHistoryReqValidationError{ + field: "CRDName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCobjName()) > 256 { + err := CObjHistoryReqValidationError{ + field: "CobjName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetNamespace()) > 63 { + err := CObjHistoryReqValidationError{ + field: "Namespace", + reason: "value length must be at most 63 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_CObjHistoryReq_Namespace_Pattern.MatchString(m.GetNamespace()) { + err := CObjHistoryReqValidationError{ + field: "Namespace", + reason: "value does not match regex pattern \"^[0-9a-zA-Z-]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return CObjHistoryReqMultiError(errors) + } + + return nil +} + +// CObjHistoryReqMultiError is an error wrapping multiple validation errors +// returned by CObjHistoryReq.ValidateAll() if the designated constraints +// aren't met. +type CObjHistoryReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CObjHistoryReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CObjHistoryReqMultiError) AllErrors() []error { return m } + +// CObjHistoryReqValidationError is the validation error returned by +// CObjHistoryReq.Validate if the designated constraints aren't met. +type CObjHistoryReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CObjHistoryReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CObjHistoryReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CObjHistoryReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CObjHistoryReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CObjHistoryReqValidationError) ErrorName() string { return "CObjHistoryReqValidationError" } + +// Error satisfies the builtin error interface +func (e CObjHistoryReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCObjHistoryReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CObjHistoryReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CObjHistoryReqValidationError{} + +var _CObjHistoryReq_ProjectID_Pattern = regexp.MustCompile("^[0-9a-f]{32}$") + +var _CObjHistoryReq_Namespace_Pattern = regexp.MustCompile("^[0-9a-zA-Z-]*$") + +// Validate checks the field values on CObjRestartReq with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *CObjRestartReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CObjRestartReq with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in CObjRestartReqMultiError, +// or nil if none found. +func (m *CObjRestartReq) ValidateAll() error { + return m.validate(true) +} + +func (m *CObjRestartReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if !_CObjRestartReq_ProjectID_Pattern.MatchString(m.GetProjectID()) { + err := CObjRestartReqValidationError{ + field: "ProjectID", + reason: "value does not match regex pattern \"^[0-9a-f]{32}$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if l := utf8.RuneCountInString(m.GetClusterID()); l < 13 || l > 14 { + err := CObjRestartReqValidationError{ + field: "ClusterID", + reason: "value length must be between 13 and 14 runes, inclusive", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCRDName()) > 256 { + err := CObjRestartReqValidationError{ + field: "CRDName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCobjName()) > 256 { + err := CObjRestartReqValidationError{ + field: "CobjName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetNamespace()) > 63 { + err := CObjRestartReqValidationError{ + field: "Namespace", + reason: "value length must be at most 63 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_CObjRestartReq_Namespace_Pattern.MatchString(m.GetNamespace()) { + err := CObjRestartReqValidationError{ + field: "Namespace", + reason: "value does not match regex pattern \"^[0-9a-zA-Z-]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return CObjRestartReqMultiError(errors) + } + + return nil +} + +// CObjRestartReqMultiError is an error wrapping multiple validation errors +// returned by CObjRestartReq.ValidateAll() if the designated constraints +// aren't met. +type CObjRestartReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CObjRestartReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CObjRestartReqMultiError) AllErrors() []error { return m } + +// CObjRestartReqValidationError is the validation error returned by +// CObjRestartReq.Validate if the designated constraints aren't met. +type CObjRestartReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CObjRestartReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CObjRestartReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CObjRestartReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CObjRestartReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CObjRestartReqValidationError) ErrorName() string { return "CObjRestartReqValidationError" } + +// Error satisfies the builtin error interface +func (e CObjRestartReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCObjRestartReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CObjRestartReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CObjRestartReqValidationError{} + +var _CObjRestartReq_ProjectID_Pattern = regexp.MustCompile("^[0-9a-f]{32}$") + +var _CObjRestartReq_Namespace_Pattern = regexp.MustCompile("^[0-9a-zA-Z-]*$") + +// Validate checks the field values on CObjRolloutReq with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *CObjRolloutReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CObjRolloutReq with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in CObjRolloutReqMultiError, +// or nil if none found. +func (m *CObjRolloutReq) ValidateAll() error { + return m.validate(true) +} + +func (m *CObjRolloutReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if !_CObjRolloutReq_ProjectID_Pattern.MatchString(m.GetProjectID()) { + err := CObjRolloutReqValidationError{ + field: "ProjectID", + reason: "value does not match regex pattern \"^[0-9a-f]{32}$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if l := utf8.RuneCountInString(m.GetClusterID()); l < 13 || l > 14 { + err := CObjRolloutReqValidationError{ + field: "ClusterID", + reason: "value length must be between 13 and 14 runes, inclusive", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCRDName()) > 256 { + err := CObjRolloutReqValidationError{ + field: "CRDName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCobjName()) > 256 { + err := CObjRolloutReqValidationError{ + field: "CobjName", + reason: "value length must be at most 256 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetNamespace()) > 63 { + err := CObjRolloutReqValidationError{ + field: "Namespace", + reason: "value length must be at most 63 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_CObjRolloutReq_Namespace_Pattern.MatchString(m.GetNamespace()) { + err := CObjRolloutReqValidationError{ + field: "Namespace", + reason: "value does not match regex pattern \"^[0-9a-zA-Z-]*$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if m.GetRevision() < 0 { + err := CObjRolloutReqValidationError{ + field: "Revision", + reason: "value must be greater than or equal to 0", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return CObjRolloutReqMultiError(errors) + } + + return nil +} + +// CObjRolloutReqMultiError is an error wrapping multiple validation errors +// returned by CObjRolloutReq.ValidateAll() if the designated constraints +// aren't met. +type CObjRolloutReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CObjRolloutReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CObjRolloutReqMultiError) AllErrors() []error { return m } + +// CObjRolloutReqValidationError is the validation error returned by +// CObjRolloutReq.Validate if the designated constraints aren't met. +type CObjRolloutReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CObjRolloutReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CObjRolloutReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CObjRolloutReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CObjRolloutReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CObjRolloutReqValidationError) ErrorName() string { return "CObjRolloutReqValidationError" } + +// Error satisfies the builtin error interface +func (e CObjRolloutReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCObjRolloutReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CObjRolloutReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CObjRolloutReqValidationError{} + +var _CObjRolloutReq_ProjectID_Pattern = regexp.MustCompile("^[0-9a-f]{32}$") + +var _CObjRolloutReq_Namespace_Pattern = regexp.MustCompile("^[0-9a-zA-Z-]*$") + // Validate checks the field values on CObjCreateReq with the rules defined in // the proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.proto b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.proto index 0ab45fcea7..972fa4fa20 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.proto +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.proto @@ -1287,6 +1287,38 @@ service CustomRes { }; } + rpc GetCObjHistoryRevision(CObjHistoryReq) returns (CommonListResp) { + option (google.api.http) = { + get: "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/history" + }; + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "获取 自定义资源 Revision" + summary: "GetCObjHistoryRevision API" + }; + } + + rpc RestartCObj(CObjRestartReq) returns (CommonResp) { + option (google.api.http) = { + put: "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/restart" + body: "*" + }; + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "重新调度 自定义资源" + summary: "RestartCObj API" + }; + } + + rpc RolloutCObj(CObjRolloutReq) returns (CommonResp) { + option (google.api.http) = { + put: "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/rollout/{revision}" + body: "*" + }; + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "回滚 自定义资源 Revision" + summary: "RolloutCObj API" + }; + } + rpc CreateCObj(CObjCreateReq) returns (CommonResp) { option (google.api.http) = { post: "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects" @@ -1982,6 +2014,72 @@ message CObjGetReq { }, (validate.rules).string = {in: ["", "manifest", "formData"]}]; } +message CObjHistoryReq { + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = { + json_schema: {title: "CObjHistoryReq", description: "自定义资源列表历史版本请求体"} + }; + string projectID = 1 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "项目 ID" + }, (validate.rules).string = {pattern: "^[0-9a-f]{32}$"}]; + string clusterID = 2 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "集群 ID" + }, (validate.rules).string = {min_len: 13, max_len: 14}]; + string CRDName = 3 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "CRD 名称" + }, (validate.rules).string = {max_len: 256}]; + string cobjName = 4 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "自定义资源名称" + }, (validate.rules).string = {max_len: 256}]; + string namespace = 5 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "命名空间" + }, (validate.rules).string = {max_len: 63, pattern: "^[0-9a-zA-Z-]*$"}]; +} + +message CObjRestartReq { + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = { + json_schema: {title: "CObjRestartReq", description: "重新部署单个自定义资源请求体"} + }; + string projectID = 1 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "项目 ID" + }, (validate.rules).string = {pattern: "^[0-9a-f]{32}$"}]; + string clusterID = 2 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "集群 ID" + }, (validate.rules).string = {min_len: 13, max_len: 14}]; + string CRDName = 3 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "CRD 名称" + }, (validate.rules).string = {max_len: 256}]; + string cobjName = 4 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "自定义资源名称" + }, (validate.rules).string = {max_len: 256}]; + string namespace = 5 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "命名空间" + }, (validate.rules).string = {max_len: 63, pattern: "^[0-9a-zA-Z-]*$"}]; +} + +message CObjRolloutReq { + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = { + json_schema: {title: "CObjRolloutReq", description: "回滚自定义资源请求体"} + }; + string projectID = 1 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "项目 ID" + }, (validate.rules).string = {pattern: "^[0-9a-f]{32}$"}]; + string clusterID = 2 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "集群 ID" + }, (validate.rules).string = {min_len: 13, max_len: 14}]; + string CRDName = 3 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "CRD 名称" + }, (validate.rules).string = {max_len: 256}]; + string cobjName = 4 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "自定义资源名称" + }, (validate.rules).string = {max_len: 256}]; + string namespace = 5 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "命名空间" + }, (validate.rules).string = {max_len: 63, pattern: "^[0-9a-zA-Z-]*$"}]; + int64 revision = 6 [(grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = { + title: "revision 版本" + }, (validate.rules).int64 = {gte: 0}]; +} + message CObjCreateReq { option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = { json_schema: {title: "CObjCreateReq", description: "创建单个自定义资源请求体"} diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.swagger.json b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.swagger.json index da0a6f99ef..c5cf549bdb 100644 --- a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.swagger.json +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources.swagger.json @@ -984,6 +984,63 @@ ] } }, + "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/history": { + "get": { + "summary": "GetCObjHistoryRevision API", + "description": "获取 自定义资源 Revision", + "operationId": "CustomRes_GetCObjHistoryRevision", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/clusterresourcesCommonListResp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + }, + "parameters": [ + { + "name": "projectID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clusterID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "CRDName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "cobjName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "namespace", + "description": "命名空间.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "CustomRes" + ] + } + }, "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/reschedule": { "put": { "summary": "RescheduleCObjPo API", @@ -1042,6 +1099,129 @@ ] } }, + "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/restart": { + "put": { + "summary": "RestartCObj API", + "description": "重新调度 自定义资源", + "operationId": "CustomRes_RestartCObj", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/clusterresourcesCommonResp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + }, + "parameters": [ + { + "name": "projectID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clusterID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "CRDName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "cobjName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/clusterresourcesCObjRestartReq" + } + } + ], + "tags": [ + "CustomRes" + ] + } + }, + "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/rollout/{revision}": { + "put": { + "summary": "RolloutCObj API", + "description": "回滚 自定义资源 Revision", + "operationId": "CustomRes_RolloutCObj", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/clusterresourcesCommonResp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/runtimeError" + } + } + }, + "parameters": [ + { + "name": "projectID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clusterID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "CRDName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "cobjName", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "revision", + "in": "path", + "required": true, + "type": "string", + "format": "int64" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/clusterresourcesCObjRolloutReq" + } + } + ], + "tags": [ + "CustomRes" + ] + } + }, "/clusterresources/v1/projects/{projectID}/clusters/{clusterID}/crds/{CRDName}/custom_objects/{cobjName}/scale": { "put": { "summary": "ScaleCObj API", @@ -8128,6 +8308,65 @@ "description": "创建单个自定义资源请求体", "title": "CObjCreateReq" }, + "clusterresourcesCObjRestartReq": { + "type": "object", + "properties": { + "projectID": { + "type": "string", + "title": "项目 ID" + }, + "clusterID": { + "type": "string", + "title": "集群 ID" + }, + "CRDName": { + "type": "string", + "title": "CRD 名称" + }, + "cobjName": { + "type": "string", + "title": "自定义资源名称" + }, + "namespace": { + "type": "string", + "title": "命名空间" + } + }, + "description": "重新部署单个自定义资源请求体", + "title": "CObjRestartReq" + }, + "clusterresourcesCObjRolloutReq": { + "type": "object", + "properties": { + "projectID": { + "type": "string", + "title": "项目 ID" + }, + "clusterID": { + "type": "string", + "title": "集群 ID" + }, + "CRDName": { + "type": "string", + "title": "CRD 名称" + }, + "cobjName": { + "type": "string", + "title": "自定义资源名称" + }, + "namespace": { + "type": "string", + "title": "命名空间" + }, + "revision": { + "type": "string", + "format": "int64", + "title": "revision 版本" + } + }, + "description": "回滚自定义资源请求体", + "title": "CObjRolloutReq" + }, "clusterresourcesCObjScaleReq": { "type": "object", "properties": { diff --git a/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources_grpc.pb.go b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources_grpc.pb.go new file mode 100644 index 0000000000..89ba961f55 --- /dev/null +++ b/bcs-services/cluster-resources/proto/cluster-resources/cluster-resources_grpc.pb.go @@ -0,0 +1,5833 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v4.22.0 +// source: cluster-resources.proto + +package clusterresources + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// BasicClient is the client API for Basic service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type BasicClient interface { + Echo(ctx context.Context, in *EchoReq, opts ...grpc.CallOption) (*EchoResp, error) + Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error) + Healthz(ctx context.Context, in *HealthzReq, opts ...grpc.CallOption) (*HealthzResp, error) + Version(ctx context.Context, in *VersionReq, opts ...grpc.CallOption) (*VersionResp, error) +} + +type basicClient struct { + cc grpc.ClientConnInterface +} + +func NewBasicClient(cc grpc.ClientConnInterface) BasicClient { + return &basicClient{cc} +} + +func (c *basicClient) Echo(ctx context.Context, in *EchoReq, opts ...grpc.CallOption) (*EchoResp, error) { + out := new(EchoResp) + err := c.cc.Invoke(ctx, "/clusterresources.Basic/Echo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *basicClient) Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingResp, error) { + out := new(PingResp) + err := c.cc.Invoke(ctx, "/clusterresources.Basic/Ping", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *basicClient) Healthz(ctx context.Context, in *HealthzReq, opts ...grpc.CallOption) (*HealthzResp, error) { + out := new(HealthzResp) + err := c.cc.Invoke(ctx, "/clusterresources.Basic/Healthz", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *basicClient) Version(ctx context.Context, in *VersionReq, opts ...grpc.CallOption) (*VersionResp, error) { + out := new(VersionResp) + err := c.cc.Invoke(ctx, "/clusterresources.Basic/Version", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// BasicServer is the server API for Basic service. +// All implementations must embed UnimplementedBasicServer +// for forward compatibility +type BasicServer interface { + Echo(context.Context, *EchoReq) (*EchoResp, error) + Ping(context.Context, *PingReq) (*PingResp, error) + Healthz(context.Context, *HealthzReq) (*HealthzResp, error) + Version(context.Context, *VersionReq) (*VersionResp, error) + mustEmbedUnimplementedBasicServer() +} + +// UnimplementedBasicServer must be embedded to have forward compatible implementations. +type UnimplementedBasicServer struct { +} + +func (UnimplementedBasicServer) Echo(context.Context, *EchoReq) (*EchoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Echo not implemented") +} +func (UnimplementedBasicServer) Ping(context.Context, *PingReq) (*PingResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") +} +func (UnimplementedBasicServer) Healthz(context.Context, *HealthzReq) (*HealthzResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Healthz not implemented") +} +func (UnimplementedBasicServer) Version(context.Context, *VersionReq) (*VersionResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Version not implemented") +} +func (UnimplementedBasicServer) mustEmbedUnimplementedBasicServer() {} + +// UnsafeBasicServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to BasicServer will +// result in compilation errors. +type UnsafeBasicServer interface { + mustEmbedUnimplementedBasicServer() +} + +func RegisterBasicServer(s grpc.ServiceRegistrar, srv BasicServer) { + s.RegisterService(&Basic_ServiceDesc, srv) +} + +func _Basic_Echo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EchoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BasicServer).Echo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Basic/Echo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BasicServer).Echo(ctx, req.(*EchoReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Basic_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PingReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BasicServer).Ping(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Basic/Ping", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BasicServer).Ping(ctx, req.(*PingReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Basic_Healthz_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HealthzReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BasicServer).Healthz(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Basic/Healthz", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BasicServer).Healthz(ctx, req.(*HealthzReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Basic_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VersionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BasicServer).Version(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Basic/Version", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BasicServer).Version(ctx, req.(*VersionReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Basic_ServiceDesc is the grpc.ServiceDesc for Basic service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Basic_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Basic", + HandlerType: (*BasicServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Echo", + Handler: _Basic_Echo_Handler, + }, + { + MethodName: "Ping", + Handler: _Basic_Ping_Handler, + }, + { + MethodName: "Healthz", + Handler: _Basic_Healthz_Handler, + }, + { + MethodName: "Version", + Handler: _Basic_Version_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// NodeClient is the client API for Node service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type NodeClient interface { + ListNode(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type nodeClient struct { + cc grpc.ClientConnInterface +} + +func NewNodeClient(cc grpc.ClientConnInterface) NodeClient { + return &nodeClient{cc} +} + +func (c *nodeClient) ListNode(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Node/ListNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NodeServer is the server API for Node service. +// All implementations must embed UnimplementedNodeServer +// for forward compatibility +type NodeServer interface { + ListNode(context.Context, *ResListReq) (*CommonResp, error) + mustEmbedUnimplementedNodeServer() +} + +// UnimplementedNodeServer must be embedded to have forward compatible implementations. +type UnimplementedNodeServer struct { +} + +func (UnimplementedNodeServer) ListNode(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListNode not implemented") +} +func (UnimplementedNodeServer) mustEmbedUnimplementedNodeServer() {} + +// UnsafeNodeServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to NodeServer will +// result in compilation errors. +type UnsafeNodeServer interface { + mustEmbedUnimplementedNodeServer() +} + +func RegisterNodeServer(s grpc.ServiceRegistrar, srv NodeServer) { + s.RegisterService(&Node_ServiceDesc, srv) +} + +func _Node_ListNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Node/ListNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListNode(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Node_ServiceDesc is the grpc.ServiceDesc for Node service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Node_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Node", + HandlerType: (*NodeServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListNode", + Handler: _Node_ListNode_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// NamespaceClient is the client API for Namespace service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type NamespaceClient interface { + ListNS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type namespaceClient struct { + cc grpc.ClientConnInterface +} + +func NewNamespaceClient(cc grpc.ClientConnInterface) NamespaceClient { + return &namespaceClient{cc} +} + +func (c *namespaceClient) ListNS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Namespace/ListNS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NamespaceServer is the server API for Namespace service. +// All implementations must embed UnimplementedNamespaceServer +// for forward compatibility +type NamespaceServer interface { + ListNS(context.Context, *ResListReq) (*CommonResp, error) + mustEmbedUnimplementedNamespaceServer() +} + +// UnimplementedNamespaceServer must be embedded to have forward compatible implementations. +type UnimplementedNamespaceServer struct { +} + +func (UnimplementedNamespaceServer) ListNS(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListNS not implemented") +} +func (UnimplementedNamespaceServer) mustEmbedUnimplementedNamespaceServer() {} + +// UnsafeNamespaceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to NamespaceServer will +// result in compilation errors. +type UnsafeNamespaceServer interface { + mustEmbedUnimplementedNamespaceServer() +} + +func RegisterNamespaceServer(s grpc.ServiceRegistrar, srv NamespaceServer) { + s.RegisterService(&Namespace_ServiceDesc, srv) +} + +func _Namespace_ListNS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NamespaceServer).ListNS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Namespace/ListNS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NamespaceServer).ListNS(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Namespace_ServiceDesc is the grpc.ServiceDesc for Namespace service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Namespace_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Namespace", + HandlerType: (*NamespaceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListNS", + Handler: _Namespace_ListNS_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// WorkloadClient is the client API for Workload service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type WorkloadClient interface { + ListDeploy(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetDeploy(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateDeploy(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateDeploy(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + RestartDeploy(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) + PauseOrResumeDeploy(ctx context.Context, in *ResPauseOrResumeReq, opts ...grpc.CallOption) (*CommonResp, error) + ScaleDeploy(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) + RescheduleDeployPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteDeploy(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + GetDeployHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) + GetDeployRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + RolloutDeployRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + ListRS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + ListDS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetDS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateDS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateDS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + RestartDS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) + GetDSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) + GetDSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + RolloutDSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteDS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListSTS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSTS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateSTS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateSTS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + RestartSTS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSTSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) + GetSTSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + RolloutSTSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) + ScaleSTS(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) + RescheduleSTSPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteSTS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListCJ(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetCJ(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateCJ(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateCJ(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteCJ(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListJob(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetJob(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateJob(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateJob(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteJob(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPo(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPoByNode(ctx context.Context, in *ListPoByNodeReq, opts ...grpc.CallOption) (*CommonListResp, error) + GetPo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreatePo(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdatePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeletePo(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPoPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPoCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPoSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + ReschedulePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + ListContainer(ctx context.Context, in *ContainerListReq, opts ...grpc.CallOption) (*CommonListResp, error) + GetContainer(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonResp, error) + GetContainerEnvInfo(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonListResp, error) +} + +type workloadClient struct { + cc grpc.ClientConnInterface +} + +func NewWorkloadClient(cc grpc.ClientConnInterface) WorkloadClient { + return &workloadClient{cc} +} + +func (c *workloadClient) ListDeploy(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDeploy(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreateDeploy(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdateDeploy(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RestartDeploy(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) PauseOrResumeDeploy(ctx context.Context, in *ResPauseOrResumeReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/PauseOrResumeDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ScaleDeploy(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ScaleDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RescheduleDeployPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RescheduleDeployPo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeleteDeploy(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteDeploy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDeployHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeployHistoryRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDeployRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDeployRevisionDiff", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RolloutDeployRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutDeployRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListRS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListRS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListDS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreateDS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdateDS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RestartDS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDSHistoryRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetDSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetDSRevisionDiff", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RolloutDSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutDSRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeleteDS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteDS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListSTS(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetSTS(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreateSTS(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdateSTS(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RestartSTS(ctx context.Context, in *ResRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RestartSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetSTSHistoryRevision(ctx context.Context, in *GetResHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTSHistoryRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetSTSRevisionDiff(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetSTSRevisionDiff", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RolloutSTSRevision(ctx context.Context, in *RolloutRevisionReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RolloutSTSRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ScaleSTS(ctx context.Context, in *ResScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ScaleSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) RescheduleSTSPo(ctx context.Context, in *ResBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/RescheduleSTSPo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeleteSTS(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteSTS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListCJ(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListCJ", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetCJ(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetCJ", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreateCJ(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateCJ", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdateCJ(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateCJ", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeleteCJ(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteCJ", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListJob(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetJob(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreateJob(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreateJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdateJob(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdateJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeleteJob(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeleteJob", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListPo(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListPoByNode(ctx context.Context, in *ListPoByNodeReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoByNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetPo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetPo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) CreatePo(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/CreatePo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) UpdatePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/UpdatePo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) DeletePo(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/DeletePo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListPoPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoPVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListPoCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListPoSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListPoSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ReschedulePo(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ReschedulePo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) ListContainer(ctx context.Context, in *ContainerListReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/ListContainer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetContainer(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetContainer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadClient) GetContainerEnvInfo(ctx context.Context, in *ContainerGetReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.Workload/GetContainerEnvInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// WorkloadServer is the server API for Workload service. +// All implementations must embed UnimplementedWorkloadServer +// for forward compatibility +type WorkloadServer interface { + ListDeploy(context.Context, *ResListReq) (*CommonResp, error) + GetDeploy(context.Context, *ResGetReq) (*CommonResp, error) + CreateDeploy(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateDeploy(context.Context, *ResUpdateReq) (*CommonResp, error) + RestartDeploy(context.Context, *ResRestartReq) (*CommonResp, error) + PauseOrResumeDeploy(context.Context, *ResPauseOrResumeReq) (*CommonResp, error) + ScaleDeploy(context.Context, *ResScaleReq) (*CommonResp, error) + RescheduleDeployPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) + DeleteDeploy(context.Context, *ResDeleteReq) (*CommonResp, error) + GetDeployHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) + GetDeployRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) + RolloutDeployRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) + ListRS(context.Context, *ResListReq) (*CommonResp, error) + ListDS(context.Context, *ResListReq) (*CommonResp, error) + GetDS(context.Context, *ResGetReq) (*CommonResp, error) + CreateDS(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateDS(context.Context, *ResUpdateReq) (*CommonResp, error) + RestartDS(context.Context, *ResRestartReq) (*CommonResp, error) + GetDSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) + GetDSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) + RolloutDSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) + DeleteDS(context.Context, *ResDeleteReq) (*CommonResp, error) + ListSTS(context.Context, *ResListReq) (*CommonResp, error) + GetSTS(context.Context, *ResGetReq) (*CommonResp, error) + CreateSTS(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateSTS(context.Context, *ResUpdateReq) (*CommonResp, error) + RestartSTS(context.Context, *ResRestartReq) (*CommonResp, error) + GetSTSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) + GetSTSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) + RolloutSTSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) + ScaleSTS(context.Context, *ResScaleReq) (*CommonResp, error) + RescheduleSTSPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) + DeleteSTS(context.Context, *ResDeleteReq) (*CommonResp, error) + ListCJ(context.Context, *ResListReq) (*CommonResp, error) + GetCJ(context.Context, *ResGetReq) (*CommonResp, error) + CreateCJ(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateCJ(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteCJ(context.Context, *ResDeleteReq) (*CommonResp, error) + ListJob(context.Context, *ResListReq) (*CommonResp, error) + GetJob(context.Context, *ResGetReq) (*CommonResp, error) + CreateJob(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateJob(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteJob(context.Context, *ResDeleteReq) (*CommonResp, error) + ListPo(context.Context, *ResListReq) (*CommonResp, error) + ListPoByNode(context.Context, *ListPoByNodeReq) (*CommonListResp, error) + GetPo(context.Context, *ResGetReq) (*CommonResp, error) + CreatePo(context.Context, *ResCreateReq) (*CommonResp, error) + UpdatePo(context.Context, *ResUpdateReq) (*CommonResp, error) + DeletePo(context.Context, *ResDeleteReq) (*CommonResp, error) + ListPoPVC(context.Context, *ResGetReq) (*CommonResp, error) + ListPoCM(context.Context, *ResGetReq) (*CommonResp, error) + ListPoSecret(context.Context, *ResGetReq) (*CommonResp, error) + ReschedulePo(context.Context, *ResUpdateReq) (*CommonResp, error) + ListContainer(context.Context, *ContainerListReq) (*CommonListResp, error) + GetContainer(context.Context, *ContainerGetReq) (*CommonResp, error) + GetContainerEnvInfo(context.Context, *ContainerGetReq) (*CommonListResp, error) + mustEmbedUnimplementedWorkloadServer() +} + +// UnimplementedWorkloadServer must be embedded to have forward compatible implementations. +type UnimplementedWorkloadServer struct { +} + +func (UnimplementedWorkloadServer) ListDeploy(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDeploy not implemented") +} +func (UnimplementedWorkloadServer) GetDeploy(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDeploy not implemented") +} +func (UnimplementedWorkloadServer) CreateDeploy(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateDeploy not implemented") +} +func (UnimplementedWorkloadServer) UpdateDeploy(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDeploy not implemented") +} +func (UnimplementedWorkloadServer) RestartDeploy(context.Context, *ResRestartReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RestartDeploy not implemented") +} +func (UnimplementedWorkloadServer) PauseOrResumeDeploy(context.Context, *ResPauseOrResumeReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method PauseOrResumeDeploy not implemented") +} +func (UnimplementedWorkloadServer) ScaleDeploy(context.Context, *ResScaleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ScaleDeploy not implemented") +} +func (UnimplementedWorkloadServer) RescheduleDeployPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RescheduleDeployPo not implemented") +} +func (UnimplementedWorkloadServer) DeleteDeploy(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteDeploy not implemented") +} +func (UnimplementedWorkloadServer) GetDeployHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDeployHistoryRevision not implemented") +} +func (UnimplementedWorkloadServer) GetDeployRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDeployRevisionDiff not implemented") +} +func (UnimplementedWorkloadServer) RolloutDeployRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RolloutDeployRevision not implemented") +} +func (UnimplementedWorkloadServer) ListRS(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRS not implemented") +} +func (UnimplementedWorkloadServer) ListDS(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDS not implemented") +} +func (UnimplementedWorkloadServer) GetDS(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDS not implemented") +} +func (UnimplementedWorkloadServer) CreateDS(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateDS not implemented") +} +func (UnimplementedWorkloadServer) UpdateDS(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDS not implemented") +} +func (UnimplementedWorkloadServer) RestartDS(context.Context, *ResRestartReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RestartDS not implemented") +} +func (UnimplementedWorkloadServer) GetDSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDSHistoryRevision not implemented") +} +func (UnimplementedWorkloadServer) GetDSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDSRevisionDiff not implemented") +} +func (UnimplementedWorkloadServer) RolloutDSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RolloutDSRevision not implemented") +} +func (UnimplementedWorkloadServer) DeleteDS(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteDS not implemented") +} +func (UnimplementedWorkloadServer) ListSTS(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSTS not implemented") +} +func (UnimplementedWorkloadServer) GetSTS(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSTS not implemented") +} +func (UnimplementedWorkloadServer) CreateSTS(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSTS not implemented") +} +func (UnimplementedWorkloadServer) UpdateSTS(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSTS not implemented") +} +func (UnimplementedWorkloadServer) RestartSTS(context.Context, *ResRestartReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RestartSTS not implemented") +} +func (UnimplementedWorkloadServer) GetSTSHistoryRevision(context.Context, *GetResHistoryReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSTSHistoryRevision not implemented") +} +func (UnimplementedWorkloadServer) GetSTSRevisionDiff(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSTSRevisionDiff not implemented") +} +func (UnimplementedWorkloadServer) RolloutSTSRevision(context.Context, *RolloutRevisionReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RolloutSTSRevision not implemented") +} +func (UnimplementedWorkloadServer) ScaleSTS(context.Context, *ResScaleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ScaleSTS not implemented") +} +func (UnimplementedWorkloadServer) RescheduleSTSPo(context.Context, *ResBatchRescheduleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RescheduleSTSPo not implemented") +} +func (UnimplementedWorkloadServer) DeleteSTS(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSTS not implemented") +} +func (UnimplementedWorkloadServer) ListCJ(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCJ not implemented") +} +func (UnimplementedWorkloadServer) GetCJ(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCJ not implemented") +} +func (UnimplementedWorkloadServer) CreateCJ(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateCJ not implemented") +} +func (UnimplementedWorkloadServer) UpdateCJ(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCJ not implemented") +} +func (UnimplementedWorkloadServer) DeleteCJ(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteCJ not implemented") +} +func (UnimplementedWorkloadServer) ListJob(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListJob not implemented") +} +func (UnimplementedWorkloadServer) GetJob(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetJob not implemented") +} +func (UnimplementedWorkloadServer) CreateJob(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateJob not implemented") +} +func (UnimplementedWorkloadServer) UpdateJob(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateJob not implemented") +} +func (UnimplementedWorkloadServer) DeleteJob(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteJob not implemented") +} +func (UnimplementedWorkloadServer) ListPo(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPo not implemented") +} +func (UnimplementedWorkloadServer) ListPoByNode(context.Context, *ListPoByNodeReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPoByNode not implemented") +} +func (UnimplementedWorkloadServer) GetPo(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPo not implemented") +} +func (UnimplementedWorkloadServer) CreatePo(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePo not implemented") +} +func (UnimplementedWorkloadServer) UpdatePo(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePo not implemented") +} +func (UnimplementedWorkloadServer) DeletePo(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePo not implemented") +} +func (UnimplementedWorkloadServer) ListPoPVC(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPoPVC not implemented") +} +func (UnimplementedWorkloadServer) ListPoCM(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPoCM not implemented") +} +func (UnimplementedWorkloadServer) ListPoSecret(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPoSecret not implemented") +} +func (UnimplementedWorkloadServer) ReschedulePo(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReschedulePo not implemented") +} +func (UnimplementedWorkloadServer) ListContainer(context.Context, *ContainerListReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListContainer not implemented") +} +func (UnimplementedWorkloadServer) GetContainer(context.Context, *ContainerGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetContainer not implemented") +} +func (UnimplementedWorkloadServer) GetContainerEnvInfo(context.Context, *ContainerGetReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetContainerEnvInfo not implemented") +} +func (UnimplementedWorkloadServer) mustEmbedUnimplementedWorkloadServer() {} + +// UnsafeWorkloadServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to WorkloadServer will +// result in compilation errors. +type UnsafeWorkloadServer interface { + mustEmbedUnimplementedWorkloadServer() +} + +func RegisterWorkloadServer(s grpc.ServiceRegistrar, srv WorkloadServer) { + s.RegisterService(&Workload_ServiceDesc, srv) +} + +func _Workload_ListDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListDeploy(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDeploy(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreateDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreateDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreateDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreateDeploy(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdateDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdateDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdateDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdateDeploy(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RestartDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResRestartReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RestartDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RestartDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RestartDeploy(ctx, req.(*ResRestartReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_PauseOrResumeDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResPauseOrResumeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).PauseOrResumeDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/PauseOrResumeDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).PauseOrResumeDeploy(ctx, req.(*ResPauseOrResumeReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ScaleDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResScaleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ScaleDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ScaleDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ScaleDeploy(ctx, req.(*ResScaleReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RescheduleDeployPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResBatchRescheduleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RescheduleDeployPo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RescheduleDeployPo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RescheduleDeployPo(ctx, req.(*ResBatchRescheduleReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeleteDeploy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeleteDeploy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeleteDeploy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeleteDeploy(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDeployHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResHistoryReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDeployHistoryRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDeployHistoryRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDeployHistoryRevision(ctx, req.(*GetResHistoryReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDeployRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDeployRevisionDiff(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDeployRevisionDiff", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDeployRevisionDiff(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RolloutDeployRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RolloutDeployRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RolloutDeployRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RolloutDeployRevision(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListRS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListRS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListRS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListRS(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListDS(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDS(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreateDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreateDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreateDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreateDS(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdateDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdateDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdateDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdateDS(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RestartDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResRestartReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RestartDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RestartDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RestartDS(ctx, req.(*ResRestartReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDSHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResHistoryReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDSHistoryRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDSHistoryRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDSHistoryRevision(ctx, req.(*GetResHistoryReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetDSRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetDSRevisionDiff(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetDSRevisionDiff", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetDSRevisionDiff(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RolloutDSRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RolloutDSRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RolloutDSRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RolloutDSRevision(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeleteDS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeleteDS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeleteDS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeleteDS(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListSTS(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetSTS(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreateSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreateSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreateSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreateSTS(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdateSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdateSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdateSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdateSTS(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RestartSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResRestartReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RestartSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RestartSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RestartSTS(ctx, req.(*ResRestartReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetSTSHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResHistoryReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetSTSHistoryRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetSTSHistoryRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetSTSHistoryRevision(ctx, req.(*GetResHistoryReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetSTSRevisionDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetSTSRevisionDiff(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetSTSRevisionDiff", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetSTSRevisionDiff(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RolloutSTSRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutRevisionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RolloutSTSRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RolloutSTSRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RolloutSTSRevision(ctx, req.(*RolloutRevisionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ScaleSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResScaleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ScaleSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ScaleSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ScaleSTS(ctx, req.(*ResScaleReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_RescheduleSTSPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResBatchRescheduleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).RescheduleSTSPo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/RescheduleSTSPo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).RescheduleSTSPo(ctx, req.(*ResBatchRescheduleReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeleteSTS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeleteSTS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeleteSTS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeleteSTS(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListCJ(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListCJ", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListCJ(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetCJ(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetCJ", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetCJ(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreateCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreateCJ(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreateCJ", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreateCJ(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdateCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdateCJ(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdateCJ", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdateCJ(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeleteCJ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeleteCJ(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeleteCJ", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeleteCJ(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListJob(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetJob(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreateJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreateJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreateJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreateJob(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdateJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdateJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdateJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdateJob(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeleteJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeleteJob(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeleteJob", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeleteJob(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListPo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListPo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListPo(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListPoByNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListPoByNodeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListPoByNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListPoByNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListPoByNode(ctx, req.(*ListPoByNodeReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetPo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetPo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetPo(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_CreatePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).CreatePo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/CreatePo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).CreatePo(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_UpdatePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).UpdatePo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/UpdatePo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).UpdatePo(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_DeletePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).DeletePo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/DeletePo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).DeletePo(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListPoPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListPoPVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListPoPVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListPoPVC(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListPoCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListPoCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListPoCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListPoCM(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListPoSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListPoSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListPoSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListPoSecret(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ReschedulePo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ReschedulePo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ReschedulePo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ReschedulePo(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_ListContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainerListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).ListContainer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/ListContainer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).ListContainer(ctx, req.(*ContainerListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainerGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetContainer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetContainer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetContainer(ctx, req.(*ContainerGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Workload_GetContainerEnvInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainerGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadServer).GetContainerEnvInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Workload/GetContainerEnvInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadServer).GetContainerEnvInfo(ctx, req.(*ContainerGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Workload_ServiceDesc is the grpc.ServiceDesc for Workload service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Workload_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Workload", + HandlerType: (*WorkloadServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListDeploy", + Handler: _Workload_ListDeploy_Handler, + }, + { + MethodName: "GetDeploy", + Handler: _Workload_GetDeploy_Handler, + }, + { + MethodName: "CreateDeploy", + Handler: _Workload_CreateDeploy_Handler, + }, + { + MethodName: "UpdateDeploy", + Handler: _Workload_UpdateDeploy_Handler, + }, + { + MethodName: "RestartDeploy", + Handler: _Workload_RestartDeploy_Handler, + }, + { + MethodName: "PauseOrResumeDeploy", + Handler: _Workload_PauseOrResumeDeploy_Handler, + }, + { + MethodName: "ScaleDeploy", + Handler: _Workload_ScaleDeploy_Handler, + }, + { + MethodName: "RescheduleDeployPo", + Handler: _Workload_RescheduleDeployPo_Handler, + }, + { + MethodName: "DeleteDeploy", + Handler: _Workload_DeleteDeploy_Handler, + }, + { + MethodName: "GetDeployHistoryRevision", + Handler: _Workload_GetDeployHistoryRevision_Handler, + }, + { + MethodName: "GetDeployRevisionDiff", + Handler: _Workload_GetDeployRevisionDiff_Handler, + }, + { + MethodName: "RolloutDeployRevision", + Handler: _Workload_RolloutDeployRevision_Handler, + }, + { + MethodName: "ListRS", + Handler: _Workload_ListRS_Handler, + }, + { + MethodName: "ListDS", + Handler: _Workload_ListDS_Handler, + }, + { + MethodName: "GetDS", + Handler: _Workload_GetDS_Handler, + }, + { + MethodName: "CreateDS", + Handler: _Workload_CreateDS_Handler, + }, + { + MethodName: "UpdateDS", + Handler: _Workload_UpdateDS_Handler, + }, + { + MethodName: "RestartDS", + Handler: _Workload_RestartDS_Handler, + }, + { + MethodName: "GetDSHistoryRevision", + Handler: _Workload_GetDSHistoryRevision_Handler, + }, + { + MethodName: "GetDSRevisionDiff", + Handler: _Workload_GetDSRevisionDiff_Handler, + }, + { + MethodName: "RolloutDSRevision", + Handler: _Workload_RolloutDSRevision_Handler, + }, + { + MethodName: "DeleteDS", + Handler: _Workload_DeleteDS_Handler, + }, + { + MethodName: "ListSTS", + Handler: _Workload_ListSTS_Handler, + }, + { + MethodName: "GetSTS", + Handler: _Workload_GetSTS_Handler, + }, + { + MethodName: "CreateSTS", + Handler: _Workload_CreateSTS_Handler, + }, + { + MethodName: "UpdateSTS", + Handler: _Workload_UpdateSTS_Handler, + }, + { + MethodName: "RestartSTS", + Handler: _Workload_RestartSTS_Handler, + }, + { + MethodName: "GetSTSHistoryRevision", + Handler: _Workload_GetSTSHistoryRevision_Handler, + }, + { + MethodName: "GetSTSRevisionDiff", + Handler: _Workload_GetSTSRevisionDiff_Handler, + }, + { + MethodName: "RolloutSTSRevision", + Handler: _Workload_RolloutSTSRevision_Handler, + }, + { + MethodName: "ScaleSTS", + Handler: _Workload_ScaleSTS_Handler, + }, + { + MethodName: "RescheduleSTSPo", + Handler: _Workload_RescheduleSTSPo_Handler, + }, + { + MethodName: "DeleteSTS", + Handler: _Workload_DeleteSTS_Handler, + }, + { + MethodName: "ListCJ", + Handler: _Workload_ListCJ_Handler, + }, + { + MethodName: "GetCJ", + Handler: _Workload_GetCJ_Handler, + }, + { + MethodName: "CreateCJ", + Handler: _Workload_CreateCJ_Handler, + }, + { + MethodName: "UpdateCJ", + Handler: _Workload_UpdateCJ_Handler, + }, + { + MethodName: "DeleteCJ", + Handler: _Workload_DeleteCJ_Handler, + }, + { + MethodName: "ListJob", + Handler: _Workload_ListJob_Handler, + }, + { + MethodName: "GetJob", + Handler: _Workload_GetJob_Handler, + }, + { + MethodName: "CreateJob", + Handler: _Workload_CreateJob_Handler, + }, + { + MethodName: "UpdateJob", + Handler: _Workload_UpdateJob_Handler, + }, + { + MethodName: "DeleteJob", + Handler: _Workload_DeleteJob_Handler, + }, + { + MethodName: "ListPo", + Handler: _Workload_ListPo_Handler, + }, + { + MethodName: "ListPoByNode", + Handler: _Workload_ListPoByNode_Handler, + }, + { + MethodName: "GetPo", + Handler: _Workload_GetPo_Handler, + }, + { + MethodName: "CreatePo", + Handler: _Workload_CreatePo_Handler, + }, + { + MethodName: "UpdatePo", + Handler: _Workload_UpdatePo_Handler, + }, + { + MethodName: "DeletePo", + Handler: _Workload_DeletePo_Handler, + }, + { + MethodName: "ListPoPVC", + Handler: _Workload_ListPoPVC_Handler, + }, + { + MethodName: "ListPoCM", + Handler: _Workload_ListPoCM_Handler, + }, + { + MethodName: "ListPoSecret", + Handler: _Workload_ListPoSecret_Handler, + }, + { + MethodName: "ReschedulePo", + Handler: _Workload_ReschedulePo_Handler, + }, + { + MethodName: "ListContainer", + Handler: _Workload_ListContainer_Handler, + }, + { + MethodName: "GetContainer", + Handler: _Workload_GetContainer_Handler, + }, + { + MethodName: "GetContainerEnvInfo", + Handler: _Workload_GetContainerEnvInfo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// NetworkClient is the client API for Network service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type NetworkClient interface { + ListIng(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetIng(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateIng(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateIng(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteIng(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListSVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateSVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateSVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteSVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListEP(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetEP(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + GetEPStatus(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateEP(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateEP(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteEP(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type networkClient struct { + cc grpc.ClientConnInterface +} + +func NewNetworkClient(cc grpc.ClientConnInterface) NetworkClient { + return &networkClient{cc} +} + +func (c *networkClient) ListIng(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/ListIng", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) GetIng(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/GetIng", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) CreateIng(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateIng", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) UpdateIng(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateIng", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) DeleteIng(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteIng", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) ListSVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/ListSVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) GetSVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/GetSVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) CreateSVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateSVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) UpdateSVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateSVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) DeleteSVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteSVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) ListEP(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/ListEP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) GetEP(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/GetEP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) GetEPStatus(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/GetEPStatus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) CreateEP(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/CreateEP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) UpdateEP(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/UpdateEP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *networkClient) DeleteEP(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Network/DeleteEP", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NetworkServer is the server API for Network service. +// All implementations must embed UnimplementedNetworkServer +// for forward compatibility +type NetworkServer interface { + ListIng(context.Context, *ResListReq) (*CommonResp, error) + GetIng(context.Context, *ResGetReq) (*CommonResp, error) + CreateIng(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateIng(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteIng(context.Context, *ResDeleteReq) (*CommonResp, error) + ListSVC(context.Context, *ResListReq) (*CommonResp, error) + GetSVC(context.Context, *ResGetReq) (*CommonResp, error) + CreateSVC(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateSVC(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteSVC(context.Context, *ResDeleteReq) (*CommonResp, error) + ListEP(context.Context, *ResListReq) (*CommonResp, error) + GetEP(context.Context, *ResGetReq) (*CommonResp, error) + GetEPStatus(context.Context, *ResGetReq) (*CommonResp, error) + CreateEP(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateEP(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteEP(context.Context, *ResDeleteReq) (*CommonResp, error) + mustEmbedUnimplementedNetworkServer() +} + +// UnimplementedNetworkServer must be embedded to have forward compatible implementations. +type UnimplementedNetworkServer struct { +} + +func (UnimplementedNetworkServer) ListIng(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListIng not implemented") +} +func (UnimplementedNetworkServer) GetIng(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetIng not implemented") +} +func (UnimplementedNetworkServer) CreateIng(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateIng not implemented") +} +func (UnimplementedNetworkServer) UpdateIng(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateIng not implemented") +} +func (UnimplementedNetworkServer) DeleteIng(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteIng not implemented") +} +func (UnimplementedNetworkServer) ListSVC(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSVC not implemented") +} +func (UnimplementedNetworkServer) GetSVC(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSVC not implemented") +} +func (UnimplementedNetworkServer) CreateSVC(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSVC not implemented") +} +func (UnimplementedNetworkServer) UpdateSVC(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSVC not implemented") +} +func (UnimplementedNetworkServer) DeleteSVC(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSVC not implemented") +} +func (UnimplementedNetworkServer) ListEP(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListEP not implemented") +} +func (UnimplementedNetworkServer) GetEP(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetEP not implemented") +} +func (UnimplementedNetworkServer) GetEPStatus(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetEPStatus not implemented") +} +func (UnimplementedNetworkServer) CreateEP(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateEP not implemented") +} +func (UnimplementedNetworkServer) UpdateEP(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateEP not implemented") +} +func (UnimplementedNetworkServer) DeleteEP(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteEP not implemented") +} +func (UnimplementedNetworkServer) mustEmbedUnimplementedNetworkServer() {} + +// UnsafeNetworkServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to NetworkServer will +// result in compilation errors. +type UnsafeNetworkServer interface { + mustEmbedUnimplementedNetworkServer() +} + +func RegisterNetworkServer(s grpc.ServiceRegistrar, srv NetworkServer) { + s.RegisterService(&Network_ServiceDesc, srv) +} + +func _Network_ListIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).ListIng(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/ListIng", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).ListIng(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_GetIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).GetIng(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/GetIng", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).GetIng(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_CreateIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).CreateIng(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/CreateIng", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).CreateIng(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_UpdateIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).UpdateIng(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/UpdateIng", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).UpdateIng(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_DeleteIng_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).DeleteIng(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/DeleteIng", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).DeleteIng(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_ListSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).ListSVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/ListSVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).ListSVC(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_GetSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).GetSVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/GetSVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).GetSVC(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_CreateSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).CreateSVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/CreateSVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).CreateSVC(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_UpdateSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).UpdateSVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/UpdateSVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).UpdateSVC(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_DeleteSVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).DeleteSVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/DeleteSVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).DeleteSVC(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_ListEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).ListEP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/ListEP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).ListEP(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_GetEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).GetEP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/GetEP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).GetEP(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_GetEPStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).GetEPStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/GetEPStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).GetEPStatus(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_CreateEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).CreateEP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/CreateEP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).CreateEP(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_UpdateEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).UpdateEP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/UpdateEP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).UpdateEP(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Network_DeleteEP_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetworkServer).DeleteEP(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Network/DeleteEP", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetworkServer).DeleteEP(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Network_ServiceDesc is the grpc.ServiceDesc for Network service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Network_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Network", + HandlerType: (*NetworkServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListIng", + Handler: _Network_ListIng_Handler, + }, + { + MethodName: "GetIng", + Handler: _Network_GetIng_Handler, + }, + { + MethodName: "CreateIng", + Handler: _Network_CreateIng_Handler, + }, + { + MethodName: "UpdateIng", + Handler: _Network_UpdateIng_Handler, + }, + { + MethodName: "DeleteIng", + Handler: _Network_DeleteIng_Handler, + }, + { + MethodName: "ListSVC", + Handler: _Network_ListSVC_Handler, + }, + { + MethodName: "GetSVC", + Handler: _Network_GetSVC_Handler, + }, + { + MethodName: "CreateSVC", + Handler: _Network_CreateSVC_Handler, + }, + { + MethodName: "UpdateSVC", + Handler: _Network_UpdateSVC_Handler, + }, + { + MethodName: "DeleteSVC", + Handler: _Network_DeleteSVC_Handler, + }, + { + MethodName: "ListEP", + Handler: _Network_ListEP_Handler, + }, + { + MethodName: "GetEP", + Handler: _Network_GetEP_Handler, + }, + { + MethodName: "GetEPStatus", + Handler: _Network_GetEPStatus_Handler, + }, + { + MethodName: "CreateEP", + Handler: _Network_CreateEP_Handler, + }, + { + MethodName: "UpdateEP", + Handler: _Network_UpdateEP_Handler, + }, + { + MethodName: "DeleteEP", + Handler: _Network_DeleteEP_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// ConfigClient is the client API for Config service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ConfigClient interface { + ListCM(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateCM(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateCM(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteCM(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListSecret(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateSecret(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateSecret(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteSecret(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type configClient struct { + cc grpc.ClientConnInterface +} + +func NewConfigClient(cc grpc.ClientConnInterface) ConfigClient { + return &configClient{cc} +} + +func (c *configClient) ListCM(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/ListCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) GetCM(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/GetCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) CreateCM(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/CreateCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) UpdateCM(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/UpdateCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) DeleteCM(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/DeleteCM", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) ListSecret(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/ListSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) GetSecret(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/GetSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) CreateSecret(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/CreateSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) UpdateSecret(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/UpdateSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *configClient) DeleteSecret(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Config/DeleteSecret", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ConfigServer is the server API for Config service. +// All implementations must embed UnimplementedConfigServer +// for forward compatibility +type ConfigServer interface { + ListCM(context.Context, *ResListReq) (*CommonResp, error) + GetCM(context.Context, *ResGetReq) (*CommonResp, error) + CreateCM(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateCM(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteCM(context.Context, *ResDeleteReq) (*CommonResp, error) + ListSecret(context.Context, *ResListReq) (*CommonResp, error) + GetSecret(context.Context, *ResGetReq) (*CommonResp, error) + CreateSecret(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateSecret(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteSecret(context.Context, *ResDeleteReq) (*CommonResp, error) + mustEmbedUnimplementedConfigServer() +} + +// UnimplementedConfigServer must be embedded to have forward compatible implementations. +type UnimplementedConfigServer struct { +} + +func (UnimplementedConfigServer) ListCM(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCM not implemented") +} +func (UnimplementedConfigServer) GetCM(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCM not implemented") +} +func (UnimplementedConfigServer) CreateCM(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateCM not implemented") +} +func (UnimplementedConfigServer) UpdateCM(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCM not implemented") +} +func (UnimplementedConfigServer) DeleteCM(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteCM not implemented") +} +func (UnimplementedConfigServer) ListSecret(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSecret not implemented") +} +func (UnimplementedConfigServer) GetSecret(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSecret not implemented") +} +func (UnimplementedConfigServer) CreateSecret(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSecret not implemented") +} +func (UnimplementedConfigServer) UpdateSecret(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSecret not implemented") +} +func (UnimplementedConfigServer) DeleteSecret(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSecret not implemented") +} +func (UnimplementedConfigServer) mustEmbedUnimplementedConfigServer() {} + +// UnsafeConfigServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ConfigServer will +// result in compilation errors. +type UnsafeConfigServer interface { + mustEmbedUnimplementedConfigServer() +} + +func RegisterConfigServer(s grpc.ServiceRegistrar, srv ConfigServer) { + s.RegisterService(&Config_ServiceDesc, srv) +} + +func _Config_ListCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).ListCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/ListCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).ListCM(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_GetCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).GetCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/GetCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).GetCM(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_CreateCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).CreateCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/CreateCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).CreateCM(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_UpdateCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).UpdateCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/UpdateCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).UpdateCM(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_DeleteCM_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).DeleteCM(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/DeleteCM", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).DeleteCM(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_ListSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).ListSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/ListSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).ListSecret(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_GetSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).GetSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/GetSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).GetSecret(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_CreateSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).CreateSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/CreateSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).CreateSecret(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_UpdateSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).UpdateSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/UpdateSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).UpdateSecret(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Config_DeleteSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConfigServer).DeleteSecret(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Config/DeleteSecret", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConfigServer).DeleteSecret(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Config_ServiceDesc is the grpc.ServiceDesc for Config service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Config_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Config", + HandlerType: (*ConfigServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListCM", + Handler: _Config_ListCM_Handler, + }, + { + MethodName: "GetCM", + Handler: _Config_GetCM_Handler, + }, + { + MethodName: "CreateCM", + Handler: _Config_CreateCM_Handler, + }, + { + MethodName: "UpdateCM", + Handler: _Config_UpdateCM_Handler, + }, + { + MethodName: "DeleteCM", + Handler: _Config_DeleteCM_Handler, + }, + { + MethodName: "ListSecret", + Handler: _Config_ListSecret_Handler, + }, + { + MethodName: "GetSecret", + Handler: _Config_GetSecret_Handler, + }, + { + MethodName: "CreateSecret", + Handler: _Config_CreateSecret_Handler, + }, + { + MethodName: "UpdateSecret", + Handler: _Config_UpdateSecret_Handler, + }, + { + MethodName: "DeleteSecret", + Handler: _Config_DeleteSecret_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// StorageClient is the client API for Storage service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type StorageClient interface { + ListPV(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetPV(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreatePV(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdatePV(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeletePV(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListPVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + GetPVCMountInfo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreatePVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdatePVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeletePVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + ListSC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateSC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateSC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteSC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type storageClient struct { + cc grpc.ClientConnInterface +} + +func NewStorageClient(cc grpc.ClientConnInterface) StorageClient { + return &storageClient{cc} +} + +func (c *storageClient) ListPV(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListPV", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) GetPV(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPV", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) CreatePV(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreatePV", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) UpdatePV(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdatePV", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) DeletePV(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeletePV", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) ListPVC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListPVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) GetPVC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) GetPVCMountInfo(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetPVCMountInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) CreatePVC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreatePVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) UpdatePVC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdatePVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) DeletePVC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeletePVC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) ListSC(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/ListSC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) GetSC(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/GetSC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) CreateSC(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/CreateSC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) UpdateSC(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/UpdateSC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *storageClient) DeleteSC(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Storage/DeleteSC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// StorageServer is the server API for Storage service. +// All implementations must embed UnimplementedStorageServer +// for forward compatibility +type StorageServer interface { + ListPV(context.Context, *ResListReq) (*CommonResp, error) + GetPV(context.Context, *ResGetReq) (*CommonResp, error) + CreatePV(context.Context, *ResCreateReq) (*CommonResp, error) + UpdatePV(context.Context, *ResUpdateReq) (*CommonResp, error) + DeletePV(context.Context, *ResDeleteReq) (*CommonResp, error) + ListPVC(context.Context, *ResListReq) (*CommonResp, error) + GetPVC(context.Context, *ResGetReq) (*CommonResp, error) + GetPVCMountInfo(context.Context, *ResGetReq) (*CommonResp, error) + CreatePVC(context.Context, *ResCreateReq) (*CommonResp, error) + UpdatePVC(context.Context, *ResUpdateReq) (*CommonResp, error) + DeletePVC(context.Context, *ResDeleteReq) (*CommonResp, error) + ListSC(context.Context, *ResListReq) (*CommonResp, error) + GetSC(context.Context, *ResGetReq) (*CommonResp, error) + CreateSC(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateSC(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteSC(context.Context, *ResDeleteReq) (*CommonResp, error) + mustEmbedUnimplementedStorageServer() +} + +// UnimplementedStorageServer must be embedded to have forward compatible implementations. +type UnimplementedStorageServer struct { +} + +func (UnimplementedStorageServer) ListPV(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPV not implemented") +} +func (UnimplementedStorageServer) GetPV(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPV not implemented") +} +func (UnimplementedStorageServer) CreatePV(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePV not implemented") +} +func (UnimplementedStorageServer) UpdatePV(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePV not implemented") +} +func (UnimplementedStorageServer) DeletePV(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePV not implemented") +} +func (UnimplementedStorageServer) ListPVC(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPVC not implemented") +} +func (UnimplementedStorageServer) GetPVC(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPVC not implemented") +} +func (UnimplementedStorageServer) GetPVCMountInfo(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPVCMountInfo not implemented") +} +func (UnimplementedStorageServer) CreatePVC(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePVC not implemented") +} +func (UnimplementedStorageServer) UpdatePVC(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePVC not implemented") +} +func (UnimplementedStorageServer) DeletePVC(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePVC not implemented") +} +func (UnimplementedStorageServer) ListSC(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSC not implemented") +} +func (UnimplementedStorageServer) GetSC(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSC not implemented") +} +func (UnimplementedStorageServer) CreateSC(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSC not implemented") +} +func (UnimplementedStorageServer) UpdateSC(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSC not implemented") +} +func (UnimplementedStorageServer) DeleteSC(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSC not implemented") +} +func (UnimplementedStorageServer) mustEmbedUnimplementedStorageServer() {} + +// UnsafeStorageServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to StorageServer will +// result in compilation errors. +type UnsafeStorageServer interface { + mustEmbedUnimplementedStorageServer() +} + +func RegisterStorageServer(s grpc.ServiceRegistrar, srv StorageServer) { + s.RegisterService(&Storage_ServiceDesc, srv) +} + +func _Storage_ListPV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).ListPV(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/ListPV", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).ListPV(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_GetPV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).GetPV(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/GetPV", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).GetPV(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_CreatePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).CreatePV(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/CreatePV", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).CreatePV(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_UpdatePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).UpdatePV(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/UpdatePV", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).UpdatePV(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_DeletePV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).DeletePV(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/DeletePV", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).DeletePV(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_ListPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).ListPVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/ListPVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).ListPVC(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_GetPVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).GetPVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/GetPVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).GetPVC(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_GetPVCMountInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).GetPVCMountInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/GetPVCMountInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).GetPVCMountInfo(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_CreatePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).CreatePVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/CreatePVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).CreatePVC(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_UpdatePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).UpdatePVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/UpdatePVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).UpdatePVC(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_DeletePVC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).DeletePVC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/DeletePVC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).DeletePVC(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_ListSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).ListSC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/ListSC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).ListSC(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_GetSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).GetSC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/GetSC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).GetSC(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_CreateSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).CreateSC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/CreateSC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).CreateSC(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_UpdateSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).UpdateSC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/UpdateSC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).UpdateSC(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Storage_DeleteSC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StorageServer).DeleteSC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Storage/DeleteSC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StorageServer).DeleteSC(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Storage_ServiceDesc is the grpc.ServiceDesc for Storage service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Storage_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Storage", + HandlerType: (*StorageServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListPV", + Handler: _Storage_ListPV_Handler, + }, + { + MethodName: "GetPV", + Handler: _Storage_GetPV_Handler, + }, + { + MethodName: "CreatePV", + Handler: _Storage_CreatePV_Handler, + }, + { + MethodName: "UpdatePV", + Handler: _Storage_UpdatePV_Handler, + }, + { + MethodName: "DeletePV", + Handler: _Storage_DeletePV_Handler, + }, + { + MethodName: "ListPVC", + Handler: _Storage_ListPVC_Handler, + }, + { + MethodName: "GetPVC", + Handler: _Storage_GetPVC_Handler, + }, + { + MethodName: "GetPVCMountInfo", + Handler: _Storage_GetPVCMountInfo_Handler, + }, + { + MethodName: "CreatePVC", + Handler: _Storage_CreatePVC_Handler, + }, + { + MethodName: "UpdatePVC", + Handler: _Storage_UpdatePVC_Handler, + }, + { + MethodName: "DeletePVC", + Handler: _Storage_DeletePVC_Handler, + }, + { + MethodName: "ListSC", + Handler: _Storage_ListSC_Handler, + }, + { + MethodName: "GetSC", + Handler: _Storage_GetSC_Handler, + }, + { + MethodName: "CreateSC", + Handler: _Storage_CreateSC_Handler, + }, + { + MethodName: "UpdateSC", + Handler: _Storage_UpdateSC_Handler, + }, + { + MethodName: "DeleteSC", + Handler: _Storage_DeleteSC_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// RBACClient is the client API for RBAC service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type RBACClient interface { + ListSA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetSA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateSA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateSA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteSA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type rBACClient struct { + cc grpc.ClientConnInterface +} + +func NewRBACClient(cc grpc.ClientConnInterface) RBACClient { + return &rBACClient{cc} +} + +func (c *rBACClient) ListSA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.RBAC/ListSA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rBACClient) GetSA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.RBAC/GetSA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rBACClient) CreateSA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.RBAC/CreateSA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rBACClient) UpdateSA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.RBAC/UpdateSA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rBACClient) DeleteSA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.RBAC/DeleteSA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RBACServer is the server API for RBAC service. +// All implementations must embed UnimplementedRBACServer +// for forward compatibility +type RBACServer interface { + ListSA(context.Context, *ResListReq) (*CommonResp, error) + GetSA(context.Context, *ResGetReq) (*CommonResp, error) + CreateSA(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateSA(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteSA(context.Context, *ResDeleteReq) (*CommonResp, error) + mustEmbedUnimplementedRBACServer() +} + +// UnimplementedRBACServer must be embedded to have forward compatible implementations. +type UnimplementedRBACServer struct { +} + +func (UnimplementedRBACServer) ListSA(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSA not implemented") +} +func (UnimplementedRBACServer) GetSA(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSA not implemented") +} +func (UnimplementedRBACServer) CreateSA(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSA not implemented") +} +func (UnimplementedRBACServer) UpdateSA(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSA not implemented") +} +func (UnimplementedRBACServer) DeleteSA(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSA not implemented") +} +func (UnimplementedRBACServer) mustEmbedUnimplementedRBACServer() {} + +// UnsafeRBACServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to RBACServer will +// result in compilation errors. +type UnsafeRBACServer interface { + mustEmbedUnimplementedRBACServer() +} + +func RegisterRBACServer(s grpc.ServiceRegistrar, srv RBACServer) { + s.RegisterService(&RBAC_ServiceDesc, srv) +} + +func _RBAC_ListSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RBACServer).ListSA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.RBAC/ListSA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RBACServer).ListSA(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _RBAC_GetSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RBACServer).GetSA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.RBAC/GetSA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RBACServer).GetSA(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _RBAC_CreateSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RBACServer).CreateSA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.RBAC/CreateSA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RBACServer).CreateSA(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _RBAC_UpdateSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RBACServer).UpdateSA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.RBAC/UpdateSA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RBACServer).UpdateSA(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _RBAC_DeleteSA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RBACServer).DeleteSA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.RBAC/DeleteSA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RBACServer).DeleteSA(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +// RBAC_ServiceDesc is the grpc.ServiceDesc for RBAC service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var RBAC_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.RBAC", + HandlerType: (*RBACServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListSA", + Handler: _RBAC_ListSA_Handler, + }, + { + MethodName: "GetSA", + Handler: _RBAC_GetSA_Handler, + }, + { + MethodName: "CreateSA", + Handler: _RBAC_CreateSA_Handler, + }, + { + MethodName: "UpdateSA", + Handler: _RBAC_UpdateSA_Handler, + }, + { + MethodName: "DeleteSA", + Handler: _RBAC_DeleteSA_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// HPAClient is the client API for HPA service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type HPAClient interface { + ListHPA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetHPA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateHPA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateHPA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteHPA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type hPAClient struct { + cc grpc.ClientConnInterface +} + +func NewHPAClient(cc grpc.ClientConnInterface) HPAClient { + return &hPAClient{cc} +} + +func (c *hPAClient) ListHPA(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.HPA/ListHPA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hPAClient) GetHPA(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.HPA/GetHPA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hPAClient) CreateHPA(ctx context.Context, in *ResCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.HPA/CreateHPA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hPAClient) UpdateHPA(ctx context.Context, in *ResUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.HPA/UpdateHPA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hPAClient) DeleteHPA(ctx context.Context, in *ResDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.HPA/DeleteHPA", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// HPAServer is the server API for HPA service. +// All implementations must embed UnimplementedHPAServer +// for forward compatibility +type HPAServer interface { + ListHPA(context.Context, *ResListReq) (*CommonResp, error) + GetHPA(context.Context, *ResGetReq) (*CommonResp, error) + CreateHPA(context.Context, *ResCreateReq) (*CommonResp, error) + UpdateHPA(context.Context, *ResUpdateReq) (*CommonResp, error) + DeleteHPA(context.Context, *ResDeleteReq) (*CommonResp, error) + mustEmbedUnimplementedHPAServer() +} + +// UnimplementedHPAServer must be embedded to have forward compatible implementations. +type UnimplementedHPAServer struct { +} + +func (UnimplementedHPAServer) ListHPA(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListHPA not implemented") +} +func (UnimplementedHPAServer) GetHPA(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHPA not implemented") +} +func (UnimplementedHPAServer) CreateHPA(context.Context, *ResCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateHPA not implemented") +} +func (UnimplementedHPAServer) UpdateHPA(context.Context, *ResUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateHPA not implemented") +} +func (UnimplementedHPAServer) DeleteHPA(context.Context, *ResDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteHPA not implemented") +} +func (UnimplementedHPAServer) mustEmbedUnimplementedHPAServer() {} + +// UnsafeHPAServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to HPAServer will +// result in compilation errors. +type UnsafeHPAServer interface { + mustEmbedUnimplementedHPAServer() +} + +func RegisterHPAServer(s grpc.ServiceRegistrar, srv HPAServer) { + s.RegisterService(&HPA_ServiceDesc, srv) +} + +func _HPA_ListHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HPAServer).ListHPA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.HPA/ListHPA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HPAServer).ListHPA(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HPA_GetHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HPAServer).GetHPA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.HPA/GetHPA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HPAServer).GetHPA(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HPA_CreateHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HPAServer).CreateHPA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.HPA/CreateHPA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HPAServer).CreateHPA(ctx, req.(*ResCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HPA_UpdateHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HPAServer).UpdateHPA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.HPA/UpdateHPA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HPAServer).UpdateHPA(ctx, req.(*ResUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HPA_DeleteHPA_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HPAServer).DeleteHPA(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.HPA/DeleteHPA", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HPAServer).DeleteHPA(ctx, req.(*ResDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +// HPA_ServiceDesc is the grpc.ServiceDesc for HPA service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var HPA_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.HPA", + HandlerType: (*HPAServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListHPA", + Handler: _HPA_ListHPA_Handler, + }, + { + MethodName: "GetHPA", + Handler: _HPA_GetHPA_Handler, + }, + { + MethodName: "CreateHPA", + Handler: _HPA_CreateHPA_Handler, + }, + { + MethodName: "UpdateHPA", + Handler: _HPA_UpdateHPA_Handler, + }, + { + MethodName: "DeleteHPA", + Handler: _HPA_DeleteHPA_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// CustomResClient is the client API for CustomRes service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type CustomResClient interface { + ListCRD(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetCRD(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) + ListCObj(ctx context.Context, in *CObjListReq, opts ...grpc.CallOption) (*CommonResp, error) + GetCObj(ctx context.Context, in *CObjGetReq, opts ...grpc.CallOption) (*CommonResp, error) + GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) + RestartCObj(ctx context.Context, in *CObjRestartReq, opts ...grpc.CallOption) (*CommonResp, error) + RolloutCObj(ctx context.Context, in *CObjRolloutReq, opts ...grpc.CallOption) (*CommonResp, error) + CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateCObj(ctx context.Context, in *CObjUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) + ScaleCObj(ctx context.Context, in *CObjScaleReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteCObj(ctx context.Context, in *CObjDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) + RescheduleCObjPo(ctx context.Context, in *CObjBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type customResClient struct { + cc grpc.ClientConnInterface +} + +func NewCustomResClient(cc grpc.ClientConnInterface) CustomResClient { + return &customResClient{cc} +} + +func (c *customResClient) ListCRD(ctx context.Context, in *ResListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ListCRD", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) GetCRD(ctx context.Context, in *ResGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/GetCRD", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) ListCObj(ctx context.Context, in *CObjListReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ListCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) GetCObj(ctx context.Context, in *CObjGetReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/GetCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) GetCObjHistoryRevision(ctx context.Context, in *CObjHistoryReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/GetCObjHistoryRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) RestartCObj(ctx context.Context, in *CObjRestartReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/RestartCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) RolloutCObj(ctx context.Context, in *CObjRolloutReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/RolloutCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) CreateCObj(ctx context.Context, in *CObjCreateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/CreateCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) UpdateCObj(ctx context.Context, in *CObjUpdateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/UpdateCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) ScaleCObj(ctx context.Context, in *CObjScaleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/ScaleCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) DeleteCObj(ctx context.Context, in *CObjDeleteReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/DeleteCObj", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customResClient) RescheduleCObjPo(ctx context.Context, in *CObjBatchRescheduleReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.CustomRes/RescheduleCObjPo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CustomResServer is the server API for CustomRes service. +// All implementations must embed UnimplementedCustomResServer +// for forward compatibility +type CustomResServer interface { + ListCRD(context.Context, *ResListReq) (*CommonResp, error) + GetCRD(context.Context, *ResGetReq) (*CommonResp, error) + ListCObj(context.Context, *CObjListReq) (*CommonResp, error) + GetCObj(context.Context, *CObjGetReq) (*CommonResp, error) + GetCObjHistoryRevision(context.Context, *CObjHistoryReq) (*CommonListResp, error) + RestartCObj(context.Context, *CObjRestartReq) (*CommonResp, error) + RolloutCObj(context.Context, *CObjRolloutReq) (*CommonResp, error) + CreateCObj(context.Context, *CObjCreateReq) (*CommonResp, error) + UpdateCObj(context.Context, *CObjUpdateReq) (*CommonResp, error) + ScaleCObj(context.Context, *CObjScaleReq) (*CommonResp, error) + DeleteCObj(context.Context, *CObjDeleteReq) (*CommonResp, error) + RescheduleCObjPo(context.Context, *CObjBatchRescheduleReq) (*CommonResp, error) + mustEmbedUnimplementedCustomResServer() +} + +// UnimplementedCustomResServer must be embedded to have forward compatible implementations. +type UnimplementedCustomResServer struct { +} + +func (UnimplementedCustomResServer) ListCRD(context.Context, *ResListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCRD not implemented") +} +func (UnimplementedCustomResServer) GetCRD(context.Context, *ResGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCRD not implemented") +} +func (UnimplementedCustomResServer) ListCObj(context.Context, *CObjListReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCObj not implemented") +} +func (UnimplementedCustomResServer) GetCObj(context.Context, *CObjGetReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCObj not implemented") +} +func (UnimplementedCustomResServer) GetCObjHistoryRevision(context.Context, *CObjHistoryReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCObjHistoryRevision not implemented") +} +func (UnimplementedCustomResServer) RestartCObj(context.Context, *CObjRestartReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RestartCObj not implemented") +} +func (UnimplementedCustomResServer) RolloutCObj(context.Context, *CObjRolloutReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RolloutCObj not implemented") +} +func (UnimplementedCustomResServer) CreateCObj(context.Context, *CObjCreateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateCObj not implemented") +} +func (UnimplementedCustomResServer) UpdateCObj(context.Context, *CObjUpdateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCObj not implemented") +} +func (UnimplementedCustomResServer) ScaleCObj(context.Context, *CObjScaleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ScaleCObj not implemented") +} +func (UnimplementedCustomResServer) DeleteCObj(context.Context, *CObjDeleteReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteCObj not implemented") +} +func (UnimplementedCustomResServer) RescheduleCObjPo(context.Context, *CObjBatchRescheduleReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RescheduleCObjPo not implemented") +} +func (UnimplementedCustomResServer) mustEmbedUnimplementedCustomResServer() {} + +// UnsafeCustomResServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to CustomResServer will +// result in compilation errors. +type UnsafeCustomResServer interface { + mustEmbedUnimplementedCustomResServer() +} + +func RegisterCustomResServer(s grpc.ServiceRegistrar, srv CustomResServer) { + s.RegisterService(&CustomRes_ServiceDesc, srv) +} + +func _CustomRes_ListCRD_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).ListCRD(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/ListCRD", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).ListCRD(ctx, req.(*ResListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_GetCRD_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).GetCRD(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/GetCRD", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).GetCRD(ctx, req.(*ResGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_ListCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).ListCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/ListCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).ListCObj(ctx, req.(*CObjListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_GetCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).GetCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/GetCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).GetCObj(ctx, req.(*CObjGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_GetCObjHistoryRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjHistoryReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).GetCObjHistoryRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/GetCObjHistoryRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).GetCObjHistoryRevision(ctx, req.(*CObjHistoryReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_RestartCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjRestartReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).RestartCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/RestartCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).RestartCObj(ctx, req.(*CObjRestartReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_RolloutCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjRolloutReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).RolloutCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/RolloutCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).RolloutCObj(ctx, req.(*CObjRolloutReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_CreateCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjCreateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).CreateCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/CreateCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).CreateCObj(ctx, req.(*CObjCreateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_UpdateCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).UpdateCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/UpdateCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).UpdateCObj(ctx, req.(*CObjUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_ScaleCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjScaleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).ScaleCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/ScaleCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).ScaleCObj(ctx, req.(*CObjScaleReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_DeleteCObj_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).DeleteCObj(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/DeleteCObj", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).DeleteCObj(ctx, req.(*CObjDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomRes_RescheduleCObjPo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CObjBatchRescheduleReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomResServer).RescheduleCObjPo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.CustomRes/RescheduleCObjPo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomResServer).RescheduleCObjPo(ctx, req.(*CObjBatchRescheduleReq)) + } + return interceptor(ctx, in, info, handler) +} + +// CustomRes_ServiceDesc is the grpc.ServiceDesc for CustomRes service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CustomRes_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.CustomRes", + HandlerType: (*CustomResServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListCRD", + Handler: _CustomRes_ListCRD_Handler, + }, + { + MethodName: "GetCRD", + Handler: _CustomRes_GetCRD_Handler, + }, + { + MethodName: "ListCObj", + Handler: _CustomRes_ListCObj_Handler, + }, + { + MethodName: "GetCObj", + Handler: _CustomRes_GetCObj_Handler, + }, + { + MethodName: "GetCObjHistoryRevision", + Handler: _CustomRes_GetCObjHistoryRevision_Handler, + }, + { + MethodName: "RestartCObj", + Handler: _CustomRes_RestartCObj_Handler, + }, + { + MethodName: "RolloutCObj", + Handler: _CustomRes_RolloutCObj_Handler, + }, + { + MethodName: "CreateCObj", + Handler: _CustomRes_CreateCObj_Handler, + }, + { + MethodName: "UpdateCObj", + Handler: _CustomRes_UpdateCObj_Handler, + }, + { + MethodName: "ScaleCObj", + Handler: _CustomRes_ScaleCObj_Handler, + }, + { + MethodName: "DeleteCObj", + Handler: _CustomRes_DeleteCObj_Handler, + }, + { + MethodName: "RescheduleCObjPo", + Handler: _CustomRes_RescheduleCObjPo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// ResourceClient is the client API for Resource service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ResourceClient interface { + // 示例模板接口 + GetK8SResTemplate(ctx context.Context, in *GetK8SResTemplateReq, opts ...grpc.CallOption) (*CommonResp, error) + // 订阅接口 + Subscribe(ctx context.Context, in *SubscribeReq, opts ...grpc.CallOption) (Resource_SubscribeClient, error) + // 主动使 Discover 缓存失效 + InvalidateDiscoveryCache(ctx context.Context, in *InvalidateDiscoveryCacheReq, opts ...grpc.CallOption) (*CommonResp, error) + // 表单化数据渲染预览 + FormDataRenderPreview(ctx context.Context, in *FormRenderPreviewReq, opts ...grpc.CallOption) (*CommonResp, error) + // 获取指定资源表单 Schema + GetResFormSchema(ctx context.Context, in *GetResFormSchemaReq, opts ...grpc.CallOption) (*CommonResp, error) + GetFormSupportedAPIVersions(ctx context.Context, in *GetFormSupportedApiVersionsReq, opts ...grpc.CallOption) (*CommonResp, error) + // 获取用于下拉框选项的资源数据 + GetResSelectItems(ctx context.Context, in *GetResSelectItemsReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type resourceClient struct { + cc grpc.ClientConnInterface +} + +func NewResourceClient(cc grpc.ClientConnInterface) ResourceClient { + return &resourceClient{cc} +} + +func (c *resourceClient) GetK8SResTemplate(ctx context.Context, in *GetK8SResTemplateReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetK8SResTemplate", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceClient) Subscribe(ctx context.Context, in *SubscribeReq, opts ...grpc.CallOption) (Resource_SubscribeClient, error) { + stream, err := c.cc.NewStream(ctx, &Resource_ServiceDesc.Streams[0], "/clusterresources.Resource/Subscribe", opts...) + if err != nil { + return nil, err + } + x := &resourceSubscribeClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Resource_SubscribeClient interface { + Recv() (*SubscribeResp, error) + grpc.ClientStream +} + +type resourceSubscribeClient struct { + grpc.ClientStream +} + +func (x *resourceSubscribeClient) Recv() (*SubscribeResp, error) { + m := new(SubscribeResp) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *resourceClient) InvalidateDiscoveryCache(ctx context.Context, in *InvalidateDiscoveryCacheReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/InvalidateDiscoveryCache", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceClient) FormDataRenderPreview(ctx context.Context, in *FormRenderPreviewReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/FormDataRenderPreview", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceClient) GetResFormSchema(ctx context.Context, in *GetResFormSchemaReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetResFormSchema", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceClient) GetFormSupportedAPIVersions(ctx context.Context, in *GetFormSupportedApiVersionsReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetFormSupportedAPIVersions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceClient) GetResSelectItems(ctx context.Context, in *GetResSelectItemsReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.Resource/GetResSelectItems", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ResourceServer is the server API for Resource service. +// All implementations must embed UnimplementedResourceServer +// for forward compatibility +type ResourceServer interface { + // 示例模板接口 + GetK8SResTemplate(context.Context, *GetK8SResTemplateReq) (*CommonResp, error) + // 订阅接口 + Subscribe(*SubscribeReq, Resource_SubscribeServer) error + // 主动使 Discover 缓存失效 + InvalidateDiscoveryCache(context.Context, *InvalidateDiscoveryCacheReq) (*CommonResp, error) + // 表单化数据渲染预览 + FormDataRenderPreview(context.Context, *FormRenderPreviewReq) (*CommonResp, error) + // 获取指定资源表单 Schema + GetResFormSchema(context.Context, *GetResFormSchemaReq) (*CommonResp, error) + GetFormSupportedAPIVersions(context.Context, *GetFormSupportedApiVersionsReq) (*CommonResp, error) + // 获取用于下拉框选项的资源数据 + GetResSelectItems(context.Context, *GetResSelectItemsReq) (*CommonResp, error) + mustEmbedUnimplementedResourceServer() +} + +// UnimplementedResourceServer must be embedded to have forward compatible implementations. +type UnimplementedResourceServer struct { +} + +func (UnimplementedResourceServer) GetK8SResTemplate(context.Context, *GetK8SResTemplateReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetK8SResTemplate not implemented") +} +func (UnimplementedResourceServer) Subscribe(*SubscribeReq, Resource_SubscribeServer) error { + return status.Errorf(codes.Unimplemented, "method Subscribe not implemented") +} +func (UnimplementedResourceServer) InvalidateDiscoveryCache(context.Context, *InvalidateDiscoveryCacheReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method InvalidateDiscoveryCache not implemented") +} +func (UnimplementedResourceServer) FormDataRenderPreview(context.Context, *FormRenderPreviewReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method FormDataRenderPreview not implemented") +} +func (UnimplementedResourceServer) GetResFormSchema(context.Context, *GetResFormSchemaReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetResFormSchema not implemented") +} +func (UnimplementedResourceServer) GetFormSupportedAPIVersions(context.Context, *GetFormSupportedApiVersionsReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFormSupportedAPIVersions not implemented") +} +func (UnimplementedResourceServer) GetResSelectItems(context.Context, *GetResSelectItemsReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetResSelectItems not implemented") +} +func (UnimplementedResourceServer) mustEmbedUnimplementedResourceServer() {} + +// UnsafeResourceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ResourceServer will +// result in compilation errors. +type UnsafeResourceServer interface { + mustEmbedUnimplementedResourceServer() +} + +func RegisterResourceServer(s grpc.ServiceRegistrar, srv ResourceServer) { + s.RegisterService(&Resource_ServiceDesc, srv) +} + +func _Resource_GetK8SResTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetK8SResTemplateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).GetK8SResTemplate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/GetK8SResTemplate", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).GetK8SResTemplate(ctx, req.(*GetK8SResTemplateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Resource_Subscribe_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(SubscribeReq) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ResourceServer).Subscribe(m, &resourceSubscribeServer{stream}) +} + +type Resource_SubscribeServer interface { + Send(*SubscribeResp) error + grpc.ServerStream +} + +type resourceSubscribeServer struct { + grpc.ServerStream +} + +func (x *resourceSubscribeServer) Send(m *SubscribeResp) error { + return x.ServerStream.SendMsg(m) +} + +func _Resource_InvalidateDiscoveryCache_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InvalidateDiscoveryCacheReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).InvalidateDiscoveryCache(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/InvalidateDiscoveryCache", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).InvalidateDiscoveryCache(ctx, req.(*InvalidateDiscoveryCacheReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Resource_FormDataRenderPreview_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FormRenderPreviewReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).FormDataRenderPreview(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/FormDataRenderPreview", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).FormDataRenderPreview(ctx, req.(*FormRenderPreviewReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Resource_GetResFormSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResFormSchemaReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).GetResFormSchema(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/GetResFormSchema", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).GetResFormSchema(ctx, req.(*GetResFormSchemaReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Resource_GetFormSupportedAPIVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFormSupportedApiVersionsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).GetFormSupportedAPIVersions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/GetFormSupportedAPIVersions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).GetFormSupportedAPIVersions(ctx, req.(*GetFormSupportedApiVersionsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Resource_GetResSelectItems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResSelectItemsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceServer).GetResSelectItems(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.Resource/GetResSelectItems", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceServer).GetResSelectItems(ctx, req.(*GetResSelectItemsReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Resource_ServiceDesc is the grpc.ServiceDesc for Resource service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Resource_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.Resource", + HandlerType: (*ResourceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetK8SResTemplate", + Handler: _Resource_GetK8SResTemplate_Handler, + }, + { + MethodName: "InvalidateDiscoveryCache", + Handler: _Resource_InvalidateDiscoveryCache_Handler, + }, + { + MethodName: "FormDataRenderPreview", + Handler: _Resource_FormDataRenderPreview_Handler, + }, + { + MethodName: "GetResFormSchema", + Handler: _Resource_GetResFormSchema_Handler, + }, + { + MethodName: "GetFormSupportedAPIVersions", + Handler: _Resource_GetFormSupportedAPIVersions_Handler, + }, + { + MethodName: "GetResSelectItems", + Handler: _Resource_GetResSelectItems_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Subscribe", + Handler: _Resource_Subscribe_Handler, + ServerStreams: true, + }, + }, + Metadata: "cluster-resources.proto", +} + +// ViewConfigClient is the client API for ViewConfig service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ViewConfigClient interface { + // 获取视图配置列表 + ListViewConfigs(ctx context.Context, in *ListViewConfigsReq, opts ...grpc.CallOption) (*CommonListResp, error) + // 获取视图配置详情 + GetViewConfig(ctx context.Context, in *GetViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) + // 创建视图配置 + CreateViewConfig(ctx context.Context, in *CreateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) + // 更新视图配置 + UpdateViewConfig(ctx context.Context, in *UpdateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) + // 视图重命名 + RenameViewConfig(ctx context.Context, in *RenameViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) + // 删除视图配置 + DeleteViewConfig(ctx context.Context, in *DeleteViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type viewConfigClient struct { + cc grpc.ClientConnInterface +} + +func NewViewConfigClient(cc grpc.ClientConnInterface) ViewConfigClient { + return &viewConfigClient{cc} +} + +func (c *viewConfigClient) ListViewConfigs(ctx context.Context, in *ListViewConfigsReq, opts ...grpc.CallOption) (*CommonListResp, error) { + out := new(CommonListResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/ListViewConfigs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewConfigClient) GetViewConfig(ctx context.Context, in *GetViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/GetViewConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewConfigClient) CreateViewConfig(ctx context.Context, in *CreateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/CreateViewConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewConfigClient) UpdateViewConfig(ctx context.Context, in *UpdateViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/UpdateViewConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewConfigClient) RenameViewConfig(ctx context.Context, in *RenameViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/RenameViewConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewConfigClient) DeleteViewConfig(ctx context.Context, in *DeleteViewConfigReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.ViewConfig/DeleteViewConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ViewConfigServer is the server API for ViewConfig service. +// All implementations must embed UnimplementedViewConfigServer +// for forward compatibility +type ViewConfigServer interface { + // 获取视图配置列表 + ListViewConfigs(context.Context, *ListViewConfigsReq) (*CommonListResp, error) + // 获取视图配置详情 + GetViewConfig(context.Context, *GetViewConfigReq) (*CommonResp, error) + // 创建视图配置 + CreateViewConfig(context.Context, *CreateViewConfigReq) (*CommonResp, error) + // 更新视图配置 + UpdateViewConfig(context.Context, *UpdateViewConfigReq) (*CommonResp, error) + // 视图重命名 + RenameViewConfig(context.Context, *RenameViewConfigReq) (*CommonResp, error) + // 删除视图配置 + DeleteViewConfig(context.Context, *DeleteViewConfigReq) (*CommonResp, error) + mustEmbedUnimplementedViewConfigServer() +} + +// UnimplementedViewConfigServer must be embedded to have forward compatible implementations. +type UnimplementedViewConfigServer struct { +} + +func (UnimplementedViewConfigServer) ListViewConfigs(context.Context, *ListViewConfigsReq) (*CommonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListViewConfigs not implemented") +} +func (UnimplementedViewConfigServer) GetViewConfig(context.Context, *GetViewConfigReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetViewConfig not implemented") +} +func (UnimplementedViewConfigServer) CreateViewConfig(context.Context, *CreateViewConfigReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateViewConfig not implemented") +} +func (UnimplementedViewConfigServer) UpdateViewConfig(context.Context, *UpdateViewConfigReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateViewConfig not implemented") +} +func (UnimplementedViewConfigServer) RenameViewConfig(context.Context, *RenameViewConfigReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RenameViewConfig not implemented") +} +func (UnimplementedViewConfigServer) DeleteViewConfig(context.Context, *DeleteViewConfigReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteViewConfig not implemented") +} +func (UnimplementedViewConfigServer) mustEmbedUnimplementedViewConfigServer() {} + +// UnsafeViewConfigServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ViewConfigServer will +// result in compilation errors. +type UnsafeViewConfigServer interface { + mustEmbedUnimplementedViewConfigServer() +} + +func RegisterViewConfigServer(s grpc.ServiceRegistrar, srv ViewConfigServer) { + s.RegisterService(&ViewConfig_ServiceDesc, srv) +} + +func _ViewConfig_ListViewConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListViewConfigsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).ListViewConfigs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/ListViewConfigs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).ListViewConfigs(ctx, req.(*ListViewConfigsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewConfig_GetViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetViewConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).GetViewConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/GetViewConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).GetViewConfig(ctx, req.(*GetViewConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewConfig_CreateViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateViewConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).CreateViewConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/CreateViewConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).CreateViewConfig(ctx, req.(*CreateViewConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewConfig_UpdateViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateViewConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).UpdateViewConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/UpdateViewConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).UpdateViewConfig(ctx, req.(*UpdateViewConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewConfig_RenameViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RenameViewConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).RenameViewConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/RenameViewConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).RenameViewConfig(ctx, req.(*RenameViewConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _ViewConfig_DeleteViewConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteViewConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ViewConfigServer).DeleteViewConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.ViewConfig/DeleteViewConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ViewConfigServer).DeleteViewConfig(ctx, req.(*DeleteViewConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +// ViewConfig_ServiceDesc is the grpc.ServiceDesc for ViewConfig service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ViewConfig_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.ViewConfig", + HandlerType: (*ViewConfigServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListViewConfigs", + Handler: _ViewConfig_ListViewConfigs_Handler, + }, + { + MethodName: "GetViewConfig", + Handler: _ViewConfig_GetViewConfig_Handler, + }, + { + MethodName: "CreateViewConfig", + Handler: _ViewConfig_CreateViewConfig_Handler, + }, + { + MethodName: "UpdateViewConfig", + Handler: _ViewConfig_UpdateViewConfig_Handler, + }, + { + MethodName: "RenameViewConfig", + Handler: _ViewConfig_RenameViewConfig_Handler, + }, + { + MethodName: "DeleteViewConfig", + Handler: _ViewConfig_DeleteViewConfig_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +} + +// MultiClusterClient is the client API for MultiCluster service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type MultiClusterClient interface { + FetchMultiClusterResource(ctx context.Context, in *FetchMultiClusterResourceReq, opts ...grpc.CallOption) (*CommonResp, error) + FetchMultiClusterCustomResource(ctx context.Context, in *FetchMultiClusterCustomResourceReq, opts ...grpc.CallOption) (*CommonResp, error) + MultiClusterResourceCount(ctx context.Context, in *MultiClusterResourceCountReq, opts ...grpc.CallOption) (*CommonResp, error) +} + +type multiClusterClient struct { + cc grpc.ClientConnInterface +} + +func NewMultiClusterClient(cc grpc.ClientConnInterface) MultiClusterClient { + return &multiClusterClient{cc} +} + +func (c *multiClusterClient) FetchMultiClusterResource(ctx context.Context, in *FetchMultiClusterResourceReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/FetchMultiClusterResource", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *multiClusterClient) FetchMultiClusterCustomResource(ctx context.Context, in *FetchMultiClusterCustomResourceReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/FetchMultiClusterCustomResource", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *multiClusterClient) MultiClusterResourceCount(ctx context.Context, in *MultiClusterResourceCountReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := c.cc.Invoke(ctx, "/clusterresources.MultiCluster/MultiClusterResourceCount", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// MultiClusterServer is the server API for MultiCluster service. +// All implementations must embed UnimplementedMultiClusterServer +// for forward compatibility +type MultiClusterServer interface { + FetchMultiClusterResource(context.Context, *FetchMultiClusterResourceReq) (*CommonResp, error) + FetchMultiClusterCustomResource(context.Context, *FetchMultiClusterCustomResourceReq) (*CommonResp, error) + MultiClusterResourceCount(context.Context, *MultiClusterResourceCountReq) (*CommonResp, error) + mustEmbedUnimplementedMultiClusterServer() +} + +// UnimplementedMultiClusterServer must be embedded to have forward compatible implementations. +type UnimplementedMultiClusterServer struct { +} + +func (UnimplementedMultiClusterServer) FetchMultiClusterResource(context.Context, *FetchMultiClusterResourceReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method FetchMultiClusterResource not implemented") +} +func (UnimplementedMultiClusterServer) FetchMultiClusterCustomResource(context.Context, *FetchMultiClusterCustomResourceReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method FetchMultiClusterCustomResource not implemented") +} +func (UnimplementedMultiClusterServer) MultiClusterResourceCount(context.Context, *MultiClusterResourceCountReq) (*CommonResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method MultiClusterResourceCount not implemented") +} +func (UnimplementedMultiClusterServer) mustEmbedUnimplementedMultiClusterServer() {} + +// UnsafeMultiClusterServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to MultiClusterServer will +// result in compilation errors. +type UnsafeMultiClusterServer interface { + mustEmbedUnimplementedMultiClusterServer() +} + +func RegisterMultiClusterServer(s grpc.ServiceRegistrar, srv MultiClusterServer) { + s.RegisterService(&MultiCluster_ServiceDesc, srv) +} + +func _MultiCluster_FetchMultiClusterResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FetchMultiClusterResourceReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MultiClusterServer).FetchMultiClusterResource(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.MultiCluster/FetchMultiClusterResource", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MultiClusterServer).FetchMultiClusterResource(ctx, req.(*FetchMultiClusterResourceReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MultiCluster_FetchMultiClusterCustomResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FetchMultiClusterCustomResourceReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MultiClusterServer).FetchMultiClusterCustomResource(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.MultiCluster/FetchMultiClusterCustomResource", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MultiClusterServer).FetchMultiClusterCustomResource(ctx, req.(*FetchMultiClusterCustomResourceReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MultiCluster_MultiClusterResourceCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MultiClusterResourceCountReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MultiClusterServer).MultiClusterResourceCount(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/clusterresources.MultiCluster/MultiClusterResourceCount", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MultiClusterServer).MultiClusterResourceCount(ctx, req.(*MultiClusterResourceCountReq)) + } + return interceptor(ctx, in, info, handler) +} + +// MultiCluster_ServiceDesc is the grpc.ServiceDesc for MultiCluster service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var MultiCluster_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "clusterresources.MultiCluster", + HandlerType: (*MultiClusterServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "FetchMultiClusterResource", + Handler: _MultiCluster_FetchMultiClusterResource_Handler, + }, + { + MethodName: "FetchMultiClusterCustomResource", + Handler: _MultiCluster_FetchMultiClusterCustomResource_Handler, + }, + { + MethodName: "MultiClusterResourceCount", + Handler: _MultiCluster_MultiClusterResourceCount_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "cluster-resources.proto", +}