From 51fdd662344a7498c78b6ebca8d380f7cfd8496b Mon Sep 17 00:00:00 2001 From: yuga-cb <82042350+yuga-cb@users.noreply.github.com> Date: Fri, 26 May 2023 13:10:03 -0400 Subject: [PATCH] Update MPCOperation documentation (#29) --- gen/go/coinbase/cloud/clients/v1/doc.go | 17 +- ...t_metadata.coinbase.cloud.mpc_keys.v1.json | 10 +- ...ta.coinbase.cloud.mpc_transactions.v1.json | 2 +- ...etadata.coinbase.cloud.mpc_wallets.v1.json | 2 +- .../cloud/clients/v1/mpc_key_client.go | 30 + .../clients/v1/mpc_transaction_client.go | 6 + .../cloud/clients/v1/mpc_wallet_client.go | 6 + .../coinbase/cloud/mpc_keys/v1/mpc_keys.pb.go | 933 ++++++++++-------- .../cloud/mpc_keys/v1/mpc_keys_grpc.pb.go | 30 + .../v1/mpc_transactions.pb.go | 188 ++-- .../v1/mpc_transactions_grpc.pb.go | 6 + .../cloud/mpc_wallets/v1/mpc_wallets.pb.go | 363 +++---- .../mpc_wallets/v1/mpc_wallets_grpc.pb.go | 6 + .../cloud/mpc_keys/v1/mpc_keys.swagger.json | 10 +- .../v1/mpc_transactions.swagger.json | 2 +- .../mpc_wallets/v1/mpc_wallets.swagger.json | 2 +- .../coinbase/cloud/mpc_keys/v1/mpc_keys.proto | 25 +- .../v1/mpc_transactions.proto | 5 +- .../cloud/mpc_wallets/v1/mpc_wallets.proto | 5 +- 19 files changed, 928 insertions(+), 720 deletions(-) diff --git a/gen/go/coinbase/cloud/clients/v1/doc.go b/gen/go/coinbase/cloud/clients/v1/doc.go index cca277a..9b3e960 100644 --- a/gen/go/coinbase/cloud/clients/v1/doc.go +++ b/gen/go/coinbase/cloud/clients/v1/doc.go @@ -29,7 +29,7 @@ // // - It may require correct/in-range values for request initialization. // // - It may require specifying regional endpoints when creating the service client as shown in: // // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options -// c, err := v1.NewMPCTransactionClient(ctx) +// c, err := v1.NewPoolClient(ctx) // if err != nil { // // TODO: Handle error. // } @@ -49,22 +49,17 @@ // // - It may require correct/in-range values for request initialization. // // - It may require specifying regional endpoints when creating the service client as shown in: // // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options -// c, err := v1.NewMPCTransactionClient(ctx) +// c, err := v1.NewPoolClient(ctx) // if err != nil { // // TODO: Handle error. // } // defer c.Close() // -// req := &mpc_transactionspb.CreateMPCTransactionRequest{ +// req := &poolspb.CreatePoolRequest{ // // TODO: Fill request struct fields. -// // See https://pkg.go.dev/github.com/coinbase/waas-client-library-go/gen/go/coinbase/cloud/mpc_transactions/v1#CreateMPCTransactionRequest. +// // See https://pkg.go.dev/github.com/coinbase/waas-client-library-go/gen/go/coinbase/cloud/pools/v1#CreatePoolRequest. // } -// op, err := c.CreateMPCTransaction(ctx, req) -// if err != nil { -// // TODO: Handle error. -// } -// -// resp, err := op.Wait(ctx) +// resp, err := c.CreatePool(ctx, req) // if err != nil { // // TODO: Handle error. // } @@ -73,7 +68,7 @@ // // Use of Context // -// The ctx passed to NewMPCTransactionClient is used for authentication requests and +// The ctx passed to NewPoolClient is used for authentication requests and // for creating the underlying connection, but is not used for subsequent calls. // Individual methods on the client use the ctx given to them. // diff --git a/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_keys.v1.json b/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_keys.v1.json index 4bd7814..71ad05f 100644 --- a/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_keys.v1.json +++ b/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_keys.v1.json @@ -14,7 +14,7 @@ { "regionTag": "api_v1_generated_MPCKeyService_AddDevice_sync", "title": "api AddDevice Sample", - "description": "AddDevice adds a Device to an existing DeviceGroup. Prior to this API being called, the Device must be registered using\nRegisterDevice RPC. The Device must have access to the backup created with PrepareDeviceBackup RPC to compute this\noperation. After calling this RPC, use ListMPCOperations to poll for the pending AddDevice operation,\nand use the WaaS SDK's ComputeAddDeviceMPCOperation to complete the operation.\nAfter the operation is computed on WaaS SDK, the Device will have access to cryptographic materials\nrequired to process MPCOperations for this DeviceGroup.\nOnce the operation completes on MPCKeyService, the Device will be added to the given DeviceGroup as a new member\nand all existing Devices in the DeviceGroup will stay functional.\nUse the RevokeDevice RPC to remove any of the existing Devices from the DeviceGroup.", + "description": "AddDevice adds a Device to an existing DeviceGroup. Prior to this API being called, the Device must be registered using\nRegisterDevice RPC. The Device must have access to the backup created with PrepareDeviceBackup RPC to compute this\noperation. After calling this RPC, use ListMPCOperations to poll for the pending AddDevice operation,\nand use the WaaS SDK's ComputeAddDeviceMPCOperation to complete the operation.\nAfter the operation is computed on WaaS SDK, the Device will have access to cryptographic materials\nrequired to process MPCOperations for this DeviceGroup.\nOnce the operation completes on MPCKeyService, the Device will be added to the given DeviceGroup as a new member\nand all existing Devices in the DeviceGroup will stay functional.\nUse the RevokeDevice RPC to remove any of the existing Devices from the DeviceGroup.\nNote: because the creation of MPC operations is asynchronous, ListMPCOperations may return a\nNOT_FOUND error immediately after calling this. To complete the operation, continue polling\nListMPCOperations even after it returns a NOT_FOUND error.", "file": "MPCKeyClient/AddDevice/main.go", "language": "GO", "clientMethod": { @@ -60,7 +60,7 @@ { "regionTag": "api_v1_generated_MPCKeyService_CreateDeviceGroup_sync", "title": "api CreateDeviceGroup Sample", - "description": "CreateDeviceGroup creates a DeviceGroup. The DeviceGroup must contain exactly one registered Device, and\nthe Seed in the DeviceGroup must have at least one HardenedChild. After calling this,\nuse ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's\nComputeMPCOperation to complete the operation.", + "description": "CreateDeviceGroup creates a DeviceGroup. The DeviceGroup must contain exactly one registered Device, and\nthe Seed in the DeviceGroup must have at least one HardenedChild. After calling this,\nuse ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's\nComputeMPCOperation to complete the operation.\nNote: because the creation of MPC operations is asynchronous, ListMPCOperations may return a\nNOT_FOUND error immediately after calling this. To complete the operation, continue polling\nListMPCOperations even after it returns a NOT_FOUND error.", "file": "MPCKeyClient/CreateDeviceGroup/main.go", "language": "GO", "clientMethod": { @@ -152,7 +152,7 @@ { "regionTag": "api_v1_generated_MPCKeyService_CreateSignature_sync", "title": "api CreateSignature Sample", - "description": "CreateSignature creates a Signature using an MPCKey. After calling this, use ListMPCOperations\nto poll for the pending CreateSignature operation, and use the WaaS SDK's\ncomputeMPCOperation to complete the operation.", + "description": "CreateSignature creates a Signature using an MPCKey. After calling this, use ListMPCOperations\nto poll for the pending CreateSignature operation, and use the WaaS SDK's\ncomputeMPCOperation to complete the operation.\nNote: because the creation of MPC operations is asynchronous, ListMPCOperations may return a\nNOT_FOUND error immediately after calling this. To complete the operation, continue polling\nListMPCOperations even after it returns a NOT_FOUND error.", "file": "MPCKeyClient/CreateSignature/main.go", "language": "GO", "clientMethod": { @@ -382,7 +382,7 @@ { "regionTag": "api_v1_generated_MPCKeyService_PrepareDeviceArchive_sync", "title": "api PrepareDeviceArchive Sample", - "description": "PrepareDeviceArchive prepares an archive in the local storage of the given Device. The archive contains cryptographic materials\nthat can be used to export MPCKeys, which have the given DeviceGroup as their parent.\nThe Device specified in the request must be a member of this DeviceGroup and must participate\nin the associated MPC operation for the archive to be prepared. After calling this,\nuse ListMPCOperations to poll for the pending PrepareDeviceArchive operation, and use the WaaS SDK's\nComputeMPCOperation to complete the operation. Once the operation completes, the Device can utilize the\nWaaS SDK to export the private keys corresponding to each of the MPCKeys under this DeviceGroup.", + "description": "PrepareDeviceArchive prepares an archive in the local storage of the given Device. The archive contains cryptographic materials\nthat can be used to export MPCKeys, which have the given DeviceGroup as their parent.\nThe Device specified in the request must be a member of this DeviceGroup and must participate\nin the associated MPC operation for the archive to be prepared. After calling this,\nuse ListMPCOperations to poll for the pending PrepareDeviceArchive operation, and use the WaaS SDK's\nComputeMPCOperation to complete the operation. Once the operation completes, the Device can utilize the\nWaaS SDK to export the private keys corresponding to each of the MPCKeys under this DeviceGroup.\nNote: because the creation of MPC operations is asynchronous, ListMPCOperations may return a\nNOT_FOUND error immediately after calling this. To complete the operation, continue polling\nListMPCOperations even after it returns a NOT_FOUND error.", "file": "MPCKeyClient/PrepareDeviceArchive/main.go", "language": "GO", "clientMethod": { @@ -428,7 +428,7 @@ { "regionTag": "api_v1_generated_MPCKeyService_PrepareDeviceBackup_sync", "title": "api PrepareDeviceBackup Sample", - "description": "PrepareDeviceBackup prepares a backup in the given Device. The backup contains certain cryptographic materials\nthat can be used to restore MPCKeys, which have the given DeviceGroup as their parent, on a new Device.\nThe Device specified in the request must be a member of this DeviceGroup and must participate in the associated\nMPC operation for the backup to be prepared.\nAfter calling this RPC, use ListMPCOperations to poll for the pending PrepareDeviceBackup operation,\nand use the WaaS SDK's ComputeMPCOperation to complete the operation. Once the operation completes,\nthe Device can utilize WaaS SDK to download the backup bundle. We recommend storing this backup bundle securely\nin a storage provider of your choice. If the user loses access to their existing Device and wants to recover\nMPCKeys in the given DeviceGroup on a new Device, use AddDevice RPC on the MPCKeyService.", + "description": "PrepareDeviceBackup prepares a backup in the given Device. The backup contains certain cryptographic materials\nthat can be used to restore MPCKeys, which have the given DeviceGroup as their parent, on a new Device.\nThe Device specified in the request must be a member of this DeviceGroup and must participate in the associated\nMPC operation for the backup to be prepared.\nAfter calling this RPC, use ListMPCOperations to poll for the pending PrepareDeviceBackup operation,\nand use the WaaS SDK's ComputeMPCOperation to complete the operation. Once the operation completes,\nthe Device can utilize WaaS SDK to download the backup bundle. We recommend storing this backup bundle securely\nin a storage provider of your choice. If the user loses access to their existing Device and wants to recover\nMPCKeys in the given DeviceGroup on a new Device, use AddDevice RPC on the MPCKeyService.\nNote: because the creation of MPC operations is asynchronous, ListMPCOperations may return a\nNOT_FOUND error immediately after calling this. To complete the operation, continue polling\nListMPCOperations even after it returns a NOT_FOUND error.", "file": "MPCKeyClient/PrepareDeviceBackup/main.go", "language": "GO", "clientMethod": { diff --git a/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_transactions.v1.json b/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_transactions.v1.json index 88d808e..e71a5f6 100644 --- a/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_transactions.v1.json +++ b/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_transactions.v1.json @@ -14,7 +14,7 @@ { "regionTag": "api_v1_generated_MPCTransactionService_CreateMPCTransaction_sync", "title": "api CreateMPCTransaction Sample", - "description": "CreateMPCTransaction creates an MPCTransaction. The long-running operation returned from this API contains\ninformation about the state of the MPCTransaction that can be used to complete the operation.\nThe LRO is considered Done once the MPCTransaction reaches a state of `CONFIRMING`` (i.e.,\nbroadcast on-chain). See the MPCTransaction documentation for its lifecycle.", + "description": "CreateMPCTransaction creates an MPCTransaction. The long-running operation returned from this API contains\ninformation about the state of the MPCTransaction that can be used to complete the operation.\nThe LRO is considered Done once the MPCTransaction reaches a state of `CONFIRMING`` (i.e.,\nbroadcast on-chain). See the MPCTransaction documentation for its lifecycle.\nNote: because the creation of MPC operations is asynchronous, ListMPCOperations may return a\nNOT_FOUND error immediately after calling this. To complete the operation, continue polling\nListMPCOperations even after it returns a NOT_FOUND error.", "file": "MPCTransactionClient/CreateMPCTransaction/main.go", "language": "GO", "clientMethod": { diff --git a/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_wallets.v1.json b/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_wallets.v1.json index 104e268..14b3af4 100644 --- a/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_wallets.v1.json +++ b/gen/go/coinbase/cloud/clients/v1/internal/snippets/snippet_metadata.coinbase.cloud.mpc_wallets.v1.json @@ -14,7 +14,7 @@ { "regionTag": "api_v1_generated_MPCWalletService_CreateMPCWallet_sync", "title": "api CreateMPCWallet Sample", - "description": "CreateMPCWallet creates an MPCWallet. The Device in the request must have been registered using MPCKeyService's\nRegisterDevice before this method is called. Under the hood, this calls MPCKeyService's\nCreateDeviceGroup with the appropriate parameters. After calling this, use MPCKeyService's\nListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's\ncomputeMPCOperation to complete the operation.", + "description": "CreateMPCWallet creates an MPCWallet. The Device in the request must have been registered using MPCKeyService's\nRegisterDevice before this method is called. Under the hood, this calls MPCKeyService's\nCreateDeviceGroup with the appropriate parameters. After calling this, use MPCKeyService's\nListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's\ncomputeMPCOperation to complete the operation.\nNote: because the creation of MPC operations is asynchronous, ListMPCOperations may return a\nNOT_FOUND error immediately after calling this. To complete the operation, continue polling\nListMPCOperations even after it returns a NOT_FOUND error.", "file": "MPCWalletClient/CreateMPCWallet/main.go", "language": "GO", "clientMethod": { diff --git a/gen/go/coinbase/cloud/clients/v1/mpc_key_client.go b/gen/go/coinbase/cloud/clients/v1/mpc_key_client.go index 5730f3e..f0cf0ed 100644 --- a/gen/go/coinbase/cloud/clients/v1/mpc_key_client.go +++ b/gen/go/coinbase/cloud/clients/v1/mpc_key_client.go @@ -229,6 +229,9 @@ func (c *MPCKeyClient) GetDevice(ctx context.Context, req *mpc_keyspb.GetDeviceR // the Seed in the DeviceGroup must have at least one HardenedChild. After calling this, // use ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK’s // ComputeMPCOperation to complete the operation. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *MPCKeyClient) CreateDeviceGroup(ctx context.Context, req *mpc_keyspb.CreateDeviceGroupRequest, opts ...gax.CallOption) (*CreateDeviceGroupOperation, error) { return c.internalClient.CreateDeviceGroup(ctx, req, opts...) } @@ -265,6 +268,9 @@ func (c *MPCKeyClient) GetMPCKey(ctx context.Context, req *mpc_keyspb.GetMPCKeyR // CreateSignature creates a Signature using an MPCKey. After calling this, use ListMPCOperations // to poll for the pending CreateSignature operation, and use the WaaS SDK’s // computeMPCOperation to complete the operation. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *MPCKeyClient) CreateSignature(ctx context.Context, req *mpc_keyspb.CreateSignatureRequest, opts ...gax.CallOption) (*CreateSignatureOperation, error) { return c.internalClient.CreateSignature(ctx, req, opts...) } @@ -282,6 +288,9 @@ func (c *MPCKeyClient) CreateSignatureOperation(name string) *CreateSignatureOpe // use ListMPCOperations to poll for the pending PrepareDeviceArchive operation, and use the WaaS SDK’s // ComputeMPCOperation to complete the operation. Once the operation completes, the Device can utilize the // WaaS SDK to export the private keys corresponding to each of the MPCKeys under this DeviceGroup. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *MPCKeyClient) PrepareDeviceArchive(ctx context.Context, req *mpc_keyspb.PrepareDeviceArchiveRequest, opts ...gax.CallOption) (*PrepareDeviceArchiveOperation, error) { return c.internalClient.PrepareDeviceArchive(ctx, req, opts...) } @@ -301,6 +310,9 @@ func (c *MPCKeyClient) PrepareDeviceArchiveOperation(name string) *PrepareDevice // the Device can utilize WaaS SDK to download the backup bundle. We recommend storing this backup bundle securely // in a storage provider of your choice. If the user loses access to their existing Device and wants to recover // MPCKeys in the given DeviceGroup on a new Device, use AddDevice RPC on the MPCKeyService. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *MPCKeyClient) PrepareDeviceBackup(ctx context.Context, req *mpc_keyspb.PrepareDeviceBackupRequest, opts ...gax.CallOption) (*PrepareDeviceBackupOperation, error) { return c.internalClient.PrepareDeviceBackup(ctx, req, opts...) } @@ -320,6 +332,9 @@ func (c *MPCKeyClient) PrepareDeviceBackupOperation(name string) *PrepareDeviceB // Once the operation completes on MPCKeyService, the Device will be added to the given DeviceGroup as a new member // and all existing Devices in the DeviceGroup will stay functional. // Use the RevokeDevice RPC to remove any of the existing Devices from the DeviceGroup. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *MPCKeyClient) AddDevice(ctx context.Context, req *mpc_keyspb.AddDeviceRequest, opts ...gax.CallOption) (*AddDeviceOperation, error) { return c.internalClient.AddDevice(ctx, req, opts...) } @@ -878,6 +893,9 @@ func (c *mPCKeyRESTClient) GetDevice(ctx context.Context, req *mpc_keyspb.GetDev // the Seed in the DeviceGroup must have at least one HardenedChild. After calling this, // use ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK’s // ComputeMPCOperation to complete the operation. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *mPCKeyRESTClient) CreateDeviceGroup(ctx context.Context, req *mpc_keyspb.CreateDeviceGroupRequest, opts ...gax.CallOption) (*CreateDeviceGroupOperation, error) { m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} body := req.GetDeviceGroup() @@ -1179,6 +1197,9 @@ func (c *mPCKeyRESTClient) GetMPCKey(ctx context.Context, req *mpc_keyspb.GetMPC // CreateSignature creates a Signature using an MPCKey. After calling this, use ListMPCOperations // to poll for the pending CreateSignature operation, and use the WaaS SDK’s // computeMPCOperation to complete the operation. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *mPCKeyRESTClient) CreateSignature(ctx context.Context, req *mpc_keyspb.CreateSignatureRequest, opts ...gax.CallOption) (*CreateSignatureOperation, error) { m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} body := req.GetSignature() @@ -1256,6 +1277,9 @@ func (c *mPCKeyRESTClient) CreateSignature(ctx context.Context, req *mpc_keyspb. // use ListMPCOperations to poll for the pending PrepareDeviceArchive operation, and use the WaaS SDK’s // ComputeMPCOperation to complete the operation. Once the operation completes, the Device can utilize the // WaaS SDK to export the private keys corresponding to each of the MPCKeys under this DeviceGroup. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *mPCKeyRESTClient) PrepareDeviceArchive(ctx context.Context, req *mpc_keyspb.PrepareDeviceArchiveRequest, opts ...gax.CallOption) (*PrepareDeviceArchiveOperation, error) { m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} jsonReq, err := m.Marshal(req) @@ -1327,6 +1351,9 @@ func (c *mPCKeyRESTClient) PrepareDeviceArchive(ctx context.Context, req *mpc_ke // the Device can utilize WaaS SDK to download the backup bundle. We recommend storing this backup bundle securely // in a storage provider of your choice. If the user loses access to their existing Device and wants to recover // MPCKeys in the given DeviceGroup on a new Device, use AddDevice RPC on the MPCKeyService. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *mPCKeyRESTClient) PrepareDeviceBackup(ctx context.Context, req *mpc_keyspb.PrepareDeviceBackupRequest, opts ...gax.CallOption) (*PrepareDeviceBackupOperation, error) { m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} jsonReq, err := m.Marshal(req) @@ -1398,6 +1425,9 @@ func (c *mPCKeyRESTClient) PrepareDeviceBackup(ctx context.Context, req *mpc_key // Once the operation completes on MPCKeyService, the Device will be added to the given DeviceGroup as a new member // and all existing Devices in the DeviceGroup will stay functional. // Use the RevokeDevice RPC to remove any of the existing Devices from the DeviceGroup. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *mPCKeyRESTClient) AddDevice(ctx context.Context, req *mpc_keyspb.AddDeviceRequest, opts ...gax.CallOption) (*AddDeviceOperation, error) { m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} jsonReq, err := m.Marshal(req) diff --git a/gen/go/coinbase/cloud/clients/v1/mpc_transaction_client.go b/gen/go/coinbase/cloud/clients/v1/mpc_transaction_client.go index 6ae6c74..de8413d 100644 --- a/gen/go/coinbase/cloud/clients/v1/mpc_transaction_client.go +++ b/gen/go/coinbase/cloud/clients/v1/mpc_transaction_client.go @@ -145,6 +145,9 @@ func (c *MPCTransactionClient) Connection() *grpc.ClientConn { // information about the state of the MPCTransaction that can be used to complete the operation. // The LRO is considered Done once the MPCTransaction reaches a state of `CONFIRMING`` (i.e., // broadcast on-chain). See the MPCTransaction documentation for its lifecycle. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *MPCTransactionClient) CreateMPCTransaction(ctx context.Context, req *mpc_transactionspb.CreateMPCTransactionRequest, opts ...gax.CallOption) (*CreateMPCTransactionOperation, error) { return c.internalClient.CreateMPCTransaction(ctx, req, opts...) } @@ -435,6 +438,9 @@ func (c *mPCTransactionGRPCClient) ListMPCTransactions(ctx context.Context, req // information about the state of the MPCTransaction that can be used to complete the operation. // The LRO is considered Done once the MPCTransaction reaches a state of `CONFIRMING`` (i.e., // broadcast on-chain). See the MPCTransaction documentation for its lifecycle. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *mPCTransactionRESTClient) CreateMPCTransaction(ctx context.Context, req *mpc_transactionspb.CreateMPCTransactionRequest, opts ...gax.CallOption) (*CreateMPCTransactionOperation, error) { m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} jsonReq, err := m.Marshal(req) diff --git a/gen/go/coinbase/cloud/clients/v1/mpc_wallet_client.go b/gen/go/coinbase/cloud/clients/v1/mpc_wallet_client.go index 442760a..077480a 100644 --- a/gen/go/coinbase/cloud/clients/v1/mpc_wallet_client.go +++ b/gen/go/coinbase/cloud/clients/v1/mpc_wallet_client.go @@ -177,6 +177,9 @@ func (c *MPCWalletClient) Connection() *grpc.ClientConn { // CreateDeviceGroup with the appropriate parameters. After calling this, use MPCKeyService’s // ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK’s // computeMPCOperation to complete the operation. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *MPCWalletClient) CreateMPCWallet(ctx context.Context, req *mpc_walletspb.CreateMPCWalletRequest, opts ...gax.CallOption) (*CreateMPCWalletOperation, error) { return c.internalClient.CreateMPCWallet(ctx, req, opts...) } @@ -666,6 +669,9 @@ func (c *mPCWalletGRPCClient) ListBalanceDetails(ctx context.Context, req *mpc_w // CreateDeviceGroup with the appropriate parameters. After calling this, use MPCKeyService’s // ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK’s // computeMPCOperation to complete the operation. +// Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a +// NOT_FOUND error immediately after calling this. To complete the operation, continue polling +// ListMPCOperations even after it returns a NOT_FOUND error. func (c *mPCWalletRESTClient) CreateMPCWallet(ctx context.Context, req *mpc_walletspb.CreateMPCWalletRequest, opts ...gax.CallOption) (*CreateMPCWalletOperation, error) { m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} body := req.GetMpcWallet() diff --git a/gen/go/coinbase/cloud/mpc_keys/v1/mpc_keys.pb.go b/gen/go/coinbase/cloud/mpc_keys/v1/mpc_keys.pb.go index 03074a4..4f20985 100644 --- a/gen/go/coinbase/cloud/mpc_keys/v1/mpc_keys.pb.go +++ b/gen/go/coinbase/cloud/mpc_keys/v1/mpc_keys.pb.go @@ -2332,7 +2332,7 @@ var file_coinbase_cloud_mpc_keys_v1_mpc_keys_proto_rawDesc = []byte{ 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0xe2, 0x41, 0x01, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xcf, 0x3b, 0x0a, 0x0d, 0x4d, 0x50, 0x43, + 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0x9d, 0x45, 0x0a, 0x0d, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8d, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, @@ -2362,15 +2362,15 @@ var file_coinbase_cloud_mpc_keys_v1_mpc_keys_proto_rawDesc = []byte{ 0x79, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2f, 0x2a, 0x7d, 0x12, 0xcc, 0x04, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, + 0x2f, 0x2a, 0x7d, 0x12, 0xc2, 0x06, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x34, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe1, - 0x03, 0x92, 0x41, 0xd5, 0x02, 0x12, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0xbf, 0x02, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd7, + 0x05, 0x92, 0x41, 0xcb, 0x04, 0x12, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0xb5, 0x04, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x65, @@ -2390,438 +2390,515 @@ var file_coinbase_cloud_mpc_keys_v1_mpc_keys_proto_rawDesc = []byte{ 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x27, 0x73, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0xca, 0x41, 0x28, 0x0a, 0x0b, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x23, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x31, 0x3a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, - 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, 0x6f, - 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x12, 0xdc, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, - 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x22, 0x6e, 0x92, 0x41, 0x3b, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x29, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, - 0x73, 0x20, 0x61, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, - 0x62, 0x79, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x2e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, - 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, - 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, - 0x7d, 0x12, 0xa9, 0x03, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, - 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, - 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, - 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x02, 0x92, 0x41, 0xe0, 0x01, 0x12, 0x11, 0x4c, 0x69, 0x73, - 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xca, - 0x01, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x61, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x0a, 0x0a, 0x20, 0x55, 0x73, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, - 0x50, 0x49, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, - 0x53, 0x44, 0x4b, 0x27, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4d, 0x50, 0x43, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0xda, 0x41, 0x06, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x31, 0x2f, - 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, - 0x6d, 0x70, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xdf, 0x02, - 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x12, 0x2f, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x20, 0x4e, 0x6f, 0x74, + 0x65, 0x3a, 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x50, 0x43, 0x20, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x73, 0x79, + 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x2c, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, + 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x61, 0x79, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, + 0x55, 0x4e, 0x44, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x65, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x20, 0x70, 0x6f, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, + 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, + 0xca, 0x41, 0x28, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x23, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x3a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xdc, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x2e, 0x63, 0x6f, + 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x22, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x50, 0x43, - 0x4b, 0x65, 0x79, 0x22, 0xf9, 0x01, 0x92, 0x41, 0xa8, 0x01, 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x1a, 0x97, 0x01, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x2e, 0x20, 0x54, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x48, 0x61, - 0x72, 0x64, 0x65, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x53, 0x65, 0x65, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, - 0x79, 0x2e, 0xda, 0x41, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6d, 0x70, 0x63, 0x5f, - 0x6b, 0x65, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x3a, 0x07, 0x6d, 0x70, 0x63, 0x5f, 0x6b, - 0x65, 0x79, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x6e, 0x92, 0x41, 0x3b, 0x12, 0x0e, 0x47, 0x65, + 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x29, 0x52, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x62, 0x79, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6d, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, - 0xce, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x12, 0x2c, 0x2e, + 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa9, 0x03, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, - 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x50, - 0x43, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x63, 0x6f, - 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, - 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x22, - 0x6f, 0x92, 0x41, 0x32, 0x12, 0x09, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x1a, - 0x25, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, - 0x43, 0x4b, 0x65, 0x79, 0x20, 0x62, 0x79, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, - 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x2f, 0x2a, 0x7d, - 0x12, 0xcd, 0x03, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, + 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x02, 0x92, 0x41, 0xe0, + 0x01, 0x12, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xca, 0x01, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x0a, 0x0a, 0x20, 0x55, 0x73, 0x65, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x62, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x27, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, + 0x12, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, + 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6d, 0x70, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0xdf, 0x02, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, + 0x43, 0x4b, 0x65, 0x79, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe6, 0x02, 0x92, 0x41, 0xdd, 0x01, 0x12, 0x0f, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, - 0xc9, 0x01, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x4d, - 0x50, 0x43, 0x4b, 0x65, 0x79, 0x2e, 0x0a, 0x0a, 0x20, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, 0x63, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x27, 0x73, 0x20, 0x63, 0x6f, 0x6d, - 0x70, 0x75, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0xca, 0x41, 0x24, 0x0a, 0x09, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xda, 0x41, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, 0x4b, 0x65, - 0x79, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, - 0x12, 0xc1, 0x07, 0x0a, 0x14, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x69, 0x6e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, - 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, - 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0xd0, 0x06, 0x92, 0x41, 0xbf, 0x05, 0x12, 0x14, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, - 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x1a, 0xa6, - 0x05, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x0a, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, - 0x68, 0x69, 0x63, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x73, - 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, - 0x65, 0x20, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, - 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x4d, 0x50, 0x43, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, - 0x65, 0x64, 0x2e, 0x20, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x73, 0x74, - 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x27, 0x73, 0x20, 0x43, 0x6f, 0x6d, - 0x70, 0x75, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x20, 0x4f, 0x6e, - 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, - 0x7a, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x20, - 0x74, 0x6f, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x73, 0x20, - 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0xca, 0x41, 0x2b, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x13, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x43, 0x3a, 0x01, 0x2a, 0x22, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, - 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x12, 0x85, 0x09, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x36, 0x2e, 0x63, - 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, - 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, - 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, - 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x96, 0x08, 0x92, 0x41, 0x87, 0x07, 0x12, 0x13, 0x50, 0x72, 0x65, 0x70, - 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x1a, - 0xef, 0x06, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x73, 0x20, 0x61, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, - 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x63, - 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, - 0x70, 0x68, 0x69, 0x63, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, - 0x79, 0x73, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x6d, 0x75, 0x73, - 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, - 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x4d, 0x50, 0x43, 0x20, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x65, 0x70, - 0x61, 0x72, 0x65, 0x64, 0x2e, 0x20, 0x0a, 0x0a, 0x20, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, 0x63, - 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x52, 0x50, 0x43, 0x2c, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x50, - 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, - 0x44, 0x4b, 0x27, 0x73, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x20, 0x0a, 0x0a, 0x20, 0x4f, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, - 0x20, 0x53, 0x44, 0x4b, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x20, 0x0a, 0x0a, 0x20, 0x57, 0x65, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x73, - 0x65, 0x63, 0x75, 0x72, 0x65, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x20, 0x0a, 0x0a, - 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x6c, 0x6f, 0x73, - 0x65, 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x69, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x20, 0x6e, 0x65, - 0x77, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x41, 0x64, - 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x52, 0x50, 0x43, 0x20, 0x6f, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0xca, 0x41, 0x2a, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x1b, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, - 0x13, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x01, 0x2a, 0x22, 0x3d, 0x2f, - 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0xd7, 0x08, 0x0a, - 0x09, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x69, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x22, 0xf9, 0x01, 0x92, 0x41, 0xa8, 0x01, + 0x12, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x1a, 0x97, + 0x01, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x4b, + 0x65, 0x79, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, + 0x65, 0x20, 0x61, 0x20, 0x48, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x69, 0x6c, + 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x65, 0x65, 0x64, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x2e, 0xda, 0x41, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x2c, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x3a, + 0x07, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6d, 0x70, + 0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, 0xce, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, + 0x4b, 0x65, 0x79, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x50, 0x43, 0x4b, 0x65, 0x79, 0x22, 0x6f, 0x92, 0x41, 0x32, 0x12, 0x09, 0x47, 0x65, 0x74, 0x4d, + 0x50, 0x43, 0x4b, 0x65, 0x79, 0x1a, 0x25, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, + 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x20, 0x62, 0x79, 0x20, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, 0x4b, + 0x65, 0x79, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc3, 0x05, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, - 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xfc, 0x07, 0x92, 0x41, 0x81, 0x07, 0x12, 0x09, - 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x1a, 0xf3, 0x06, 0x41, 0x64, 0x64, 0x73, - 0x20, 0x61, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x20, - 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x20, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x20, 0x74, 0x6f, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, - 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x52, 0x50, 0x43, 0x2e, 0x20, - 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x75, - 0x73, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, - 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x52, 0x50, - 0x43, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x0a, 0x0a, 0x20, + 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xdc, 0x04, + 0x92, 0x41, 0xd3, 0x03, 0x12, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0xbf, 0x03, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x61, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x2e, 0x0a, 0x0a, 0x20, 0x41, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x6f, 0x6c, 0x6c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, + 0x27, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x0a, 0x0a, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x66, 0x20, 0x4d, 0x50, 0x43, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75, 0x73, + 0x2c, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x20, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x20, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x20, 0x54, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x69, 0x6e, 0x75, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x65, + 0x76, 0x65, 0x6e, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, + 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0xca, 0x41, 0x24, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, + 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0xb7, 0x09, 0x0a, + 0x14, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc6, 0x08, + 0x92, 0x41, 0xb5, 0x07, 0x12, 0x14, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x1a, 0x9c, 0x07, 0x50, 0x72, 0x65, + 0x70, 0x61, 0x72, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, + 0x65, 0x6e, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x73, 0x20, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, + 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, + 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x73, 0x2c, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, + 0x65, 0x6e, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x61, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x0a, + 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x4d, 0x50, 0x43, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x20, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x52, 0x50, 0x43, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x73, 0x74, - 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, - 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x27, - 0x73, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, - 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x57, 0x61, 0x61, - 0x53, 0x20, 0x53, 0x44, 0x4b, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, - 0x68, 0x69, 0x63, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x20, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x20, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x20, 0x20, 0x0a, 0x0a, 0x4f, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x6f, 0x6c, + 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, + 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x27, 0x73, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, + 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x20, 0x4f, 0x6e, 0x63, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x20, 0x74, 0x6f, 0x20, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x73, 0x20, 0x75, 0x6e, 0x64, 0x65, + 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x0a, 0x0a, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, 0x62, 0x65, 0x63, 0x61, + 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x50, 0x43, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, + 0x75, 0x73, 0x2c, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x20, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x20, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x20, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x4c, + 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x69, 0x74, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, + 0x4e, 0x44, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0xca, 0x41, 0x2b, 0x0a, 0x0b, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x50, 0x72, 0x65, 0x70, 0x61, + 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x13, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x43, 0x3a, 0x01, 0x2a, 0x22, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, + 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0xfb, 0x0a, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x70, 0x61, + 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x36, + 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x70, + 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x0a, 0x92, 0x41, 0xfd, 0x08, 0x12, 0x13, 0x50, 0x72, + 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x1a, 0xe5, 0x08, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x73, 0x20, 0x61, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, + 0x65, 0x6e, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, + 0x20, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x4d, 0x50, 0x43, + 0x4b, 0x65, 0x79, 0x73, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x68, 0x61, 0x76, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, + 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x4d, 0x50, 0x43, 0x20, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, + 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x20, 0x0a, 0x0a, 0x20, 0x41, 0x66, 0x74, 0x65, 0x72, + 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x52, 0x50, + 0x43, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x6f, 0x6c, 0x6c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, + 0x20, 0x53, 0x44, 0x4b, 0x27, 0x73, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4d, 0x50, + 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x0a, 0x0a, 0x20, 0x4f, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x6e, - 0x65, 0x77, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x6c, - 0x6c, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x20, 0x20, 0x0a, 0x0a, 0x4d, - 0x50, 0x43, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x52, 0x50, 0x43, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x66, - 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6e, - 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0xca, - 0x41, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x11, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xda, 0x41, 0x13, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x3a, 0x01, - 0x2a, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x64, 0x64, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb8, 0x05, 0x0a, 0x0c, 0x52, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0xde, 0x04, 0x92, 0x41, 0xb7, 0x04, 0x12, 0x0c, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x1a, 0xa6, 0x04, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x73, 0x20, - 0x61, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, - 0x66, 0x2e, 0x0a, 0x20, 0x4f, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x2c, 0x20, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x6d, 0x61, - 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, - 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, - 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, - 0x20, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x20, 0x69, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, - 0x20, 0x6f, 0x66, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, - 0x49, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x20, 0x73, - 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2c, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, - 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x20, 0x45, 0x6e, 0x73, - 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x79, - 0x6f, 0x75, 0x72, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 0x64, 0x64, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x20, 0x52, 0x50, 0x43, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, - 0x69, 0x6e, 0x76, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x52, 0x65, 0x76, - 0x6f, 0x6b, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x52, 0x50, 0x43, 0x2e, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, - 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x72, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x1a, 0xb6, 0x07, 0x92, 0x41, 0x87, 0x07, 0x12, 0x84, 0x07, 0x4d, 0x50, 0x43, 0x4b, 0x65, - 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x73, 0x20, 0x41, 0x50, 0x49, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x2d, 0x70, 0x61, 0x72, 0x74, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x4d, 0x50, 0x43, 0x29, 0x2e, 0x20, 0x49, 0x74, 0x20, 0x73, - 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, - 0x73, 0x69, 0x64, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, - 0x20, 0x4b, 0x65, 0x79, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, - 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x69, 0x63, - 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x20, 0x28, 0x48, 0x44, 0x29, 0x20, 0x54, 0x72, 0x65, 0x65, 0x2c, 0x20, 0x66, 0x6f, - 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x42, 0x49, 0x50, 0x2d, 0x33, - 0x32, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x49, 0x50, 0x2d, 0x34, 0x34, 0x2e, 0x20, 0x54, 0x68, - 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x73, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x3a, 0x0a, 0x20, 0x31, - 0x2e, 0x20, 0x43, 0x61, 0x6c, 0x6c, 0x20, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x0a, 0x20, 0x32, 0x2e, 0x20, 0x43, 0x61, 0x6c, 0x6c, 0x20, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, - 0x64, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, - 0x73, 0x6f, 0x6c, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x61, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x48, 0x61, 0x72, - 0x64, 0x65, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x65, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x33, 0x2e, 0x20, - 0x50, 0x6f, 0x6c, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x75, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, - 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x2e, 0x0a, 0x20, 0x34, 0x2e, 0x20, 0x43, 0x61, 0x6c, - 0x6c, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x2c, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x0a, - 0x20, 0x35, 0x2e, 0x20, 0x43, 0x61, 0x6c, 0x6c, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x2e, 0x0a, 0x20, 0x36, 0x2e, 0x20, 0x50, 0x6f, 0x6c, 0x6c, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x53, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x4c, 0x69, 0x73, - 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, - 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x2e, 0xca, - 0x41, 0x28, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, + 0x6c, 0x65, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x57, 0x61, + 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x20, 0x0a, 0x0a, 0x20, 0x57, 0x65, 0x20, 0x72, 0x65, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x20, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x20, + 0x6f, 0x66, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x20, + 0x0a, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x6c, + 0x6f, 0x73, 0x65, 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, + 0x68, 0x65, 0x69, 0x72, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x73, 0x20, 0x74, + 0x6f, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x20, + 0x6e, 0x65, 0x77, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, + 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x52, 0x50, 0x43, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x0a, 0x0a, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, 0x62, 0x65, 0x63, 0x61, + 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x50, 0x43, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, + 0x75, 0x73, 0x2c, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x20, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x20, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x20, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x20, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x4c, + 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x69, 0x74, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, + 0x4e, 0x44, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0xca, 0x41, 0x2a, 0x0a, 0x0b, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x50, 0x72, 0x65, 0x70, 0x61, + 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x13, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x42, 0x3a, 0x01, 0x2a, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, + 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x12, 0xcd, 0x0a, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0xf2, 0x09, 0x92, 0x41, 0xf7, 0x08, 0x12, 0x09, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x1a, 0xe9, 0x08, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x20, 0x0a, 0x0a, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, + 0x49, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x2c, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, + 0x62, 0x65, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x75, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x20, 0x52, 0x50, 0x43, 0x2e, 0x20, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, + 0x68, 0x20, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x20, 0x52, 0x50, 0x43, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x75, 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x0a, 0x0a, 0x20, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, 0x63, 0x61, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x52, 0x50, 0x43, 0x2c, 0x20, + 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x64, + 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, + 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x27, 0x73, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, + 0x65, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x20, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, + 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x72, 0x69, 0x61, 0x6c, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x74, + 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x20, 0x20, 0x0a, + 0x0a, 0x4f, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x20, 0x6f, 0x6e, + 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2c, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, + 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x79, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x2e, 0x20, 0x20, 0x0a, 0x0a, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, + 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x52, 0x50, + 0x43, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x72, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x0a, 0x0a, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, + 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x50, 0x43, 0x20, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, + 0x72, 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x2c, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, + 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, + 0x6c, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x69, 0x74, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x4e, 0x4f, 0x54, + 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0xca, 0x41, 0x20, + 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x11, 0x41, + 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xda, 0x41, 0x13, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2c, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x3a, 0x01, 0x2a, 0x22, + 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x64, 0x64, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x12, 0xb8, 0x05, 0x0a, 0x0c, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xde, + 0x04, 0x92, 0x41, 0xb7, 0x04, 0x12, 0x0c, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x1a, 0xa6, 0x04, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x73, 0x20, 0x61, 0x20, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x2e, + 0x0a, 0x20, 0x4f, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x2c, 0x20, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x6d, 0x61, 0x74, 0x65, + 0x72, 0x69, 0x61, 0x6c, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x70, 0x68, + 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x4d, + 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x20, 0x69, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, + 0x66, 0x2e, 0x20, 0x55, 0x73, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x20, + 0x69, 0x6e, 0x20, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x20, 0x73, 0x75, 0x63, + 0x68, 0x20, 0x61, 0x73, 0x20, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2c, + 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, + 0x6e, 0x65, 0x77, 0x20, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2c, 0x20, 0x65, 0x74, 0x63, 0x2e, 0x0a, 0x20, 0x45, 0x6e, 0x73, 0x75, 0x72, + 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, + 0x6c, 0x6c, 0x79, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x79, 0x6f, 0x75, + 0x72, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x20, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x20, 0x52, 0x50, 0x43, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, + 0x76, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x52, 0x65, 0x76, 0x6f, 0x6b, + 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x52, 0x50, 0x43, 0x2e, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x76, + 0x31, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x1a, + 0xb6, 0x07, 0x92, 0x41, 0x87, 0x07, 0x12, 0x84, 0x07, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x73, 0x20, + 0x41, 0x50, 0x49, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, + 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x20, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x2d, 0x70, 0x61, 0x72, 0x74, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x4d, 0x50, 0x43, 0x29, 0x2e, 0x20, 0x49, 0x74, 0x20, 0x73, 0x68, 0x6f, + 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x73, 0x69, + 0x64, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x20, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x4b, + 0x65, 0x79, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, + 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x69, 0x63, 0x61, 0x6c, + 0x6c, 0x79, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x20, 0x28, 0x48, 0x44, 0x29, 0x20, 0x54, 0x72, 0x65, 0x65, 0x2c, 0x20, 0x66, 0x6f, 0x6c, 0x6c, + 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x42, 0x49, 0x50, 0x2d, 0x33, 0x32, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x42, 0x49, 0x50, 0x2d, 0x34, 0x34, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x73, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x3a, 0x0a, 0x20, 0x31, 0x2e, 0x20, + 0x43, 0x61, 0x6c, 0x6c, 0x20, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x0a, 0x20, 0x32, 0x2e, 0x20, 0x43, 0x61, 0x6c, 0x6c, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x73, 0x6f, + 0x6c, 0x65, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x74, + 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x48, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x65, 0x64, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x53, 0x65, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x33, 0x2e, 0x20, 0x50, 0x6f, + 0x6c, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, + 0x53, 0x20, 0x53, 0x44, 0x4b, 0x2e, 0x0a, 0x20, 0x34, 0x2e, 0x20, 0x43, 0x61, 0x6c, 0x6c, 0x20, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x2c, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x0a, 0x20, 0x35, + 0x2e, 0x20, 0x43, 0x61, 0x6c, 0x6c, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2c, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x79, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x4d, + 0x50, 0x43, 0x4b, 0x65, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x2e, 0x0a, 0x20, 0x36, 0x2e, 0x20, 0x50, 0x6f, 0x6c, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, + 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x50, 0x43, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x2e, 0xca, 0x41, 0x28, + 0x61, 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x63, 0x6f, + 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x61, 0x61, 0x73, 0x2f, + 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x42, 0xb6, 0x01, 0x5a, 0x4c, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2f, 0x77, 0x61, 0x61, 0x73, 0x2d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x2d, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x63, + 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6d, 0x70, + 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x76, 0x31, 0x92, 0x41, 0x65, 0x12, 0x12, 0x0a, 0x0b, + 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x73, 0x20, 0x41, 0x50, 0x49, 0x32, 0x03, 0x31, 0x2e, 0x30, + 0x1a, 0x28, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x61, 0x61, - 0x73, 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x42, 0xb6, 0x01, 0x5a, 0x4c, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, - 0x73, 0x65, 0x2f, 0x77, 0x61, 0x61, 0x73, 0x2d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x6c, - 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2d, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, - 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, - 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x76, 0x31, 0x92, 0x41, 0x65, 0x12, 0x12, - 0x0a, 0x0b, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x73, 0x20, 0x41, 0x50, 0x49, 0x32, 0x03, 0x31, - 0x2e, 0x30, 0x1a, 0x28, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, - 0x72, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, - 0x61, 0x61, 0x73, 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2a, 0x01, 0x02, 0x32, + 0x73, 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2a, 0x01, 0x02, 0x32, 0x10, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, - 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, - 0x73, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/gen/go/coinbase/cloud/mpc_keys/v1/mpc_keys_grpc.pb.go b/gen/go/coinbase/cloud/mpc_keys/v1/mpc_keys_grpc.pb.go index 288c0ce..f3b4369 100644 --- a/gen/go/coinbase/cloud/mpc_keys/v1/mpc_keys_grpc.pb.go +++ b/gen/go/coinbase/cloud/mpc_keys/v1/mpc_keys_grpc.pb.go @@ -28,6 +28,9 @@ type MPCKeyServiceClient interface { // the Seed in the DeviceGroup must have at least one HardenedChild. After calling this, // use ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's // ComputeMPCOperation to complete the operation. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. CreateDeviceGroup(ctx context.Context, in *CreateDeviceGroupRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Retrieves a DeviceGroup by resource name. GetDeviceGroup(ctx context.Context, in *GetDeviceGroupRequest, opts ...grpc.CallOption) (*DeviceGroup, error) @@ -43,6 +46,9 @@ type MPCKeyServiceClient interface { // Creates a Signature using an MPCKey. After calling this, use ListMPCOperations // to poll for the pending CreateSignature operation, and use the WaaS SDK's // computeMPCOperation to complete the operation. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. CreateSignature(ctx context.Context, in *CreateSignatureRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Prepares an archive in the local storage of the given Device. The archive contains cryptographic materials // that can be used to export MPCKeys, which have the given DeviceGroup as their parent. @@ -51,6 +57,9 @@ type MPCKeyServiceClient interface { // use ListMPCOperations to poll for the pending PrepareDeviceArchive operation, and use the WaaS SDK's // ComputeMPCOperation to complete the operation. Once the operation completes, the Device can utilize the // WaaS SDK to export the private keys corresponding to each of the MPCKeys under this DeviceGroup. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. PrepareDeviceArchive(ctx context.Context, in *PrepareDeviceArchiveRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Prepares a backup in the given Device. The backup contains certain cryptographic materials // that can be used to restore MPCKeys, which have the given DeviceGroup as their parent, on a new Device. @@ -61,6 +70,9 @@ type MPCKeyServiceClient interface { // the Device can utilize WaaS SDK to download the backup bundle. We recommend storing this backup bundle securely // in a storage provider of your choice. If the user loses access to their existing Device and wants to recover // MPCKeys in the given DeviceGroup on a new Device, use AddDevice RPC on the MPCKeyService. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. PrepareDeviceBackup(ctx context.Context, in *PrepareDeviceBackupRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Adds a Device to an existing DeviceGroup. Prior to this API being called, the Device must be registered using // RegisterDevice RPC. The Device must have access to the backup created with PrepareDeviceBackup RPC to compute this @@ -71,6 +83,9 @@ type MPCKeyServiceClient interface { // Once the operation completes on MPCKeyService, the Device will be added to the given DeviceGroup as a new member // and all existing Devices in the DeviceGroup will stay functional. // Use the RevokeDevice RPC to remove any of the existing Devices from the DeviceGroup. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. AddDevice(ctx context.Context, in *AddDeviceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Revokes a registered Device. This operation removes the registered Device from all the DeviceGroups that it is a // part of. Once the Device is revoked, cryptographic materials in your physical Device are invalidated, @@ -209,6 +224,9 @@ type MPCKeyServiceServer interface { // the Seed in the DeviceGroup must have at least one HardenedChild. After calling this, // use ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's // ComputeMPCOperation to complete the operation. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. CreateDeviceGroup(context.Context, *CreateDeviceGroupRequest) (*longrunning.Operation, error) // Retrieves a DeviceGroup by resource name. GetDeviceGroup(context.Context, *GetDeviceGroupRequest) (*DeviceGroup, error) @@ -224,6 +242,9 @@ type MPCKeyServiceServer interface { // Creates a Signature using an MPCKey. After calling this, use ListMPCOperations // to poll for the pending CreateSignature operation, and use the WaaS SDK's // computeMPCOperation to complete the operation. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. CreateSignature(context.Context, *CreateSignatureRequest) (*longrunning.Operation, error) // Prepares an archive in the local storage of the given Device. The archive contains cryptographic materials // that can be used to export MPCKeys, which have the given DeviceGroup as their parent. @@ -232,6 +253,9 @@ type MPCKeyServiceServer interface { // use ListMPCOperations to poll for the pending PrepareDeviceArchive operation, and use the WaaS SDK's // ComputeMPCOperation to complete the operation. Once the operation completes, the Device can utilize the // WaaS SDK to export the private keys corresponding to each of the MPCKeys under this DeviceGroup. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. PrepareDeviceArchive(context.Context, *PrepareDeviceArchiveRequest) (*longrunning.Operation, error) // Prepares a backup in the given Device. The backup contains certain cryptographic materials // that can be used to restore MPCKeys, which have the given DeviceGroup as their parent, on a new Device. @@ -242,6 +266,9 @@ type MPCKeyServiceServer interface { // the Device can utilize WaaS SDK to download the backup bundle. We recommend storing this backup bundle securely // in a storage provider of your choice. If the user loses access to their existing Device and wants to recover // MPCKeys in the given DeviceGroup on a new Device, use AddDevice RPC on the MPCKeyService. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. PrepareDeviceBackup(context.Context, *PrepareDeviceBackupRequest) (*longrunning.Operation, error) // Adds a Device to an existing DeviceGroup. Prior to this API being called, the Device must be registered using // RegisterDevice RPC. The Device must have access to the backup created with PrepareDeviceBackup RPC to compute this @@ -252,6 +279,9 @@ type MPCKeyServiceServer interface { // Once the operation completes on MPCKeyService, the Device will be added to the given DeviceGroup as a new member // and all existing Devices in the DeviceGroup will stay functional. // Use the RevokeDevice RPC to remove any of the existing Devices from the DeviceGroup. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. AddDevice(context.Context, *AddDeviceRequest) (*longrunning.Operation, error) // Revokes a registered Device. This operation removes the registered Device from all the DeviceGroups that it is a // part of. Once the Device is revoked, cryptographic materials in your physical Device are invalidated, diff --git a/gen/go/coinbase/cloud/mpc_transactions/v1/mpc_transactions.pb.go b/gen/go/coinbase/cloud/mpc_transactions/v1/mpc_transactions.pb.go index 7c2ee50..c9d9e0d 100644 --- a/gen/go/coinbase/cloud/mpc_transactions/v1/mpc_transactions.pb.go +++ b/gen/go/coinbase/cloud/mpc_transactions/v1/mpc_transactions.pb.go @@ -865,8 +865,8 @@ var file_coinbase_cloud_mpc_transactions_v1_mpc_transactions_proto_rawDesc = []b 0x32, 0x2d, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x32, - 0xe3, 0x0c, 0x0a, 0x15, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xfe, 0x04, 0x0a, 0x14, 0x43, 0x72, + 0xd9, 0x0e, 0x0a, 0x15, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xf4, 0x06, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, @@ -874,9 +874,9 @@ var file_coinbase_cloud_mpc_transactions_v1_mpc_transactions_proto_rawDesc = []b 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x85, 0x04, 0x92, 0x41, 0xf5, 0x02, 0x12, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x6e, 0x22, 0xfb, 0x05, 0x92, 0x41, 0xeb, 0x04, 0x12, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, - 0xdc, 0x02, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, + 0xd2, 0x04, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x2d, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, @@ -897,90 +897,106 @@ var file_coinbase_cloud_mpc_transactions_v1_mpc_transactions_proto_rawDesc = []b 0x68, 0x61, 0x69, 0x6e, 0x29, 0x2e, 0x20, 0x53, 0x65, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x69, 0x74, 0x73, 0x20, 0x6c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x2e, 0xca, 0x41, - 0x2e, 0x0a, 0x0e, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, - 0x41, 0x1c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x36, 0x3a, 0x01, 0x2a, 0x22, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, - 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6d, 0x70, 0x63, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xfc, 0x02, 0x0a, 0x11, 0x47, - 0x65, 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x3c, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, - 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0xf4, 0x01, 0x92, 0x41, 0xb0, 0x01, 0x12, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x50, - 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9a, 0x01, 0x47, - 0x65, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x61, 0x6e, - 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, - 0x65, 0x65, 0x6e, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, - 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, - 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x73, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x52, 0x45, 0x41, 0x54, - 0x45, 0x44, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, 0x57, 0x61, 0x6c, - 0x6c, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa7, 0x02, 0x0a, 0x13, 0x4c, 0x69, - 0x73, 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x3e, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x8e, 0x01, 0x92, 0x41, 0x49, 0x12, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, - 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x32, 0x52, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, - 0x2e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, - 0x12, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, - 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, - 0x2f, 0x2a, 0x7d, 0x2f, 0x6d, 0x70, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x1a, 0x9f, 0x02, 0x92, 0x41, 0xe8, 0x01, 0x12, 0xe5, 0x01, 0x41, 0x20, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6f, 0x72, 0x63, 0x68, - 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x20, - 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x2c, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x20, 0x72, 0x65, 0x2d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0xca, 0x41, 0x30, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, + 0x69, 0x74, 0x73, 0x20, 0x6c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x2e, 0x0a, 0x0a, + 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x4d, + 0x50, 0x43, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x2c, 0x20, 0x4c, + 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x6d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x4e, 0x4f, + 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x69, 0x6d, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, + 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x20, 0x54, 0x6f, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, + 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, + 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x65, 0x76, 0x65, 0x6e, + 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x73, 0x20, 0x61, 0x20, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x20, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x2e, 0xca, 0x41, 0x2e, 0x0a, 0x0e, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, + 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6d, + 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x3a, 0x01, 0x2a, 0x22, 0x31, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, + 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, + 0x2f, 0x6d, 0x70, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0xfc, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, + 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf4, 0x01, 0x92, 0x41, 0xb0, 0x01, 0x12, + 0x11, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0x9a, 0x01, 0x47, 0x65, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x54, 0x68, 0x65, + 0x72, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, + 0x6d, 0x70, 0x63, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xa7, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3e, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, 0x92, 0x41, 0x49, 0x12, 0x13, + 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x1a, 0x32, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, + 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6d, 0x70, 0x63, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x9f, 0x02, 0x92, 0x41, 0xe8, 0x01, + 0x12, 0xe5, 0x01, 0x41, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6f, + 0x6e, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, + 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, + 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x72, 0x65, 0x2d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0xca, 0x41, 0x30, 0x61, 0x70, 0x69, 0x2e, 0x64, + 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x61, 0x61, 0x73, 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0xce, 0x01, 0x5a, 0x54, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, + 0x61, 0x73, 0x65, 0x2f, 0x77, 0x61, 0x61, 0x73, 0x2d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, + 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2d, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, + 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x76, 0x31, 0x92, 0x41, 0x75, 0x12, 0x1a, 0x0a, 0x13, 0x4d, 0x50, 0x43, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x41, 0x50, 0x49, 0x32, 0x03, + 0x31, 0x2e, 0x30, 0x1a, 0x30, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x61, 0x61, 0x73, 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0xce, 0x01, 0x5a, 0x54, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x77, 0x61, - 0x61, 0x73, 0x2d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, - 0x79, 0x2d, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, - 0x62, 0x61, 0x73, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x92, 0x41, - 0x75, 0x12, 0x1a, 0x0a, 0x13, 0x4d, 0x50, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x41, 0x50, 0x49, 0x32, 0x03, 0x31, 0x2e, 0x30, 0x1a, 0x30, 0x61, - 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x69, - 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x61, 0x61, 0x73, 0x2f, 0x6d, - 0x70, 0x63, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, - 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, - 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/gen/go/coinbase/cloud/mpc_transactions/v1/mpc_transactions_grpc.pb.go b/gen/go/coinbase/cloud/mpc_transactions/v1/mpc_transactions_grpc.pb.go index 0187888..9855212 100644 --- a/gen/go/coinbase/cloud/mpc_transactions/v1/mpc_transactions_grpc.pb.go +++ b/gen/go/coinbase/cloud/mpc_transactions/v1/mpc_transactions_grpc.pb.go @@ -23,6 +23,9 @@ type MPCTransactionServiceClient interface { // information about the state of the MPCTransaction that can be used to complete the operation. // The LRO is considered Done once the MPCTransaction reaches a state of `CONFIRMING`` (i.e., // broadcast on-chain). See the MPCTransaction documentation for its lifecycle. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. CreateMPCTransaction(ctx context.Context, in *CreateMPCTransactionRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Gets an MPCTransaction. There can be a delay between when CreateMPCTransaction is called // and when this API returns an MPCTransaction in the CREATED state. @@ -74,6 +77,9 @@ type MPCTransactionServiceServer interface { // information about the state of the MPCTransaction that can be used to complete the operation. // The LRO is considered Done once the MPCTransaction reaches a state of `CONFIRMING`` (i.e., // broadcast on-chain). See the MPCTransaction documentation for its lifecycle. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. CreateMPCTransaction(context.Context, *CreateMPCTransactionRequest) (*longrunning.Operation, error) // Gets an MPCTransaction. There can be a delay between when CreateMPCTransaction is called // and when this API returns an MPCTransaction in the CREATED state. diff --git a/gen/go/coinbase/cloud/mpc_wallets/v1/mpc_wallets.pb.go b/gen/go/coinbase/cloud/mpc_wallets/v1/mpc_wallets.pb.go index ba165f7..6e8a980 100644 --- a/gen/go/coinbase/cloud/mpc_wallets/v1/mpc_wallets.pb.go +++ b/gen/go/coinbase/cloud/mpc_wallets/v1/mpc_wallets.pb.go @@ -1709,16 +1709,16 @@ var file_coinbase_cloud_mpc_wallets_v1_mpc_wallets_proto_rawDesc = []byte{ 0x73, 0x65, 0x32, 0x2c, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, - 0x32, 0xcb, 0x18, 0x0a, 0x10, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa8, 0x05, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x32, 0xbe, 0x1a, 0x0a, 0x10, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x9b, 0x07, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x35, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0xbe, 0x04, 0x92, 0x41, 0xb5, 0x03, 0x12, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, - 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x1a, 0xa1, 0x03, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0xb1, 0x06, 0x92, 0x41, 0xa8, 0x05, 0x12, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, + 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x1a, 0x94, 0x05, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x68, @@ -1744,181 +1744,196 @@ var file_coinbase_cloud_mpc_wallets_v1_mpc_wallets_proto_rawDesc = []byte{ 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x27, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0xca, 0x41, 0x24, 0x0a, 0x09, - 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xda, 0x41, 0x28, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6d, 0x70, 0x63, 0x5f, - 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2c, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2d, 0x3a, 0x0a, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x22, - 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, 0x6f, - 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6d, 0x70, 0x63, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, - 0x12, 0xd7, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, - 0x74, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, - 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x22, - 0x69, 0x92, 0x41, 0x38, 0x12, 0x0c, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, - 0x65, 0x74, 0x1a, 0x28, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, - 0x20, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0xda, 0x41, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, - 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xeb, 0x01, 0x0a, 0x0e, 0x4c, - 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x34, 0x2e, - 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, - 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6c, 0x92, 0x41, 0x39, 0x12, - 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x1a, - 0x27, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x20, 0x69, 0x6e, - 0x20, 0x61, 0x20, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6d, 0x70, - 0x63, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x12, 0xc7, 0x04, 0x0a, 0x0f, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x35, 0x2e, 0x63, - 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, - 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xd4, 0x03, 0x92, 0x41, - 0xfb, 0x02, 0x12, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x1a, 0xe7, 0x02, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x20, - 0x61, 0x6e, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, - 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2e, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x72, 0x65, - 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, - 0x73, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, - 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x45, 0x56, 0x4d, - 0x29, 0x2e, 0x20, 0x53, 0x6f, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x2c, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x74, 0x77, 0x69, 0x63, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2d, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x65, 0x74, 0x2c, - 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x20, 0x69, 0x74, 0x20, 0x74, 0x77, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2d, 0x67, 0x6f, 0x65, 0x72, 0x6c, 0x69, 0x2c, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x77, 0x6f, - 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x20, 0x6f, 0x6e, - 0x20, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x20, 0x4d, 0x61, 0x69, 0x6e, 0x6e, 0x65, - 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x6f, 0x65, 0x72, 0x6c, 0x69, 0x2e, 0xda, 0x41, 0x12, - 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2c, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x3a, 0x01, 0x2a, 0x22, 0x35, 0x2f, 0x76, 0x31, - 0x2f, 0x7b, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x3d, 0x70, 0x6f, 0x6f, - 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2f, - 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0xcf, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x30, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x67, 0x92, 0x41, 0x34, - 0x12, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x26, 0x52, 0x65, - 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x2e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf9, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x20, 0x4e, 0x6f, + 0x74, 0x65, 0x3a, 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x50, 0x43, 0x20, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x73, + 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x2c, 0x20, 0x4c, 0x69, 0x73, 0x74, + 0x4d, 0x50, 0x43, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x61, + 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x4e, 0x4f, 0x54, 0x5f, 0x46, + 0x4f, 0x55, 0x4e, 0x44, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x69, 0x6d, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x63, 0x61, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x20, 0x70, + 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x69, 0x66, + 0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x4e, 0x4f, + 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0xca, 0x41, + 0x24, 0x0a, 0x09, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x17, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x28, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6d, + 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x0a, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, + 0x65, 0x74, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6d, 0x70, 0x63, 0x57, 0x61, 0x6c, 0x6c, + 0x65, 0x74, 0x73, 0x12, 0xd7, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, + 0x65, 0x74, 0x22, 0x69, 0x92, 0x41, 0x38, 0x12, 0x0c, 0x47, 0x65, 0x74, 0x4d, 0x50, 0x43, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x1a, 0x28, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, + 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x20, 0x62, 0x79, + 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, + 0x6d, 0x70, 0x63, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xeb, 0x01, + 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, + 0x12, 0x34, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, - 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, - 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, - 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x7d, 0x92, 0x41, 0x3d, 0x12, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x2c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, - 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, - 0x65, 0x74, 0x2e, 0xda, 0x41, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6d, 0x70, 0x63, - 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, - 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x12, 0xe4, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, - 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x92, 0x41, 0x2b, 0x12, - 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x1b, 0x52, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, - 0x2a, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x94, 0x02, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x38, + 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6c, 0x92, + 0x41, 0x39, 0x12, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x73, 0x1a, 0x27, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, + 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0xda, 0x41, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, + 0x2f, 0x6d, 0x70, 0x63, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x12, 0xc7, 0x04, 0x0a, 0x0f, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x35, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, + 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xd4, + 0x03, 0x92, 0x41, 0xfb, 0x02, 0x12, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0xe7, 0x02, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x61, 0x72, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x63, + 0x72, 0x6f, 0x73, 0x73, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, + 0x45, 0x56, 0x4d, 0x29, 0x2e, 0x20, 0x53, 0x6f, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x74, + 0x77, 0x69, 0x63, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x2f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2d, 0x6d, 0x61, 0x69, 0x6e, 0x6e, + 0x65, 0x74, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x61, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x74, 0x20, 0x74, 0x77, 0x69, 0x63, 0x65, 0x20, 0x6d, 0x6f, + 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2d, 0x67, 0x6f, 0x65, 0x72, 0x6c, 0x69, 0x2c, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x77, 0x6f, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x20, 0x6f, 0x6e, 0x20, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x20, 0x4d, 0x61, 0x69, + 0x6e, 0x6e, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x6f, 0x65, 0x72, 0x6c, 0x69, 0x2e, + 0xda, 0x41, 0x12, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2c, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x3a, 0x01, 0x2a, 0x22, 0x35, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x3d, + 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x70, 0x63, 0x57, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0xcf, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, + 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x67, + 0x92, 0x41, 0x34, 0x12, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, + 0x26, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x62, 0x79, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf9, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x69, 0x6e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, + 0x69, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x92, 0x41, 0x3d, 0x12, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x2c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x4d, 0x50, 0x43, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2e, 0xda, 0x41, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, + 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x12, 0xe4, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x92, 0x41, 0x37, 0x12, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x21, 0x52, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, - 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, - 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0xad, - 0x03, 0x92, 0x41, 0xfb, 0x02, 0x12, 0xf8, 0x02, 0x41, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x73, 0x20, 0x42, - 0x49, 0x50, 0x2d, 0x33, 0x32, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x48, 0x69, 0x65, 0x72, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x44, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x20, 0x28, 0x48, 0x44, 0x29, 0x20, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x2d, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x41, 0x73, 0x73, 0x65, 0x74, 0x20, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x20, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x71, 0x75, 0x65, - 0x72, 0x69, 0x65, 0x64, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x20, 0x42, 0x65, - 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x4d, 0x50, 0x43, 0x20, 0x4b, 0x65, 0x79, 0x73, - 0x2c, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x41, 0x50, - 0x49, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x75, 0x73, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, 0x44, 0x4b, 0x2e, - 0xca, 0x41, 0x2b, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, - 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x61, - 0x61, 0x73, 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x42, 0xbf, - 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x77, 0x61, 0x61, 0x73, 0x2d, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x2d, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2d, 0x67, 0x6f, 0x2f, 0x67, 0x65, - 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2f, - 0x76, 0x31, 0x92, 0x41, 0x6b, 0x12, 0x15, 0x0a, 0x0e, 0x4d, 0x50, 0x43, 0x57, 0x61, 0x6c, 0x6c, - 0x65, 0x74, 0x73, 0x20, 0x41, 0x50, 0x49, 0x32, 0x03, 0x31, 0x2e, 0x30, 0x1a, 0x2b, 0x61, 0x70, - 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x69, 0x6e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x61, 0x61, 0x73, 0x2f, 0x6d, 0x70, - 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2a, 0x01, 0x02, 0x32, 0x10, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x92, + 0x41, 0x2b, 0x12, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x1a, 0x1b, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x94, 0x02, 0x0a, 0x12, 0x4c, + 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x38, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, + 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x70, 0x63, + 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x92, 0x41, 0x37, 0x12, 0x12, 0x4c, 0x69, + 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x1a, 0x21, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, + 0x20, 0x6f, 0x66, 0x20, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x2e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x1a, 0xad, 0x03, 0x92, 0x41, 0xfb, 0x02, 0x12, 0xf8, 0x02, 0x41, 0x20, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x73, 0x20, 0x42, 0x49, 0x50, 0x2d, 0x33, 0x32, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x48, + 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x44, 0x65, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x20, 0x28, 0x48, 0x44, 0x29, + 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x6f, 0x6e, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x61, 0x73, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x41, 0x73, 0x73, 0x65, 0x74, 0x20, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x50, 0x43, 0x4b, 0x65, 0x79, 0x20, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x4b, 0x65, 0x79, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, + 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x64, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x20, 0x42, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x79, 0x20, 0x4d, 0x50, 0x43, 0x20, 0x4b, + 0x65, 0x79, 0x73, 0x2c, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, + 0x20, 0x41, 0x50, 0x49, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x20, 0x75, + 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x57, 0x61, 0x61, 0x53, 0x20, 0x53, + 0x44, 0x4b, 0x2e, 0xca, 0x41, 0x2b, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, + 0x70, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x77, 0x61, 0x61, 0x73, 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x73, 0x42, 0xbf, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x77, 0x61, 0x61, 0x73, 0x2d, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2d, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2d, 0x67, 0x6f, + 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x73, 0x2f, 0x76, 0x31, 0x92, 0x41, 0x6b, 0x12, 0x15, 0x0a, 0x0e, 0x4d, 0x50, 0x43, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x20, 0x41, 0x50, 0x49, 0x32, 0x03, 0x31, 0x2e, 0x30, 0x1a, + 0x2b, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x63, + 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x61, 0x61, 0x73, + 0x2f, 0x6d, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x2a, 0x01, 0x02, 0x32, + 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, + 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, + 0x73, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/gen/go/coinbase/cloud/mpc_wallets/v1/mpc_wallets_grpc.pb.go b/gen/go/coinbase/cloud/mpc_wallets/v1/mpc_wallets_grpc.pb.go index 819e921..5e9db39 100644 --- a/gen/go/coinbase/cloud/mpc_wallets/v1/mpc_wallets_grpc.pb.go +++ b/gen/go/coinbase/cloud/mpc_wallets/v1/mpc_wallets_grpc.pb.go @@ -24,6 +24,9 @@ type MPCWalletServiceClient interface { // CreateDeviceGroup with the appropriate parameters. After calling this, use MPCKeyService's // ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's // computeMPCOperation to complete the operation. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. CreateMPCWallet(ctx context.Context, in *CreateMPCWalletRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Retrieves an MPCWallet by resource name. GetMPCWallet(ctx context.Context, in *GetMPCWalletRequest, opts ...grpc.CallOption) (*MPCWallet, error) @@ -133,6 +136,9 @@ type MPCWalletServiceServer interface { // CreateDeviceGroup with the appropriate parameters. After calling this, use MPCKeyService's // ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's // computeMPCOperation to complete the operation. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. CreateMPCWallet(context.Context, *CreateMPCWalletRequest) (*longrunning.Operation, error) // Retrieves an MPCWallet by resource name. GetMPCWallet(context.Context, *GetMPCWalletRequest) (*MPCWallet, error) diff --git a/gen/openapiv2/coinbase/cloud/mpc_keys/v1/mpc_keys.swagger.json b/gen/openapiv2/coinbase/cloud/mpc_keys/v1/mpc_keys.swagger.json index 46fc895..2e24b48 100644 --- a/gen/openapiv2/coinbase/cloud/mpc_keys/v1/mpc_keys.swagger.json +++ b/gen/openapiv2/coinbase/cloud/mpc_keys/v1/mpc_keys.swagger.json @@ -216,7 +216,7 @@ "/v1/{deviceGroupName}:addDevice": { "post": { "summary": "AddDevice", - "description": "Adds a Device to an existing DeviceGroup. \n\nPrior to this API being called, the Device must be registered using RegisterDevice RPC. \n\n The Device must have access to the backup created with PrepareDeviceBackup RPC to compute this operation. \n\n After calling this RPC, use ListMPCOperations to poll for the pending AddDevice operation, and use the WaaS SDK's ComputeAddDeviceMPCOperation to complete the operation. After the operation is computed on WaaS SDK, the Device will have access to cryptographic materials required to process MPCOperations for this DeviceGroup. \n\nOnce the operation completes on MPCKeyService, the Device will be added to the given DeviceGroup as a new member and all existing Devices in the DeviceGroup will stay functional. \n\nMPCKeyService will expose RemoveDevice RPC in a future release that can remove any of the existing Devices from the DeviceGroup.", + "description": "Adds a Device to an existing DeviceGroup. \n\nPrior to this API being called, the Device must be registered using RegisterDevice RPC. \n\n The Device must have access to the backup created with PrepareDeviceBackup RPC to compute this operation. \n\n After calling this RPC, use ListMPCOperations to poll for the pending AddDevice operation, and use the WaaS SDK's ComputeAddDeviceMPCOperation to complete the operation. After the operation is computed on WaaS SDK, the Device will have access to cryptographic materials required to process MPCOperations for this DeviceGroup. \n\nOnce the operation completes on MPCKeyService, the Device will be added to the given DeviceGroup as a new member and all existing Devices in the DeviceGroup will stay functional. \n\nMPCKeyService will expose RemoveDevice RPC in a future release that can remove any of the existing Devices from the DeviceGroup.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error.", "operationId": "MPCKeyService_AddDevice", "responses": { "200": { @@ -272,7 +272,7 @@ "/v1/{deviceGroupName}:prepareDeviceArchive": { "post": { "summary": "PrepareDeviceArchive", - "description": "Prepares an archive in the local storage of the given Device.\n\n The archive contains cryptographic materials that can be used to export MPCKeys, which have the given DeviceGroup as their parent.\n\n The Device specified in the request must be a member of this DeviceGroup and must participate in the associated MPC operation for the archive to be prepared. After calling this, use ListMPCOperations to poll for the pending PrepareDeviceArchive operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation.\n\n Once the operation completes, the Device can utilize the WaaS SDK to export the private keys corresponding to each of the MPCKeys under this DeviceGroup.", + "description": "Prepares an archive in the local storage of the given Device.\n\n The archive contains cryptographic materials that can be used to export MPCKeys, which have the given DeviceGroup as their parent.\n\n The Device specified in the request must be a member of this DeviceGroup and must participate in the associated MPC operation for the archive to be prepared. After calling this, use ListMPCOperations to poll for the pending PrepareDeviceArchive operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation.\n\n Once the operation completes, the Device can utilize the WaaS SDK to export the private keys corresponding to each of the MPCKeys under this DeviceGroup.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error.", "operationId": "MPCKeyService_PrepareDeviceArchive", "responses": { "200": { @@ -328,7 +328,7 @@ "/v1/{deviceGroupName}:prepareDeviceBackup": { "post": { "summary": "PrepareDeviceBackup", - "description": "Prepares a backup in the given Device.\n\n The backup contains certain cryptographic materials that can be used to restore MPCKeys, which have the given DeviceGroup as their parent, on a new Device.\n\n The Device specified in the request must be a member of this DeviceGroup and must participate in the associated MPC operation for the backup to be prepared. \n\n After calling this RPC, use ListMPCOperations to poll for the pending PrepareDeviceBackup operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation. \n\n Once the operation completes, the Device can utilize WaaS SDK to download the backup bundle. \n\n We recommend storing this backup bundle securely in a storage provider of your choice. \n\n If the user loses access to their existing Device and wants to recover MPCKeys in the given DeviceGroup on a new Device, use AddDevice RPC on the MPCKeyService.", + "description": "Prepares a backup in the given Device.\n\n The backup contains certain cryptographic materials that can be used to restore MPCKeys, which have the given DeviceGroup as their parent, on a new Device.\n\n The Device specified in the request must be a member of this DeviceGroup and must participate in the associated MPC operation for the backup to be prepared. \n\n After calling this RPC, use ListMPCOperations to poll for the pending PrepareDeviceBackup operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation. \n\n Once the operation completes, the Device can utilize WaaS SDK to download the backup bundle. \n\n We recommend storing this backup bundle securely in a storage provider of your choice. \n\n If the user loses access to their existing Device and wants to recover MPCKeys in the given DeviceGroup on a new Device, use AddDevice RPC on the MPCKeyService.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error.", "operationId": "MPCKeyService_PrepareDeviceBackup", "responses": { "200": { @@ -452,7 +452,7 @@ "/v1/{mpcKeyName}/signatures": { "post": { "summary": "CreateSignature", - "description": "Creates a Signature using an MPCKey.\n\n After calling this, use ListMPCOperations to poll for the pending CreateSignature operation, and use the WaaS SDK's computeMPCOperation to complete the operation.", + "description": "Creates a Signature using an MPCKey.\n\n After calling this, use ListMPCOperations to poll for the pending CreateSignature operation, and use the WaaS SDK's computeMPCOperation to complete the operation.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error.", "operationId": "MPCKeyService_CreateSignature", "responses": { "200": { @@ -505,7 +505,7 @@ "/v1/{poolName}/deviceGroups": { "post": { "summary": "CreateDeviceGroup", - "description": "Creates a DeviceGroup. The DeviceGroup must contain exactly one registered Device, and the Seed in the DeviceGroup must have at least one HardenedChild.\n\n After calling this, use ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation.", + "description": "Creates a DeviceGroup. The DeviceGroup must contain exactly one registered Device, and the Seed in the DeviceGroup must have at least one HardenedChild.\n\n After calling this, use ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error.", "operationId": "MPCKeyService_CreateDeviceGroup", "responses": { "200": { diff --git a/gen/openapiv2/coinbase/cloud/mpc_transactions/v1/mpc_transactions.swagger.json b/gen/openapiv2/coinbase/cloud/mpc_transactions/v1/mpc_transactions.swagger.json index 31aeb20..9140541 100644 --- a/gen/openapiv2/coinbase/cloud/mpc_transactions/v1/mpc_transactions.swagger.json +++ b/gen/openapiv2/coinbase/cloud/mpc_transactions/v1/mpc_transactions.swagger.json @@ -105,7 +105,7 @@ }, "post": { "summary": "CreateMPCTransaction", - "description": "Creates an MPCTransaction.\n\n The long-running operation returned from this API contains information about the state of the MPCTransaction that can be used to complete the operation. The LRO is considered Done when the MPCTransaction reaches a state of `CONFIRMING` (i.e., broadcast on-chain). See the MPCTransaction documentation for its lifecycle.", + "description": "Creates an MPCTransaction.\n\n The long-running operation returned from this API contains information about the state of the MPCTransaction that can be used to complete the operation. The LRO is considered Done when the MPCTransaction reaches a state of `CONFIRMING` (i.e., broadcast on-chain). See the MPCTransaction documentation for its lifecycle.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error.", "operationId": "MPCTransactionService_CreateMPCTransaction", "responses": { "200": { diff --git a/gen/openapiv2/coinbase/cloud/mpc_wallets/v1/mpc_wallets.swagger.json b/gen/openapiv2/coinbase/cloud/mpc_wallets/v1/mpc_wallets.swagger.json index 66306a6..f4d49a6 100644 --- a/gen/openapiv2/coinbase/cloud/mpc_wallets/v1/mpc_wallets.swagger.json +++ b/gen/openapiv2/coinbase/cloud/mpc_wallets/v1/mpc_wallets.swagger.json @@ -349,7 +349,7 @@ }, "post": { "summary": "CreateMPCWallet", - "description": "Creates an MPCWallet. The Device in the request must have been registered using MPCKeyService's RegisterDevice before this method is called.\n\n Under the hood, this calls MPCKeyService's CreateDeviceGroup with the appropriate parameters. After calling this, use MPCKeyService's ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's computeMPCOperation to complete the operation.", + "description": "Creates an MPCWallet. The Device in the request must have been registered using MPCKeyService's RegisterDevice before this method is called.\n\n Under the hood, this calls MPCKeyService's CreateDeviceGroup with the appropriate parameters. After calling this, use MPCKeyService's ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's computeMPCOperation to complete the operation.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even if it returns a NOT_FOUND error.", "operationId": "MPCWalletService_CreateMPCWallet", "responses": { "200": { diff --git a/protos/services/coinbase/cloud/mpc_keys/v1/mpc_keys.proto b/protos/services/coinbase/cloud/mpc_keys/v1/mpc_keys.proto index 0d3e0d6..1a34fa5 100644 --- a/protos/services/coinbase/cloud/mpc_keys/v1/mpc_keys.proto +++ b/protos/services/coinbase/cloud/mpc_keys/v1/mpc_keys.proto @@ -75,6 +75,9 @@ service MPCKeyService { // the Seed in the DeviceGroup must have at least one HardenedChild. After calling this, // use ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's // ComputeMPCOperation to complete the operation. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. rpc CreateDeviceGroup(CreateDeviceGroupRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=pools/*}/deviceGroups" @@ -87,7 +90,7 @@ service MPCKeyService { }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "CreateDeviceGroup" - description: "Creates a DeviceGroup. The DeviceGroup must contain exactly one registered Device, and the Seed in the DeviceGroup must have at least one HardenedChild.\n\n After calling this, use ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation." + description: "Creates a DeviceGroup. The DeviceGroup must contain exactly one registered Device, and the Seed in the DeviceGroup must have at least one HardenedChild.\n\n After calling this, use ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error." }; } @@ -146,6 +149,9 @@ service MPCKeyService { // Creates a Signature using an MPCKey. After calling this, use ListMPCOperations // to poll for the pending CreateSignature operation, and use the WaaS SDK's // computeMPCOperation to complete the operation. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. rpc CreateSignature(CreateSignatureRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=pools/*/deviceGroups/*/mpcKeys/*}/signatures" @@ -158,7 +164,7 @@ service MPCKeyService { }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "CreateSignature" - description: "Creates a Signature using an MPCKey.\n\n After calling this, use ListMPCOperations to poll for the pending CreateSignature operation, and use the WaaS SDK's computeMPCOperation to complete the operation." + description: "Creates a Signature using an MPCKey.\n\n After calling this, use ListMPCOperations to poll for the pending CreateSignature operation, and use the WaaS SDK's computeMPCOperation to complete the operation.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error." }; } @@ -169,6 +175,9 @@ service MPCKeyService { // use ListMPCOperations to poll for the pending PrepareDeviceArchive operation, and use the WaaS SDK's // ComputeMPCOperation to complete the operation. Once the operation completes, the Device can utilize the // WaaS SDK to export the private keys corresponding to each of the MPCKeys under this DeviceGroup. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. rpc PrepareDeviceArchive(PrepareDeviceArchiveRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{device_group=pools/*/deviceGroups/*}:prepareDeviceArchive" @@ -181,7 +190,7 @@ service MPCKeyService { }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "PrepareDeviceArchive" - description: "Prepares an archive in the local storage of the given Device.\n\n The archive contains cryptographic materials that can be used to export MPCKeys, which have the given DeviceGroup as their parent.\n\n The Device specified in the request must be a member of this DeviceGroup and must participate in the associated MPC operation for the archive to be prepared. After calling this, use ListMPCOperations to poll for the pending PrepareDeviceArchive operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation.\n\n Once the operation completes, the Device can utilize the WaaS SDK to export the private keys corresponding to each of the MPCKeys under this DeviceGroup." + description: "Prepares an archive in the local storage of the given Device.\n\n The archive contains cryptographic materials that can be used to export MPCKeys, which have the given DeviceGroup as their parent.\n\n The Device specified in the request must be a member of this DeviceGroup and must participate in the associated MPC operation for the archive to be prepared. After calling this, use ListMPCOperations to poll for the pending PrepareDeviceArchive operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation.\n\n Once the operation completes, the Device can utilize the WaaS SDK to export the private keys corresponding to each of the MPCKeys under this DeviceGroup.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error." }; } @@ -194,6 +203,9 @@ service MPCKeyService { // the Device can utilize WaaS SDK to download the backup bundle. We recommend storing this backup bundle securely // in a storage provider of your choice. If the user loses access to their existing Device and wants to recover // MPCKeys in the given DeviceGroup on a new Device, use AddDevice RPC on the MPCKeyService. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. rpc PrepareDeviceBackup(PrepareDeviceBackupRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{device_group=pools/*/deviceGroups/*}:prepareDeviceBackup" @@ -206,7 +218,7 @@ service MPCKeyService { }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "PrepareDeviceBackup" - description: "Prepares a backup in the given Device.\n\n The backup contains certain cryptographic materials that can be used to restore MPCKeys, which have the given DeviceGroup as their parent, on a new Device.\n\n The Device specified in the request must be a member of this DeviceGroup and must participate in the associated MPC operation for the backup to be prepared. \n\n After calling this RPC, use ListMPCOperations to poll for the pending PrepareDeviceBackup operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation. \n\n Once the operation completes, the Device can utilize WaaS SDK to download the backup bundle. \n\n We recommend storing this backup bundle securely in a storage provider of your choice. \n\n If the user loses access to their existing Device and wants to recover MPCKeys in the given DeviceGroup on a new Device, use AddDevice RPC on the MPCKeyService." + description: "Prepares a backup in the given Device.\n\n The backup contains certain cryptographic materials that can be used to restore MPCKeys, which have the given DeviceGroup as their parent, on a new Device.\n\n The Device specified in the request must be a member of this DeviceGroup and must participate in the associated MPC operation for the backup to be prepared. \n\n After calling this RPC, use ListMPCOperations to poll for the pending PrepareDeviceBackup operation, and use the WaaS SDK's ComputeMPCOperation to complete the operation. \n\n Once the operation completes, the Device can utilize WaaS SDK to download the backup bundle. \n\n We recommend storing this backup bundle securely in a storage provider of your choice. \n\n If the user loses access to their existing Device and wants to recover MPCKeys in the given DeviceGroup on a new Device, use AddDevice RPC on the MPCKeyService.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error." }; } @@ -219,6 +231,9 @@ service MPCKeyService { // Once the operation completes on MPCKeyService, the Device will be added to the given DeviceGroup as a new member // and all existing Devices in the DeviceGroup will stay functional. // Use the RevokeDevice RPC to remove any of the existing Devices from the DeviceGroup. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. rpc AddDevice(AddDeviceRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{device_group=pools/*/deviceGroups/*}:addDevice" @@ -231,7 +246,7 @@ service MPCKeyService { }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "AddDevice" - description: "Adds a Device to an existing DeviceGroup. \n\nPrior to this API being called, the Device must be registered using RegisterDevice RPC. \n\n The Device must have access to the backup created with PrepareDeviceBackup RPC to compute this operation. \n\n After calling this RPC, use ListMPCOperations to poll for the pending AddDevice operation, and use the WaaS SDK's ComputeAddDeviceMPCOperation to complete the operation. After the operation is computed on WaaS SDK, the Device will have access to cryptographic materials required to process MPCOperations for this DeviceGroup. \n\nOnce the operation completes on MPCKeyService, the Device will be added to the given DeviceGroup as a new member and all existing Devices in the DeviceGroup will stay functional. \n\nMPCKeyService will expose RemoveDevice RPC in a future release that can remove any of the existing Devices from the DeviceGroup." + description: "Adds a Device to an existing DeviceGroup. \n\nPrior to this API being called, the Device must be registered using RegisterDevice RPC. \n\n The Device must have access to the backup created with PrepareDeviceBackup RPC to compute this operation. \n\n After calling this RPC, use ListMPCOperations to poll for the pending AddDevice operation, and use the WaaS SDK's ComputeAddDeviceMPCOperation to complete the operation. After the operation is computed on WaaS SDK, the Device will have access to cryptographic materials required to process MPCOperations for this DeviceGroup. \n\nOnce the operation completes on MPCKeyService, the Device will be added to the given DeviceGroup as a new member and all existing Devices in the DeviceGroup will stay functional. \n\nMPCKeyService will expose RemoveDevice RPC in a future release that can remove any of the existing Devices from the DeviceGroup.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error." }; } diff --git a/protos/services/coinbase/cloud/mpc_transactions/v1/mpc_transactions.proto b/protos/services/coinbase/cloud/mpc_transactions/v1/mpc_transactions.proto index f7c426b..ed53e49 100644 --- a/protos/services/coinbase/cloud/mpc_transactions/v1/mpc_transactions.proto +++ b/protos/services/coinbase/cloud/mpc_transactions/v1/mpc_transactions.proto @@ -36,6 +36,9 @@ service MPCTransactionService { // information about the state of the MPCTransaction that can be used to complete the operation. // The LRO is considered Done once the MPCTransaction reaches a state of `CONFIRMING`` (i.e., // broadcast on-chain). See the MPCTransaction documentation for its lifecycle. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. rpc CreateMPCTransaction(CreateMPCTransactionRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=pools/*/mpcWallets/*}/mpcTransactions" @@ -48,7 +51,7 @@ service MPCTransactionService { }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "CreateMPCTransaction" - description: "Creates an MPCTransaction.\n\n The long-running operation returned from this API contains information about the state of the MPCTransaction that can be used to complete the operation. The LRO is considered Done when the MPCTransaction reaches a state of `CONFIRMING` (i.e., broadcast on-chain). See the MPCTransaction documentation for its lifecycle." + description: "Creates an MPCTransaction.\n\n The long-running operation returned from this API contains information about the state of the MPCTransaction that can be used to complete the operation. The LRO is considered Done when the MPCTransaction reaches a state of `CONFIRMING` (i.e., broadcast on-chain). See the MPCTransaction documentation for its lifecycle.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even after it returns a NOT_FOUND error." }; } diff --git a/protos/services/coinbase/cloud/mpc_wallets/v1/mpc_wallets.proto b/protos/services/coinbase/cloud/mpc_wallets/v1/mpc_wallets.proto index b976cd3..ab910f4 100644 --- a/protos/services/coinbase/cloud/mpc_wallets/v1/mpc_wallets.proto +++ b/protos/services/coinbase/cloud/mpc_wallets/v1/mpc_wallets.proto @@ -38,6 +38,9 @@ service MPCWalletService { // CreateDeviceGroup with the appropriate parameters. After calling this, use MPCKeyService's // ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's // computeMPCOperation to complete the operation. + // Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a + // NOT_FOUND error immediately after calling this. To complete the operation, continue polling + // ListMPCOperations even after it returns a NOT_FOUND error. rpc CreateMPCWallet(CreateMPCWalletRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1/{parent=pools/*}/mpcWallets" @@ -50,7 +53,7 @@ service MPCWalletService { }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "CreateMPCWallet" - description: "Creates an MPCWallet. The Device in the request must have been registered using MPCKeyService's RegisterDevice before this method is called.\n\n Under the hood, this calls MPCKeyService's CreateDeviceGroup with the appropriate parameters. After calling this, use MPCKeyService's ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's computeMPCOperation to complete the operation." + description: "Creates an MPCWallet. The Device in the request must have been registered using MPCKeyService's RegisterDevice before this method is called.\n\n Under the hood, this calls MPCKeyService's CreateDeviceGroup with the appropriate parameters. After calling this, use MPCKeyService's ListMPCOperations to poll for the pending CreateDeviceGroup operation, and use the WaaS SDK's computeMPCOperation to complete the operation.\n\n Note: because the creation of MPC operations is asynchronous, ListMPCOperations may return a NOT_FOUND error immediately after calling this. To complete the operation, continue polling ListMPCOperations even if it returns a NOT_FOUND error." }; }