diff --git a/app/evm.go b/app/evm.go index 49a5341a..4f15008f 100644 --- a/app/evm.go +++ b/app/evm.go @@ -6,6 +6,7 @@ import ( "github.com/ethereum/go-ethereum/common" + eip712 "github.com/cosmos/evm/ethereum/eip712" precompiletypes "github.com/cosmos/evm/precompiles/types" erc20 "github.com/cosmos/evm/x/erc20" erc20keeper "github.com/cosmos/evm/x/erc20/keeper" @@ -82,6 +83,15 @@ func (app *App) registerEVMModules(appOpts servertypes.AppOptions) error { return err } + // Initialize the cosmos/evm EIP-712 verifier's package-level codec/chain-id + // singletons. Without this call, every `verifySignatureAsEIP712` call inside + // `ethsecp256k1.PubKey.VerifySignature` errors out at `validateCodecInit` + // and silently returns false, falling back to standard ECDSA verification of + // raw cosmos sign bytes — which never matches an EIP-712 signature. + // Symptom: "signature verification failed; ... unauthorized" on every + // EIP-712-signed broadcast. + eip712.SetEncodingConfig(app.legacyAmino, app.interfaceRegistry, evmChainIDUint64) + // Get all non-transient KV store keys for the EVM keeper // The EVM keeper needs access to all stores so precompiles can access any store they need // (e.g., account store, bank store, tokenization store, etc.) diff --git a/encoding/codec/codec.go b/encoding/codec/codec.go index 4cf3f055..d2324dce 100644 --- a/encoding/codec/codec.go +++ b/encoding/codec/codec.go @@ -10,6 +10,8 @@ import ( solana "github.com/bitbadges/bitbadgeschain/chain-handlers/solana/utils" // EVM module types - required for JSON-RPC tx decoding + evmcryptocodec "github.com/cosmos/evm/crypto/codec" + evmethsecp256k1 "github.com/cosmos/evm/crypto/ethsecp256k1" evmtypes "github.com/cosmos/evm/x/vm/types" erc20types "github.com/cosmos/evm/x/erc20/types" feemarkettypes "github.com/cosmos/evm/x/feemarket/types" @@ -25,7 +27,25 @@ import ( // RegisterLegacyAminoCodec registers Interfaces from types, crypto, and SDK std. func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { ethereumcodec.RegisterCrypto(cdc) - // Note: evmtypes amino registration is handled by the EVM module itself + + // Register cosmos/evm's `ethsecp256k1.PubKey` / `PrivKey` on the legacy + // amino codec under their canonical amino names. Required because + // `ConsumeTxSizeGasDecorator` (and any other ante decorator that + // invokes `LegacyAmino.MustMarshal` on a tx for size estimation) + // fails with "Cannot encode unregistered concrete type + // ethsecp256k1.PubKey" if the SignerInfo's pubkey type isn't + // registered as an amino concrete. The proto interface registration + // in `RegisterInterfaces` covers tx decode, but the gas-size path + // goes through legacy amino specifically. + // + // We register inline rather than calling `evmcryptocodec.RegisterCrypto` + // because that helper also re-runs `cryptocodec.RegisterCrypto(cdc)` — + // already invoked by `ethereumcodec.RegisterCrypto` above — which + // double-registers the cosmos-sdk standard crypto types and panics + // with "TypeInfo already exists for types.PubKey". + cdc.RegisterConcrete(&evmethsecp256k1.PubKey{}, "cosmos-evm/PubKeyEthSecp256k1", nil) + cdc.RegisterConcrete(&evmethsecp256k1.PrivKey{}, "cosmos-evm/PrivKeyEthSecp256k1", nil) + _ = evmcryptocodec.RegisterCrypto // imported above for grep-ability; kept registered manually to avoid duplicate cryptocodec call } // RegisterInterfaces registers Interfaces from types, crypto, and SDK std. @@ -35,6 +55,11 @@ func RegisterInterfaces(interfaceRegistry codectypes.InterfaceRegistry) { solana.RegisterInterfaces(interfaceRegistry) bitcoin.RegisterInterfaces(interfaceRegistry) + // cosmos/evm crypto types — registers `cosmos.evm.crypto.v1.ethsecp256k1.PubKey` + // on the InterfaceRegistry so the chain can decode EIP-712-signed txs whose + // SignerInfo wraps the pubkey under that canonical type URL. + evmcryptocodec.RegisterInterfaces(interfaceRegistry) + // EVM module types - required for JSON-RPC tx decoding (MsgEthereumTx, etc.) evmtypes.RegisterInterfaces(interfaceRegistry) erc20types.RegisterInterfaces(interfaceRegistry) diff --git a/proto/gamm/poolmodels/balancer/tx.proto b/proto/gamm/poolmodels/balancer/tx.proto index 46398836..b0a648d3 100644 --- a/proto/gamm/poolmodels/balancer/tx.proto +++ b/proto/gamm/poolmodels/balancer/tx.proto @@ -38,5 +38,5 @@ message MsgCreateBalancerPoolResponse { // Used for WASM bindings and JSON parsing message BalancerCustomMsgType { - MsgCreateBalancerPool createBalancerPoolMsg = 1; + MsgCreateBalancerPool createBalancerPoolMsg = 1 [(gogoproto.nullable) = true]; } diff --git a/proto/gamm/v1beta1/query.proto b/proto/gamm/v1beta1/query.proto index d5f17322..64ed0d89 100644 --- a/proto/gamm/v1beta1/query.proto +++ b/proto/gamm/v1beta1/query.proto @@ -346,14 +346,14 @@ message QueryTotalLiquidityResponse { // Used for WASM bindings and JSON parsing message GammCustomQueryType { - QueryPoolRequest queryPool = 1; - QueryPoolsRequest queryPools = 2; - QueryPoolTypeRequest queryPoolType = 3; - QueryPoolsWithFilterRequest queryPoolsWithFilter = 4; - QueryNumPoolsRequest queryNumPools = 5; - QueryTotalLiquidityRequest queryTotalLiquidity = 6; - QueryTotalPoolLiquidityRequest queryTotalPoolLiquidity = 7; - QuerySpotPriceRequest querySpotPrice = 8; - QueryPoolParamsRequest queryPoolParams = 9; - QueryTotalSharesRequest queryTotalShares = 10; + QueryPoolRequest queryPool = 1 [(gogoproto.nullable) = true]; + QueryPoolsRequest queryPools = 2 [(gogoproto.nullable) = true]; + QueryPoolTypeRequest queryPoolType = 3 [(gogoproto.nullable) = true]; + QueryPoolsWithFilterRequest queryPoolsWithFilter = 4 [(gogoproto.nullable) = true]; + QueryNumPoolsRequest queryNumPools = 5 [(gogoproto.nullable) = true]; + QueryTotalLiquidityRequest queryTotalLiquidity = 6 [(gogoproto.nullable) = true]; + QueryTotalPoolLiquidityRequest queryTotalPoolLiquidity = 7 [(gogoproto.nullable) = true]; + QuerySpotPriceRequest querySpotPrice = 8 [(gogoproto.nullable) = true]; + QueryPoolParamsRequest queryPoolParams = 9 [(gogoproto.nullable) = true]; + QueryTotalSharesRequest queryTotalShares = 10 [(gogoproto.nullable) = true]; } \ No newline at end of file diff --git a/proto/gamm/v1beta1/tx.proto b/proto/gamm/v1beta1/tx.proto index f181eb18..3fa69c13 100644 --- a/proto/gamm/v1beta1/tx.proto +++ b/proto/gamm/v1beta1/tx.proto @@ -325,13 +325,13 @@ message MsgExitSwapExternAmountOutResponse { // Used for WASM bindings and JSON parsing message GammCustomMsgType { - MsgJoinPool joinPoolMsg = 1; - MsgExitPool exitPoolMsg = 2; - MsgSwapExactAmountIn swapExactAmountInMsg = 3; - MsgSwapExactAmountOut swapExactAmountOutMsg = 4; - MsgJoinSwapExternAmountIn joinSwapExternAmountInMsg = 5; - MsgJoinSwapShareAmountOut joinSwapShareAmountOutMsg = 6; - MsgExitSwapShareAmountIn exitSwapShareAmountInMsg = 7; - MsgExitSwapExternAmountOut exitSwapExternAmountOutMsg = 8; - MsgSwapExactAmountInWithIBCTransfer swapExactAmountInWithIBCTransferMsg = 9; + MsgJoinPool joinPoolMsg = 1 [(gogoproto.nullable) = true]; + MsgExitPool exitPoolMsg = 2 [(gogoproto.nullable) = true]; + MsgSwapExactAmountIn swapExactAmountInMsg = 3 [(gogoproto.nullable) = true]; + MsgSwapExactAmountOut swapExactAmountOutMsg = 4 [(gogoproto.nullable) = true]; + MsgJoinSwapExternAmountIn joinSwapExternAmountInMsg = 5 [(gogoproto.nullable) = true]; + MsgJoinSwapShareAmountOut joinSwapShareAmountOutMsg = 6 [(gogoproto.nullable) = true]; + MsgExitSwapShareAmountIn exitSwapShareAmountInMsg = 7 [(gogoproto.nullable) = true]; + MsgExitSwapExternAmountOut exitSwapExternAmountOutMsg = 8 [(gogoproto.nullable) = true]; + MsgSwapExactAmountInWithIBCTransfer swapExactAmountInWithIBCTransferMsg = 9 [(gogoproto.nullable) = true]; } diff --git a/proto/managersplitter/permissions.proto b/proto/managersplitter/permissions.proto index 03c63593..a59cbfad 100644 --- a/proto/managersplitter/permissions.proto +++ b/proto/managersplitter/permissions.proto @@ -16,36 +16,36 @@ message PermissionCriteria { // but maps each permission to criteria for execution. message ManagerSplitterPermissions { // Permissions related to deleting the collection. - PermissionCriteria canDeleteCollection = 1; + PermissionCriteria canDeleteCollection = 1 [(gogoproto.nullable) = true]; // Permissions related to archiving the collection. - PermissionCriteria canArchiveCollection = 2; + PermissionCriteria canArchiveCollection = 2 [(gogoproto.nullable) = true]; // Permissions related to updating standards for the collection. - PermissionCriteria canUpdateStandards = 3; + PermissionCriteria canUpdateStandards = 3 [(gogoproto.nullable) = true]; // Permissions related to updating custom data for the collection. - PermissionCriteria canUpdateCustomData = 4; + PermissionCriteria canUpdateCustomData = 4 [(gogoproto.nullable) = true]; // Permissions related to updating the collection's manager. - PermissionCriteria canUpdateManager = 5; + PermissionCriteria canUpdateManager = 5 [(gogoproto.nullable) = true]; // Permissions related to updating the metadata of the collection. - PermissionCriteria canUpdateCollectionMetadata = 6; + PermissionCriteria canUpdateCollectionMetadata = 6 [(gogoproto.nullable) = true]; // Permissions related to creating more tokens for the collection. - PermissionCriteria canUpdateValidTokenIds = 7; + PermissionCriteria canUpdateValidTokenIds = 7 [(gogoproto.nullable) = true]; // Permissions related to updating token metadata for specific tokens. - PermissionCriteria canUpdateTokenMetadata = 8; + PermissionCriteria canUpdateTokenMetadata = 8 [(gogoproto.nullable) = true]; // Permissions related to updating collection approvals. - PermissionCriteria canUpdateCollectionApprovals = 9; + PermissionCriteria canUpdateCollectionApprovals = 9 [(gogoproto.nullable) = true]; // Permissions related to adding more alias paths to the collection. - PermissionCriteria canAddMoreAliasPaths = 10; + PermissionCriteria canAddMoreAliasPaths = 10 [(gogoproto.nullable) = true]; // Permissions related to adding more cosmos coin wrapper paths to the collection. - PermissionCriteria canAddMoreCosmosCoinWrapperPaths = 11; + PermissionCriteria canAddMoreCosmosCoinWrapperPaths = 11 [(gogoproto.nullable) = true]; } diff --git a/proto/managersplitter/query.proto b/proto/managersplitter/query.proto index 9c922a37..b0046cae 100644 --- a/proto/managersplitter/query.proto +++ b/proto/managersplitter/query.proto @@ -41,7 +41,7 @@ message QueryGetManagerSplitterRequest { // QueryGetManagerSplitterResponse is response type for the Query/ManagerSplitter RPC method. message QueryGetManagerSplitterResponse { - ManagerSplitter managerSplitter = 1; + ManagerSplitter managerSplitter = 1 [(gogoproto.nullable) = true]; } // QueryAllManagerSplittersRequest is request type for the Query/AllManagerSplitters RPC method. diff --git a/proto/managersplitter/tx.proto b/proto/managersplitter/tx.proto index 9ce69537..a9bc06d5 100644 --- a/proto/managersplitter/tx.proto +++ b/proto/managersplitter/tx.proto @@ -54,7 +54,7 @@ message ManagerSplitter { string admin = 2; // Permissions mapping each CollectionPermission field to execution criteria. - ManagerSplitterPermissions permissions = 3; + ManagerSplitterPermissions permissions = 3 [(gogoproto.nullable) = true]; } // MsgCreateManagerSplitter creates a new manager splitter entity. @@ -66,7 +66,7 @@ message MsgCreateManagerSplitter { string admin = 1; // Permissions mapping each CollectionPermission field to execution criteria. - ManagerSplitterPermissions permissions = 2; + ManagerSplitterPermissions permissions = 2 [(gogoproto.nullable) = true]; } // MsgCreateManagerSplitterResponse is the response to MsgCreateManagerSplitter. @@ -87,7 +87,7 @@ message MsgUpdateManagerSplitter { string address = 2; // New permissions to set. - ManagerSplitterPermissions permissions = 3; + ManagerSplitterPermissions permissions = 3 [(gogoproto.nullable) = true]; } // MsgUpdateManagerSplitterResponse is the response to MsgUpdateManagerSplitter. @@ -132,9 +132,9 @@ message MsgExecuteUniversalUpdateCollectionResponse { // Used for WASM bindings and JSON parsing message ManagersplitterCustomMsgType { - MsgCreateManagerSplitter createManagerSplitterMsg = 1; - MsgUpdateManagerSplitter updateManagerSplitterMsg = 2; - MsgDeleteManagerSplitter deleteManagerSplitterMsg = 3; - MsgExecuteUniversalUpdateCollection executeUniversalUpdateCollectionMsg = 4; + MsgCreateManagerSplitter createManagerSplitterMsg = 1 [(gogoproto.nullable) = true]; + MsgUpdateManagerSplitter updateManagerSplitterMsg = 2 [(gogoproto.nullable) = true]; + MsgDeleteManagerSplitter deleteManagerSplitterMsg = 3 [(gogoproto.nullable) = true]; + MsgExecuteUniversalUpdateCollection executeUniversalUpdateCollectionMsg = 4 [(gogoproto.nullable) = true]; } diff --git a/proto/tokenization/approval_conditions.proto b/proto/tokenization/approval_conditions.proto index b4693a14..1b7b5a8c 100644 --- a/proto/tokenization/approval_conditions.proto +++ b/proto/tokenization/approval_conditions.proto @@ -37,7 +37,7 @@ message MustOwnTokens { string collectionId = 1 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; // The range of amounts the user must own (min to max). - UintRange amountRange = 2; + UintRange amountRange = 2 [(gogoproto.nullable) = true]; // The time ranges during which the user must own the tokens. repeated UintRange ownershipTimes = 3; @@ -116,7 +116,7 @@ message UserApprovalSettings { // If true, user-level approvals cannot trigger coinTransfers at all for transfers matched by this collection approval. bool disableUserCoinTransfers = 2; // User-level royalties to enforce for transfers matched by this collection approval. - UserRoyalties userRoyalties = 3; + UserRoyalties userRoyalties = 3 [(gogoproto.nullable) = true]; } // UserRoyalties defines the royalties for a user. diff --git a/proto/tokenization/approval_criteria.proto b/proto/tokenization/approval_criteria.proto index e21bf2e1..428687af 100644 --- a/proto/tokenization/approval_criteria.proto +++ b/proto/tokenization/approval_criteria.proto @@ -17,13 +17,13 @@ message ApprovalCriteria { repeated MerkleChallenge merkleChallenges = 1; // Predetermined balances that must be used for each approval. Defines the exact token amounts and IDs // that can be transferred when using this approval. - PredeterminedBalances predeterminedBalances = 2; + PredeterminedBalances predeterminedBalances = 2 [(gogoproto.nullable) = true]; // Threshold limit of amounts that can be transferred using this approval. Tracks cumulative amounts // transferred and enforces maximum limits per approval. - ApprovalAmounts approvalAmounts = 3; + ApprovalAmounts approvalAmounts = 3 [(gogoproto.nullable) = true]; // Maximum number of transfers that can be processed using this approval. Tracks the count of transfers // and enforces the limit to prevent exceeding the allowed number of uses. - MaxNumTransfers maxNumTransfers = 4; + MaxNumTransfers maxNumTransfers = 4 [(gogoproto.nullable) = true]; // The sdk.Coins that need to be transferred for approval. Defines required coin transfers (e.g., fees, // royalties) that must be executed alongside the token transfer for the approval to be valid. repeated CoinTransfer coinTransfers = 5; @@ -52,7 +52,7 @@ message ApprovalCriteria { // Auto-deletion options for this approval. Defines conditions under which this approval should be // automatically deleted (e.g., after a certain number of uses or time period). - AutoDeletionOptions autoDeletionOptions = 12; + AutoDeletionOptions autoDeletionOptions = 12 [(gogoproto.nullable) = true]; // DEPRECATED: User royalties moved to UserApprovalSettings.userRoyalties (field 26). // Field number 13 is reserved for backwards compatibility. @@ -69,16 +69,16 @@ message ApprovalCriteria { repeated ETHSignatureChallenge ethSignatureChallenges = 16; // Address checks for the sender of the transfer. Validates that the sender address meets the // specified criteria (e.g., whitelist, blacklist, protocol address requirements). - AddressChecks senderChecks = 17; + AddressChecks senderChecks = 17 [(gogoproto.nullable) = true]; // Address checks for the recipient of the transfer. Validates that the recipient address meets the // specified criteria (e.g., whitelist, blacklist, protocol address requirements). - AddressChecks recipientChecks = 18; + AddressChecks recipientChecks = 18 [(gogoproto.nullable) = true]; // Address checks for the initiator of the transfer. Validates that the initiator address meets the // specified criteria (e.g., whitelist, blacklist, protocol address requirements). - AddressChecks initiatorChecks = 19; + AddressChecks initiatorChecks = 19 [(gogoproto.nullable) = true]; // Alternative time-based checks for approval denial (offline hours/days). Defines time periods // during which this approval should be denied, such as specific hours of the day or days of the week. - AltTimeChecks altTimeChecks = 20; + AltTimeChecks altTimeChecks = 20 [(gogoproto.nullable) = true]; // If true, this approval must be explicitly prioritized in PrioritizedApprovals to be used. // This allows fine-grained control over which approvals are applied when multiple approvals could match. bool mustPrioritize = 21; @@ -99,7 +99,7 @@ message ApprovalCriteria { // Issuer-imposed constraints on user-level coin transfers. Propagated to user-level approvals // during greedy transfer matching (same pattern as userRoyalties). Only applicable on collection-level approvals. // If conflicting settings across multiple matched approvals, the transfer is rejected (like royalties). - UserApprovalSettings userApprovalSettings = 26; + UserApprovalSettings userApprovalSettings = 26 [(gogoproto.nullable) = true]; } // OutgoingApprovalCriteria defines the criteria for approving outgoing transfers. @@ -111,13 +111,13 @@ message OutgoingApprovalCriteria { repeated MerkleChallenge merkleChallenges = 1; // Predetermined balances that must be used for each approval. Defines the exact token amounts and IDs // that can be transferred when using this approval. - PredeterminedBalances predeterminedBalances = 2; + PredeterminedBalances predeterminedBalances = 2 [(gogoproto.nullable) = true]; // Threshold limit of amounts that can be transferred using this approval. Tracks cumulative amounts // transferred and enforces maximum limits per approval. - ApprovalAmounts approvalAmounts = 3; + ApprovalAmounts approvalAmounts = 3 [(gogoproto.nullable) = true]; // Maximum number of transfers that can be processed using this approval. Tracks the count of transfers // and enforces the limit to prevent exceeding the allowed number of uses. - MaxNumTransfers maxNumTransfers = 4; + MaxNumTransfers maxNumTransfers = 4 [(gogoproto.nullable) = true]; // The sdk.Coins that need to be transferred for approval. Defines required coin transfers (e.g., fees, // royalties) that must be executed alongside the token transfer for the approval to be valid. repeated CoinTransfer coinTransfers = 5; @@ -131,7 +131,7 @@ message OutgoingApprovalCriteria { // Auto-deletion options for this approval. Defines conditions under which this approval should be // automatically deleted (e.g., after a certain number of uses or time period). - AutoDeletionOptions autoDeletionOptions = 8; + AutoDeletionOptions autoDeletionOptions = 8 [(gogoproto.nullable) = true]; // Must own tokens for approval. Defines token ownership requirements that must be satisfied for // the approval to be valid. The initiator must own the specified tokens at the specified ownership times. @@ -145,13 +145,13 @@ message OutgoingApprovalCriteria { // Address checks for the recipient of the transfer. Validates that the recipient address meets the // specified criteria (e.g., whitelist, blacklist, protocol address requirements). // Note: No sender checks are included for outgoing approvals since the sender is the user themselves. - AddressChecks recipientChecks = 12; + AddressChecks recipientChecks = 12 [(gogoproto.nullable) = true]; // Address checks for the initiator of the transfer. Validates that the initiator address meets the // specified criteria (e.g., whitelist, blacklist, protocol address requirements). - AddressChecks initiatorChecks = 13; + AddressChecks initiatorChecks = 13 [(gogoproto.nullable) = true]; // Alternative time-based checks for approval denial (offline hours/days). Defines time periods // during which this approval should be denied, such as specific hours of the day or days of the week. - AltTimeChecks altTimeChecks = 14; + AltTimeChecks altTimeChecks = 14 [(gogoproto.nullable) = true]; // If true, this approval must be explicitly prioritized in PrioritizedApprovals to be used. // This allows fine-grained control over which approvals are applied when multiple approvals could match. bool mustPrioritize = 15; @@ -172,13 +172,13 @@ message IncomingApprovalCriteria { repeated MerkleChallenge merkleChallenges = 1; // Predetermined balances that must be used for each approval. Defines the exact token amounts and IDs // that can be transferred when using this approval. - PredeterminedBalances predeterminedBalances = 2; + PredeterminedBalances predeterminedBalances = 2 [(gogoproto.nullable) = true]; // Threshold limit of amounts that can be transferred using this approval. Tracks cumulative amounts // transferred and enforces maximum limits per approval. - ApprovalAmounts approvalAmounts = 3; + ApprovalAmounts approvalAmounts = 3 [(gogoproto.nullable) = true]; // Maximum number of transfers that can be processed using this approval. Tracks the count of transfers // and enforces the limit to prevent exceeding the allowed number of uses. - MaxNumTransfers maxNumTransfers = 4; + MaxNumTransfers maxNumTransfers = 4 [(gogoproto.nullable) = true]; // The sdk.Coins that need to be transferred for approval. Defines required coin transfers (e.g., fees, // royalties) that must be executed alongside the token transfer for the approval to be valid. repeated CoinTransfer coinTransfers = 5; @@ -192,7 +192,7 @@ message IncomingApprovalCriteria { // Auto-deletion options for this approval. Defines conditions under which this approval should be // automatically deleted (e.g., after a certain number of uses or time period). - AutoDeletionOptions autoDeletionOptions = 8; + AutoDeletionOptions autoDeletionOptions = 8 [(gogoproto.nullable) = true]; // Must own tokens for approval. Defines token ownership requirements that must be satisfied for // the approval to be valid. The initiator must own the specified tokens at the specified ownership times. @@ -206,13 +206,13 @@ message IncomingApprovalCriteria { // Address checks for the sender of the transfer. Validates that the sender address meets the // specified criteria (e.g., whitelist, blacklist, protocol address requirements). // Note: No recipient checks are included for incoming approvals since the recipient is the user themselves. - AddressChecks senderChecks = 12; + AddressChecks senderChecks = 12 [(gogoproto.nullable) = true]; // Address checks for the initiator of the transfer. Validates that the initiator address meets the // specified criteria (e.g., whitelist, blacklist, protocol address requirements). - AddressChecks initiatorChecks = 13; + AddressChecks initiatorChecks = 13 [(gogoproto.nullable) = true]; // Alternative time-based checks for approval denial (offline hours/days). Defines time periods // during which this approval should be denied, such as specific hours of the day or days of the week. - AltTimeChecks altTimeChecks = 14; + AltTimeChecks altTimeChecks = 14 [(gogoproto.nullable) = true]; // If true, this approval must be explicitly prioritized in PrioritizedApprovals to be used. // This allows fine-grained control over which approvals are applied when multiple approvals could match. bool mustPrioritize = 15; diff --git a/proto/tokenization/approval_tracking.proto b/proto/tokenization/approval_tracking.proto index 0830762a..dfe9c366 100644 --- a/proto/tokenization/approval_tracking.proto +++ b/proto/tokenization/approval_tracking.proto @@ -43,7 +43,7 @@ message ApprovalAmounts { // We use this ID to track the number of transfers and amounts transferred. string amountTrackerId = 6; // Time intervals to reset the trackers at. - ResetTimeIntervals resetTimeIntervals = 7; + ResetTimeIntervals resetTimeIntervals = 7 [(gogoproto.nullable) = true]; } // MaxNumTransfers defines the maximum number of transfers per unique "from," "to," and/or "initiated by" address. @@ -63,7 +63,7 @@ message MaxNumTransfers { // We use this ID to track the number of transfers and amounts transferred. string amountTrackerId = 6; // Time intervals to reset the trackers at. - ResetTimeIntervals resetTimeIntervals = 7; + ResetTimeIntervals resetTimeIntervals = 7 [(gogoproto.nullable) = true]; } // ApprovalTracker defines the tracker for approvals. This tracks the cumulative number of transfers and associated balances transferred. diff --git a/proto/tokenization/approvals.proto b/proto/tokenization/approvals.proto index abc59403..5ff7ef15 100644 --- a/proto/tokenization/approvals.proto +++ b/proto/tokenization/approvals.proto @@ -69,7 +69,7 @@ message CollectionApproval { string approvalId = 9; // The criteria that must be met for this approval to be considered. - ApprovalCriteria approvalCriteria = 10; + ApprovalCriteria approvalCriteria = 10 [(gogoproto.nullable) = true]; // Version of the approval. Maintained internally. string version = 11 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; @@ -102,7 +102,7 @@ message UserOutgoingApproval { string approvalId = 8; // The criteria that must be met for this approval to be considered. - OutgoingApprovalCriteria approvalCriteria = 9; + OutgoingApprovalCriteria approvalCriteria = 9 [(gogoproto.nullable) = true]; // Version of the approval. Maintained internally. string version = 10 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; @@ -135,7 +135,7 @@ message UserIncomingApproval { string approvalId = 8; // The criteria that must be met for this approval to be considered. - IncomingApprovalCriteria approvalCriteria = 9; + IncomingApprovalCriteria approvalCriteria = 9 [(gogoproto.nullable) = true]; // Version of the approval. Maintained internally. string version = 10 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; diff --git a/proto/tokenization/collections.proto b/proto/tokenization/collections.proto index 035de190..56664dc8 100644 --- a/proto/tokenization/collections.proto +++ b/proto/tokenization/collections.proto @@ -31,7 +31,7 @@ message TokenCollection { string collectionId = 1 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; // The metadata for the collection itself. - CollectionMetadata collectionMetadata = 2; + CollectionMetadata collectionMetadata = 2 [(gogoproto.nullable) = true]; // The metadata for each token in the collection. repeated TokenMetadata tokenMetadata = 3; @@ -43,7 +43,7 @@ message TokenCollection { string manager = 5; // Permissions that define what the manager of the collection can do or not do. - CollectionPermissions collectionPermissions = 6; + CollectionPermissions collectionPermissions = 6 [(gogoproto.nullable) = true]; // Transferability of the collection for collections with standard balances, subject to changes over time. // Overrides user approvals for a transfer if specified. @@ -59,7 +59,7 @@ message TokenCollection { bool isArchived = 9; // The default store of a balance / approvals for a user, upon genesis. - UserBalanceStore defaultBalances = 10; + UserBalanceStore defaultBalances = 10 [(gogoproto.nullable) = true]; // The user or entity who created the collection. string createdBy = 11; @@ -75,7 +75,7 @@ message TokenCollection { // Collection-level invariants that cannot be broken. // These are set upon genesis and cannot be modified. - CollectionInvariants invariants = 15; + CollectionInvariants invariants = 15 [(gogoproto.nullable) = true]; // The alias (non-wrapping) paths for the collection. repeated AliasPath aliasPaths = 16; @@ -84,7 +84,7 @@ message TokenCollection { // Conversion defines a bidirectional conversion between a cosmos coin (with denom) and token balances. message Conversion { // Side A: The cosmos coin side of the conversion (amount + denom). - ConversionSideAWithDenom sideA = 1; + ConversionSideAWithDenom sideA = 1 [(gogoproto.nullable) = true]; // Side B: The token balances side of the conversion. repeated Balance sideB = 2; } @@ -101,7 +101,7 @@ message ConversionSideAWithDenom { // The denom is stored at the base level (e.g., in AliasPath or CosmosCoinWrapperPath). message ConversionWithoutDenom { // Side A: The cosmos coin amount side of the conversion (amount only, denom stored separately). - ConversionSideA sideA = 1; + ConversionSideA sideA = 1 [(gogoproto.nullable) = true]; // Side B: The token balances side of the conversion. repeated Balance sideB = 2; } @@ -118,7 +118,7 @@ message CosmosCoinWrapperPath { // The denomination (denom) to be used for the wrapped coin or the alias denom. string denom = 2; // The conversion between cosmos coin and token balances. - ConversionWithoutDenom conversion = 3; + ConversionWithoutDenom conversion = 3 [(gogoproto.nullable) = true]; // The symbol for the wrapped coin (e.g., "BADGE", "NFT"). Used for display purposes. Note that this may not be the default. string symbol = 4; // Denomination units for the wrapped coin. Defines how the coin can be displayed with different @@ -127,27 +127,27 @@ message CosmosCoinWrapperPath { // If true, allows this wrapper path to be used with any valid token ID in the collection via an {id} placeholder. bool allowOverrideWithAnyValidToken = 6; // The metadata for this wrapper path. - PathMetadata metadata = 7; + PathMetadata metadata = 7 [(gogoproto.nullable) = true]; } message AliasPath { // The denomination (denom) to be used for the alias. string denom = 1; // The conversion between cosmos coin and token balances. - ConversionWithoutDenom conversion = 2; + ConversionWithoutDenom conversion = 2 [(gogoproto.nullable) = true]; // The symbol for the alias (e.g., "BADGE", "NFT"). Used for display purposes. Note that this may not be the default. string symbol = 3; // Denomination units for the alias. Defines how the coin can be displayed with different decimal places and symbols. repeated DenomUnit denomUnits = 4; // The metadata for this alias path. - PathMetadata metadata = 5; + PathMetadata metadata = 5 [(gogoproto.nullable) = true]; } message CosmosCoinBackedPath { // The address associated with this backed path. Used for routing and escrowing IBC tokens. string address = 1; // The conversion between IBC cosmos coin and token balances. - Conversion conversion = 2; + Conversion conversion = 2 [(gogoproto.nullable) = true]; } message DenomUnit { @@ -159,7 +159,7 @@ message DenomUnit { // This unit will be used by default when displaying the coin amount. If none are marked default, we use the base level. bool isDefaultDisplay = 3; // The metadata for this denomination unit. - PathMetadata metadata = 4; + PathMetadata metadata = 4 [(gogoproto.nullable) = true]; } // CollectionInvariants defines the invariants that apply to a collection. @@ -173,7 +173,7 @@ message CollectionInvariants { string maxSupplyPerId = 2 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; // The IBC backed (sdk.coin) path for the collection. Only one path is allowed. - CosmosCoinBackedPath cosmosCoinBackedPath = 3; + CosmosCoinBackedPath cosmosCoinBackedPath = 3 [(gogoproto.nullable) = true]; // If true, disallows any collection approvals that have overridesFromOutgoingApprovals or overridesToIncomingApprovals set to true. // This prevents forceful transfers that bypass user-level approvals. diff --git a/proto/tokenization/legacytx.proto b/proto/tokenization/legacytx.proto index b555d127..9a2528d8 100644 --- a/proto/tokenization/legacytx.proto +++ b/proto/tokenization/legacytx.proto @@ -42,7 +42,7 @@ message MsgNewCollection { repeated TokenMetadataTimeline tokenMetadataTimeline = 3; repeated CustomDataTimeline customDataTimeline = 4; repeated CollectionApproval collectionApprovals = 5; - CollectionPermissions permissions = 6; + CollectionPermissions permissions = 6 [(gogoproto.nullable) = true]; repeated StandardsTimeline standardsTimeline = 7; //Token supplys and amounts to create. For each idx, we create amounts[idx] badges each with a supply of supplys[idx]. @@ -63,7 +63,7 @@ message MsgNewCollection { // Collection-level invariants that cannot be broken. // These are set upon genesis and cannot be modified. // Addresses are generated by the keeper and stored in the collection. - InvariantsAddObject invariants = 17; + InvariantsAddObject invariants = 17 [(gogoproto.nullable) = true]; repeated AliasPathAddObject aliasPathsToAdd = 18; } @@ -116,7 +116,7 @@ message MsgUpdateMetadataResponse {} message MsgUniversalUpdateCollectionPermissions { string creator = 1; string collectionId = 2 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; - CollectionPermissions permissions = 3; + CollectionPermissions permissions = 3 [(gogoproto.nullable) = true]; repeated AddressList addressLists = 4; } @@ -125,7 +125,7 @@ message MsgUniversalUpdateCollectionPermissionsResponse {} message MsgUpdateUserPermissions { string creator = 1; string collectionId = 2 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; - UserPermissions permissions = 3; + UserPermissions permissions = 3 [(gogoproto.nullable) = true]; repeated AddressList addressLists = 4; } diff --git a/proto/tokenization/predetermined_balances.proto b/proto/tokenization/predetermined_balances.proto index 1c0cb720..03f01e34 100644 --- a/proto/tokenization/predetermined_balances.proto +++ b/proto/tokenization/predetermined_balances.proto @@ -34,7 +34,7 @@ message IncrementedBalances { // Whether to allow overriding the timestamp for the balances (only applicable with durationFromTimestamp set). bool allowOverrideTimestamp = 5; // Recurring ownership times. - RecurringOwnershipTimes recurringOwnershipTimes = 6; + RecurringOwnershipTimes recurringOwnershipTimes = 6 [(gogoproto.nullable) = true]; // Allow override of any valid ID bool allowOverrideWithAnyValidToken = 7; // When true, the actual transfer can be any evenly divisible integer multiple (>=1x) of startBalances. @@ -68,8 +68,8 @@ message PredeterminedBalances { // Manual balances that can be entered. If this is nil, then we use the incremented balances. repeated ManualBalances manualBalances = 1; // Balances that have a starting amount and increment. If this is nil, then we use the manual balances. - IncrementedBalances incrementedBalances = 2; + IncrementedBalances incrementedBalances = 2 [(gogoproto.nullable) = true]; // The method to calculate the order of predetermined balances. - PredeterminedOrderCalculationMethod orderCalculationMethod = 3; + PredeterminedOrderCalculationMethod orderCalculationMethod = 3 [(gogoproto.nullable) = true]; } diff --git a/proto/tokenization/query.proto b/proto/tokenization/query.proto index 3f29f7d5..612a729d 100644 --- a/proto/tokenization/query.proto +++ b/proto/tokenization/query.proto @@ -117,7 +117,7 @@ message QueryGetCollectionRequest { } message QueryGetCollectionResponse { - TokenCollection collection = 1; + TokenCollection collection = 1 [(gogoproto.nullable) = true]; } message QueryGetBalanceRequest { @@ -126,7 +126,7 @@ message QueryGetBalanceRequest { } message QueryGetBalanceResponse { - UserBalanceStore balance = 1; + UserBalanceStore balance = 1 [(gogoproto.nullable) = true]; } message QueryGetAddressListRequest { @@ -134,7 +134,7 @@ message QueryGetAddressListRequest { } message QueryGetAddressListResponse { - AddressList list = 1; + AddressList list = 1 [(gogoproto.nullable) = true]; } message QueryGetApprovalTrackerRequest { @@ -148,7 +148,7 @@ message QueryGetApprovalTrackerRequest { } message QueryGetApprovalTrackerResponse { - ApprovalTracker tracker = 1; + ApprovalTracker tracker = 1 [(gogoproto.nullable) = true]; } message QueryGetChallengeTrackerRequest { @@ -169,7 +169,7 @@ message QueryGetDynamicStoreRequest { } message QueryGetDynamicStoreResponse { - DynamicStore store = 1; + DynamicStore store = 1 [(gogoproto.nullable) = true]; } message QueryGetDynamicStoreValueRequest { @@ -178,7 +178,7 @@ message QueryGetDynamicStoreValueRequest { } message QueryGetDynamicStoreValueResponse { - DynamicStoreValue value = 1; + DynamicStoreValue value = 1 [(gogoproto.nullable) = true]; } message QueryGetETHSignatureTrackerRequest { @@ -227,7 +227,7 @@ message QueryGetVoteRequest { } message QueryGetVoteResponse { - VoteProof vote = 1; + VoteProof vote = 1 [(gogoproto.nullable) = true]; } message QueryGetVotesRequest { @@ -247,7 +247,7 @@ message QueryGetCollectionStatsRequest { } message QueryGetCollectionStatsResponse { - CollectionStats stats = 1; + CollectionStats stats = 1 [(gogoproto.nullable) = true]; } message QueryGetBalanceForTokenRequest { diff --git a/proto/tokenization/timelines.proto b/proto/tokenization/timelines.proto index e3a23212..7689c3ff 100644 --- a/proto/tokenization/timelines.proto +++ b/proto/tokenization/timelines.proto @@ -13,7 +13,7 @@ option go_package = "github.com/bitbadges/bitbadgeschain/x/tokenization/types"; // CollectionMetadataTimeline defines the metadata for a collection at different timeline times. message CollectionMetadataTimeline { // The collection metadata for a specific timeline element. - CollectionMetadata collectionMetadata = 1; + CollectionMetadata collectionMetadata = 1 [(gogoproto.nullable) = true]; // The timeline times when the collection metadata is valid. Can not overlap with other timeline elements in same array. repeated UintRange timelineTimes = 2; diff --git a/proto/tokenization/transfers.proto b/proto/tokenization/transfers.proto index 23244e7a..b7441d2a 100644 --- a/proto/tokenization/transfers.proto +++ b/proto/tokenization/transfers.proto @@ -18,7 +18,7 @@ message Transfer { repeated Balance balances = 3; // If defined, we will use the predeterminedBalances from the specified approval to calculate the balances at execution time. // We will override the balances field with the precalculated balances. Only applicable for approvals with predeterminedBalances set. - PrecalculateBalancesFromApprovalDetails precalculateBalancesFromApproval = 4; + PrecalculateBalancesFromApprovalDetails precalculateBalancesFromApproval = 4 [(gogoproto.nullable) = true]; // The Merkle proofs / solutions for all Merkle challenges required for the transfer. repeated MerkleProof merkleProofs = 5; // The ETH signature proofs / solutions for all ETH signature challenges required for the transfer. @@ -53,5 +53,5 @@ message PrecalculateBalancesFromApprovalDetails { // The version of the approval. string version = 4 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; // The options for precalculating the balances. - PrecalculationOptions precalculationOptions = 5; + PrecalculationOptions precalculationOptions = 5 [(gogoproto.nullable) = true]; } diff --git a/proto/tokenization/tx.proto b/proto/tokenization/tx.proto index 6577c716..97d1e608 100644 --- a/proto/tokenization/tx.proto +++ b/proto/tokenization/tx.proto @@ -61,34 +61,34 @@ service Msg { //Used for WASM bindings and JSON parsing message TokenizationCustomMsgType { - MsgCreateAddressLists createAddressListsMsg = 1; - MsgUniversalUpdateCollection universalUpdateCollectionMsg = 2; - MsgDeleteCollection deleteCollectionMsg = 3; - MsgTransferTokens transferTokensMsg = 4; - MsgUpdateUserApprovals updateUserApprovalsMsg = 5; - MsgUpdateCollection updateCollectionMsg = 6; - MsgCreateCollection createCollectionMsg = 7; - MsgCreateDynamicStore createDynamicStoreMsg = 8; - MsgUpdateDynamicStore updateDynamicStoreMsg = 9; - MsgDeleteDynamicStore deleteDynamicStoreMsg = 10; - MsgSetDynamicStoreValue setDynamicStoreValueMsg = 11; - MsgSetIncomingApproval setIncomingApprovalMsg = 14; - MsgDeleteIncomingApproval deleteIncomingApprovalMsg = 15; - MsgSetOutgoingApproval setOutgoingApprovalMsg = 16; - MsgDeleteOutgoingApproval deleteOutgoingApprovalMsg = 17; - MsgPurgeApprovals purgeApprovalsMsg = 18; + MsgCreateAddressLists createAddressListsMsg = 1 [(gogoproto.nullable) = true]; + MsgUniversalUpdateCollection universalUpdateCollectionMsg = 2 [(gogoproto.nullable) = true]; + MsgDeleteCollection deleteCollectionMsg = 3 [(gogoproto.nullable) = true]; + MsgTransferTokens transferTokensMsg = 4 [(gogoproto.nullable) = true]; + MsgUpdateUserApprovals updateUserApprovalsMsg = 5 [(gogoproto.nullable) = true]; + MsgUpdateCollection updateCollectionMsg = 6 [(gogoproto.nullable) = true]; + MsgCreateCollection createCollectionMsg = 7 [(gogoproto.nullable) = true]; + MsgCreateDynamicStore createDynamicStoreMsg = 8 [(gogoproto.nullable) = true]; + MsgUpdateDynamicStore updateDynamicStoreMsg = 9 [(gogoproto.nullable) = true]; + MsgDeleteDynamicStore deleteDynamicStoreMsg = 10 [(gogoproto.nullable) = true]; + MsgSetDynamicStoreValue setDynamicStoreValueMsg = 11 [(gogoproto.nullable) = true]; + MsgSetIncomingApproval setIncomingApprovalMsg = 14 [(gogoproto.nullable) = true]; + MsgDeleteIncomingApproval deleteIncomingApprovalMsg = 15 [(gogoproto.nullable) = true]; + MsgSetOutgoingApproval setOutgoingApprovalMsg = 16 [(gogoproto.nullable) = true]; + MsgDeleteOutgoingApproval deleteOutgoingApprovalMsg = 17 [(gogoproto.nullable) = true]; + MsgPurgeApprovals purgeApprovalsMsg = 18 [(gogoproto.nullable) = true]; // Helper message types for UniversalUpdateCollection subsets - MsgSetValidTokenIds setValidTokenIdsMsg = 19; - MsgSetManager setManagerMsg = 20; - MsgSetCollectionMetadata setCollectionMetadataMsg = 21; - MsgSetTokenMetadata setTokenMetadataMsg = 22; - MsgSetCustomData setCustomDataMsg = 23; - MsgSetStandards setStandardsMsg = 24; - MsgSetCollectionApprovals setCollectionApprovalsMsg = 25; - MsgSetIsArchived setIsArchivedMsg = 26; - MsgSetReservedProtocolAddress setReservedProtocolAddressMsg = 27; - MsgCastVote castVoteMsg = 28; + MsgSetValidTokenIds setValidTokenIdsMsg = 19 [(gogoproto.nullable) = true]; + MsgSetManager setManagerMsg = 20 [(gogoproto.nullable) = true]; + MsgSetCollectionMetadata setCollectionMetadataMsg = 21 [(gogoproto.nullable) = true]; + MsgSetTokenMetadata setTokenMetadataMsg = 22 [(gogoproto.nullable) = true]; + MsgSetCustomData setCustomDataMsg = 23 [(gogoproto.nullable) = true]; + MsgSetStandards setStandardsMsg = 24 [(gogoproto.nullable) = true]; + MsgSetCollectionApprovals setCollectionApprovalsMsg = 25 [(gogoproto.nullable) = true]; + MsgSetIsArchived setIsArchivedMsg = 26 [(gogoproto.nullable) = true]; + MsgSetReservedProtocolAddress setReservedProtocolAddressMsg = 27 [(gogoproto.nullable) = true]; + MsgCastVote castVoteMsg = 28 [(gogoproto.nullable) = true]; } // MsgUpdateParams is the Msg/UpdateParams request type. @@ -114,25 +114,25 @@ message MsgUpdateParamsResponse {} message CosmosCoinWrapperPathAddObject { string denom = 1; - ConversionWithoutDenom conversion = 2; + ConversionWithoutDenom conversion = 2 [(gogoproto.nullable) = true]; string symbol = 3; repeated DenomUnit denomUnits = 4; bool allowOverrideWithAnyValidToken = 5; // The metadata for this wrapper path. - PathMetadata metadata = 6; + PathMetadata metadata = 6 [(gogoproto.nullable) = true]; } message AliasPathAddObject { string denom = 1; - ConversionWithoutDenom conversion = 2; + ConversionWithoutDenom conversion = 2 [(gogoproto.nullable) = true]; string symbol = 3; repeated DenomUnit denomUnits = 4; // The metadata for this alias path. - PathMetadata metadata = 5; + PathMetadata metadata = 5 [(gogoproto.nullable) = true]; } message CosmosCoinBackedPathAddObject { - Conversion conversion = 1; + Conversion conversion = 1 [(gogoproto.nullable) = true]; } // InvariantsAddObject is used for adding invariants without specifying addresses. @@ -148,7 +148,7 @@ message InvariantsAddObject { // The IBC backed (sdk.coin) path for the collection. Only one path is allowed. // Address will be generated by the keeper. - CosmosCoinBackedPathAddObject cosmosCoinBackedPath = 3; + CosmosCoinBackedPathAddObject cosmosCoinBackedPath = 3 [(gogoproto.nullable) = true]; // If true, disallows any collection approvals that have overridesFromOutgoingApprovals or overridesToIncomingApprovals set to true. // This prevents forceful transfers that bypass user-level approvals. @@ -179,7 +179,7 @@ message MsgUniversalUpdateCollection { string collectionId = 2 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; //The default balances for the user - UserBalanceStore defaultBalances = 3; + UserBalanceStore defaultBalances = 3 [(gogoproto.nullable) = true]; // Indicates if the valid token IDs should be updated. If true, we set to value in this Msg. If false, we keep existing value. bool updateValidTokenIds = 4; @@ -191,7 +191,7 @@ message MsgUniversalUpdateCollection { bool updateCollectionPermissions = 6; // New collection permissions to set. - CollectionPermissions collectionPermissions = 7; + CollectionPermissions collectionPermissions = 7 [(gogoproto.nullable) = true]; // Indicates if the manager should be updated. If true, we set to value in this Msg. If false, we keep existing value. bool updateManager = 8; @@ -203,7 +203,7 @@ message MsgUniversalUpdateCollection { bool updateCollectionMetadata = 10; // New collection metadata to set. - CollectionMetadata collectionMetadata = 11; + CollectionMetadata collectionMetadata = 11 [(gogoproto.nullable) = true]; // Indicates if the token metadata should be updated. If true, we set to value in this Msg. If false, we keep existing value. bool updateTokenMetadata = 12; @@ -245,7 +245,7 @@ message MsgUniversalUpdateCollection { // Collection-level invariants that cannot be broken. // These are set upon genesis and cannot be modified. // Addresses are generated by the keeper and stored in the collection. - InvariantsAddObject invariants = 24; + InvariantsAddObject invariants = 24 [(gogoproto.nullable) = true]; // Alias (non-wrapping) paths to add. repeated AliasPathAddObject aliasPathsToAdd = 25; @@ -280,7 +280,7 @@ message MsgUpdateCollection { bool updateCollectionPermissions = 5; // New collection permissions to set. - CollectionPermissions collectionPermissions = 6; + CollectionPermissions collectionPermissions = 6 [(gogoproto.nullable) = true]; // Indicates if the manager should be updated. If true, we set to value in this Msg. If false, we keep existing value. bool updateManager = 7; @@ -292,7 +292,7 @@ message MsgUpdateCollection { bool updateCollectionMetadata = 9; // New collection metadata to set. - CollectionMetadata collectionMetadata = 10; + CollectionMetadata collectionMetadata = 10 [(gogoproto.nullable) = true]; // Indicates if the token metadata should be updated. If true, we set to value in this Msg. If false, we keep existing value. bool updateTokenMetadata = 11; @@ -334,7 +334,7 @@ message MsgUpdateCollection { // Collection-level invariants that cannot be broken. // These are set upon genesis and cannot be modified. // Addresses are generated by the keeper and stored in the collection. - InvariantsAddObject invariants = 23; + InvariantsAddObject invariants = 23 [(gogoproto.nullable) = true]; // Alias (non-wrapping) paths to add. repeated AliasPathAddObject aliasPathsToAdd = 24; @@ -357,19 +357,19 @@ message MsgCreateCollection { string creator = 1; //The default balances for the user - UserBalanceStore defaultBalances = 2; + UserBalanceStore defaultBalances = 2 [(gogoproto.nullable) = true]; // New token IDs to add to this collection repeated UintRange validTokenIds = 3; // Collection permissions. - CollectionPermissions collectionPermissions = 4; + CollectionPermissions collectionPermissions = 4 [(gogoproto.nullable) = true]; // Manager address. string manager = 5; // Collection metadata. - CollectionMetadata collectionMetadata = 6; + CollectionMetadata collectionMetadata = 6 [(gogoproto.nullable) = true]; // Token metadata entries. repeated TokenMetadata tokenMetadata = 7; @@ -394,7 +394,7 @@ message MsgCreateCollection { // Collection-level invariants that cannot be broken. // Addresses are generated by the keeper and stored in the collection. - InvariantsAddObject invariants = 14; + InvariantsAddObject invariants = 14 [(gogoproto.nullable) = true]; // Alias (non-wrapping) paths to add. repeated AliasPathAddObject aliasPathsToAdd = 15; @@ -506,7 +506,7 @@ message MsgUpdateUserApprovals { bool updateUserPermissions = 13; // New user permissions to set. - UserPermissions userPermissions = 14; + UserPermissions userPermissions = 14 [(gogoproto.nullable) = true]; } // MsgUpdateUserApprovalsResponse is the response to MsgUpdateUserApprovals. @@ -528,7 +528,7 @@ message MsgSetIncomingApproval { string collectionId = 2 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; // The incoming approval to set. - UserIncomingApproval approval = 3; + UserIncomingApproval approval = 3 [(gogoproto.nullable) = true]; } // MsgSetIncomingApprovalResponse is the response to MsgSetIncomingApproval. @@ -572,7 +572,7 @@ message MsgSetOutgoingApproval { string collectionId = 2 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; // The outgoing approval to set. - UserOutgoingApproval approval = 3; + UserOutgoingApproval approval = 3 [(gogoproto.nullable) = true]; } // MsgSetOutgoingApprovalResponse is the response to MsgSetOutgoingApproval. @@ -783,7 +783,7 @@ message MsgSetCollectionMetadata { string collectionId = 2 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false]; // New collection metadata to set. - CollectionMetadata collectionMetadata = 3; + CollectionMetadata collectionMetadata = 3 [(gogoproto.nullable) = true]; // Permission to update collection metadata repeated ActionPermission canUpdateCollectionMetadata = 4; diff --git a/proto/tokenization/user_balance_store.proto b/proto/tokenization/user_balance_store.proto index c1d3ff2c..b1026a5e 100644 --- a/proto/tokenization/user_balance_store.proto +++ b/proto/tokenization/user_balance_store.proto @@ -51,6 +51,6 @@ message UserBalanceStore { bool autoApproveAllIncomingTransfers = 6; // The permissions for this user's actions and transfers. - UserPermissions userPermissions = 7; + UserPermissions userPermissions = 7 [(gogoproto.nullable) = true]; } diff --git a/x/gamm/poolmodels/balancer/tx.pb.go b/x/gamm/poolmodels/balancer/tx.pb.go index b47108a5..8fb76948 100644 --- a/x/gamm/poolmodels/balancer/tx.pb.go +++ b/x/gamm/poolmodels/balancer/tx.pb.go @@ -192,38 +192,38 @@ func init() { func init() { proto.RegisterFile("gamm/poolmodels/balancer/tx.proto", fileDescriptor_4dd23f7e84cfe970) } var fileDescriptor_4dd23f7e84cfe970 = []byte{ - // 487 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0x3f, 0x6b, 0xdb, 0x40, - 0x14, 0xc0, 0xad, 0x24, 0x75, 0xe9, 0x99, 0x0e, 0x11, 0x75, 0x63, 0x0c, 0x95, 0x5c, 0xa5, 0x50, - 0xd7, 0x05, 0x1d, 0x76, 0x87, 0x42, 0x86, 0x42, 0x95, 0x2c, 0x29, 0x18, 0x82, 0xe9, 0x50, 0x0a, - 0xa5, 0x9c, 0xa4, 0xeb, 0x45, 0xa0, 0xd3, 0x13, 0x7a, 0xe7, 0x90, 0x2c, 0xa1, 0x74, 0x2c, 0x1d, - 0x3a, 0xf5, 0x73, 0xf8, 0x63, 0x64, 0xcc, 0xd8, 0xc9, 0x14, 0x7b, 0xf0, 0x9e, 0x4f, 0x50, 0x74, - 0x3a, 0x37, 0x81, 0xd8, 0x85, 0x2c, 0xd2, 0xe9, 0xde, 0x4f, 0xbf, 0xf7, 0xe7, 0x24, 0xf2, 0x54, - 0x30, 0x29, 0x69, 0x0e, 0x90, 0x4a, 0x88, 0x79, 0x8a, 0x34, 0x64, 0x29, 0xcb, 0x22, 0x5e, 0x50, - 0x75, 0xea, 0xe7, 0x05, 0x28, 0xb0, 0x5b, 0x25, 0xe2, 0x5f, 0x23, 0xfe, 0x12, 0x69, 0x3f, 0x12, - 0x20, 0x40, 0x43, 0xb4, 0x5c, 0x55, 0x7c, 0x7b, 0x9b, 0xc9, 0x24, 0x03, 0xaa, 0xaf, 0x66, 0xeb, - 0xe5, 0xda, 0x2c, 0xcb, 0xc5, 0x11, 0x40, 0x6a, 0x60, 0x27, 0x02, 0x94, 0x50, 0x32, 0xc8, 0xe9, - 0x49, 0x3f, 0xe4, 0x8a, 0xf5, 0x69, 0x04, 0x49, 0x66, 0xe2, 0xae, 0x00, 0x10, 0x29, 0xa7, 0xfa, - 0x29, 0x1c, 0x7f, 0xa1, 0x2a, 0x91, 0x1c, 0x15, 0x93, 0xb9, 0x01, 0x76, 0x8c, 0x40, 0xa2, 0xa0, - 0x27, 0xfd, 0xf2, 0x56, 0x05, 0xbc, 0x5f, 0x1b, 0xa4, 0x39, 0x44, 0xb1, 0x5f, 0x70, 0xa6, 0x78, - 0x70, 0x23, 0xb3, 0xfd, 0x82, 0xd4, 0x91, 0x67, 0x31, 0x2f, 0x5a, 0x56, 0xc7, 0xea, 0x3e, 0x08, - 0xb6, 0xaf, 0xa6, 0xee, 0xc3, 0x33, 0x26, 0xd3, 0x3d, 0xaf, 0xda, 0xf7, 0x46, 0x06, 0xb0, 0x3f, - 0x91, 0x46, 0xd9, 0xc8, 0xe7, 0x9c, 0x15, 0x4c, 0x62, 0x6b, 0xa3, 0x63, 0x75, 0x1b, 0x83, 0x67, - 0xfe, 0xba, 0x21, 0xf9, 0xa5, 0xff, 0x48, 0xb3, 0xc1, 0xe3, 0xab, 0xa9, 0x6b, 0x57, 0xd6, 0x1b, - 0x0a, 0x6f, 0x44, 0xf2, 0x7f, 0x8c, 0xfd, 0xce, 0xe8, 0x19, 0x22, 0x57, 0xd8, 0xda, 0xec, 0x6c, - 0x76, 0x1b, 0x83, 0xdd, 0xff, 0xeb, 0xdf, 0x96, 0x6c, 0xb0, 0x75, 0x31, 0x75, 0x6b, 0x95, 0x4b, - 0x6f, 0xe0, 0xde, 0xf3, 0x6f, 0x8b, 0x49, 0xcf, 0xd4, 0xfd, 0x7d, 0x31, 0xe9, 0xed, 0xe8, 0x63, - 0xb8, 0xdd, 0xbe, 0x77, 0x40, 0x9e, 0xac, 0x9c, 0xcb, 0x88, 0x63, 0x0e, 0x19, 0x72, 0x7b, 0x97, - 0xdc, 0xd7, 0x55, 0x25, 0xb1, 0x1e, 0xd0, 0x56, 0x40, 0x66, 0x53, 0xb7, 0x5e, 0x22, 0x87, 0x07, - 0xa3, 0x7a, 0x19, 0x3a, 0x8c, 0xbd, 0x73, 0xd2, 0x5c, 0xbe, 0xbc, 0x3f, 0x46, 0x05, 0x72, 0x88, - 0xe2, 0xfd, 0x59, 0xce, 0x6d, 0x4e, 0x9a, 0xd1, 0x2d, 0xf7, 0x10, 0x85, 0x76, 0x35, 0x06, 0x74, - 0x7d, 0x77, 0xab, 0xab, 0x5a, 0x6d, 0x1b, 0xfc, 0xb0, 0xc8, 0xe6, 0x10, 0x85, 0x7d, 0x4e, 0xec, - 0x15, 0x47, 0x7c, 0xd7, 0x2c, 0xed, 0xd7, 0x77, 0x2d, 0xcb, 0x0c, 0xab, 0x7d, 0xef, 0xeb, 0x62, - 0xd2, 0xb3, 0x82, 0x0f, 0x17, 0x33, 0xc7, 0xba, 0x9c, 0x39, 0xd6, 0x9f, 0x99, 0x63, 0xfd, 0x9c, - 0x3b, 0xb5, 0xcb, 0xb9, 0x53, 0xfb, 0x3d, 0x77, 0x6a, 0x1f, 0xdf, 0x88, 0x44, 0x1d, 0x8f, 0x43, - 0x3f, 0x02, 0x49, 0xc3, 0x44, 0x85, 0x2c, 0x16, 0x1c, 0xaf, 0x57, 0xd1, 0x31, 0x4b, 0x32, 0x7a, - 0x4a, 0xd7, 0xfd, 0x34, 0x61, 0x5d, 0x7f, 0xce, 0xaf, 0xfe, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, - 0x32, 0xfd, 0xb3, 0xbd, 0x03, 0x00, 0x00, + // 493 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0xcf, 0x6b, 0x13, 0x41, + 0x14, 0xc7, 0x33, 0x4d, 0x8d, 0x38, 0xc1, 0x43, 0x17, 0x63, 0x43, 0xc0, 0xdd, 0xb8, 0x15, 0x8c, + 0x11, 0x76, 0x48, 0x3c, 0x08, 0x3d, 0x08, 0x6e, 0x7b, 0xa9, 0x10, 0x28, 0x8b, 0x07, 0x11, 0x44, + 0x66, 0x77, 0xc7, 0xe9, 0xe2, 0xce, 0xce, 0xb2, 0x6f, 0x52, 0xda, 0x8b, 0x88, 0x78, 0x12, 0x0f, + 0x9e, 0xfc, 0x3b, 0xf2, 0x67, 0xf4, 0xd8, 0xa3, 0xa7, 0x20, 0xc9, 0x21, 0xf7, 0xfe, 0x05, 0x32, + 0xb3, 0x1b, 0x5b, 0x68, 0x52, 0xe8, 0x65, 0xf7, 0xed, 0x7b, 0x9f, 0xf9, 0xbe, 0x5f, 0x3b, 0xf8, + 0x31, 0xa7, 0x42, 0x90, 0x5c, 0xca, 0x54, 0xc8, 0x98, 0xa5, 0x40, 0x42, 0x9a, 0xd2, 0x2c, 0x62, + 0x05, 0x51, 0x27, 0x5e, 0x5e, 0x48, 0x25, 0xad, 0xb6, 0x46, 0xbc, 0x4b, 0xc4, 0x5b, 0x22, 0x9d, + 0x07, 0x5c, 0x72, 0x69, 0x20, 0xa2, 0xad, 0x92, 0xef, 0x6c, 0x51, 0x91, 0x64, 0x92, 0x98, 0x67, + 0xe5, 0x7a, 0xbe, 0x36, 0xcb, 0xd2, 0x38, 0x94, 0x32, 0xad, 0x60, 0x3b, 0x92, 0x20, 0xa4, 0x66, + 0x80, 0x91, 0xe3, 0x41, 0xc8, 0x14, 0x1d, 0x90, 0x48, 0x26, 0x59, 0x15, 0x77, 0xb8, 0x94, 0x3c, + 0x65, 0xc4, 0x7c, 0x85, 0xe3, 0x4f, 0x44, 0x25, 0x82, 0x81, 0xa2, 0x22, 0xaf, 0x80, 0xed, 0x4a, + 0x40, 0x00, 0x27, 0xc7, 0x03, 0xfd, 0x2a, 0x03, 0xee, 0xef, 0x0d, 0xdc, 0x1a, 0x01, 0xdf, 0x2b, + 0x18, 0x55, 0xcc, 0xbf, 0x92, 0xd9, 0x7a, 0x86, 0x1b, 0xc0, 0xb2, 0x98, 0x15, 0x6d, 0xd4, 0x45, + 0xbd, 0x7b, 0xfe, 0xd6, 0xc5, 0xd4, 0xb9, 0x7f, 0x4a, 0x45, 0xba, 0xeb, 0x96, 0x7e, 0x37, 0xa8, + 0x00, 0xeb, 0x03, 0x6e, 0xea, 0x46, 0x3e, 0xe6, 0xb4, 0xa0, 0x02, 0xda, 0x1b, 0x5d, 0xd4, 0x6b, + 0x0e, 0x9f, 0x78, 0xeb, 0x86, 0xe4, 0x69, 0xfd, 0x43, 0xc3, 0xfa, 0x0f, 0x2f, 0xa6, 0x8e, 0x55, + 0xaa, 0x5e, 0x91, 0x70, 0x03, 0x9c, 0xff, 0x67, 0xac, 0x37, 0x95, 0x3c, 0x05, 0x60, 0x0a, 0xda, + 0xf5, 0x6e, 0xbd, 0xd7, 0x1c, 0xee, 0xdc, 0x2c, 0xff, 0x5a, 0xb3, 0xfe, 0xe6, 0xd9, 0xd4, 0xa9, + 0x95, 0x5a, 0xc6, 0x01, 0xbb, 0x4f, 0xbf, 0x2d, 0x26, 0xfd, 0xaa, 0xee, 0x1f, 0x8b, 0x49, 0x7f, + 0xdb, 0xac, 0xe1, 0x7a, 0xfb, 0xee, 0x3e, 0x7e, 0xb4, 0x72, 0x2e, 0x01, 0x83, 0x5c, 0x66, 0xc0, + 0xac, 0x1d, 0x7c, 0xd7, 0x54, 0x95, 0xc4, 0x66, 0x40, 0x9b, 0x3e, 0x9e, 0x4d, 0x9d, 0x86, 0x46, + 0x0e, 0xf6, 0x83, 0x86, 0x0e, 0x1d, 0xc4, 0xee, 0x77, 0x84, 0x5b, 0xcb, 0xd3, 0x7b, 0x63, 0x50, + 0x52, 0x8c, 0x80, 0xbf, 0x3d, 0xcd, 0x99, 0xf5, 0x19, 0xb7, 0xa2, 0x6b, 0xe2, 0x23, 0xe0, 0x46, + 0xac, 0x39, 0x24, 0xeb, 0xdb, 0x5b, 0x59, 0x96, 0x69, 0x15, 0x05, 0xab, 0x35, 0x87, 0x3f, 0x11, + 0xae, 0x8f, 0x80, 0x5b, 0x5f, 0xb0, 0xb5, 0x62, 0xd3, 0xb7, 0xcd, 0xd5, 0x79, 0x79, 0xcb, 0x03, + 0xcb, 0x99, 0x75, 0xee, 0x7c, 0x5d, 0x4c, 0xfa, 0xc8, 0x7f, 0x77, 0x36, 0xb3, 0xd1, 0xf9, 0xcc, + 0x46, 0x7f, 0x67, 0x36, 0xfa, 0x35, 0xb7, 0x6b, 0xe7, 0x73, 0xbb, 0xf6, 0x67, 0x6e, 0xd7, 0xde, + 0xbf, 0xe2, 0x89, 0x3a, 0x1a, 0x87, 0x5e, 0x24, 0x05, 0x09, 0x13, 0x15, 0xd2, 0x98, 0x33, 0xb8, + 0xb4, 0xa2, 0x23, 0x9a, 0x64, 0xe4, 0x84, 0xac, 0xbb, 0x3b, 0x61, 0xc3, 0xfc, 0xd5, 0x2f, 0xfe, + 0x05, 0x00, 0x00, 0xff, 0xff, 0x43, 0x60, 0xdf, 0x86, 0xc4, 0x03, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/gamm/types/query.pb.go b/x/gamm/types/query.pb.go index 2e67884c..f3a0a543 100644 --- a/x/gamm/types/query.pb.go +++ b/x/gamm/types/query.pb.go @@ -1739,139 +1739,139 @@ func init() { func init() { proto.RegisterFile("gamm/v1beta1/query.proto", fileDescriptor_96cac0202528dce1) } var fileDescriptor_96cac0202528dce1 = []byte{ - // 2101 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x6f, 0x1c, 0x49, - 0x15, 0x77, 0x4f, 0x6c, 0xc7, 0xf3, 0x1c, 0x7f, 0xa4, 0x6c, 0x6f, 0x3a, 0x63, 0x67, 0x26, 0x54, - 0x1c, 0xc7, 0x49, 0x9c, 0x99, 0xc4, 0xc9, 0xb2, 0x2b, 0x2b, 0x4b, 0x36, 0x76, 0xec, 0xc4, 0x61, - 0x65, 0x27, 0x9d, 0x05, 0xc4, 0x22, 0x34, 0x6a, 0x7b, 0x3a, 0xe3, 0xde, 0xb8, 0xbb, 0x66, 0xa6, - 0xab, 0xb1, 0x2d, 0xb4, 0x5a, 0x69, 0x25, 0x96, 0xe5, 0x04, 0x12, 0xab, 0x15, 0x07, 0xc4, 0x89, - 0x0b, 0x1c, 0x01, 0x09, 0x24, 0x84, 0x04, 0x12, 0x87, 0x15, 0xa7, 0x95, 0x10, 0x12, 0xe2, 0x30, - 0xa0, 0x04, 0x71, 0xc7, 0x7f, 0x01, 0xaa, 0x8f, 0xfe, 0x9c, 0x6e, 0x4f, 0x7b, 0x50, 0xa4, 0xdd, - 0x93, 0xa7, 0xeb, 0xbd, 0xf7, 0xab, 0xdf, 0x7b, 0xaf, 0xea, 0xd5, 0xab, 0x32, 0xa8, 0x75, 0xdd, - 0xb2, 0x2a, 0xdf, 0xb9, 0xb1, 0x65, 0x50, 0xfd, 0x46, 0xa5, 0xe9, 0x1a, 0xad, 0x83, 0x72, 0xa3, - 0x45, 0x28, 0x41, 0xa7, 0x98, 0xa4, 0x2c, 0x25, 0x85, 0xc9, 0x3a, 0xa9, 0x13, 0x2e, 0xa8, 0xb0, - 0x5f, 0x42, 0xa7, 0x30, 0x15, 0xb1, 0xa6, 0xfb, 0x72, 0x78, 0xb6, 0x41, 0xc8, 0xae, 0xa5, 0xdb, - 0x7a, 0xdd, 0x68, 0xf9, 0x52, 0x67, 0x4f, 0x6f, 0x54, 0x5b, 0xc4, 0xa5, 0x86, 0xd4, 0x2a, 0x6e, - 0x13, 0xc7, 0x22, 0x4e, 0x65, 0x4b, 0x77, 0x0c, 0x5f, 0x6b, 0x9b, 0x98, 0xb6, 0x94, 0x5f, 0x09, - 0xcb, 0x39, 0x33, 0x5f, 0xab, 0xa1, 0xd7, 0x4d, 0x5b, 0xa7, 0x26, 0xf1, 0x74, 0x67, 0xea, 0x84, - 0xd4, 0x77, 0x8d, 0x8a, 0xde, 0x30, 0x2b, 0xba, 0x6d, 0x13, 0xca, 0x85, 0x8e, 0x94, 0x9e, 0x95, - 0x52, 0xfe, 0xb5, 0xe5, 0x3e, 0xad, 0xe8, 0xf6, 0x81, 0x27, 0x12, 0x93, 0x54, 0x85, 0x6b, 0xe2, - 0xc3, 0xb7, 0x0a, 0x3b, 0xd7, 0xd0, 0x5b, 0xba, 0x25, 0x45, 0x78, 0x0c, 0x46, 0x1e, 0xf1, 0x6f, - 0xcd, 0x68, 0xba, 0x86, 0x43, 0xf1, 0x3d, 0x18, 0xf5, 0x06, 0x9c, 0x06, 0xb1, 0x1d, 0x03, 0x2d, - 0xc2, 0xa0, 0x30, 0x51, 0x95, 0xf3, 0xca, 0xfc, 0xf0, 0xe2, 0x64, 0x39, 0x1c, 0xcf, 0xb2, 0xd0, - 0x5e, 0xee, 0xff, 0xb4, 0x5d, 0xea, 0xd3, 0xa4, 0x26, 0x5e, 0x81, 0xf1, 0xc7, 0xcc, 0xcf, 0x47, - 0x84, 0xec, 0x4a, 0x64, 0x74, 0x15, 0x4e, 0xb2, 0x68, 0x56, 0xcd, 0x1a, 0x07, 0xea, 0x5f, 0x46, - 0x87, 0xed, 0xd2, 0xe8, 0x81, 0x6e, 0xed, 0x2e, 0x61, 0x29, 0xc0, 0xda, 0x20, 0xfb, 0xb5, 0x5e, - 0x5b, 0xca, 0xa9, 0x0a, 0x7e, 0x0b, 0x4e, 0x87, 0x40, 0x24, 0x9b, 0x9b, 0xd0, 0xcf, 0x54, 0x02, - 0x2e, 0x3c, 0x20, 0x65, 0x2f, 0x20, 0xe5, 0xbb, 0xf6, 0xc1, 0x72, 0xfe, 0x2f, 0xbf, 0xb9, 0x36, - 0xc0, 0xac, 0xd6, 0x35, 0xae, 0xcc, 0xd1, 0xbe, 0x15, 0x42, 0xf3, 0xbc, 0x45, 0x6b, 0x00, 0x41, - 0x06, 0xd4, 0x1c, 0xc7, 0x9c, 0x2b, 0xcb, 0xe0, 0xb1, 0x74, 0x95, 0xc5, 0x42, 0x0a, 0x9c, 0xad, - 0x1b, 0xd2, 0x56, 0x0b, 0x59, 0xe2, 0x8f, 0x15, 0x40, 0x61, 0x74, 0x49, 0xf6, 0x55, 0x18, 0x60, - 0xf3, 0xb3, 0xc8, 0x9d, 0xc8, 0xc2, 0x56, 0x68, 0xa3, 0xfb, 0x09, 0xac, 0x2e, 0x75, 0x65, 0x25, - 0xe6, 0x8c, 0xd0, 0x2a, 0xc0, 0x24, 0x67, 0xb5, 0xe1, 0x5a, 0x61, 0xb7, 0x79, 0x3c, 0x36, 0x60, - 0x2a, 0x26, 0x93, 0xa4, 0x6f, 0x40, 0xde, 0x76, 0xad, 0xaa, 0x47, 0x9c, 0x65, 0x6a, 0xf2, 0xb0, - 0x5d, 0x1a, 0x17, 0x99, 0xf2, 0x45, 0x58, 0x1b, 0xb2, 0xa5, 0x29, 0xc7, 0x5b, 0x91, 0x73, 0xb1, - 0x91, 0xb7, 0x0f, 0x1a, 0x46, 0x2f, 0x69, 0xc7, 0x0f, 0x25, 0xa9, 0x00, 0x24, 0x20, 0xc5, 0x95, - 0xe9, 0x41, 0xc3, 0xe0, 0x38, 0xf9, 0x30, 0x29, 0x5f, 0x84, 0xb5, 0xa1, 0x86, 0x34, 0xc5, 0xbf, - 0x55, 0xa0, 0xc8, 0xc1, 0x56, 0xf4, 0xdd, 0xed, 0x87, 0xc4, 0xb4, 0x19, 0xe8, 0x93, 0x1d, 0xbd, - 0x65, 0x38, 0xbd, 0x70, 0x43, 0x3b, 0x90, 0xa7, 0xe4, 0x99, 0x61, 0x3b, 0x55, 0x93, 0x25, 0x85, - 0x25, 0xf4, 0x6c, 0x24, 0x29, 0x5e, 0x3a, 0x56, 0x88, 0x69, 0x2f, 0x5f, 0x67, 0xfb, 0xe1, 0x97, - 0xff, 0x2c, 0xcd, 0xd7, 0x4d, 0xba, 0xe3, 0x6e, 0x95, 0xb7, 0x89, 0x25, 0x37, 0xa5, 0xfc, 0x73, - 0xcd, 0xa9, 0x3d, 0xab, 0x30, 0xce, 0x0e, 0x37, 0x70, 0xb4, 0x21, 0x81, 0xbe, 0x6e, 0xe3, 0xff, - 0x2a, 0x50, 0x4a, 0x65, 0x2e, 0x03, 0xb2, 0x05, 0xe3, 0x0e, 0x1b, 0xa9, 0x12, 0x97, 0x56, 0x75, - 0x8b, 0xb8, 0x36, 0x95, 0x71, 0x79, 0x9d, 0xcd, 0xfc, 0x8f, 0x76, 0x69, 0x4a, 0xcc, 0xe3, 0xd4, - 0x9e, 0x95, 0x4d, 0x52, 0xb1, 0x74, 0xba, 0x53, 0x5e, 0xb7, 0xe9, 0x61, 0xbb, 0x74, 0x46, 0x38, - 0x18, 0x37, 0xc7, 0xda, 0x28, 0x1f, 0xda, 0x74, 0xe9, 0x5d, 0x3e, 0x80, 0xde, 0x05, 0x90, 0x1e, - 0x13, 0x97, 0xbe, 0x0c, 0x97, 0x65, 0x40, 0x37, 0x5d, 0x8a, 0x7f, 0xa0, 0xc0, 0x25, 0xdf, 0xe7, - 0xd5, 0x7d, 0x93, 0x32, 0x9f, 0xb9, 0xd6, 0x5a, 0x8b, 0x58, 0xd1, 0xb4, 0x9d, 0x89, 0xa5, 0xcd, - 0x4f, 0xd1, 0x2a, 0x8c, 0x09, 0xaf, 0x4c, 0xdb, 0x8b, 0x49, 0x8e, 0xc7, 0xe4, 0xdc, 0x91, 0x31, - 0xd1, 0x46, 0xb8, 0xd5, 0xba, 0x2d, 0xfc, 0xc6, 0x9f, 0x28, 0x30, 0xdf, 0x9d, 0x8b, 0x4c, 0x44, - 0x34, 0x48, 0xca, 0x4b, 0x0d, 0xd2, 0x2a, 0xbc, 0xe2, 0x6f, 0x8f, 0x48, 0xd9, 0x3e, 0xde, 0x2e, - 0xbb, 0x0f, 0x67, 0x3a, 0x60, 0xa4, 0x37, 0x0b, 0x9d, 0xc5, 0xbe, 0xb3, 0x64, 0xf9, 0x65, 0xfe, - 0xb1, 0xdc, 0x61, 0x6f, 0x13, 0xaa, 0xef, 0x32, 0xb4, 0xb7, 0xcc, 0xa6, 0x6b, 0xd6, 0x4c, 0x7a, - 0xd0, 0x73, 0xd1, 0xff, 0xb9, 0xb7, 0xf6, 0x93, 0x30, 0x25, 0xc9, 0xf7, 0x20, 0xbf, 0xeb, 0x0d, - 0x76, 0x8f, 0xf8, 0x3d, 0x16, 0xf1, 0xa0, 0x56, 0xf8, 0x96, 0xf8, 0x78, 0x59, 0xf0, 0xed, 0x38, - 0xcd, 0x35, 0x19, 0x42, 0xce, 0xb2, 0xf7, 0xa2, 0x82, 0x5d, 0x50, 0x3b, 0x71, 0xa4, 0x9b, 0xdf, - 0x84, 0x53, 0x94, 0x0d, 0x57, 0xf9, 0xea, 0xf4, 0x32, 0x72, 0x84, 0xa7, 0xd3, 0xd2, 0xd3, 0x09, - 0x31, 0x59, 0xd8, 0x18, 0x6b, 0xc3, 0x34, 0x98, 0x02, 0xff, 0x41, 0x81, 0xd9, 0x8e, 0x0a, 0xb3, - 0x41, 0x9e, 0xec, 0xe9, 0x8d, 0x2f, 0x44, 0x85, 0xfc, 0x8f, 0x02, 0x17, 0xbb, 0xf0, 0x97, 0x41, - 0x7c, 0xff, 0x78, 0xdb, 0x73, 0x55, 0x86, 0xf0, 0xb4, 0x17, 0x42, 0xcf, 0x14, 0xf7, 0xb8, 0x67, - 0xd1, 0x6d, 0x00, 0x91, 0x02, 0x59, 0x44, 0x33, 0x94, 0xa3, 0xbc, 0x30, 0x60, 0x3b, 0xfe, 0x17, - 0x39, 0x79, 0x22, 0x3e, 0x69, 0x10, 0xfa, 0xa8, 0x65, 0x6e, 0xf7, 0x74, 0xae, 0xa2, 0x55, 0x18, - 0x67, 0xbe, 0x56, 0x75, 0xc7, 0x31, 0x68, 0xb5, 0x66, 0xd8, 0xc4, 0x92, 0x54, 0xa6, 0x83, 0x03, - 0x21, 0xae, 0x81, 0xb5, 0x51, 0x36, 0x74, 0x97, 0x8d, 0xdc, 0x63, 0x03, 0xe8, 0x01, 0x9c, 0x6e, - 0xba, 0x84, 0x46, 0x71, 0x4e, 0x70, 0x9c, 0x99, 0xc3, 0x76, 0x49, 0x15, 0x38, 0x1d, 0x2a, 0x58, - 0x1b, 0xe3, 0x63, 0x21, 0xa4, 0x0d, 0x18, 0xde, 0x33, 0xe9, 0x0e, 0x4b, 0xd8, 0x9a, 0x61, 0xa8, - 0xfd, 0xe7, 0x95, 0xf9, 0xa1, 0xe5, 0x85, 0xc3, 0x76, 0x69, 0x4e, 0x60, 0x30, 0x61, 0x95, 0x37, - 0xda, 0x4f, 0x0d, 0x03, 0x2f, 0xd4, 0x8c, 0x46, 0xcb, 0xd8, 0xd6, 0xa9, 0x51, 0x5b, 0xc2, 0xb4, - 0xe5, 0x1a, 0x58, 0x55, 0xb4, 0x30, 0x00, 0xdf, 0x93, 0x7f, 0x52, 0x60, 0x3a, 0x68, 0xc2, 0xbe, - 0x61, 0xd2, 0x9d, 0x35, 0x73, 0x97, 0x1a, 0x2d, 0x2f, 0x62, 0x6f, 0xc0, 0x88, 0x65, 0xda, 0xd5, - 0x70, 0xe9, 0x60, 0xcc, 0xd5, 0xc3, 0x76, 0x69, 0x52, 0xcc, 0x1a, 0x11, 0x63, 0xed, 0x94, 0x65, - 0xda, 0x7e, 0xf5, 0x41, 0xd3, 0xe1, 0x16, 0x84, 0x07, 0x2f, 0x68, 0x36, 0x62, 0x8d, 0xe4, 0x89, - 0x9e, 0x1b, 0xc9, 0x9f, 0x29, 0x30, 0x93, 0xec, 0xc3, 0xe7, 0xa4, 0xa5, 0xd4, 0xe4, 0x11, 0x14, - 0x5a, 0x8f, 0x92, 0xd9, 0x2d, 0x00, 0xa7, 0x41, 0x68, 0xb5, 0xc1, 0x46, 0x65, 0x6c, 0xa7, 0x82, - 0xad, 0x14, 0xc8, 0xb0, 0x96, 0x77, 0x3c, 0x6b, 0x9e, 0xb8, 0x0f, 0x72, 0x70, 0x4e, 0x80, 0xee, - 0xe9, 0x8d, 0xd5, 0x7d, 0x7d, 0x5b, 0x36, 0x20, 0xeb, 0xb6, 0x97, 0xba, 0xcb, 0x30, 0xe8, 0x18, - 0x76, 0xcd, 0x68, 0x49, 0xdc, 0xd3, 0x87, 0xed, 0xd2, 0x88, 0xc4, 0xe5, 0xe3, 0x58, 0x93, 0x0a, - 0xe1, 0x7d, 0x91, 0xeb, 0xba, 0x2f, 0xca, 0x20, 0x6a, 0x0a, 0x2b, 0x58, 0x62, 0x1d, 0x4f, 0x1c, - 0xb6, 0x4b, 0x63, 0xa1, 0xcd, 0x5f, 0x35, 0x6d, 0xac, 0x9d, 0xe4, 0x3f, 0xd7, 0x6d, 0xf4, 0x35, - 0x18, 0xe4, 0x17, 0x3f, 0x47, 0xed, 0xe7, 0xe1, 0x9f, 0x2b, 0x87, 0x2e, 0x88, 0x7e, 0xf0, 0x98, - 0x1b, 0xbe, 0x07, 0x4c, 0x7d, 0x79, 0x4a, 0x96, 0x15, 0xc9, 0x59, 0x60, 0x60, 0x4d, 0x82, 0xf1, - 0x20, 0x7c, 0xe4, 0xb5, 0xab, 0x09, 0x41, 0x08, 0x7a, 0x3e, 0xc1, 0xa9, 0xe7, 0x9e, 0x2f, 0x6e, - 0x8e, 0xb5, 0x51, 0x3e, 0xe4, 0xf7, 0x7c, 0x9c, 0xca, 0xf7, 0x73, 0xc9, 0x54, 0x36, 0x5d, 0xfa, - 0xb2, 0x13, 0xf2, 0x75, 0x3f, 0xc0, 0x27, 0x78, 0x80, 0x2f, 0x75, 0x09, 0x30, 0xa3, 0x94, 0x21, - 0xc2, 0xec, 0xfe, 0xe0, 0xfb, 0xce, 0xab, 0x4d, 0xe4, 0xfe, 0xe0, 0x8b, 0xb0, 0x3c, 0x63, 0x36, - 0x5d, 0x11, 0x89, 0x0f, 0xbd, 0x6e, 0x24, 0x29, 0x12, 0x32, 0x2b, 0x55, 0x18, 0xf3, 0x56, 0x4a, - 0x34, 0x29, 0xaf, 0x75, 0x4b, 0xca, 0x2b, 0xd1, 0x75, 0xe6, 0xe7, 0x64, 0x44, 0x2e, 0xb7, 0x50, - 0x4a, 0x66, 0xa0, 0x10, 0xf4, 0x09, 0xf1, 0x2e, 0x0b, 0xff, 0xd4, 0xab, 0x7c, 0x71, 0xf1, 0xe7, - 0xa2, 0x61, 0xc2, 0xbf, 0x1f, 0x84, 0x89, 0xfb, 0xba, 0x65, 0xad, 0xb8, 0x0e, 0x25, 0x96, 0x20, - 0xca, 0x8a, 0xe6, 0x6d, 0xc8, 0x37, 0xbd, 0x5a, 0x27, 0xbb, 0x9b, 0x62, 0xf4, 0x71, 0x21, 0xfe, - 0x88, 0xa0, 0x05, 0x06, 0xe8, 0x0e, 0x80, 0xff, 0xe1, 0xc8, 0x92, 0x56, 0x4a, 0x31, 0x77, 0xfc, - 0x5a, 0x1b, 0x98, 0xa0, 0x07, 0x30, 0xd2, 0x0c, 0x5f, 0x36, 0x65, 0xd9, 0xc6, 0x29, 0x18, 0xa1, - 0x4b, 0xad, 0x16, 0x35, 0x44, 0xdf, 0x86, 0xc9, 0x66, 0x42, 0xd1, 0xe6, 0x0b, 0x6d, 0x78, 0xf1, - 0x72, 0x1a, 0xa9, 0x8e, 0x23, 0x4a, 0x4b, 0x84, 0xf1, 0x89, 0x7a, 0x57, 0x75, 0x75, 0x20, 0x95, - 0x68, 0xec, 0xa6, 0xaf, 0x45, 0x0d, 0xd1, 0x3b, 0x30, 0xd1, 0xec, 0x5c, 0x27, 0xea, 0x20, 0xc7, - 0x9b, 0x4f, 0xc0, 0x4b, 0x5c, 0x6f, 0x5a, 0x12, 0x08, 0x7a, 0x0a, 0x67, 0x9a, 0xc9, 0x8d, 0xbb, - 0x7a, 0x92, 0xe3, 0x2f, 0xa4, 0xe1, 0x27, 0xdd, 0x1c, 0xb4, 0x34, 0x30, 0xf4, 0x55, 0x18, 0x6d, - 0x46, 0x4e, 0x20, 0x75, 0x88, 0xc3, 0x5f, 0x48, 0x80, 0x8f, 0x77, 0x4d, 0x5a, 0xcc, 0x14, 0x6d, - 0xc0, 0x58, 0x33, 0x7a, 0x15, 0x52, 0xf3, 0x1c, 0x6d, 0x36, 0x25, 0x69, 0x91, 0x6b, 0x97, 0x16, - 0x37, 0x46, 0x8f, 0x61, 0xbc, 0x19, 0xeb, 0xe7, 0x55, 0xe0, 0x80, 0x17, 0xd3, 0xbc, 0x8f, 0x34, - 0xdc, 0x5a, 0x87, 0xf9, 0xe2, 0xaf, 0x26, 0x60, 0x80, 0x6b, 0x23, 0x02, 0x03, 0x22, 0x8d, 0xdd, - 0x96, 0x79, 0xe1, 0x7c, 0xba, 0x82, 0x28, 0x09, 0xf8, 0xc2, 0x07, 0x7f, 0xfd, 0xf7, 0x8f, 0x73, - 0xe7, 0xd0, 0x74, 0x85, 0x6f, 0x5f, 0xd3, 0xa9, 0x44, 0x1f, 0x09, 0xf9, 0x3c, 0xef, 0xc3, 0x90, - 0xbf, 0x74, 0x32, 0xac, 0xb6, 0xc2, 0x85, 0x23, 0x75, 0xe4, 0xcc, 0x57, 0xf8, 0xcc, 0x5f, 0x42, - 0xa5, 0xe4, 0x99, 0xfd, 0x07, 0xa6, 0x8f, 0x72, 0x0a, 0xfa, 0x58, 0x81, 0xd1, 0xd8, 0x32, 0xcb, - 0xbc, 0x4a, 0x0b, 0x97, 0x33, 0x68, 0x4a, 0x4e, 0xd7, 0x38, 0xa7, 0x4b, 0xe8, 0x62, 0x32, 0x27, - 0x71, 0x93, 0xf2, 0x0b, 0x1a, 0xfa, 0x44, 0x81, 0xb1, 0xf8, 0x26, 0xcd, 0xbe, 0xcb, 0x0b, 0x57, - 0xb2, 0xa8, 0x4a, 0x66, 0x0b, 0x9c, 0xd9, 0x1c, 0x9a, 0x4d, 0x66, 0xf6, 0x94, 0x6b, 0x1b, 0x35, - 0x11, 0x32, 0x74, 0x00, 0xfd, 0xbc, 0x36, 0x76, 0x29, 0xa3, 0x85, 0x52, 0xaa, 0x5c, 0x4e, 0x7b, - 0xfd, 0xe8, 0x80, 0xf0, 0xd9, 0x2a, 0xdf, 0x95, 0xc7, 0xf7, 0x7b, 0x2c, 0x55, 0x1f, 0x2a, 0x30, - 0xe4, 0x17, 0xc4, 0x0c, 0x35, 0x34, 0x71, 0xb1, 0xc4, 0xdf, 0xfd, 0xf0, 0x0d, 0xce, 0xe3, 0x2a, - 0xba, 0x9c, 0xce, 0x83, 0x37, 0xe4, 0x01, 0x17, 0xf4, 0x3d, 0x05, 0xd4, 0xb4, 0x6b, 0x21, 0x5a, - 0x4c, 0x98, 0xb4, 0xcb, 0x1d, 0xb8, 0x70, 0xf3, 0x58, 0x36, 0x92, 0x78, 0x1f, 0xfa, 0xb5, 0x02, - 0xa8, 0xf3, 0x01, 0x0f, 0x2d, 0x74, 0x41, 0x8b, 0xce, 0x7d, 0x2d, 0xa3, 0xb6, 0x9c, 0xf5, 0x4d, - 0x1e, 0xae, 0x25, 0xf4, 0x7a, 0xa6, 0xb4, 0x55, 0xde, 0x25, 0xa6, 0x2d, 0x6e, 0x59, 0x06, 0xeb, - 0x6d, 0xaa, 0xa6, 0x8d, 0xfe, 0xa6, 0xc0, 0xf4, 0x11, 0xcf, 0x5e, 0xe8, 0xd5, 0x14, 0x42, 0x47, - 0x3f, 0xd9, 0x15, 0xbe, 0x7c, 0x5c, 0x33, 0xe9, 0xd0, 0x7d, 0xee, 0xd0, 0x5d, 0x74, 0x27, 0x9b, - 0x43, 0xc6, 0xbe, 0x49, 0x85, 0x43, 0xe2, 0x1d, 0x50, 0x74, 0x54, 0xcc, 0xaf, 0x1f, 0x2a, 0x00, - 0xa1, 0x3a, 0x9d, 0xa9, 0xbc, 0x17, 0x2e, 0x76, 0xd1, 0x92, 0x24, 0x6f, 0x71, 0x92, 0x65, 0xb4, - 0x90, 0x8d, 0xa4, 0x78, 0x3c, 0x43, 0xbf, 0x53, 0x00, 0x25, 0x1c, 0x6f, 0xc7, 0x3a, 0x25, 0x13, - 0xd7, 0x47, 0xfa, 0xcb, 0x19, 0x5e, 0xe5, 0x4c, 0x6f, 0xa3, 0xa5, 0x6c, 0x4c, 0x45, 0xdd, 0xe3, - 0x9f, 0x7e, 0xf1, 0x63, 0x7b, 0xfd, 0x27, 0x0a, 0x0c, 0x87, 0x8e, 0x28, 0x94, 0xed, 0x6c, 0x2b, - 0xcc, 0x75, 0x53, 0x93, 0x2c, 0x97, 0x38, 0xcb, 0x5b, 0x68, 0xf1, 0x38, 0x2c, 0xc5, 0x9b, 0x09, - 0xcb, 0x73, 0x3e, 0x38, 0xde, 0xb3, 0xf4, 0x04, 0x85, 0xd9, 0xa3, 0x95, 0x24, 0xa9, 0xd7, 0x8e, - 0x99, 0x64, 0x66, 0xcc, 0xcf, 0xb0, 0x3f, 0x2a, 0x70, 0x76, 0xd5, 0xa1, 0xa6, 0xa5, 0x53, 0xa3, - 0xe3, 0x6e, 0x87, 0xae, 0x26, 0x4d, 0x9e, 0x72, 0x0d, 0x2e, 0x2c, 0x64, 0x53, 0x96, 0x8c, 0x1f, - 0x70, 0xc6, 0x77, 0xd0, 0x1b, 0xc9, 0x8c, 0x43, 0xbb, 0x46, 0xb2, 0xab, 0x84, 0x4a, 0x81, 0xbf, - 0x73, 0x98, 0x0b, 0x7f, 0x56, 0xa0, 0x90, 0xe2, 0xc2, 0xa6, 0x4b, 0x51, 0x06, 0x5a, 0xc1, 0xd5, - 0x31, 0x71, 0xc9, 0xa6, 0x5f, 0xaf, 0xf0, 0x3a, 0xf7, 0xe2, 0x4d, 0xf4, 0x95, 0xff, 0xc3, 0x0b, - 0xe2, 0x52, 0xe6, 0x86, 0x09, 0x83, 0x72, 0xfb, 0x4f, 0x27, 0xfd, 0x0f, 0xd3, 0x23, 0x38, 0x93, - 0x2c, 0x94, 0x7c, 0x66, 0x39, 0x9f, 0x22, 0x9a, 0x49, 0x59, 0x07, 0xe2, 0xdf, 0xa1, 0x0f, 0x3f, - 0x7d, 0x5e, 0x54, 0x3e, 0x7b, 0x5e, 0x54, 0xfe, 0xf5, 0xbc, 0xa8, 0xfc, 0xe8, 0x45, 0xb1, 0xef, - 0xb3, 0x17, 0xc5, 0xbe, 0xbf, 0xbf, 0x28, 0xf6, 0xbd, 0x73, 0x3d, 0x74, 0x83, 0xda, 0x32, 0xe9, - 0x96, 0x5e, 0xab, 0x1b, 0x4e, 0xf0, 0x6b, 0x7b, 0x47, 0x37, 0xed, 0xca, 0xbe, 0x00, 0xe5, 0xf7, - 0xa9, 0xad, 0x41, 0xfe, 0xb6, 0x73, 0xf3, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x9a, 0x61, 0x92, - 0xca, 0xe2, 0x1e, 0x00, 0x00, + // 2111 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0x4d, 0x6c, 0x1c, 0x49, + 0x15, 0x76, 0x3b, 0xb6, 0xe3, 0x79, 0x8e, 0x7f, 0x52, 0xb6, 0x37, 0x93, 0xb1, 0x33, 0x13, 0x2a, + 0x8e, 0xe3, 0x24, 0xce, 0x4c, 0xe2, 0x64, 0xd9, 0x95, 0xb5, 0xcb, 0x6e, 0xec, 0x8c, 0xb3, 0x8e, + 0x56, 0x76, 0xd2, 0x09, 0xac, 0x80, 0xc3, 0xd0, 0x9e, 0xe9, 0x8c, 0x7b, 0x33, 0xdd, 0x3d, 0x33, + 0x5d, 0x4d, 0x6c, 0xa1, 0xd5, 0x4a, 0x2b, 0xb1, 0x2c, 0x27, 0x90, 0x58, 0xad, 0x38, 0x20, 0x4e, + 0x5c, 0xe0, 0x08, 0x48, 0x70, 0x41, 0x02, 0x89, 0xc3, 0x8a, 0xd3, 0x4a, 0x08, 0x09, 0x71, 0x18, + 0x50, 0x82, 0xb8, 0xe3, 0x0b, 0x57, 0x54, 0x55, 0xaf, 0xff, 0x66, 0xba, 0x3d, 0x6d, 0xa3, 0x48, + 0xe1, 0xe4, 0xe9, 0xaa, 0xf7, 0xbe, 0xf7, 0xbd, 0xf7, 0xaa, 0x5e, 0xbd, 0x2a, 0x43, 0xb6, 0xae, + 0x99, 0x66, 0xe9, 0xdb, 0x37, 0x76, 0x74, 0xa6, 0xdd, 0x28, 0xb5, 0x5c, 0xbd, 0xbd, 0x5f, 0x6c, + 0xb6, 0x6d, 0x66, 0x93, 0x53, 0x7c, 0xa6, 0x88, 0x33, 0xb9, 0x99, 0xba, 0x5d, 0xb7, 0xc5, 0x44, + 0x89, 0xff, 0x92, 0x32, 0xb9, 0xd9, 0x88, 0x36, 0xdb, 0xc3, 0xe1, 0x85, 0xa6, 0x6d, 0x37, 0x4c, + 0xcd, 0xd2, 0xea, 0x7a, 0xdb, 0x9f, 0x75, 0x9e, 0x6a, 0xcd, 0x4a, 0xdb, 0x76, 0x99, 0x8e, 0x52, + 0xf9, 0xaa, 0xed, 0x98, 0xb6, 0x53, 0xda, 0xd1, 0x1c, 0xdd, 0x97, 0xaa, 0xda, 0x86, 0x85, 0xf3, + 0x57, 0xc2, 0xf3, 0x82, 0x99, 0x2f, 0xd5, 0xd4, 0xea, 0x86, 0xa5, 0x31, 0xc3, 0xf6, 0x64, 0xe7, + 0xeb, 0xb6, 0x5d, 0x6f, 0xe8, 0x25, 0xad, 0x69, 0x94, 0x34, 0xcb, 0xb2, 0x99, 0x98, 0x74, 0x70, + 0xf6, 0x2c, 0xce, 0x8a, 0xaf, 0x1d, 0xf7, 0x71, 0x49, 0xb3, 0xf6, 0xbd, 0x29, 0x69, 0xa4, 0x22, + 0x5d, 0x93, 0x1f, 0xbe, 0x56, 0xd8, 0xb9, 0xa6, 0xd6, 0xd6, 0x4c, 0x9c, 0xa2, 0x93, 0x30, 0x7e, + 0x5f, 0x7c, 0xab, 0x7a, 0xcb, 0xd5, 0x1d, 0x46, 0xef, 0xc0, 0x84, 0x37, 0xe0, 0x34, 0x6d, 0xcb, + 0xd1, 0xc9, 0x0a, 0x8c, 0x48, 0x95, 0xac, 0x72, 0x5e, 0x59, 0x1a, 0x5b, 0x99, 0x29, 0x86, 0xe3, + 0x59, 0x94, 0xd2, 0x6b, 0x43, 0x9f, 0x77, 0x0a, 0x03, 0x2a, 0x4a, 0xd2, 0x75, 0x98, 0x7a, 0xc0, + 0xfd, 0xbc, 0x6f, 0xdb, 0x0d, 0x44, 0x26, 0x57, 0xe1, 0x24, 0x8f, 0x66, 0xc5, 0xa8, 0x09, 0xa0, + 0xa1, 0x35, 0x72, 0xd0, 0x29, 0x4c, 0xec, 0x6b, 0x66, 0x63, 0x95, 0xe2, 0x04, 0x55, 0x47, 0xf8, + 0xaf, 0xcd, 0xda, 0xea, 0x60, 0x56, 0xa1, 0xef, 0xc2, 0xe9, 0x10, 0x08, 0xb2, 0xb9, 0x09, 0x43, + 0x5c, 0x24, 0xe0, 0x22, 0x02, 0x52, 0xf4, 0x02, 0x52, 0xbc, 0x6d, 0xed, 0xaf, 0x65, 0xfe, 0xf4, + 0xeb, 0x6b, 0xc3, 0x5c, 0x6b, 0x53, 0x15, 0xc2, 0x02, 0xed, 0x9b, 0x21, 0x34, 0xcf, 0x5b, 0xb2, + 0x01, 0x10, 0x64, 0x20, 0x3b, 0x28, 0x30, 0x17, 0x8b, 0x18, 0x3c, 0x9e, 0xae, 0xa2, 0x5c, 0x48, + 0x81, 0xb3, 0x75, 0x1d, 0x75, 0xd5, 0x90, 0x26, 0xfd, 0x54, 0x01, 0x12, 0x46, 0x47, 0xb2, 0xaf, + 0xc2, 0x30, 0xb7, 0xcf, 0x23, 0x77, 0x22, 0x0d, 0x5b, 0x29, 0x4d, 0xee, 0xc6, 0xb0, 0xba, 0xd4, + 0x97, 0x95, 0xb4, 0x19, 0xa1, 0x95, 0x83, 0x19, 0xc1, 0x6a, 0xcb, 0x35, 0xc3, 0x6e, 0x8b, 0x78, + 0x6c, 0xc1, 0x6c, 0xd7, 0x1c, 0x92, 0xbe, 0x01, 0x19, 0xcb, 0x35, 0x2b, 0x1e, 0x71, 0x9e, 0xa9, + 0x99, 0x83, 0x4e, 0x61, 0x4a, 0x66, 0xca, 0x9f, 0xa2, 0xea, 0xa8, 0x85, 0xaa, 0x02, 0x6f, 0x1d, + 0x6d, 0xf1, 0x91, 0x47, 0xfb, 0x4d, 0xfd, 0x38, 0x69, 0xa7, 0xf7, 0x90, 0x54, 0x00, 0x12, 0x90, + 0x12, 0xc2, 0x6c, 0xbf, 0xa9, 0x0b, 0x9c, 0x4c, 0x98, 0x94, 0x3f, 0x45, 0xd5, 0xd1, 0x26, 0xaa, + 0xd2, 0xdf, 0x28, 0x90, 0x17, 0x60, 0xeb, 0x5a, 0xa3, 0x7a, 0xcf, 0x36, 0x2c, 0x0e, 0xfa, 0x70, + 0x57, 0x6b, 0xeb, 0xce, 0x71, 0xb8, 0x91, 0x5d, 0xc8, 0x30, 0xfb, 0x89, 0x6e, 0x39, 0x15, 0x83, + 0x27, 0x85, 0x27, 0xf4, 0x6c, 0x24, 0x29, 0x5e, 0x3a, 0xd6, 0x6d, 0xc3, 0x5a, 0xbb, 0xce, 0xf7, + 0xc3, 0x2f, 0xfe, 0x5e, 0x58, 0xaa, 0x1b, 0x6c, 0xd7, 0xdd, 0x29, 0x56, 0x6d, 0x13, 0x37, 0x25, + 0xfe, 0xb9, 0xe6, 0xd4, 0x9e, 0x94, 0x38, 0x67, 0x47, 0x28, 0x38, 0xea, 0xa8, 0x44, 0xdf, 0xb4, + 0xe8, 0xbf, 0x15, 0x28, 0x24, 0x32, 0xc7, 0x80, 0xec, 0xc0, 0x94, 0xc3, 0x47, 0x2a, 0xb6, 0xcb, + 0x2a, 0x9a, 0x69, 0xbb, 0x16, 0xc3, 0xb8, 0xbc, 0xce, 0x2d, 0xff, 0xad, 0x53, 0x98, 0x95, 0x76, + 0x9c, 0xda, 0x93, 0xa2, 0x61, 0x97, 0x4c, 0x8d, 0xed, 0x16, 0x37, 0x2d, 0x76, 0xd0, 0x29, 0x9c, + 0x91, 0x0e, 0x76, 0xab, 0x53, 0x75, 0x42, 0x0c, 0x6d, 0xbb, 0xec, 0xb6, 0x18, 0x20, 0xef, 0x03, + 0xa0, 0xc7, 0xb6, 0xcb, 0x5e, 0x84, 0xcb, 0x18, 0xd0, 0x6d, 0x97, 0xd1, 0xef, 0x2b, 0x70, 0xc9, + 0xf7, 0xb9, 0xbc, 0x67, 0x30, 0xee, 0xb3, 0x90, 0xda, 0x68, 0xdb, 0x66, 0x34, 0x6d, 0x67, 0xba, + 0xd2, 0xe6, 0xa7, 0xa8, 0x0c, 0x93, 0xd2, 0x2b, 0xc3, 0xf2, 0x62, 0x32, 0x28, 0x62, 0x72, 0xee, + 0xd0, 0x98, 0xa8, 0xe3, 0x42, 0x6b, 0xd3, 0x92, 0x7e, 0xd3, 0xcf, 0x14, 0x58, 0xea, 0xcf, 0x05, + 0x13, 0x11, 0x0d, 0x92, 0xf2, 0x42, 0x83, 0x54, 0x86, 0x57, 0xfc, 0xed, 0x11, 0x29, 0xdb, 0x47, + 0xdb, 0x65, 0x77, 0xe1, 0x4c, 0x0f, 0x0c, 0x7a, 0xb3, 0xdc, 0x5b, 0xec, 0x7b, 0x4b, 0x96, 0x5f, + 0xe6, 0x1f, 0xe0, 0x0e, 0x7b, 0x64, 0x33, 0xad, 0xc1, 0xd1, 0xde, 0x35, 0x5a, 0xae, 0x51, 0x33, + 0xd8, 0xfe, 0xb1, 0x8b, 0xfe, 0xcf, 0xbc, 0xb5, 0x1f, 0x87, 0x89, 0x24, 0x3f, 0x80, 0x4c, 0xc3, + 0x1b, 0xec, 0x1f, 0xf1, 0x3b, 0x3c, 0xe2, 0x41, 0xad, 0xf0, 0x35, 0xe9, 0xd1, 0xb2, 0xe0, 0xeb, + 0x09, 0x9a, 0x1b, 0x18, 0x42, 0xc1, 0xf2, 0xf8, 0x45, 0x85, 0xba, 0x90, 0xed, 0xc5, 0x41, 0x37, + 0xbf, 0x0e, 0xa7, 0x18, 0x1f, 0xae, 0x88, 0xd5, 0xe9, 0x65, 0xe4, 0x10, 0x4f, 0xe7, 0xd0, 0xd3, + 0x69, 0x69, 0x2c, 0xac, 0x4c, 0xd5, 0x31, 0x16, 0x98, 0xa0, 0xbf, 0x53, 0x60, 0xa1, 0xa7, 0xc2, + 0x6c, 0xd9, 0x0f, 0x9f, 0x6a, 0xcd, 0xff, 0x8b, 0x0a, 0xf9, 0x2f, 0x05, 0x2e, 0xf6, 0xe1, 0x8f, + 0x41, 0xfc, 0xf0, 0x68, 0xdb, 0xb3, 0x8c, 0x21, 0x3c, 0xed, 0x85, 0xd0, 0x53, 0xa5, 0xc7, 0xdc, + 0xb3, 0xe4, 0x0d, 0x00, 0x99, 0x02, 0x2c, 0xa2, 0x29, 0xca, 0x51, 0x46, 0x2a, 0xf0, 0x1d, 0xff, + 0xf3, 0x41, 0x3c, 0x11, 0x1f, 0x36, 0x6d, 0x76, 0xbf, 0x6d, 0x54, 0x8f, 0x75, 0xae, 0x92, 0x32, + 0x4c, 0x71, 0x5f, 0x2b, 0x9a, 0xe3, 0xe8, 0xac, 0x52, 0xd3, 0x2d, 0xdb, 0x44, 0x2a, 0x73, 0xc1, + 0x81, 0xd0, 0x2d, 0x41, 0xd5, 0x09, 0x3e, 0x74, 0x9b, 0x8f, 0xdc, 0xe1, 0x03, 0xe4, 0x1d, 0x38, + 0xdd, 0x72, 0x6d, 0x16, 0xc5, 0x39, 0x21, 0x70, 0xe6, 0x0f, 0x3a, 0x85, 0xac, 0xc4, 0xe9, 0x11, + 0xa1, 0xea, 0xa4, 0x18, 0x0b, 0x21, 0x6d, 0xc1, 0xd8, 0x53, 0x83, 0xed, 0xf2, 0x84, 0x6d, 0xe8, + 0x7a, 0x76, 0xe8, 0xbc, 0xb2, 0x34, 0xba, 0xb6, 0x7c, 0xd0, 0x29, 0x2c, 0x4a, 0x0c, 0x3e, 0x59, + 0x11, 0x8d, 0xf6, 0x63, 0x5d, 0xa7, 0xcb, 0x35, 0xbd, 0xd9, 0xd6, 0xab, 0x1a, 0xd3, 0x6b, 0xab, + 0x94, 0xb5, 0x5d, 0x9d, 0x66, 0x15, 0x35, 0x0c, 0x20, 0xf6, 0xe4, 0x1f, 0x14, 0x98, 0x0b, 0x9a, + 0xb0, 0xf7, 0x0c, 0xb6, 0xbb, 0x61, 0x34, 0x98, 0xde, 0xf6, 0x22, 0xf6, 0x26, 0x8c, 0x9b, 0x86, + 0x55, 0x09, 0x97, 0x0e, 0xce, 0x3c, 0x7b, 0xd0, 0x29, 0xcc, 0x48, 0xab, 0x91, 0x69, 0xaa, 0x9e, + 0x32, 0x0d, 0xcb, 0xaf, 0x3e, 0x64, 0x2e, 0xdc, 0x82, 0x88, 0xe0, 0x05, 0xcd, 0x46, 0x57, 0x23, + 0x79, 0xe2, 0xd8, 0x8d, 0xe4, 0x4f, 0x15, 0x98, 0x8f, 0xf7, 0xe1, 0x25, 0x69, 0x29, 0x55, 0x3c, + 0x82, 0x42, 0xeb, 0x11, 0x99, 0xdd, 0x02, 0x70, 0x9a, 0x36, 0xab, 0x34, 0xf9, 0x28, 0xc6, 0x76, + 0x36, 0xd8, 0x4a, 0xc1, 0x1c, 0x55, 0x33, 0x8e, 0xa7, 0x2d, 0x12, 0xf7, 0xd1, 0x20, 0x9c, 0x93, + 0xa0, 0x4f, 0xb5, 0x66, 0x79, 0x4f, 0xab, 0x62, 0x03, 0xb2, 0x69, 0x79, 0xa9, 0xbb, 0x0c, 0x23, + 0x8e, 0x6e, 0xd5, 0xf4, 0x36, 0xe2, 0x9e, 0x3e, 0xe8, 0x14, 0xc6, 0x11, 0x57, 0x8c, 0x53, 0x15, + 0x05, 0xc2, 0xfb, 0x62, 0xb0, 0xef, 0xbe, 0x28, 0x82, 0xac, 0x29, 0xbc, 0x60, 0xc9, 0x75, 0x3c, + 0x7d, 0xd0, 0x29, 0x4c, 0x86, 0x36, 0x7f, 0xc5, 0xb0, 0xa8, 0x7a, 0x52, 0xfc, 0xdc, 0xb4, 0xc8, + 0x57, 0x61, 0x44, 0x5c, 0xfc, 0x9c, 0xec, 0x90, 0x08, 0xff, 0x62, 0x31, 0x74, 0x41, 0xf4, 0x83, + 0xc7, 0xdd, 0xf0, 0x3d, 0xe0, 0xe2, 0x6b, 0xb3, 0x58, 0x56, 0x90, 0xb3, 0xc4, 0xa0, 0x2a, 0x82, + 0x89, 0x20, 0x7c, 0xe2, 0xb5, 0xab, 0x31, 0x41, 0x08, 0x7a, 0x3e, 0xc9, 0xe9, 0xd8, 0x3d, 0x5f, + 0xb7, 0x3a, 0x55, 0x27, 0xc4, 0x90, 0xdf, 0xf3, 0x09, 0x2a, 0xdf, 0x1b, 0x8c, 0xa7, 0xb2, 0xed, + 0xb2, 0x17, 0x9d, 0x90, 0xaf, 0xf9, 0x01, 0x3e, 0x21, 0x02, 0x7c, 0xa9, 0x4f, 0x80, 0x39, 0xa5, + 0x14, 0x11, 0xe6, 0xf7, 0x07, 0xdf, 0x77, 0x51, 0x6d, 0x22, 0xf7, 0x07, 0x7f, 0x8a, 0xe2, 0x19, + 0xb3, 0xed, 0xca, 0x48, 0x7c, 0xec, 0x75, 0x23, 0x71, 0x91, 0xc0, 0xac, 0x54, 0x60, 0xd2, 0x5b, + 0x29, 0xd1, 0xa4, 0xbc, 0xd6, 0x2f, 0x29, 0xaf, 0x44, 0xd7, 0x99, 0x9f, 0x93, 0x71, 0x5c, 0x6e, + 0xa1, 0x94, 0xcc, 0x43, 0x2e, 0xe8, 0x13, 0xba, 0xbb, 0x2c, 0xfa, 0x13, 0xaf, 0xf2, 0x75, 0x4f, + 0xbf, 0x14, 0x0d, 0x13, 0xfd, 0xcf, 0x08, 0x4c, 0xdf, 0xd5, 0x4c, 0x73, 0xdd, 0x75, 0x98, 0x6d, + 0x4a, 0xa2, 0xbc, 0x68, 0xae, 0x41, 0xa6, 0xe5, 0xd5, 0x3a, 0xec, 0x6e, 0xf2, 0xd1, 0xc7, 0x85, + 0xee, 0x47, 0x04, 0xf1, 0xcc, 0xa0, 0xa8, 0x81, 0x1a, 0x29, 0x03, 0xf8, 0x1f, 0x0e, 0x16, 0xb6, + 0x42, 0x02, 0x88, 0x13, 0x45, 0x09, 0x29, 0x92, 0x2d, 0x18, 0x6f, 0x85, 0x2f, 0x9e, 0x58, 0xc2, + 0x69, 0x02, 0x52, 0xe8, 0x82, 0x8b, 0x60, 0x51, 0x75, 0x52, 0x85, 0x99, 0x56, 0x4c, 0x19, 0x17, + 0x4b, 0x6f, 0x6c, 0xe5, 0x72, 0x12, 0xc1, 0x9e, 0x43, 0x0b, 0xd1, 0x63, 0xc1, 0x7c, 0xd2, 0xde, + 0x15, 0x3e, 0x3b, 0x9c, 0x48, 0xba, 0xeb, 0x05, 0x20, 0x42, 0xda, 0x9b, 0x23, 0xdf, 0x82, 0xe9, + 0x56, 0xef, 0x2a, 0xca, 0x8e, 0x08, 0xd4, 0xa5, 0x18, 0xd4, 0xd8, 0xd5, 0x88, 0xd8, 0x71, 0x50, + 0xa4, 0x01, 0x67, 0x5a, 0xf1, 0xcd, 0x7d, 0xf6, 0xa4, 0xb0, 0xb2, 0x9c, 0x64, 0x25, 0xee, 0x76, + 0x81, 0x96, 0x92, 0x20, 0xc9, 0x03, 0x98, 0x68, 0x45, 0xce, 0xaa, 0xec, 0xa8, 0x30, 0x72, 0x21, + 0xc6, 0x48, 0x77, 0x7f, 0x85, 0xd8, 0x5d, 0x00, 0xe4, 0x11, 0x4c, 0xb6, 0xa2, 0x57, 0xa7, 0x6c, + 0x46, 0x60, 0x2e, 0x24, 0xa4, 0x34, 0x72, 0x4d, 0x43, 0xd0, 0x6e, 0x08, 0xf2, 0x1e, 0x4c, 0xb5, + 0xba, 0x6e, 0x01, 0x59, 0x10, 0xb0, 0x17, 0x93, 0xe2, 0x11, 0x69, 0xd3, 0x11, 0xb7, 0x07, 0x64, + 0xe5, 0x97, 0xd3, 0x30, 0x2c, 0x74, 0x88, 0x0d, 0xc3, 0x32, 0xc9, 0xfd, 0x36, 0x47, 0xee, 0x7c, + 0xb2, 0x80, 0x2c, 0x27, 0xf4, 0xc2, 0x47, 0x7f, 0xfe, 0xe7, 0x8f, 0x06, 0xcf, 0x91, 0xb9, 0x92, + 0xd8, 0xfa, 0x86, 0x53, 0x8a, 0x3e, 0x30, 0x0a, 0x3b, 0x1f, 0xc2, 0xa8, 0xbf, 0xb0, 0x52, 0xac, + 0xc8, 0xdc, 0x85, 0x43, 0x65, 0xd0, 0xf2, 0x15, 0x61, 0xf9, 0x4b, 0xa4, 0x10, 0x6f, 0xd9, 0x7f, + 0x9c, 0xfa, 0x64, 0x50, 0x21, 0x9f, 0x2a, 0x30, 0xd1, 0xb5, 0xfc, 0x52, 0xaf, 0xe1, 0xdc, 0xe5, + 0x14, 0x92, 0xc8, 0xe9, 0x9a, 0xe0, 0x74, 0x89, 0x5c, 0x8c, 0xe7, 0x24, 0x6f, 0x61, 0x7e, 0x31, + 0x24, 0x9f, 0x29, 0x30, 0xd9, 0xbd, 0x91, 0xd3, 0xd7, 0x83, 0xdc, 0x95, 0x34, 0xa2, 0xc8, 0x6c, + 0x59, 0x30, 0x5b, 0x24, 0x0b, 0xf1, 0xcc, 0x1e, 0x0b, 0x69, 0xbd, 0x26, 0x43, 0x46, 0xf6, 0x61, + 0x48, 0x54, 0xd4, 0x3e, 0x25, 0x38, 0x57, 0x48, 0x9c, 0x47, 0xb3, 0xd7, 0x0f, 0x0f, 0x88, 0xb0, + 0x56, 0xfa, 0x0e, 0x1e, 0xfd, 0x1f, 0xf0, 0x54, 0x7d, 0xac, 0xc0, 0xa8, 0x5f, 0x3a, 0x53, 0xd4, + 0xdc, 0xd8, 0xc5, 0xd2, 0xfd, 0x66, 0x48, 0x6f, 0x08, 0x1e, 0x57, 0xc9, 0xe5, 0x64, 0x1e, 0xa2, + 0x99, 0x0f, 0xb8, 0x90, 0xef, 0x2a, 0x90, 0x4d, 0xba, 0x52, 0x92, 0x95, 0x18, 0xa3, 0x7d, 0xee, + 0xcf, 0xb9, 0x9b, 0x47, 0xd2, 0x41, 0xe2, 0x03, 0xe4, 0x57, 0x0a, 0x90, 0xde, 0xc7, 0x3f, 0xb2, + 0xdc, 0x07, 0x2d, 0x6a, 0xfb, 0x5a, 0x4a, 0x69, 0xb4, 0xfa, 0xb6, 0x08, 0xd7, 0x2a, 0x79, 0x3d, + 0x55, 0xda, 0x4a, 0xef, 0xdb, 0x86, 0x25, 0x6f, 0x68, 0x3a, 0xef, 0x8b, 0x2a, 0x86, 0x45, 0xfe, + 0xa2, 0xc0, 0xdc, 0x21, 0x4f, 0x66, 0xe4, 0xd5, 0x04, 0x42, 0x87, 0x3f, 0xf7, 0xe5, 0xbe, 0x7c, + 0x54, 0x35, 0x74, 0xe8, 0xae, 0x70, 0xe8, 0x36, 0x79, 0x2b, 0x9d, 0x43, 0xfa, 0x9e, 0xc1, 0xa4, + 0x43, 0xf2, 0x0d, 0x51, 0x76, 0x63, 0xdc, 0xaf, 0x1f, 0x28, 0x00, 0xa1, 0x6a, 0x9d, 0xaa, 0xd4, + 0xe7, 0x2e, 0xf6, 0x91, 0x42, 0x92, 0xb7, 0x04, 0xc9, 0x22, 0x59, 0x4e, 0x47, 0x52, 0x3e, 0xbc, + 0x91, 0xdf, 0x2a, 0x40, 0x62, 0x0e, 0xbc, 0x23, 0x9d, 0x9e, 0xb1, 0xeb, 0x23, 0xf9, 0xd5, 0x8d, + 0x96, 0x05, 0xd3, 0x37, 0xc8, 0x6a, 0x3a, 0xa6, 0xb2, 0xee, 0x89, 0x4f, 0xbf, 0xf8, 0xf1, 0xbd, + 0xfe, 0x63, 0x05, 0xc6, 0x42, 0x47, 0x14, 0x49, 0x77, 0xc2, 0xe5, 0x16, 0xfb, 0x89, 0x21, 0xcb, + 0x55, 0xc1, 0xf2, 0x16, 0x59, 0x39, 0x0a, 0x4b, 0xf9, 0xde, 0xc2, 0xf3, 0x9c, 0x09, 0x8e, 0xfa, + 0x34, 0x5d, 0x42, 0x6e, 0xe1, 0x70, 0x21, 0x24, 0xf5, 0xda, 0x11, 0x93, 0xcc, 0x95, 0xc5, 0x19, + 0xf6, 0x7b, 0x05, 0xce, 0x96, 0x1d, 0x66, 0x98, 0x1a, 0xd3, 0x7b, 0xee, 0x85, 0xe4, 0x6a, 0x9c, + 0xf1, 0x84, 0x2b, 0x74, 0x6e, 0x39, 0x9d, 0x30, 0x32, 0x7e, 0x47, 0x30, 0x7e, 0x8b, 0xbc, 0x19, + 0xcf, 0x38, 0xb4, 0x6b, 0x90, 0x5d, 0x29, 0x54, 0x0a, 0xfc, 0x9d, 0xc3, 0x5d, 0xf8, 0xa3, 0x02, + 0xb9, 0x04, 0x17, 0xb6, 0x5d, 0x46, 0x52, 0xd0, 0x0a, 0xae, 0x9d, 0xb1, 0x4b, 0x36, 0xf9, 0x6a, + 0x46, 0x37, 0x85, 0x17, 0x6f, 0x93, 0xaf, 0xfc, 0x0f, 0x5e, 0xd8, 0x2e, 0xe3, 0x6e, 0x18, 0x30, + 0x82, 0xdb, 0x7f, 0x2e, 0xee, 0xff, 0x9f, 0x1e, 0xc1, 0xf9, 0xf8, 0x49, 0xe4, 0xb3, 0x20, 0xf8, + 0xe4, 0xc9, 0x7c, 0xc2, 0x3a, 0x90, 0xff, 0x4a, 0xbd, 0xf7, 0xf9, 0xb3, 0xbc, 0xf2, 0xc5, 0xb3, + 0xbc, 0xf2, 0x8f, 0x67, 0x79, 0xe5, 0x87, 0xcf, 0xf3, 0x03, 0x5f, 0x3c, 0xcf, 0x0f, 0xfc, 0xf5, + 0x79, 0x7e, 0xe0, 0x1b, 0xd7, 0x43, 0xb7, 0xaf, 0x1d, 0x83, 0xed, 0x68, 0xb5, 0xba, 0xee, 0x04, + 0xbf, 0xaa, 0xbb, 0x9a, 0x61, 0x95, 0xf6, 0x24, 0xa8, 0xb8, 0x8b, 0xed, 0x8c, 0x88, 0x77, 0xa1, + 0x9b, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xbe, 0x3b, 0x4c, 0x47, 0x1e, 0x1f, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/gamm/types/tx.pb.go b/x/gamm/types/tx.pb.go index ed23995f..aa9b6d7e 100644 --- a/x/gamm/types/tx.pb.go +++ b/x/gamm/types/tx.pb.go @@ -1176,108 +1176,109 @@ func init() { func init() { proto.RegisterFile("gamm/v1beta1/tx.proto", fileDescriptor_3c94567a20e39ef7) } var fileDescriptor_3c94567a20e39ef7 = []byte{ - // 1614 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x4d, 0x6f, 0x13, 0x47, - 0x18, 0xce, 0xda, 0x8e, 0x93, 0x4c, 0xc8, 0x87, 0x97, 0x84, 0x38, 0x4b, 0xb0, 0xc3, 0x84, 0x42, - 0x9a, 0x54, 0x36, 0xa1, 0xaa, 0xda, 0x86, 0x4a, 0x2d, 0x0e, 0xa8, 0x18, 0xc9, 0x0a, 0x5a, 0x50, - 0x2b, 0x7a, 0xb1, 0xd6, 0xce, 0xc4, 0x5e, 0xc8, 0xce, 0x58, 0x9e, 0x35, 0x84, 0x1b, 0xa2, 0x5f, - 0x52, 0x4f, 0xf4, 0x9f, 0xd0, 0xfe, 0x8a, 0x48, 0xed, 0x01, 0xa9, 0x97, 0xaa, 0x07, 0x0b, 0x85, - 0x03, 0xd7, 0xca, 0xea, 0x0f, 0xa8, 0x66, 0x77, 0x76, 0xbd, 0xbb, 0x9e, 0x65, 0xd7, 0x69, 0x92, - 0x53, 0x2f, 0xb1, 0x3d, 0x1f, 0xef, 0xe7, 0xf3, 0xbc, 0xf3, 0xce, 0x04, 0xcc, 0x37, 0x34, 0xc3, - 0x28, 0x3e, 0xde, 0xa8, 0x21, 0x53, 0xdb, 0x28, 0x9a, 0xfb, 0x85, 0x56, 0x9b, 0x98, 0x44, 0x3e, - 0xc3, 0x86, 0x0b, 0x7c, 0x58, 0x99, 0x6b, 0x90, 0x06, 0xb1, 0x26, 0x8a, 0xec, 0x9b, 0xbd, 0x46, - 0xc9, 0x68, 0x86, 0x8e, 0x49, 0xd1, 0xfa, 0xcb, 0x87, 0x72, 0x75, 0x42, 0x0d, 0x42, 0x8b, 0x35, - 0x8d, 0x22, 0x57, 0x68, 0x9d, 0xe8, 0x98, 0xcf, 0x5f, 0x6a, 0x11, 0xb2, 0x67, 0x68, 0x58, 0x6b, - 0xa0, 0xb6, 0x3b, 0x4f, 0x9f, 0x68, 0xad, 0x6a, 0x9b, 0x74, 0x4c, 0xc4, 0x57, 0x2d, 0x70, 0x29, - 0x06, 0x6d, 0x14, 0x1f, 0x6f, 0xb0, 0x0f, 0x7b, 0x02, 0xfe, 0x96, 0x00, 0x93, 0x15, 0xda, 0xb8, - 0x43, 0x74, 0x7c, 0x97, 0x90, 0x3d, 0xf9, 0x7d, 0x90, 0xa6, 0x08, 0xef, 0xa0, 0x76, 0x56, 0x5a, - 0x96, 0x56, 0x27, 0x4a, 0x99, 0x5e, 0x37, 0x3f, 0xf5, 0x54, 0x33, 0xf6, 0x36, 0xa1, 0x3d, 0x0e, - 0x55, 0xbe, 0x40, 0x5e, 0x07, 0x63, 0x4c, 0x77, 0x55, 0xdf, 0xc9, 0x26, 0x96, 0xa5, 0xd5, 0x54, - 0x49, 0xee, 0x75, 0xf3, 0xd3, 0xf6, 0x5a, 0x3e, 0x01, 0xd5, 0x34, 0xfb, 0x56, 0xde, 0x91, 0x35, - 0x30, 0x4b, 0x9b, 0x5a, 0x1b, 0x55, 0x49, 0xc7, 0xac, 0x6a, 0x06, 0xe9, 0x60, 0x33, 0x9b, 0xb4, - 0x34, 0x7c, 0x7c, 0xd0, 0xcd, 0x8f, 0xfc, 0xd5, 0xcd, 0xcf, 0xdb, 0x26, 0xd2, 0x9d, 0x47, 0x05, - 0x9d, 0x14, 0x0d, 0xcd, 0x6c, 0x16, 0xca, 0xd8, 0xec, 0x75, 0xf3, 0xe7, 0x3c, 0x22, 0xed, 0x9d, - 0x4c, 0x08, 0x54, 0xa7, 0x2d, 0x81, 0xdb, 0x1d, 0xf3, 0x86, 0x35, 0x28, 0xd7, 0xc0, 0x94, 0x49, - 0x1e, 0x21, 0x5c, 0xd5, 0x71, 0xd5, 0xd0, 0xf6, 0x69, 0x36, 0xb5, 0x9c, 0x5c, 0x9d, 0xbc, 0xb6, - 0x58, 0xb0, 0x05, 0x17, 0x58, 0x04, 0x9d, 0xf8, 0x17, 0xb6, 0x88, 0x8e, 0x4b, 0x2b, 0x4c, 0x75, - 0xaf, 0x9b, 0x3f, 0x6f, 0x6b, 0xf0, 0xee, 0xe6, 0x9a, 0x28, 0x54, 0x27, 0xad, 0xe1, 0x32, 0xae, - 0x68, 0xfb, 0x74, 0xf3, 0xc2, 0xf3, 0xb7, 0x2f, 0xd7, 0x78, 0x00, 0x7e, 0x7a, 0xfb, 0x72, 0x6d, - 0xca, 0xca, 0xb5, 0x13, 0x3d, 0x78, 0x20, 0x81, 0xb3, 0x9e, 0x68, 0xaa, 0x88, 0xb6, 0x08, 0xa6, - 0x48, 0xae, 0x09, 0xbc, 0xb7, 0xe3, 0xfb, 0x49, 0x94, 0xf7, 0x0b, 0x3c, 0xf8, 0x81, 0xed, 0x83, - 0xee, 0x57, 0xc0, 0xb8, 0xe3, 0x40, 0x36, 0x11, 0xe5, 0xf9, 0x02, 0xf7, 0x7c, 0xc6, 0xef, 0x39, - 0x54, 0xc7, 0xb8, 0xb7, 0xf0, 0x77, 0x1b, 0x18, 0xb7, 0xf6, 0x75, 0xf3, 0x44, 0x81, 0x51, 0x05, - 0x33, 0xb6, 0x6f, 0x3a, 0x3e, 0x1a, 0x2e, 0x02, 0xbb, 0xa1, 0x3a, 0x65, 0x8d, 0x94, 0x31, 0x8f, - 0x0b, 0x02, 0xd3, 0xb6, 0x7b, 0x2c, 0x78, 0x86, 0x8e, 0x63, 0xe0, 0xe2, 0x12, 0x8f, 0xce, 0x92, - 0x37, 0x3a, 0x7c, 0x7b, 0x1f, 0x18, 0x67, 0xac, 0xf1, 0xed, 0x8e, 0x59, 0xd1, 0x71, 0x18, 0x32, - 0x9c, 0xf0, 0xc1, 0x86, 0x05, 0x0c, 0xe7, 0xa7, 0x0b, 0x8c, 0xbb, 0x60, 0xc2, 0x95, 0x9e, 0x95, - 0xa2, 0xec, 0xca, 0x72, 0xbb, 0x66, 0x03, 0x76, 0x41, 0x75, 0xdc, 0xb1, 0x05, 0x1e, 0x24, 0xc1, - 0x5c, 0x85, 0x36, 0xee, 0x3d, 0xd1, 0x5a, 0xb7, 0xf6, 0xb5, 0x3a, 0x47, 0x47, 0x19, 0x0f, 0x93, - 0xc0, 0x9b, 0x20, 0x6d, 0x15, 0x0f, 0xca, 0x81, 0x74, 0xb9, 0xe0, 0x29, 0x32, 0xae, 0x49, 0x4c, - 0x85, 0x23, 0x5d, 0x65, 0xcb, 0x4b, 0x29, 0x66, 0x9f, 0xca, 0xf7, 0xfa, 0x00, 0xc9, 0x52, 0xfa, - 0xdf, 0x00, 0x29, 0x1b, 0x60, 0x4e, 0x94, 0x88, 0x6c, 0xca, 0xf2, 0xe6, 0xb3, 0x28, 0xb4, 0x9c, - 0x0f, 0xcf, 0x25, 0x54, 0x33, 0x9e, 0x54, 0x72, 0xd8, 0x3c, 0x00, 0x40, 0xdb, 0xdd, 0xd5, 0xf7, - 0x74, 0x8d, 0xc5, 0x61, 0xd4, 0x8a, 0x43, 0x4e, 0x18, 0x87, 0x1b, 0xce, 0xb2, 0xd2, 0x22, 0x77, - 0x22, 0x63, 0xeb, 0xea, 0xef, 0x87, 0xaa, 0x47, 0xd8, 0xe6, 0xe5, 0x00, 0x54, 0xce, 0x59, 0x50, - 0x19, 0xc8, 0x18, 0x7c, 0x2e, 0x81, 0x25, 0x51, 0x2a, 0xbd, 0x65, 0xa5, 0xef, 0xcf, 0x91, 0xca, - 0x4a, 0x70, 0x3b, 0x54, 0xa7, 0x9d, 0x50, 0xd8, 0xda, 0xe0, 0x3f, 0x12, 0x98, 0x29, 0x97, 0xb6, - 0xee, 0xb7, 0x35, 0x4c, 0x77, 0x51, 0xbb, 0x8c, 0x77, 0x89, 0xfc, 0x05, 0x98, 0xa6, 0xa4, 0xd3, - 0xae, 0xa3, 0x6a, 0xbd, 0xa9, 0x61, 0x8c, 0xf6, 0xb8, 0xd6, 0xc5, 0x5e, 0x37, 0x3f, 0xcf, 0x21, - 0xe5, 0x9b, 0x67, 0xa4, 0xb4, 0x06, 0xb6, 0xec, 0xdf, 0x72, 0x11, 0x8c, 0xb7, 0x51, 0x1d, 0xe9, - 0x8f, 0x51, 0xdb, 0xaa, 0x11, 0x13, 0xa5, 0xb3, 0xfd, 0xe4, 0x3b, 0x33, 0x50, 0x75, 0x17, 0xc9, - 0x2b, 0x20, 0x65, 0x20, 0x83, 0xf0, 0xda, 0x30, 0xd3, 0xeb, 0xe6, 0x27, 0xed, 0xc5, 0x6c, 0x14, - 0xaa, 0xd6, 0xa4, 0x5c, 0x06, 0x19, 0x53, 0x37, 0x10, 0x73, 0x87, 0x7d, 0x52, 0x53, 0x33, 0x5a, - 0x16, 0x3e, 0x52, 0xa5, 0xa5, 0x5e, 0x37, 0x9f, 0xe5, 0x3e, 0x07, 0x97, 0x40, 0x75, 0x96, 0x8f, - 0xdd, 0x77, 0x87, 0xfe, 0x48, 0x81, 0x15, 0x51, 0xec, 0xbf, 0xd6, 0xcd, 0xa6, 0x27, 0x1c, 0xff, - 0xb3, 0x6a, 0x38, 0x56, 0x3d, 0x02, 0x19, 0xbd, 0x56, 0xaf, 0x9a, 0x3c, 0x7c, 0x55, 0x1d, 0xef, - 0x92, 0xec, 0xa8, 0xe5, 0xc6, 0x85, 0x82, 0xb7, 0x41, 0x2a, 0x04, 0x30, 0x57, 0x5a, 0xe6, 0xae, - 0xf0, 0x24, 0x0e, 0x48, 0x81, 0xea, 0x8c, 0x5e, 0xab, 0xfb, 0x60, 0xea, 0xa7, 0x70, 0xfa, 0x38, - 0x29, 0xfc, 0x51, 0x80, 0xc2, 0xef, 0x89, 0x29, 0x1c, 0x40, 0x0b, 0xfc, 0x59, 0x02, 0xeb, 0x31, - 0x50, 0x75, 0xaa, 0x04, 0xff, 0x3b, 0x01, 0xe6, 0x07, 0x6d, 0xda, 0xee, 0x98, 0xc3, 0x60, 0xfb, - 0x56, 0x00, 0xdb, 0x57, 0x22, 0xb0, 0xbd, 0xdd, 0x31, 0x45, 0xe0, 0x7e, 0x08, 0xce, 0x0a, 0x9a, - 0x30, 0x4e, 0xfa, 0xeb, 0x51, 0x2e, 0x2b, 0xa1, 0x6d, 0x1c, 0x63, 0xb8, 0xdb, 0xc5, 0x71, 0x28, - 0xfa, 0x8e, 0xde, 0x54, 0x14, 0x93, 0x62, 0x1c, 0xbd, 0x9b, 0x57, 0x02, 0xa0, 0x58, 0x10, 0x81, - 0x82, 0x9d, 0xd1, 0xcf, 0x24, 0x70, 0x41, 0x18, 0x72, 0x37, 0xf1, 0x55, 0x30, 0xe3, 0xba, 0xe1, - 0xcb, 0x7b, 0xdc, 0xae, 0x28, 0xb0, 0x1b, 0xaa, 0x53, 0x3c, 0x00, 0x3c, 0xeb, 0xdd, 0x04, 0x58, - 0xe4, 0x9d, 0xaa, 0x6d, 0x86, 0x89, 0xda, 0xf8, 0x28, 0xbd, 0xc2, 0x50, 0xcd, 0xde, 0xf1, 0x17, - 0xaf, 0x7e, 0x5f, 0x7c, 0xe4, 0xe2, 0x25, 0x12, 0x01, 0xd5, 0x8c, 0xd3, 0x5e, 0xbb, 0xc5, 0x6b, - 0x73, 0x3d, 0x90, 0xdf, 0xf3, 0x6e, 0xf3, 0x3f, 0x18, 0x42, 0xf8, 0xa3, 0x04, 0x2e, 0x86, 0x06, - 0xf8, 0x34, 0x2f, 0x06, 0xf0, 0x97, 0xa4, 0x2f, 0xd5, 0xf7, 0xd8, 0xec, 0x91, 0x48, 0x3e, 0x54, - 0xaa, 0x3f, 0x77, 0xda, 0x6e, 0x1d, 0x57, 0x77, 0x10, 0x26, 0x06, 0x67, 0xb1, 0xa7, 0x47, 0xf0, - 0xcf, 0x3b, 0x0d, 0x75, 0x19, 0xdf, 0x64, 0x3f, 0x85, 0xa1, 0x49, 0x1d, 0xf3, 0x9d, 0x29, 0xa4, - 0xde, 0x8c, 0x9e, 0x40, 0xbd, 0x89, 0x40, 0x8f, 0x3f, 0x2b, 0xf0, 0x3b, 0x3f, 0x7a, 0xfc, 0xb3, - 0xa7, 0x57, 0x25, 0x7e, 0x4d, 0x82, 0x2c, 0xbf, 0xb6, 0x04, 0xcc, 0x38, 0xc1, 0x22, 0x51, 0x72, - 0xbc, 0x62, 0x99, 0xf3, 0x42, 0x47, 0x09, 0x1a, 0xee, 0x2e, 0x70, 0x0c, 0xdf, 0xee, 0x98, 0x36, - 0x78, 0x04, 0xb7, 0xca, 0xd4, 0xb1, 0xde, 0x2a, 0xc3, 0xfa, 0xa6, 0xd1, 0x13, 0xe9, 0x9b, 0x36, - 0xd7, 0x02, 0xe0, 0x51, 0xdc, 0xdb, 0xe5, 0x40, 0x5e, 0xe0, 0x0f, 0x12, 0x58, 0x0e, 0x4b, 0xda, - 0xa9, 0x76, 0x16, 0xaf, 0x13, 0x40, 0xf1, 0x18, 0xe2, 0x2d, 0x81, 0x27, 0x59, 0x79, 0x7c, 0x07, - 0x7b, 0xf2, 0x18, 0x0e, 0x76, 0x56, 0x26, 0x5c, 0x3c, 0x78, 0xca, 0x44, 0x6a, 0xa8, 0x32, 0x21, - 0x90, 0x00, 0xd5, 0x59, 0x8e, 0xaa, 0x7e, 0x99, 0xf8, 0x20, 0x90, 0xe9, 0x25, 0x5f, 0xa6, 0x03, - 0x31, 0x84, 0xdf, 0x4b, 0x00, 0x86, 0x87, 0xd8, 0x5b, 0x28, 0x82, 0x74, 0x90, 0x8e, 0x93, 0x0e, - 0xf0, 0x30, 0x0d, 0x32, 0x5f, 0x6a, 0x86, 0xb1, 0xd5, 0xa1, 0x26, 0x31, 0x2a, 0xb4, 0x71, 0xff, - 0x69, 0x0b, 0xc9, 0xd7, 0xc1, 0xe4, 0x43, 0xfe, 0x14, 0x56, 0xa1, 0x0d, 0x4b, 0x25, 0xcb, 0x85, - 0xaf, 0xcf, 0xf7, 0x3e, 0x97, 0x79, 0x57, 0xb3, 0xcd, 0x88, 0x3f, 0x97, 0xb0, 0xcd, 0x89, 0x90, - 0xcd, 0xee, 0x93, 0x8a, 0x77, 0xb5, 0xfc, 0x15, 0x98, 0xa3, 0xc1, 0x26, 0x9b, 0x49, 0xb1, 0xe1, - 0x00, 0x07, 0xa4, 0x0c, 0xde, 0xb1, 0x85, 0xfb, 0xe5, 0x07, 0x60, 0x9e, 0x0e, 0x74, 0x6d, 0x4c, - 0xb0, 0xdd, 0x40, 0xae, 0x44, 0x09, 0x66, 0x49, 0x11, 0x4b, 0x90, 0x11, 0x58, 0x7c, 0x28, 0x6c, - 0x16, 0x98, 0x78, 0xfb, 0x8a, 0x74, 0x45, 0x18, 0x3a, 0x41, 0x7b, 0x11, 0x2e, 0xc9, 0xab, 0xc6, - 0x7f, 0xaa, 0x30, 0x35, 0xe9, 0x08, 0x35, 0x81, 0x73, 0x28, 0x5c, 0x92, 0x5c, 0x03, 0x59, 0x24, - 0x2a, 0x40, 0x4c, 0xcb, 0x98, 0xa5, 0xe5, 0xb2, 0x30, 0x95, 0x83, 0x15, 0x2b, 0x54, 0x8e, 0xdc, - 0x04, 0x0a, 0x12, 0x03, 0x9f, 0x69, 0x19, 0xb7, 0xb4, 0xac, 0x86, 0x6a, 0x09, 0x72, 0xe5, 0x1d, - 0xb2, 0xe4, 0x6f, 0x25, 0xb0, 0x42, 0x23, 0x2e, 0x6d, 0x4c, 0xe7, 0x84, 0xa5, 0x73, 0x23, 0x1a, - 0x5e, 0xc1, 0x0b, 0x5f, 0x1c, 0xe9, 0xd7, 0x5e, 0x8d, 0x81, 0x24, 0xb3, 0xe6, 0x36, 0x18, 0x77, - 0xdf, 0xeb, 0xc3, 0xd9, 0xa4, 0x5c, 0x0c, 0x27, 0x9a, 0x53, 0x17, 0x6e, 0x83, 0x71, 0xf7, 0x81, - 0x37, 0x9c, 0x5a, 0x02, 0x49, 0x03, 0x0f, 0x99, 0x75, 0x90, 0x19, 0x7c, 0x72, 0x8c, 0xc1, 0x33, - 0x65, 0x2d, 0x06, 0x17, 0x1d, 0x25, 0xbb, 0x40, 0x16, 0x5c, 0x53, 0xe3, 0x90, 0x4e, 0x59, 0x8f, - 0xc3, 0x4c, 0x47, 0x4f, 0x1b, 0x9c, 0x0b, 0xb9, 0x18, 0xc5, 0x65, 0xa0, 0x52, 0x8c, 0x4b, 0x55, - 0x81, 0xce, 0x40, 0x87, 0x1e, 0x97, 0x8e, 0xef, 0xd0, 0x19, 0xd2, 0x3f, 0x76, 0xc0, 0x42, 0xd8, - 0xe1, 0x1c, 0x9b, 0x37, 0xca, 0xd5, 0xd8, 0x0c, 0x73, 0xd4, 0x12, 0x30, 0x2f, 0xee, 0x28, 0x63, - 0x96, 0x04, 0xa5, 0x10, 0xb3, 0x74, 0x38, 0x0a, 0x5f, 0x48, 0x60, 0x39, 0xf2, 0x25, 0x6f, 0x78, - 0xd6, 0x2a, 0x9f, 0x0e, 0x4f, 0x74, 0x6e, 0x92, 0x32, 0xfa, 0xec, 0xed, 0xcb, 0x35, 0xa9, 0x74, - 0xe7, 0xe0, 0x30, 0x27, 0xbd, 0x3a, 0xcc, 0x49, 0xaf, 0x0f, 0x73, 0xd2, 0x8b, 0x37, 0xb9, 0x91, - 0x57, 0x6f, 0x72, 0x23, 0x7f, 0xbe, 0xc9, 0x8d, 0x7c, 0x73, 0xb5, 0xa1, 0x9b, 0xcd, 0x4e, 0xad, - 0x50, 0x27, 0x46, 0xb1, 0xa6, 0x9b, 0x35, 0x6d, 0xa7, 0x81, 0x68, 0xff, 0x5b, 0xbd, 0xa9, 0xe9, - 0xb8, 0xb8, 0x5f, 0xb4, 0xba, 0x03, 0xf3, 0x69, 0x0b, 0xd1, 0x5a, 0xda, 0xfa, 0x8f, 0xde, 0x87, - 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x89, 0xe1, 0x92, 0x21, 0x80, 0x1c, 0x00, 0x00, + // 1632 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x4b, 0x6f, 0xdb, 0xc6, + 0x16, 0x36, 0x25, 0xf9, 0x35, 0x8e, 0x1f, 0x62, 0xec, 0x58, 0x66, 0x1c, 0xc9, 0x19, 0xe7, 0x26, + 0xbe, 0xf6, 0x85, 0x14, 0xe7, 0xe2, 0xe2, 0xb6, 0x6e, 0x81, 0x36, 0x72, 0x82, 0x46, 0x01, 0x04, + 0x07, 0x4c, 0x80, 0xa2, 0x45, 0x01, 0x81, 0x92, 0xc7, 0x12, 0x63, 0x73, 0x46, 0xd0, 0x50, 0x89, + 0xb3, 0x0b, 0x82, 0x3e, 0xd0, 0xae, 0xd2, 0x5d, 0x7f, 0x46, 0xda, 0x5f, 0x61, 0xa0, 0x5d, 0x04, + 0xe8, 0xa6, 0xe8, 0x42, 0x08, 0x92, 0x45, 0xb6, 0x85, 0xd0, 0x1f, 0x50, 0xcc, 0x70, 0x48, 0xf1, + 0x19, 0x52, 0xae, 0xed, 0x55, 0x37, 0x96, 0x34, 0x33, 0xe7, 0x7c, 0xe7, 0xf1, 0x9d, 0xc3, 0x33, + 0x34, 0x58, 0x68, 0x6a, 0x86, 0x51, 0x7a, 0xb4, 0x59, 0x47, 0xa6, 0xb6, 0x59, 0x32, 0x0f, 0x8b, + 0xed, 0x0e, 0x31, 0x89, 0x7c, 0x8e, 0x2d, 0x17, 0xc5, 0xb2, 0x32, 0xdf, 0x24, 0x4d, 0xc2, 0x37, + 0x4a, 0xec, 0x9b, 0x75, 0x46, 0xc9, 0x6a, 0x86, 0x8e, 0x49, 0x89, 0xff, 0x15, 0x4b, 0xf9, 0x06, + 0xa1, 0x06, 0xa1, 0xa5, 0xba, 0x46, 0x91, 0xa3, 0xb4, 0x41, 0x74, 0x2c, 0xf6, 0xaf, 0xb4, 0x09, + 0x39, 0x30, 0x34, 0xac, 0x35, 0x51, 0xc7, 0xd9, 0xa7, 0x8f, 0xb5, 0x76, 0xad, 0x43, 0xba, 0x26, + 0x12, 0xa7, 0x16, 0x85, 0x16, 0x83, 0x36, 0x4b, 0x8f, 0x36, 0xd9, 0x87, 0xb5, 0x01, 0x7f, 0x4e, + 0x81, 0xa9, 0x2a, 0x6d, 0xde, 0x25, 0x3a, 0xbe, 0x47, 0xc8, 0x81, 0xfc, 0x6f, 0x30, 0x46, 0x11, + 0xde, 0x45, 0x9d, 0x9c, 0xb4, 0x22, 0xad, 0x4d, 0x96, 0xb3, 0xfd, 0x5e, 0x61, 0xfa, 0x89, 0x66, + 0x1c, 0x6c, 0x41, 0x6b, 0x1d, 0xaa, 0xe2, 0x80, 0xbc, 0x01, 0xc6, 0x19, 0x76, 0x4d, 0xdf, 0xcd, + 0xa5, 0x56, 0xa4, 0xb5, 0x4c, 0x59, 0xee, 0xf7, 0x0a, 0x33, 0xd6, 0x59, 0xb1, 0x01, 0xd5, 0x31, + 0xf6, 0xad, 0xb2, 0x2b, 0x6b, 0x60, 0x8e, 0xb6, 0xb4, 0x0e, 0xaa, 0x91, 0xae, 0x59, 0xd3, 0x0c, + 0xd2, 0xc5, 0x66, 0x2e, 0xcd, 0x11, 0xfe, 0x7f, 0xd4, 0x2b, 0x8c, 0xfc, 0xde, 0x2b, 0x2c, 0x58, + 0x26, 0xd2, 0xdd, 0xfd, 0xa2, 0x4e, 0x4a, 0x86, 0x66, 0xb6, 0x8a, 0x15, 0x6c, 0xf6, 0x7b, 0x85, + 0x0b, 0x2e, 0x95, 0x96, 0x24, 0x53, 0x02, 0xd5, 0x19, 0xae, 0x70, 0xa7, 0x6b, 0xde, 0xe4, 0x8b, + 0x72, 0x1d, 0x4c, 0x9b, 0x64, 0x1f, 0xe1, 0x9a, 0x8e, 0x6b, 0x86, 0x76, 0x48, 0x73, 0x99, 0x95, + 0xf4, 0xda, 0xd4, 0x8d, 0xa5, 0xa2, 0xa5, 0xb8, 0xc8, 0x22, 0x68, 0xc7, 0xbf, 0xb8, 0x4d, 0x74, + 0x5c, 0x5e, 0x65, 0xd0, 0xfd, 0x5e, 0xe1, 0xa2, 0x85, 0xe0, 0x96, 0x16, 0x48, 0x14, 0xaa, 0x53, + 0x7c, 0xb9, 0x82, 0xab, 0xda, 0x21, 0xdd, 0xba, 0xf4, 0xec, 0xed, 0x8b, 0x75, 0x11, 0x80, 0xef, + 0xde, 0xbe, 0x58, 0x9f, 0xe6, 0xb9, 0xb6, 0xa3, 0x07, 0x8f, 0x24, 0x70, 0xde, 0x15, 0x4d, 0x15, + 0xd1, 0x36, 0xc1, 0x14, 0xc9, 0xf5, 0x10, 0xef, 0xad, 0xf8, 0xbe, 0x17, 0xe7, 0xfd, 0xa2, 0x08, + 0xbe, 0x4f, 0x3c, 0xe8, 0x7e, 0x15, 0x4c, 0xd8, 0x0e, 0xe4, 0x52, 0x71, 0x9e, 0x2f, 0x0a, 0xcf, + 0x67, 0xbd, 0x9e, 0x43, 0x75, 0x5c, 0x78, 0x0b, 0x7f, 0xb1, 0x88, 0x71, 0xfb, 0x50, 0x37, 0x4f, + 0x95, 0x18, 0x35, 0x30, 0x6b, 0xf9, 0xa6, 0xe3, 0xe3, 0xf1, 0xc2, 0x27, 0x0d, 0xd5, 0x69, 0xbe, + 0x52, 0xc1, 0x22, 0x2e, 0x08, 0xcc, 0x58, 0xee, 0xb1, 0xe0, 0x19, 0x3a, 0x4e, 0xc0, 0x8b, 0x2b, + 0x22, 0x3a, 0xcb, 0xee, 0xe8, 0x08, 0xf1, 0x01, 0x31, 0xce, 0xf1, 0xf5, 0x9d, 0xae, 0x59, 0xd5, + 0x71, 0x14, 0x33, 0xec, 0xf0, 0xc1, 0x26, 0x27, 0x86, 0xfd, 0xd3, 0x21, 0xc6, 0x3d, 0x30, 0xe9, + 0x68, 0xcf, 0x49, 0x71, 0x76, 0xe5, 0x84, 0x5d, 0x73, 0x3e, 0xbb, 0xa0, 0x3a, 0x61, 0xdb, 0x02, + 0x8f, 0xd2, 0x60, 0xbe, 0x4a, 0x9b, 0xf7, 0x1f, 0x6b, 0xed, 0xdb, 0x87, 0x5a, 0x43, 0xb0, 0xa3, + 0x82, 0x87, 0x49, 0xe0, 0x2d, 0x30, 0xc6, 0x9b, 0x07, 0x15, 0x44, 0xba, 0x5a, 0x74, 0x35, 0x19, + 0xc7, 0x24, 0x06, 0x61, 0x6b, 0x57, 0xd9, 0xf1, 0x72, 0x86, 0xd9, 0xa7, 0x0a, 0x59, 0x0f, 0x21, + 0x59, 0x4a, 0xff, 0x1e, 0x21, 0x65, 0x03, 0xcc, 0x87, 0x25, 0x22, 0x97, 0xe1, 0xde, 0x7c, 0x18, + 0xc7, 0x96, 0x8b, 0xd1, 0xb9, 0x84, 0x6a, 0xd6, 0x95, 0x4a, 0x41, 0x9b, 0xcf, 0x00, 0xd0, 0xf6, + 0xf6, 0xf4, 0x03, 0x5d, 0x63, 0x71, 0x18, 0xe5, 0x71, 0xc8, 0x87, 0xc6, 0xe1, 0xa6, 0x7d, 0xac, + 0xbc, 0x24, 0x9c, 0xc8, 0x5a, 0x58, 0x03, 0x79, 0xa8, 0xba, 0x94, 0x6d, 0x5d, 0xf5, 0x51, 0xe5, + 0x02, 0xa7, 0x4a, 0x20, 0x63, 0xf0, 0x99, 0x04, 0x96, 0xc3, 0x52, 0xe9, 0x6e, 0x2b, 0x03, 0x7f, + 0x8e, 0xd5, 0x56, 0xfc, 0xe2, 0x50, 0x9d, 0xb1, 0x43, 0x61, 0xa1, 0xc1, 0x3f, 0x25, 0x30, 0x5b, + 0x29, 0x6f, 0x3f, 0xe8, 0x68, 0x98, 0xee, 0xa1, 0x4e, 0x05, 0xef, 0x11, 0xf9, 0x63, 0x30, 0x43, + 0x49, 0xb7, 0xd3, 0x40, 0xb5, 0x46, 0x4b, 0xc3, 0x18, 0x1d, 0x08, 0xd4, 0xa5, 0x7e, 0xaf, 0xb0, + 0x20, 0x28, 0xe5, 0xd9, 0x67, 0x45, 0xc9, 0x17, 0xb6, 0xad, 0xdf, 0x72, 0x09, 0x4c, 0x74, 0x50, + 0x03, 0xe9, 0x8f, 0x50, 0x87, 0xf7, 0x88, 0xc9, 0xf2, 0xf9, 0x41, 0xf2, 0xed, 0x1d, 0xa8, 0x3a, + 0x87, 0xe4, 0x55, 0x90, 0x31, 0x90, 0x41, 0x44, 0x6f, 0x98, 0xed, 0xf7, 0x0a, 0x53, 0xd6, 0x61, + 0xb6, 0x0a, 0x55, 0xbe, 0x29, 0x57, 0x40, 0xd6, 0xd4, 0x0d, 0xc4, 0xdc, 0x61, 0x9f, 0xd4, 0xd4, + 0x8c, 0x36, 0xe7, 0x47, 0xa6, 0xbc, 0xdc, 0xef, 0x15, 0x72, 0xc2, 0x67, 0xff, 0x11, 0xa8, 0xce, + 0x89, 0xb5, 0x07, 0xce, 0xd2, 0xaf, 0x19, 0xb0, 0x1a, 0x16, 0xfb, 0x4f, 0x75, 0xb3, 0xe5, 0x0a, + 0xc7, 0x3f, 0x55, 0x35, 0x5c, 0x55, 0xed, 0x83, 0xac, 0x5e, 0x6f, 0xd4, 0x4c, 0x11, 0xbe, 0x9a, + 0x8e, 0xf7, 0x48, 0x6e, 0x94, 0xbb, 0x71, 0xa9, 0xe8, 0x1e, 0x90, 0x8a, 0x3e, 0xce, 0x95, 0x57, + 0x84, 0x2b, 0x22, 0x89, 0x01, 0x2d, 0x50, 0x9d, 0xd5, 0xeb, 0x0d, 0x0f, 0x4d, 0xbd, 0x25, 0x3c, + 0x76, 0x92, 0x25, 0xfc, 0x3f, 0x5f, 0x09, 0xff, 0x2b, 0xbc, 0x84, 0x7d, 0x6c, 0x81, 0xdf, 0x4b, + 0x60, 0x23, 0x01, 0xab, 0xce, 0xb4, 0xc0, 0xff, 0x48, 0x81, 0x85, 0xa0, 0x4d, 0x3b, 0x5d, 0x73, + 0x18, 0x6e, 0xdf, 0xf6, 0x71, 0xfb, 0x5a, 0x0c, 0xb7, 0x77, 0xba, 0x66, 0x18, 0xb9, 0x1f, 0x82, + 0xf3, 0x21, 0x43, 0x98, 0x28, 0xfa, 0x0f, 0xe2, 0x5c, 0x56, 0x22, 0xc7, 0x38, 0x56, 0xe1, 0xce, + 0x14, 0x27, 0xa8, 0xe8, 0x79, 0xf4, 0x66, 0xe2, 0x2a, 0x29, 0xc1, 0xa3, 0x77, 0xeb, 0x9a, 0x8f, + 0x14, 0x8b, 0x61, 0xa4, 0x60, 0xcf, 0xe8, 0xa7, 0x12, 0xb8, 0x14, 0x1a, 0x72, 0x27, 0xf1, 0x35, + 0x30, 0xeb, 0xb8, 0xe1, 0xc9, 0x7b, 0xd2, 0xa9, 0xc8, 0x27, 0x0d, 0xd5, 0x69, 0x11, 0x00, 0x91, + 0xf5, 0x5e, 0x0a, 0x2c, 0x89, 0x49, 0xd5, 0x32, 0xc3, 0x44, 0x1d, 0x7c, 0x9c, 0x59, 0x61, 0xa8, + 0x61, 0xef, 0xe4, 0x9b, 0xd7, 0x60, 0x2e, 0x3e, 0x76, 0xf3, 0x0a, 0x53, 0x01, 0xd5, 0xac, 0x3d, + 0x5e, 0x3b, 0xcd, 0x6b, 0x6b, 0xc3, 0x97, 0xdf, 0x8b, 0xce, 0xf0, 0x1f, 0x0c, 0x21, 0xfc, 0x46, + 0x02, 0x97, 0x23, 0x03, 0x7c, 0x96, 0x17, 0x03, 0xf8, 0x63, 0xda, 0x93, 0xea, 0xfb, 0x6c, 0xf7, + 0x58, 0x45, 0x3e, 0x54, 0xaa, 0x3f, 0xb2, 0xc7, 0x6e, 0x1d, 0xd7, 0x76, 0x11, 0x26, 0x86, 0xa8, + 0x62, 0xd7, 0x8c, 0xe0, 0xdd, 0xb7, 0x07, 0xea, 0x0a, 0xbe, 0xc5, 0x7e, 0x86, 0x86, 0x26, 0x73, + 0xc2, 0x77, 0xa6, 0x88, 0x7e, 0x33, 0x7a, 0x0a, 0xfd, 0x26, 0x86, 0x3d, 0xde, 0xac, 0xc0, 0x2f, + 0xbd, 0xec, 0xf1, 0xee, 0x9e, 0x5d, 0x97, 0xf8, 0x29, 0x0d, 0x72, 0xe2, 0xda, 0xe2, 0x33, 0xe3, + 0x14, 0x9b, 0x44, 0xd9, 0xf6, 0x8a, 0x65, 0xce, 0x4d, 0x1d, 0xc5, 0x6f, 0xb8, 0x73, 0xc0, 0x36, + 0x7c, 0xa7, 0x6b, 0x5a, 0xe4, 0x09, 0xb9, 0x55, 0x66, 0x4e, 0xf4, 0x56, 0x19, 0x35, 0x37, 0x8d, + 0x9e, 0xca, 0xdc, 0xb4, 0xb5, 0xee, 0x23, 0x8f, 0xe2, 0xdc, 0x2e, 0x03, 0x79, 0x81, 0x5f, 0x4b, + 0x60, 0x25, 0x2a, 0x69, 0x67, 0x3a, 0x59, 0xbc, 0x4a, 0x01, 0xc5, 0x65, 0x88, 0xbb, 0x05, 0x9e, + 0x66, 0xe7, 0xf1, 0x3c, 0xd8, 0xd3, 0x27, 0xf0, 0x60, 0x67, 0x6d, 0xc2, 0xe1, 0x83, 0xab, 0x4d, + 0x64, 0x86, 0x6a, 0x13, 0x21, 0x1a, 0xa0, 0x3a, 0x27, 0x58, 0x35, 0x68, 0x13, 0xff, 0xf1, 0x65, + 0x7a, 0xd9, 0x93, 0x69, 0x5f, 0x0c, 0xe1, 0x57, 0x12, 0x80, 0xd1, 0x21, 0x76, 0x37, 0x0a, 0x7f, + 0x39, 0x48, 0x27, 0x59, 0x0e, 0xf0, 0x87, 0x71, 0x90, 0xfd, 0x44, 0x33, 0x8c, 0xed, 0x2e, 0x35, + 0x89, 0x51, 0xa5, 0xcd, 0x07, 0x4f, 0xda, 0x48, 0xbe, 0x09, 0xa6, 0x1e, 0x8a, 0x57, 0x61, 0x55, + 0xda, 0xe4, 0x90, 0x2c, 0x17, 0x9e, 0x39, 0xdf, 0xf5, 0xba, 0x8c, 0x0f, 0x83, 0x92, 0xea, 0x96, + 0x61, 0x2a, 0x90, 0x78, 0x69, 0xc2, 0x54, 0xa4, 0x22, 0x54, 0xd8, 0x2f, 0x56, 0x6c, 0x15, 0x2e, + 0x19, 0xf9, 0x0b, 0x30, 0x4f, 0xfd, 0x03, 0x37, 0xd3, 0x65, 0x51, 0x03, 0x06, 0x74, 0x05, 0xa6, + 0x73, 0xa1, 0x34, 0x54, 0x8b, 0x5c, 0x03, 0x0b, 0x34, 0x30, 0xc7, 0x31, 0xf5, 0xd6, 0x48, 0xb9, + 0x1a, 0xa7, 0x7e, 0xa7, 0x6b, 0x0a, 0xfd, 0xe1, 0x7a, 0xe4, 0x7d, 0xb0, 0xf4, 0x30, 0x74, 0x88, + 0x60, 0x20, 0xd6, 0xd5, 0xe9, 0x5a, 0x68, 0x48, 0x83, 0x12, 0x02, 0x28, 0x5a, 0x9f, 0x1b, 0xcc, + 0xfb, 0xcc, 0x61, 0x60, 0x63, 0x31, 0x60, 0x5e, 0x09, 0x3f, 0x58, 0x40, 0x9f, 0xdc, 0x02, 0x39, + 0x14, 0xd6, 0xa4, 0x18, 0xd6, 0x38, 0xc7, 0xba, 0x1a, 0x9a, 0xe8, 0x80, 0x80, 0x80, 0x8a, 0xd4, + 0x26, 0x63, 0xa0, 0xa0, 0xf0, 0x12, 0x61, 0x58, 0x13, 0x1c, 0x6b, 0x2d, 0x12, 0xcb, 0x27, 0x22, + 0xd0, 0xde, 0xa1, 0x51, 0xfe, 0x56, 0x02, 0xab, 0x34, 0xe6, 0x92, 0xc7, 0x90, 0x27, 0x39, 0xf2, + 0x66, 0x3c, 0x05, 0x7d, 0xb2, 0xc2, 0x84, 0x24, 0x18, 0x37, 0x5e, 0x8e, 0x83, 0x34, 0xb3, 0xe9, + 0x0e, 0x98, 0x70, 0xde, 0xf2, 0x47, 0xd7, 0xa0, 0x72, 0x39, 0x72, 0xcb, 0xe9, 0x26, 0x77, 0xc0, + 0x84, 0xf3, 0x5a, 0x38, 0xba, 0x14, 0x43, 0x34, 0x05, 0x5e, 0x7f, 0x36, 0x40, 0x36, 0xf8, 0xa2, + 0x32, 0x41, 0x45, 0x2a, 0xeb, 0xf1, 0x67, 0x1c, 0x90, 0x3d, 0x20, 0x87, 0x5c, 0x6e, 0x93, 0x14, + 0xa6, 0xb2, 0x91, 0xe0, 0x90, 0x83, 0xd3, 0x01, 0x17, 0x22, 0xae, 0x53, 0x49, 0xeb, 0x53, 0x29, + 0x25, 0x3c, 0x18, 0x86, 0xe9, 0x9b, 0xeb, 0x93, 0x96, 0xe9, 0x3b, 0x30, 0x23, 0xa6, 0xce, 0x2e, + 0x58, 0x8c, 0x7a, 0xa4, 0x27, 0xae, 0x21, 0xe5, 0x7a, 0xd2, 0x93, 0x0e, 0x2c, 0x01, 0x0b, 0xe1, + 0x73, 0x68, 0xc2, 0x26, 0xa1, 0x14, 0x93, 0x9d, 0x73, 0x00, 0x9f, 0x4b, 0x60, 0x25, 0xf6, 0xfd, + 0xdf, 0xf0, 0xb5, 0xab, 0xbc, 0x3f, 0xb4, 0x88, 0x6d, 0x92, 0x32, 0xfa, 0xf4, 0xed, 0x8b, 0x75, + 0xa9, 0x7c, 0xf7, 0xe8, 0x75, 0x5e, 0x7a, 0xf9, 0x3a, 0x2f, 0xbd, 0x7a, 0x9d, 0x97, 0x9e, 0xbf, + 0xc9, 0x8f, 0xbc, 0x7c, 0x93, 0x1f, 0xf9, 0xed, 0x4d, 0x7e, 0xe4, 0xf3, 0xeb, 0x4d, 0xdd, 0x6c, + 0x75, 0xeb, 0xc5, 0x06, 0x31, 0x4a, 0x75, 0xdd, 0xac, 0x6b, 0xbb, 0x4d, 0x44, 0x07, 0xdf, 0x1a, + 0x2d, 0x4d, 0xc7, 0xa5, 0xc3, 0x12, 0x9f, 0x29, 0xcc, 0x27, 0x6d, 0x44, 0xeb, 0x63, 0xfc, 0xff, + 0x80, 0xff, 0xfd, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xd9, 0x34, 0x6e, 0xd8, 0xb6, 0x1c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/managersplitter/module/module.go b/x/managersplitter/module/module.go index d88d535d..61bc9ee1 100644 --- a/x/managersplitter/module/module.go +++ b/x/managersplitter/module/module.go @@ -58,7 +58,12 @@ func (AppModuleBasic) Name() string { // RegisterLegacyAminoCodec registers the amino codec for the module, which is used // to marshal and unmarshal structs to/from []byte in order to persist them in the module's KVStore. -func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {} +// +// Required for EIP-712 signature verification (cosmos/evm verifier amino-decodes +// the StdSignDoc messages on the chain's main legacy amino codec). +func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { + types.RegisterCodec(cdc) +} // RegisterInterfaces registers a module's interface types and their concrete implementations as proto.Message. func (a AppModuleBasic) RegisterInterfaces(reg cdctypes.InterfaceRegistry) { diff --git a/x/managersplitter/types/permissions.pb.go b/x/managersplitter/types/permissions.pb.go index 04290407..486170e8 100644 --- a/x/managersplitter/types/permissions.pb.go +++ b/x/managersplitter/types/permissions.pb.go @@ -215,35 +215,35 @@ func init() { func init() { proto.RegisterFile("managersplitter/permissions.proto", fileDescriptor_216a29cba87bf9f4) } var fileDescriptor_216a29cba87bf9f4 = []byte{ - // 443 bytes of a gzipped FileDescriptorProto + // 448 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xc1, 0x6e, 0xd3, 0x40, - 0x10, 0x86, 0x63, 0x0a, 0xa5, 0xdd, 0x1e, 0x80, 0xa5, 0x42, 0xab, 0x82, 0xac, 0x50, 0x2e, 0x3d, - 0xa0, 0x58, 0x82, 0x23, 0xa7, 0xd4, 0xbd, 0x70, 0x88, 0xa8, 0x1a, 0x42, 0x25, 0x38, 0x4d, 0xbc, - 0x23, 0x67, 0x85, 0xbd, 0xb3, 0xda, 0xd9, 0x56, 0xf0, 0x16, 0xbc, 0x00, 0xef, 0xc3, 0xb1, 0x47, - 0x8e, 0x28, 0x79, 0x11, 0xd4, 0x24, 0x38, 0xd4, 0x31, 0xc5, 0xed, 0x6d, 0x35, 0xb3, 0xff, 0xf7, - 0xff, 0x1e, 0xef, 0xae, 0x78, 0x5e, 0x82, 0x85, 0x1c, 0x3d, 0xbb, 0xc2, 0x84, 0x80, 0x3e, 0x71, - 0xe8, 0x4b, 0xc3, 0x6c, 0xc8, 0x72, 0xcf, 0x79, 0x0a, 0x24, 0x1f, 0xd4, 0xb6, 0xec, 0xed, 0xe6, - 0x94, 0xd3, 0xbc, 0x97, 0x5c, 0xae, 0x16, 0xdb, 0xf6, 0x0f, 0x85, 0x3c, 0xae, 0xb4, 0xa9, 0x37, - 0x01, 0xbd, 0x01, 0xf9, 0x52, 0x3c, 0x02, 0xe7, 0x3c, 0x9d, 0xa3, 0xee, 0x6b, 0xed, 0x91, 0x19, - 0x59, 0x45, 0xdd, 0x8d, 0x83, 0xed, 0x93, 0xf5, 0xc6, 0xfe, 0xf7, 0x2d, 0xb1, 0x37, 0x58, 0xb8, - 0x0d, 0x97, 0x6e, 0x2b, 0x26, 0xcb, 0x91, 0x78, 0x9c, 0x81, 0x3d, 0xc2, 0x02, 0x03, 0xa6, 0x54, - 0x14, 0x98, 0x05, 0x43, 0x56, 0x45, 0xdd, 0xe8, 0x60, 0xe7, 0xd5, 0x8b, 0x5e, 0x2d, 0x67, 0x6f, - 0x3d, 0xce, 0x49, 0x93, 0x5e, 0x9e, 0x8a, 0xdd, 0x0c, 0x6c, 0xdf, 0x67, 0x13, 0x73, 0xfe, 0x37, - 0xf7, 0x4e, 0x7b, 0x6e, 0x23, 0x40, 0x0e, 0x85, 0xcc, 0xc0, 0x8e, 0x9c, 0x86, 0x80, 0xc3, 0x00, - 0x56, 0x83, 0xd7, 0xac, 0x36, 0xda, 0x63, 0x1b, 0xe4, 0xcb, 0x21, 0x2c, 0xaa, 0xe9, 0x19, 0x07, - 0x2a, 0x8f, 0x20, 0x80, 0xba, 0x7b, 0xb3, 0x21, 0xd4, 0xf5, 0xf2, 0x9d, 0x78, 0x58, 0x95, 0x97, - 0xbf, 0x40, 0xdd, 0x6b, 0xcf, 0x5c, 0x13, 0x4b, 0x14, 0x4f, 0x57, 0x3e, 0xd5, 0x4c, 0x06, 0x18, - 0x40, 0x5f, 0xe6, 0xdd, 0x6c, 0xcf, 0xbe, 0x8e, 0x23, 0x3f, 0x89, 0x27, 0x55, 0xfb, 0x03, 0x14, - 0x46, 0xbf, 0xa7, 0xcf, 0x68, 0xdf, 0x6a, 0x56, 0xf7, 0xdb, 0x3b, 0xfc, 0x03, 0x71, 0x05, 0x3e, - 0x2f, 0x56, 0xf1, 0xb7, 0x6e, 0x03, 0xbf, 0x82, 0x90, 0xb9, 0x78, 0xd6, 0xf0, 0x61, 0xfd, 0xf9, - 0xa5, 0x80, 0x82, 0xd5, 0x76, 0x7b, 0x8b, 0x6b, 0x41, 0x7f, 0xce, 0xb7, 0xd6, 0x03, 0xf2, 0xd8, - 0x2f, 0x0c, 0xf0, 0x31, 0x84, 0x09, 0x2b, 0x71, 0xc3, 0xf3, 0x5d, 0x07, 0x48, 0x12, 0xdd, 0x55, - 0x3d, 0x25, 0x2e, 0x89, 0x53, 0x32, 0xf6, 0xd4, 0x83, 0x73, 0xe8, 0x17, 0x26, 0x3b, 0xed, 0x4d, - 0xfe, 0x0b, 0x3b, 0x1c, 0xfd, 0x98, 0xc6, 0xd1, 0xc5, 0x34, 0x8e, 0x7e, 0x4d, 0xe3, 0xe8, 0xdb, - 0x2c, 0xee, 0x5c, 0xcc, 0xe2, 0xce, 0xcf, 0x59, 0xdc, 0xf9, 0xf8, 0x26, 0x37, 0x61, 0x72, 0x36, - 0xee, 0x65, 0x54, 0x26, 0x63, 0x13, 0xc6, 0xa0, 0x73, 0xe4, 0xd5, 0x2a, 0x9b, 0x80, 0xb1, 0xc9, - 0x97, 0xa4, 0xfe, 0xda, 0x85, 0xaf, 0x0e, 0x79, 0xbc, 0x39, 0x7f, 0xc1, 0x5e, 0xff, 0x0e, 0x00, - 0x00, 0xff, 0xff, 0xa2, 0xed, 0xd7, 0xe9, 0x0d, 0x05, 0x00, 0x00, + 0x10, 0x40, 0x63, 0x5a, 0x4a, 0xbb, 0x3d, 0x00, 0x4b, 0x85, 0x56, 0x05, 0x99, 0x50, 0x2e, 0x3d, + 0xa0, 0x58, 0x82, 0x23, 0xa7, 0xc4, 0xbd, 0x70, 0x88, 0x54, 0xb5, 0x04, 0x04, 0x88, 0xc3, 0xc4, + 0x3b, 0x72, 0x56, 0xb5, 0x77, 0x57, 0x3b, 0x9b, 0x0a, 0xfe, 0x82, 0xcf, 0xea, 0xb1, 0x47, 0x4e, + 0x80, 0x92, 0x1f, 0x41, 0x8d, 0x83, 0x4d, 0x1d, 0xd3, 0xca, 0xb9, 0xad, 0x66, 0xd6, 0xef, 0xcd, + 0x8e, 0x35, 0xc3, 0x9e, 0xe7, 0xa0, 0x21, 0x45, 0x47, 0x36, 0x53, 0xde, 0xa3, 0x8b, 0x2c, 0xba, + 0x5c, 0x11, 0x29, 0xa3, 0xa9, 0x67, 0x9d, 0xf1, 0x86, 0xdf, 0xaf, 0x5d, 0xd9, 0xdf, 0x4b, 0x4d, + 0x6a, 0x16, 0xb9, 0xe8, 0xea, 0x54, 0x5c, 0x3b, 0x18, 0x30, 0x7e, 0x5c, 0x7e, 0x1b, 0x3b, 0xe5, + 0xd1, 0x29, 0xe0, 0x2f, 0xd9, 0x43, 0xb0, 0xd6, 0x99, 0x73, 0x94, 0x7d, 0x29, 0x1d, 0x12, 0x21, + 0x89, 0xa0, 0xbb, 0x71, 0xb8, 0x73, 0xb2, 0x9a, 0x38, 0xf8, 0xb5, 0xcd, 0xf6, 0x87, 0x85, 0xed, + 0x74, 0x69, 0xab, 0x98, 0xc4, 0x3f, 0xb3, 0x47, 0x09, 0xe8, 0x23, 0xcc, 0xd0, 0x63, 0x6c, 0xb2, + 0x0c, 0x13, 0xaf, 0x8c, 0x16, 0x41, 0x37, 0x38, 0xdc, 0x7d, 0xf5, 0xa2, 0x57, 0xab, 0xb3, 0xb7, + 0x5a, 0xce, 0x60, 0xf3, 0xe2, 0xe7, 0xb3, 0xe0, 0xa4, 0x89, 0xc2, 0xbf, 0xb0, 0xbd, 0x04, 0x74, + 0xdf, 0x25, 0x13, 0x75, 0xfe, 0x2f, 0xfd, 0x4e, 0x5b, 0x7a, 0x23, 0x86, 0x7f, 0x64, 0x3c, 0x01, + 0x3d, 0xb2, 0x12, 0x3c, 0x9e, 0x7a, 0xd0, 0x12, 0x9c, 0x24, 0xb1, 0xd1, 0x16, 0xde, 0x00, 0x59, + 0xb6, 0xa5, 0x88, 0xc6, 0x53, 0xf2, 0x26, 0x3f, 0x02, 0x0f, 0x62, 0x73, 0x9d, 0xb6, 0xd4, 0x29, + 0x7c, 0xc4, 0x1e, 0x94, 0xe1, 0xe5, 0xaf, 0x11, 0x77, 0xdb, 0x92, 0x57, 0x10, 0xfc, 0x8c, 0x3d, + 0xa9, 0x6c, 0x65, 0x97, 0x86, 0xe8, 0x41, 0x5e, 0xd5, 0xbe, 0xd5, 0xd6, 0x70, 0x13, 0x8d, 0x03, + 0x7b, 0x5c, 0xa6, 0xdf, 0x43, 0xa6, 0xe4, 0x3b, 0x73, 0x86, 0xfa, 0xad, 0x24, 0x71, 0xaf, 0xad, + 0xe7, 0x3f, 0xa0, 0x6b, 0x8a, 0x45, 0xb0, 0x7c, 0xca, 0xf6, 0xfa, 0x8a, 0x6b, 0x20, 0x9e, 0xb3, + 0xa7, 0x0d, 0x8f, 0xec, 0x2f, 0x86, 0x08, 0x32, 0x12, 0x3b, 0x6d, 0x45, 0x37, 0xe2, 0xfe, 0xce, + 0x83, 0x94, 0x43, 0xe3, 0xb0, 0x9f, 0x29, 0xa0, 0x63, 0xf0, 0x13, 0x12, 0x6c, 0xad, 0x79, 0xa8, + 0x63, 0xf8, 0x94, 0x75, 0xab, 0x78, 0x6c, 0x28, 0x37, 0x14, 0x1b, 0xa5, 0x3f, 0x38, 0xb0, 0x16, + 0x5d, 0xa1, 0xda, 0x6d, 0xab, 0xba, 0x15, 0x39, 0x18, 0x5d, 0xcc, 0xc2, 0xe0, 0x72, 0x16, 0x06, + 0xbf, 0x67, 0x61, 0xf0, 0x7d, 0x1e, 0x76, 0x2e, 0xe7, 0x61, 0xe7, 0xc7, 0x3c, 0xec, 0x7c, 0x7a, + 0x93, 0x2a, 0x3f, 0x99, 0x8e, 0x7b, 0x89, 0xc9, 0xa3, 0xb1, 0xf2, 0x63, 0x90, 0x29, 0x52, 0x75, + 0x4a, 0x26, 0xa0, 0x74, 0xf4, 0x35, 0xaa, 0xef, 0x4b, 0xff, 0xcd, 0x22, 0x8d, 0xb7, 0x16, 0x3b, + 0xf0, 0xf5, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x48, 0x32, 0x81, 0x4f, 0x05, 0x00, 0x00, } func (m *PermissionCriteria) Marshal() (dAtA []byte, err error) { diff --git a/x/managersplitter/types/query.pb.go b/x/managersplitter/types/query.pb.go index b77cdf4f..993f9a51 100644 --- a/x/managersplitter/types/query.pb.go +++ b/x/managersplitter/types/query.pb.go @@ -313,39 +313,40 @@ func init() { func init() { proto.RegisterFile("managersplitter/query.proto", fileDescriptor_7f6db4f131e6ce70) } var fileDescriptor_7f6db4f131e6ce70 = []byte{ - // 511 bytes of a gzipped FileDescriptorProto + // 514 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0xcf, 0x6b, 0x13, 0x41, 0x14, 0xc7, 0x33, 0xad, 0x46, 0x7c, 0x1e, 0x2a, 0xd3, 0x82, 0x61, 0x95, 0x6d, 0x58, 0xc5, 0x9f, - 0xb0, 0xd3, 0xa4, 0x14, 0xc4, 0x9e, 0xec, 0xc1, 0x82, 0x54, 0xa8, 0x11, 0x2f, 0xde, 0x66, 0x93, - 0x61, 0x3a, 0x90, 0xdd, 0xd9, 0xee, 0x4c, 0xa4, 0x45, 0xbc, 0x78, 0x17, 0x04, 0xff, 0x0e, 0x0f, - 0x1e, 0xfd, 0x0f, 0x7a, 0x2c, 0x78, 0xf1, 0x24, 0x92, 0xf8, 0x5f, 0x78, 0x91, 0xcc, 0xcc, 0xd2, - 0x66, 0x36, 0xab, 0xe9, 0x6d, 0x93, 0xf7, 0xfd, 0x7e, 0xdf, 0x67, 0xdf, 0x7b, 0x2c, 0xdc, 0x4c, - 0x69, 0x46, 0x39, 0x2b, 0x54, 0x3e, 0x14, 0x5a, 0xb3, 0x82, 0x1c, 0x8e, 0x58, 0x71, 0x1c, 0xe7, - 0x85, 0xd4, 0x12, 0xaf, 0x78, 0xc5, 0x60, 0x8d, 0x4b, 0x2e, 0x4d, 0x8d, 0x4c, 0x9f, 0xac, 0x2c, + 0xb0, 0xd3, 0xa4, 0x14, 0xc4, 0x9e, 0xec, 0xc1, 0x5e, 0x2a, 0xc4, 0x15, 0x2f, 0xde, 0x66, 0x93, + 0x61, 0x3a, 0x90, 0xec, 0x6c, 0x77, 0x26, 0xd2, 0x22, 0x5e, 0xbc, 0x0b, 0x82, 0x7f, 0x87, 0x07, + 0x8f, 0xfe, 0x07, 0x3d, 0x16, 0xbc, 0x78, 0x12, 0x49, 0xfc, 0x2f, 0xbc, 0x48, 0x66, 0x66, 0x69, + 0x33, 0x9b, 0xd5, 0x78, 0xdb, 0xe4, 0xbd, 0xef, 0xf7, 0x7d, 0xf6, 0xbd, 0x2f, 0x0b, 0x37, 0x47, + 0x34, 0xa3, 0x9c, 0x15, 0x2a, 0x1f, 0x0a, 0xad, 0x59, 0x41, 0x8e, 0xc6, 0xac, 0x38, 0x89, 0xf3, + 0x42, 0x6a, 0x89, 0xd7, 0xbc, 0x62, 0xb0, 0xc1, 0x25, 0x97, 0xa6, 0x46, 0x66, 0x4f, 0xb6, 0x2d, 0xb8, 0xc5, 0xa5, 0xe4, 0x43, 0x46, 0x68, 0x2e, 0x08, 0xcd, 0x32, 0xa9, 0xa9, 0x16, 0x32, 0x53, - 0xae, 0xfa, 0xb0, 0x2f, 0x55, 0x2a, 0x15, 0x49, 0xa8, 0x62, 0x36, 0x9d, 0xbc, 0xed, 0x24, 0x4c, - 0xd3, 0x0e, 0xc9, 0x29, 0x17, 0x99, 0x11, 0x97, 0x49, 0x3e, 0x4d, 0x4e, 0x0b, 0x9a, 0x96, 0x49, - 0x2d, 0xbf, 0xaa, 0x8f, 0x6c, 0x25, 0x5a, 0x03, 0xfc, 0x72, 0x9a, 0xbc, 0x6f, 0xe4, 0x3d, 0x76, - 0x38, 0x62, 0x4a, 0x47, 0x7b, 0xb0, 0x3a, 0xf3, 0xaf, 0xca, 0x65, 0xa6, 0x18, 0xde, 0x82, 0xa6, - 0x8d, 0x6d, 0xa1, 0x36, 0xba, 0x7f, 0xad, 0x7b, 0x23, 0xf6, 0x72, 0x63, 0x6b, 0xd8, 0xb9, 0x74, - 0xf2, 0x73, 0xbd, 0xd1, 0x73, 0xe2, 0xe8, 0x09, 0x84, 0x26, 0x6d, 0x97, 0xe9, 0x17, 0x56, 0xff, - 0xca, 0xe9, 0x5d, 0x3f, 0xdc, 0x82, 0x2b, 0x74, 0x30, 0x28, 0x98, 0xb2, 0xc9, 0x57, 0x7b, 0xe5, - 0xcf, 0x28, 0x85, 0xf5, 0x5a, 0xaf, 0xa3, 0x7a, 0x0e, 0xe5, 0xb4, 0xcb, 0x92, 0xc3, 0x6b, 0x57, - 0xf0, 0xfc, 0x08, 0xdf, 0x18, 0x09, 0xd7, 0xee, 0xe9, 0x70, 0xe8, 0x69, 0xcb, 0xd9, 0xe0, 0x67, - 0x00, 0x67, 0xd3, 0x77, 0x9d, 0xee, 0xc6, 0x76, 0x55, 0xf1, 0x74, 0x55, 0xb1, 0x3d, 0x04, 0xb7, - 0xaa, 0x78, 0x9f, 0x72, 0xe6, 0xbc, 0xbd, 0x73, 0xce, 0xe8, 0x1b, 0x82, 0x76, 0x7d, 0x2f, 0xf7, - 0x6e, 0x7b, 0x70, 0xdd, 0x43, 0x9c, 0x4e, 0x68, 0x79, 0xa1, 0x97, 0xab, 0x38, 0xf1, 0xee, 0x0c, - 0xfa, 0x92, 0x41, 0xbf, 0xf7, 0x5f, 0x74, 0x8b, 0x72, 0x9e, 0xbd, 0xfb, 0x67, 0x19, 0x2e, 0x1b, - 0x76, 0xfc, 0x11, 0x41, 0xd3, 0x2e, 0x1d, 0xdf, 0xae, 0x10, 0x55, 0x2f, 0x2b, 0xb8, 0xf3, 0x6f, - 0x91, 0xed, 0x15, 0x3d, 0xfe, 0xf0, 0xfd, 0xf7, 0xe7, 0xa5, 0x2e, 0xde, 0x20, 0x89, 0xd0, 0x09, - 0x1d, 0x70, 0xa6, 0xce, 0x9e, 0xfa, 0x07, 0x54, 0x64, 0x64, 0xfe, 0xbd, 0xe3, 0xaf, 0x08, 0x56, - 0xbc, 0x41, 0x60, 0x32, 0xbf, 0x67, 0xed, 0x39, 0x06, 0x1b, 0x8b, 0x1b, 0x1c, 0xf0, 0xb6, 0x01, - 0xde, 0xc2, 0x9b, 0x8b, 0x03, 0xbf, 0x73, 0x27, 0xfe, 0x1e, 0x7f, 0x41, 0xb0, 0x3a, 0xe7, 0x08, - 0x70, 0x0d, 0x46, 0xfd, 0x6d, 0x06, 0x9d, 0x0b, 0x38, 0x1c, 0x79, 0xc7, 0x90, 0x3f, 0xc2, 0x0f, - 0x16, 0x26, 0xdf, 0x79, 0x7d, 0x32, 0x0e, 0xd1, 0xe9, 0x38, 0x44, 0xbf, 0xc6, 0x21, 0xfa, 0x34, - 0x09, 0x1b, 0xa7, 0x93, 0xb0, 0xf1, 0x63, 0x12, 0x36, 0xde, 0x6c, 0x73, 0xa1, 0x0f, 0x46, 0x49, - 0xdc, 0x97, 0x69, 0x7d, 0xdc, 0x51, 0x65, 0x14, 0xfa, 0x38, 0x67, 0x2a, 0x69, 0x9a, 0x2f, 0xd2, - 0xe6, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc6, 0xda, 0x7c, 0x90, 0x59, 0x05, 0x00, 0x00, + 0xae, 0xfa, 0xb0, 0x2f, 0xd5, 0x48, 0x2a, 0x92, 0x52, 0xc5, 0xac, 0x3b, 0x79, 0xd3, 0x49, 0x99, + 0xa6, 0x1d, 0x92, 0x53, 0x2e, 0x32, 0xd3, 0x5c, 0x3a, 0xf9, 0x34, 0x39, 0x2d, 0xe8, 0xa8, 0x74, + 0x6a, 0xf9, 0x55, 0x7d, 0x6c, 0x2b, 0xd1, 0x06, 0xe0, 0x17, 0x33, 0xe7, 0x9e, 0x69, 0x4f, 0xd8, + 0xd1, 0x98, 0x29, 0x1d, 0x1d, 0xc0, 0xfa, 0xdc, 0xbf, 0x2a, 0x97, 0x99, 0x62, 0x78, 0x07, 0x9a, + 0xd6, 0xb6, 0x85, 0xda, 0xe8, 0xfe, 0xb5, 0xee, 0x8d, 0xd8, 0xf3, 0x8d, 0xad, 0x60, 0xef, 0xd2, + 0xe9, 0x8f, 0xcd, 0x46, 0xe2, 0x9a, 0xa3, 0x27, 0x10, 0x1a, 0xb7, 0x7d, 0xa6, 0x9f, 0xdb, 0xfe, + 0x97, 0xae, 0xdf, 0xcd, 0xc3, 0x2d, 0xb8, 0x42, 0x07, 0x83, 0x82, 0x29, 0xeb, 0x7c, 0x35, 0x29, + 0x7f, 0x46, 0x0a, 0x36, 0x6b, 0xb5, 0x8e, 0xaa, 0x07, 0xe5, 0xb6, 0xcb, 0x92, 0xc3, 0x6b, 0x57, + 0xf0, 0x3c, 0x0b, 0xc3, 0x89, 0x12, 0x5f, 0x1e, 0x09, 0x37, 0xf4, 0xe9, 0x70, 0xe8, 0x29, 0xca, + 0x0d, 0xe1, 0x67, 0x00, 0xe7, 0x37, 0x70, 0xf3, 0xee, 0xc6, 0xf6, 0x60, 0xf1, 0xec, 0x60, 0xb1, + 0x8d, 0x83, 0x3b, 0x58, 0xdc, 0xa3, 0x9c, 0x39, 0x6d, 0x72, 0x41, 0x19, 0x7d, 0x45, 0xd0, 0xae, + 0x9f, 0xe5, 0xde, 0xf0, 0x00, 0xae, 0x7b, 0x88, 0xb3, 0x3d, 0xad, 0x2e, 0xf3, 0x8a, 0x49, 0x45, + 0x89, 0xf7, 0xe7, 0xd0, 0x57, 0x0c, 0xfa, 0xbd, 0x7f, 0xa2, 0x5b, 0x94, 0x8b, 0xec, 0xdd, 0xdf, + 0xab, 0x70, 0xd9, 0xb0, 0xe3, 0x0f, 0x08, 0x9a, 0xf6, 0xf4, 0xf8, 0x76, 0x85, 0xa8, 0x9a, 0xaf, + 0xe0, 0xce, 0xdf, 0x9b, 0xec, 0xac, 0xe8, 0xf1, 0xfb, 0x6f, 0xbf, 0x3e, 0xad, 0x74, 0xf1, 0x16, + 0x49, 0x85, 0x4e, 0xe9, 0x80, 0x33, 0x75, 0xfe, 0xd4, 0x3f, 0xa4, 0x22, 0x23, 0x8b, 0x53, 0x8f, + 0xbf, 0x20, 0x58, 0xf3, 0x16, 0x81, 0xc9, 0xe2, 0x99, 0xb5, 0xa1, 0x0c, 0xb6, 0x96, 0x17, 0x38, + 0xe0, 0x5d, 0x03, 0xbc, 0x83, 0xb7, 0x97, 0x07, 0x7e, 0xeb, 0x82, 0xfe, 0x0e, 0x7f, 0x46, 0xb0, + 0xbe, 0x20, 0x04, 0xb8, 0x06, 0xa3, 0x3e, 0x9b, 0x41, 0xe7, 0x3f, 0x14, 0x8e, 0xbc, 0x63, 0xc8, + 0x1f, 0xe1, 0x07, 0x4b, 0x93, 0xef, 0xbd, 0x3a, 0x9d, 0x84, 0xe8, 0x6c, 0x12, 0xa2, 0x9f, 0x93, + 0x10, 0x7d, 0x9c, 0x86, 0x8d, 0xb3, 0x69, 0xd8, 0xf8, 0x3e, 0x0d, 0x1b, 0xaf, 0x77, 0xb9, 0xd0, + 0x87, 0xe3, 0x34, 0xee, 0xcb, 0x51, 0xbd, 0xdd, 0x71, 0x65, 0x15, 0xfa, 0x24, 0x67, 0x2a, 0x6d, + 0x9a, 0xef, 0xd2, 0xf6, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x14, 0xbf, 0x64, 0x16, 0x5f, 0x05, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/managersplitter/types/tx.pb.go b/x/managersplitter/types/tx.pb.go index e0458f6a..6bfa28f6 100644 --- a/x/managersplitter/types/tx.pb.go +++ b/x/managersplitter/types/tx.pb.go @@ -680,58 +680,59 @@ func init() { func init() { proto.RegisterFile("managersplitter/tx.proto", fileDescriptor_53c122f86b47cda5) } var fileDescriptor_53c122f86b47cda5 = []byte{ - // 806 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x3f, 0x4f, 0xdb, 0x40, - 0x14, 0x8f, 0xc3, 0x9f, 0x36, 0x07, 0x12, 0xaa, 0x05, 0xc5, 0x58, 0x28, 0xa4, 0x46, 0x95, 0x68, - 0x50, 0x63, 0xa0, 0x88, 0x21, 0x65, 0x21, 0xb4, 0x43, 0x87, 0x48, 0xc8, 0x34, 0x0b, 0x0b, 0xba, - 0x24, 0x27, 0x73, 0x6a, 0xec, 0x8b, 0x7c, 0x17, 0x04, 0x9d, 0x50, 0x87, 0x0e, 0x9d, 0x98, 0xfa, - 0x19, 0xba, 0x54, 0x62, 0x68, 0x87, 0x7e, 0x03, 0xb6, 0xa2, 0x4e, 0x55, 0x55, 0xa1, 0x0a, 0xa4, - 0xf2, 0x35, 0xaa, 0xf3, 0x39, 0x4e, 0xe2, 0x9c, 0x13, 0x0b, 0xba, 0x24, 0xbe, 0x7b, 0xf7, 0xde, - 0xef, 0xf7, 0x7e, 0xef, 0xdd, 0xb3, 0x81, 0xe6, 0x40, 0x17, 0xda, 0xc8, 0xa3, 0xcd, 0x06, 0x66, - 0x0c, 0x79, 0x26, 0x3b, 0x2a, 0x34, 0x3d, 0xc2, 0x88, 0x3a, 0x15, 0xb1, 0xe8, 0x0f, 0xa0, 0x83, - 0x5d, 0x62, 0xfa, 0xbf, 0xe2, 0x8c, 0x3e, 0x5b, 0x23, 0xd4, 0x21, 0xd4, 0x74, 0xa8, 0x6d, 0x1e, - 0xae, 0xf2, 0xbf, 0xc0, 0x30, 0x27, 0x0c, 0xfb, 0xfe, 0xca, 0x14, 0x8b, 0xc0, 0x34, 0x6d, 0x13, - 0x9b, 0x88, 0x7d, 0xfe, 0x14, 0xec, 0x3e, 0x8a, 0xf2, 0x68, 0x22, 0xcf, 0xc1, 0x94, 0x62, 0xe2, - 0xb6, 0x1d, 0xe7, 0xfb, 0x8e, 0x40, 0x0f, 0x3a, 0x6d, 0xeb, 0x0c, 0x23, 0x6f, 0x90, 0x8b, 0xdf, - 0x42, 0x86, 0x89, 0x1b, 0x66, 0xa1, 0x67, 0x7b, 0xb6, 0xfb, 0x82, 0x1a, 0xdf, 0x14, 0x30, 0x55, - 0xa6, 0x76, 0xa5, 0x59, 0x87, 0x0c, 0xed, 0xf8, 0x01, 0xd5, 0x0d, 0x90, 0x81, 0x2d, 0x76, 0x40, - 0x3c, 0xcc, 0x8e, 0x35, 0x25, 0xa7, 0x2c, 0x65, 0x4a, 0xda, 0x8f, 0x2f, 0x4f, 0xa7, 0x83, 0x34, - 0xb6, 0xea, 0x75, 0x0f, 0x51, 0xba, 0xcb, 0x3c, 0xec, 0xda, 0x56, 0xe7, 0xa8, 0x5a, 0x04, 0xe3, - 0x82, 0x92, 0x96, 0xce, 0x29, 0x4b, 0x13, 0x6b, 0xb3, 0x85, 0x08, 0xe3, 0x82, 0x00, 0x28, 0x65, - 0xce, 0x2f, 0x17, 0x52, 0x9f, 0x6e, 0xce, 0xf2, 0x8a, 0x15, 0x78, 0x14, 0xd7, 0xde, 0xdd, 0x9c, - 0xe5, 0x3b, 0xb1, 0x3e, 0xdc, 0x9c, 0xe5, 0x17, 0xa2, 0xf9, 0x46, 0x78, 0x1a, 0x73, 0x60, 0x36, - 0xb2, 0x65, 0x21, 0xda, 0x24, 0x2e, 0x45, 0xc6, 0x29, 0x4f, 0x4b, 0xb8, 0xef, 0x06, 0xee, 0xaa, - 0x06, 0xee, 0x41, 0x41, 0x5d, 0x24, 0x65, 0xb5, 0x97, 0xea, 0x34, 0x18, 0x83, 0x75, 0x07, 0xbb, - 0x3e, 0xef, 0x8c, 0x25, 0x16, 0x6a, 0x19, 0x4c, 0x74, 0xe9, 0xa5, 0x8d, 0xf8, 0x39, 0x2d, 0xf7, - 0xe5, 0x14, 0x81, 0xd9, 0xe9, 0xb8, 0x58, 0xdd, 0xfe, 0xc6, 0x57, 0x05, 0x68, 0x65, 0x6a, 0x6f, - 0x7b, 0x08, 0x32, 0x14, 0xe5, 0x16, 0x32, 0x50, 0x06, 0x30, 0x48, 0xdf, 0x8d, 0x41, 0x71, 0x9d, - 0x6b, 0x2c, 0x42, 0x73, 0x7d, 0x1f, 0x47, 0xf5, 0x95, 0x52, 0x33, 0x36, 0x41, 0x2e, 0x8e, 0x76, - 0x5b, 0xee, 0x78, 0x69, 0x8d, 0xef, 0x22, 0x6b, 0x51, 0xa4, 0x64, 0x59, 0x77, 0x05, 0x4b, 0xf7, - 0xd6, 0xe9, 0xff, 0x56, 0x64, 0xa8, 0x1e, 0x52, 0xd2, 0x86, 0xe1, 0xeb, 0x21, 0xb5, 0x85, 0xed, - 0x77, 0x22, 0xb2, 0x7e, 0x81, 0x1a, 0xe8, 0xce, 0x59, 0x0f, 0xa5, 0x29, 0x45, 0x09, 0x68, 0x4a, - 0x6d, 0x21, 0xcd, 0xcf, 0x69, 0xb0, 0x58, 0xa6, 0xf6, 0xcb, 0x23, 0x54, 0x6b, 0x31, 0x54, 0x71, - 0xf1, 0x21, 0xf2, 0x28, 0x6c, 0x88, 0xdc, 0xb6, 0x49, 0xa3, 0x81, 0x6a, 0x7c, 0x6c, 0xa8, 0x3a, - 0xb8, 0x8f, 0xfc, 0x33, 0xc4, 0x0b, 0x48, 0x87, 0x6b, 0x75, 0x03, 0x3c, 0x74, 0x7a, 0xc3, 0x6f, - 0xf5, 0xa4, 0x11, 0x63, 0x55, 0x5d, 0x30, 0xdf, 0x8a, 0x03, 0x2c, 0x53, 0x3b, 0x28, 0x6e, 0xbe, - 0xd0, 0x3d, 0xbf, 0x0a, 0x5c, 0xf8, 0x38, 0x27, 0x6b, 0x60, 0xbc, 0x62, 0x89, 0xab, 0x18, 0xd2, - 0xe6, 0x42, 0xae, 0x44, 0x85, 0x1c, 0xa6, 0x83, 0xb1, 0x0f, 0x96, 0x13, 0xc8, 0x15, 0xde, 0x8a, - 0x15, 0x30, 0x59, 0x0b, 0x77, 0x5f, 0xd5, 0x83, 0x51, 0x3a, 0xc9, 0x87, 0xdf, 0xaf, 0xcb, 0x85, - 0xd1, 0x0a, 0x76, 0x99, 0xd5, 0x73, 0xc2, 0xf8, 0x3d, 0x02, 0xe6, 0xcb, 0xbd, 0xac, 0xb6, 0x5b, - 0x94, 0x11, 0xa7, 0x4c, 0xed, 0xd7, 0xc7, 0x4d, 0xa4, 0x22, 0xa0, 0xd5, 0x64, 0x37, 0x91, 0x2b, - 0xa6, 0xf8, 0x8a, 0x3d, 0xe9, 0xbf, 0x0e, 0x71, 0xb7, 0x37, 0x36, 0x14, 0x87, 0x69, 0xc9, 0x1a, - 0x9c, 0xc3, 0xa4, 0xe3, 0x61, 0xe4, 0x97, 0x22, 0x36, 0x14, 0x87, 0xa9, 0xcb, 0x1a, 0xb4, 0x53, - 0x7f, 0x29, 0x8c, 0xbc, 0xa9, 0x63, 0x43, 0xa9, 0xef, 0x15, 0xb0, 0x88, 0x86, 0x14, 0x8d, 0x43, - 0x8e, 0xfa, 0x90, 0xeb, 0x32, 0xc8, 0xa1, 0x35, 0x4f, 0x02, 0xb0, 0xf6, 0x77, 0x14, 0x8c, 0x70, - 0x42, 0x7b, 0x60, 0xb2, 0xe7, 0x85, 0x9b, 0x8b, 0x17, 0x53, 0x9c, 0xd0, 0x97, 0x86, 0x9d, 0x08, - 0x9b, 0xae, 0x05, 0x66, 0xe4, 0xaf, 0x98, 0xe4, 0x8d, 0xa1, 0xaf, 0x26, 0xef, 0xa1, 0x2e, 0x58, - 0xf9, 0x8c, 0x4f, 0xde, 0x28, 0x72, 0xd8, 0x81, 0x83, 0x96, 0xc3, 0xca, 0x87, 0x6c, 0xf2, 0xc6, - 0x91, 0xc3, 0x0e, 0x1c, 0x9c, 0xea, 0x47, 0x05, 0xe4, 0x86, 0x4e, 0xcd, 0x5b, 0x35, 0x92, 0xbe, - 0x79, 0xab, 0xf6, 0x0b, 0x88, 0xe9, 0x63, 0x27, 0xfc, 0xab, 0xaa, 0x54, 0x39, 0xbf, 0xca, 0x2a, - 0x17, 0x57, 0x59, 0xe5, 0xcf, 0x55, 0x56, 0x39, 0xbd, 0xce, 0xa6, 0x2e, 0xae, 0xb3, 0xa9, 0x9f, - 0xd7, 0xd9, 0xd4, 0xde, 0x73, 0x1b, 0xb3, 0x83, 0x56, 0xb5, 0x50, 0x23, 0x8e, 0x59, 0xc5, 0xac, - 0x0a, 0xeb, 0x36, 0xa2, 0x9d, 0xa7, 0xda, 0x01, 0xc4, 0xae, 0x79, 0x64, 0xf6, 0x7d, 0x15, 0x1f, - 0x37, 0x11, 0xad, 0x8e, 0xfb, 0xdf, 0x8c, 0xcf, 0xfe, 0x05, 0x00, 0x00, 0xff, 0xff, 0x33, 0x86, - 0x14, 0xf3, 0x35, 0x0b, 0x00, 0x00, + // 823 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x4f, 0x4b, 0x1b, 0x4f, + 0x18, 0xce, 0xc6, 0xe8, 0xef, 0x97, 0x51, 0x90, 0x2e, 0x5a, 0xd7, 0x45, 0x92, 0x74, 0xa5, 0x60, + 0x23, 0xcd, 0xaa, 0x15, 0x0f, 0xa9, 0x17, 0x63, 0x7b, 0xe8, 0x21, 0x20, 0x6b, 0x73, 0xf1, 0x22, + 0x93, 0x64, 0x58, 0x07, 0xb3, 0x3b, 0x61, 0x67, 0x22, 0xda, 0x93, 0xf4, 0x58, 0x7a, 0xe8, 0xc9, + 0xcf, 0xd0, 0x4b, 0xc1, 0x43, 0x2f, 0xa5, 0x5f, 0xc0, 0xa3, 0x14, 0x0a, 0xa5, 0x07, 0x29, 0x0a, + 0xf5, 0x0b, 0xf4, 0x03, 0x94, 0xd9, 0xd9, 0x6c, 0x92, 0xcd, 0x6c, 0x12, 0x6c, 0x7b, 0x49, 0x76, + 0xe6, 0xfd, 0xf3, 0x3c, 0xef, 0x33, 0xef, 0xbc, 0xbb, 0x40, 0x73, 0xa0, 0x0b, 0x6d, 0xe4, 0xd1, + 0x66, 0x03, 0x33, 0x86, 0x3c, 0x93, 0x1d, 0x17, 0x9a, 0x1e, 0x61, 0x44, 0x9d, 0x8e, 0x58, 0xf4, + 0x7b, 0xd0, 0xc1, 0x2e, 0x31, 0xfd, 0x5f, 0xe1, 0xa3, 0xcf, 0xd5, 0x08, 0x75, 0x08, 0x35, 0x1d, + 0x6a, 0x9b, 0x47, 0xab, 0xfc, 0x2f, 0x30, 0xcc, 0x0b, 0xc3, 0xbe, 0xbf, 0x32, 0xc5, 0x22, 0x30, + 0xcd, 0xd8, 0xc4, 0x26, 0x62, 0x9f, 0x3f, 0x05, 0xbb, 0x0f, 0xa2, 0x3c, 0x9a, 0xc8, 0x73, 0x30, + 0xa5, 0x98, 0xb8, 0xed, 0xc0, 0x85, 0x3e, 0x17, 0xe8, 0x41, 0xa7, 0x6d, 0x9d, 0x65, 0xe4, 0x10, + 0xb9, 0xf8, 0x15, 0x64, 0x98, 0xb8, 0x61, 0x15, 0x7a, 0xa6, 0x67, 0xbb, 0x2f, 0xa9, 0xf1, 0x49, + 0x01, 0xd3, 0x65, 0x6a, 0x57, 0x9a, 0x75, 0xc8, 0xd0, 0x8e, 0x9f, 0x50, 0xdd, 0x00, 0x69, 0xd8, + 0x62, 0x07, 0xc4, 0xc3, 0xec, 0x44, 0x53, 0x72, 0xca, 0x52, 0xba, 0xa4, 0x7d, 0xf9, 0xf8, 0x78, + 0x26, 0x28, 0x63, 0xab, 0x5e, 0xf7, 0x10, 0xa5, 0xbb, 0xcc, 0xc3, 0xae, 0x6d, 0x75, 0x5c, 0xd5, + 0x22, 0x98, 0x10, 0x94, 0xb4, 0x64, 0x4e, 0x59, 0x9a, 0x5c, 0x9b, 0x2b, 0x44, 0x18, 0x17, 0x04, + 0x40, 0x29, 0x7d, 0x71, 0x95, 0x4d, 0xbc, 0xbf, 0x3d, 0xcf, 0x2b, 0x56, 0x10, 0x51, 0x5c, 0x7b, + 0x7d, 0x7b, 0x9e, 0xef, 0xe4, 0x7a, 0x73, 0x7b, 0x9e, 0xcf, 0x46, 0xeb, 0x8d, 0xf0, 0x34, 0xe6, + 0xc1, 0x5c, 0x64, 0xcb, 0x42, 0xb4, 0x49, 0x5c, 0x8a, 0x8c, 0x33, 0x5e, 0x96, 0x08, 0xdf, 0x0d, + 0xc2, 0x55, 0x0d, 0xfc, 0x07, 0x05, 0x75, 0x51, 0x94, 0xd5, 0x5e, 0xaa, 0x33, 0x60, 0x1c, 0xd6, + 0x1d, 0xec, 0xfa, 0xbc, 0xd3, 0x96, 0x58, 0xa8, 0xbb, 0x60, 0xb2, 0x4b, 0x2f, 0x6d, 0xcc, 0xaf, + 0x69, 0xb9, 0xaf, 0xa6, 0x08, 0xcc, 0x4e, 0x27, 0xa4, 0x94, 0xba, 0xb8, 0xca, 0x2a, 0x56, 0x77, + 0x16, 0xe3, 0xb3, 0x02, 0xb4, 0x32, 0xb5, 0xb7, 0x3d, 0x04, 0x19, 0x8a, 0x32, 0x0c, 0x79, 0x28, + 0x03, 0x78, 0x24, 0xff, 0x06, 0x8f, 0xe2, 0x3a, 0xd7, 0x5b, 0x00, 0x70, 0xad, 0x1f, 0x46, 0xb5, + 0x96, 0x12, 0x34, 0x36, 0x41, 0x2e, 0x8e, 0x7c, 0x5b, 0xfa, 0x78, 0x99, 0x8d, 0xaf, 0xa2, 0x76, + 0x71, 0x60, 0xa3, 0xd5, 0xde, 0x95, 0x2c, 0xd9, 0x7b, 0x66, 0xff, 0xe2, 0x74, 0x86, 0xaa, 0x22, + 0xa5, 0x6e, 0x18, 0xbe, 0x2a, 0x52, 0x5b, 0xd8, 0x90, 0xa7, 0xa2, 0xf6, 0x67, 0xa8, 0x81, 0xfe, + 0xb8, 0xf6, 0xa1, 0x34, 0xa5, 0x28, 0x01, 0x4d, 0xa9, 0x2d, 0xa4, 0xf9, 0x21, 0x09, 0x16, 0xcb, + 0xd4, 0x7e, 0x7e, 0x8c, 0x6a, 0x2d, 0x86, 0x2a, 0x2e, 0x3e, 0x42, 0x1e, 0x85, 0x0d, 0x51, 0xdb, + 0x36, 0x69, 0x34, 0x50, 0x8d, 0x0f, 0x12, 0x55, 0x07, 0xff, 0x23, 0xdf, 0x87, 0x78, 0x01, 0xe9, + 0x70, 0xad, 0x6e, 0x80, 0xfb, 0x4e, 0x6f, 0xfa, 0xad, 0x9e, 0x32, 0x62, 0xac, 0xaa, 0x0b, 0x16, + 0x5a, 0x71, 0x80, 0x65, 0x6a, 0x07, 0x47, 0x9c, 0x2f, 0x74, 0x4f, 0xb4, 0x02, 0x17, 0x3e, 0x2e, + 0xc8, 0x1a, 0x98, 0xaf, 0x58, 0xe2, 0x2a, 0x86, 0xb4, 0xb9, 0x90, 0x2b, 0x51, 0x21, 0x87, 0xe9, + 0x60, 0xec, 0x83, 0xe5, 0x11, 0xe4, 0x0a, 0xef, 0xc6, 0x0a, 0x98, 0xaa, 0x85, 0xbb, 0x2f, 0xea, + 0xc1, 0x70, 0x9d, 0xe2, 0xe3, 0xf0, 0xfb, 0x55, 0x36, 0x55, 0xc1, 0x2e, 0xb3, 0x7a, 0x3c, 0x8c, + 0x5f, 0x63, 0x60, 0xa1, 0xdc, 0xcb, 0x6a, 0xbb, 0x45, 0x19, 0x71, 0xca, 0xd4, 0x7e, 0x79, 0xd2, + 0x44, 0xea, 0x21, 0xd0, 0x6a, 0xb2, 0xfb, 0xc8, 0x15, 0x53, 0x7c, 0xc5, 0x1e, 0xf5, 0x5f, 0x8a, + 0x98, 0x3b, 0x1c, 0x5c, 0x89, 0xd8, 0x84, 0x1c, 0xac, 0x25, 0x6b, 0x73, 0x0e, 0x96, 0x8c, 0x07, + 0x93, 0x5e, 0x8d, 0x36, 0x58, 0x5c, 0x42, 0x0e, 0x56, 0x97, 0x35, 0x6b, 0xa7, 0x17, 0xa4, 0x60, + 0xd2, 0x06, 0x6f, 0x83, 0xc5, 0x25, 0x54, 0xdf, 0x2a, 0x60, 0x11, 0x0d, 0x39, 0x46, 0x0e, 0x9c, + 0xf2, 0x81, 0xd7, 0x65, 0xc0, 0xc3, 0xba, 0x20, 0xe0, 0x30, 0x0a, 0xcc, 0xda, 0xcf, 0x14, 0x18, + 0xe3, 0xb4, 0xf6, 0xc0, 0x54, 0xcf, 0xab, 0x39, 0x17, 0x2f, 0xaf, 0xf0, 0xd0, 0x97, 0x86, 0x79, + 0x84, 0xcd, 0xd8, 0x02, 0xb3, 0xf2, 0xd7, 0xd0, 0xe8, 0x0d, 0xa3, 0xaf, 0x8e, 0xec, 0xda, 0x0d, + 0x2b, 0x7f, 0x03, 0x8c, 0xde, 0x3a, 0x72, 0xd8, 0x81, 0x03, 0x98, 0xc3, 0xca, 0x87, 0xef, 0xe8, + 0x4d, 0x24, 0x87, 0x1d, 0x38, 0x50, 0xd5, 0x33, 0x05, 0xe4, 0x86, 0x4e, 0xd3, 0x3b, 0xb5, 0x93, + 0xbe, 0x79, 0x97, 0xa8, 0x36, 0x31, 0x7d, 0xfc, 0x94, 0x7f, 0x7f, 0x95, 0x2a, 0x17, 0xd7, 0x19, + 0xe5, 0xf2, 0x3a, 0xa3, 0xfc, 0xb8, 0xce, 0x28, 0xef, 0x6e, 0x32, 0x89, 0xcb, 0x9b, 0x4c, 0xe2, + 0xdb, 0x4d, 0x26, 0xb1, 0xf7, 0xd4, 0xc6, 0xec, 0xa0, 0x55, 0x2d, 0xd4, 0x88, 0x63, 0x56, 0x31, + 0xab, 0xc2, 0xba, 0x8d, 0x68, 0xe7, 0xa9, 0x76, 0x00, 0xb1, 0x6b, 0x1e, 0x9b, 0x7d, 0xdf, 0xcf, + 0x27, 0x4d, 0x44, 0xab, 0x13, 0xfe, 0xd7, 0xe5, 0x93, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x14, + 0x82, 0xc8, 0x60, 0x5f, 0x0b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/tokenization/ai_test/unit/genesis/genesis_test.go b/x/tokenization/ai_test/unit/genesis/genesis_test.go index db6b55cb..ee264e48 100644 --- a/x/tokenization/ai_test/unit/genesis/genesis_test.go +++ b/x/tokenization/ai_test/unit/genesis/genesis_test.go @@ -348,9 +348,10 @@ func (suite *GenesisTestSuite) TestGenesis_ValidTokenIdsPreserved() { DefaultBalances: &types.UserBalanceStore{ Balances: []*types.Balance{}, }, + // Token IDs must be sequential starting from 1 (see keeper.CreateTokens). + // A single contiguous range satisfies that; multi-range with a gap does not. ValidTokenIds: []*types.UintRange{ - {Start: sdkmath.NewUint(1), End: sdkmath.NewUint(50)}, - {Start: sdkmath.NewUint(100), End: sdkmath.NewUint(200)}, + {Start: sdkmath.NewUint(1), End: sdkmath.NewUint(200)}, }, CollectionPermissions: &types.CollectionPermissions{}, Manager: suite.Manager, diff --git a/x/tokenization/keeper/approval_comparison.go b/x/tokenization/keeper/approval_comparison.go index c04010b8..60457b1b 100644 --- a/x/tokenization/keeper/approval_comparison.go +++ b/x/tokenization/keeper/approval_comparison.go @@ -1,8 +1,6 @@ package keeper import ( - "bytes" - "github.com/bitbadges/bitbadgeschain/x/tokenization/types" "github.com/gogo/protobuf/proto" ) @@ -20,24 +18,15 @@ func compareUintRanges(a, b []*types.UintRange) bool { return true } -// compareApprovalCriteria compares two protobuf messages for equality using -// canonical binary marshaling. proto.MarshalTextString is not deterministic -// across gogo/protobuf versions (whitespace, field ordering), so binary Marshal -// is used instead — it is the same encoding used for consensus state and is -// stable across nodes. +// compareApprovalCriteria compares two ApprovalCriteria values for +// semantic equality under the nullable=true schema. Old storage bytes +// (written under the pre-upgrade nullable=false binary) carry explicit +// `&Empty{}` sub-messages with length-0 tags; new submissions via the +// SDK omit those tags. types.ProtoEqualNullableAware collapses both +// to a canonical form before comparing, so a no-op resubmission of an +// existing approval doesn't falsely register as "edited." func compareApprovalCriteria(a, b proto.Message) bool { - if (a == nil) != (b == nil) { - return false - } - if a == nil && b == nil { - return true - } - aBytes, errA := proto.Marshal(a) - bBytes, errB := proto.Marshal(b) - if errA != nil || errB != nil { - return false - } - return bytes.Equal(aBytes, bBytes) + return types.ProtoEqualNullableAware(a, b) } // collectionApprovalEqual compares two CollectionApproval objects for equality, diff --git a/x/tokenization/keeper/approved_transfers.go b/x/tokenization/keeper/approved_transfers.go index 1f368181..c694863d 100644 --- a/x/tokenization/keeper/approved_transfers.go +++ b/x/tokenization/keeper/approved_transfers.go @@ -483,10 +483,14 @@ func (k Keeper) DeductAndGetUserApprovals( } func isCustomChallengeOrderCalculation(predeterminedBalances *types.PredeterminedBalances, trackerType string) bool { - return (predeterminedBalances != nil && predeterminedBalances.OrderCalculationMethod.UseOverallNumTransfers && trackerType == "overall") || - (predeterminedBalances != nil && predeterminedBalances.OrderCalculationMethod.UsePerToAddressNumTransfers && trackerType == "to") || - (predeterminedBalances != nil && predeterminedBalances.OrderCalculationMethod.UsePerFromAddressNumTransfers && trackerType == "from") || - (predeterminedBalances != nil && predeterminedBalances.OrderCalculationMethod.UsePerInitiatedByAddressNumTransfers && trackerType == "initiatedBy") + if predeterminedBalances == nil || predeterminedBalances.OrderCalculationMethod == nil { + return false + } + ocm := predeterminedBalances.OrderCalculationMethod + return (ocm.UseOverallNumTransfers && trackerType == "overall") || + (ocm.UsePerToAddressNumTransfers && trackerType == "to") || + (ocm.UsePerFromAddressNumTransfers && trackerType == "from") || + (ocm.UsePerInitiatedByAddressNumTransfers && trackerType == "initiatedBy") } func (k Keeper) ResetApprovalTrackerIfNeeded(ctx sdk.Context, approvalTracker *types.ApprovalTracker, resetTimeIntervals *types.ResetTimeIntervals, isNumTransfers bool) types.ApprovalTracker { @@ -631,15 +635,15 @@ func (k Keeper) handlePredeterminedBalances( // Determine how to calculate the number of increments switch { - case orderCalculationMethod.UseMerkleChallengeLeafIndex: + case orderCalculationMethod != nil && orderCalculationMethod.UseMerkleChallengeLeafIndex: numIncrements = challengeNumIncrements - case orderCalculationMethod.UseOverallNumTransfers && trackerType == "overall": + case orderCalculationMethod != nil && orderCalculationMethod.UseOverallNumTransfers && trackerType == "overall": numIncrements = trackerNumTransfers - case orderCalculationMethod.UsePerToAddressNumTransfers && trackerType == "to": + case orderCalculationMethod != nil && orderCalculationMethod.UsePerToAddressNumTransfers && trackerType == "to": numIncrements = trackerNumTransfers - case orderCalculationMethod.UsePerFromAddressNumTransfers && trackerType == "from": + case orderCalculationMethod != nil && orderCalculationMethod.UsePerFromAddressNumTransfers && trackerType == "from": numIncrements = trackerNumTransfers - case orderCalculationMethod.UsePerInitiatedByAddressNumTransfers && trackerType == "initiatedBy": + case orderCalculationMethod != nil && orderCalculationMethod.UsePerInitiatedByAddressNumTransfers && trackerType == "initiatedBy": numIncrements = trackerNumTransfers default: toBeCalculated = false @@ -1030,7 +1034,8 @@ func (k Keeper) GetPredeterminedBalancesForPrecalculationId( if approvalCriteria.PredeterminedBalances != nil { var numIncrements sdkmath.Uint hasOrderCalculationMethod := false - if approvalCriteria.PredeterminedBalances.OrderCalculationMethod.UseMerkleChallengeLeafIndex { + ocm := approvalCriteria.PredeterminedBalances.OrderCalculationMethod + if ocm != nil && ocm.UseMerkleChallengeLeafIndex { hasOrderCalculationMethod = true // If the approval has challenges, we need to check that a valid solutions is provided for every challenge @@ -1052,15 +1057,15 @@ func (k Keeper) GetPredeterminedBalancesForPrecalculationId( trackerType := "" approvedAddress := "" - if approvalCriteria.PredeterminedBalances.OrderCalculationMethod.UseOverallNumTransfers { + if ocm != nil && ocm.UseOverallNumTransfers { trackerType = "overall" - } else if approvalCriteria.PredeterminedBalances.OrderCalculationMethod.UsePerFromAddressNumTransfers { + } else if ocm != nil && ocm.UsePerFromAddressNumTransfers { trackerType = "from" approvedAddress = transfer.From - } else if approvalCriteria.PredeterminedBalances.OrderCalculationMethod.UsePerToAddressNumTransfers { + } else if ocm != nil && ocm.UsePerToAddressNumTransfers { trackerType = "to" approvedAddress = to - } else if approvalCriteria.PredeterminedBalances.OrderCalculationMethod.UsePerInitiatedByAddressNumTransfers { + } else if ocm != nil && ocm.UsePerInitiatedByAddressNumTransfers { trackerType = "initiatedBy" approvedAddress = initiatedBy } @@ -1069,6 +1074,10 @@ func (k Keeper) GetPredeterminedBalancesForPrecalculationId( hasOrderCalculationMethod = true } + var maxNumResetIntervals *types.ResetTimeIntervals + if approval.ApprovalCriteria.MaxNumTransfers != nil { + maxNumResetIntervals = approval.ApprovalCriteria.MaxNumTransfers.ResetTimeIntervals + } numTransfersTracker, err := k.GetApprovalTrackerFromStoreAndResetIfNeeded( ctx, collection.CollectionId, @@ -1078,7 +1087,7 @@ func (k Keeper) GetPredeterminedBalancesForPrecalculationId( approvalLevel, trackerType, approvedAddress, - approval.ApprovalCriteria.MaxNumTransfers.ResetTimeIntervals, + maxNumResetIntervals, true, ) if err != nil { diff --git a/x/tokenization/keeper/challenges.go b/x/tokenization/keeper/challenges.go index 0b07bf9d..139dcae6 100644 --- a/x/tokenization/keeper/challenges.go +++ b/x/tokenization/keeper/challenges.go @@ -39,7 +39,11 @@ func (k Keeper) HandleMerkleChallenges( merkleProofs := transfer.MerkleProofs // Sanity check to make sure the challenge tracker id is valid - if approval.ApprovalCriteria != nil && approval.ApprovalCriteria.PredeterminedBalances != nil && approval.ApprovalCriteria.PredeterminedBalances.OrderCalculationMethod.ChallengeTrackerId != "" && approval.ApprovalCriteria.PredeterminedBalances.OrderCalculationMethod.UseMerkleChallengeLeafIndex { + if approval.ApprovalCriteria != nil && + approval.ApprovalCriteria.PredeterminedBalances != nil && + approval.ApprovalCriteria.PredeterminedBalances.OrderCalculationMethod != nil && + approval.ApprovalCriteria.PredeterminedBalances.OrderCalculationMethod.ChallengeTrackerId != "" && + approval.ApprovalCriteria.PredeterminedBalances.OrderCalculationMethod.UseMerkleChallengeLeafIndex { hasMatchingChallenge := false for _, challenge := range challenges { if challenge.ChallengeTrackerId == approval.ApprovalCriteria.PredeterminedBalances.OrderCalculationMethod.ChallengeTrackerId { diff --git a/x/tokenization/keeper/migrations.go b/x/tokenization/keeper/migrations.go index cce01aa2..60f607ee 100644 --- a/x/tokenization/keeper/migrations.go +++ b/x/tokenization/keeper/migrations.go @@ -123,7 +123,7 @@ func (k Keeper) migrateCollectionAddressesFromBadgesToTokenization(ctx sdk.Conte } // 2. cosmosCoinBackedPath.address (if present) - if collection.Invariants != nil && collection.Invariants.CosmosCoinBackedPath != nil { + if collection.Invariants != nil && !newtypes.IsBasicallyEmpty(collection.Invariants.CosmosCoinBackedPath) { backed := collection.Invariants.CosmosCoinBackedPath if backed.Conversion != nil && backed.Conversion.SideA != nil && backed.Conversion.SideA.Denom != "" { denom := backed.Conversion.SideA.Denom diff --git a/x/tokenization/keeper/msg_server_delete_collection.go b/x/tokenization/keeper/msg_server_delete_collection.go index 35a213fc..08a7a5b8 100644 --- a/x/tokenization/keeper/msg_server_delete_collection.go +++ b/x/tokenization/keeper/msg_server_delete_collection.go @@ -25,7 +25,7 @@ func (k msgServer) DeleteCollection(goCtx context.Context, msg *types.MsgDeleteC } // Check deleted permission is valid for current time - err = k.CheckIfActionPermissionPermits(ctx, collection.CollectionPermissions.CanDeleteCollection, "can delete collection") + err = k.CheckIfActionPermissionPermits(ctx, collection.GetCollectionPermissions().GetCanDeleteCollection(), "can delete collection") if err != nil { return nil, err } diff --git a/x/tokenization/keeper/msg_server_set_collection_approvals.go b/x/tokenization/keeper/msg_server_set_collection_approvals.go index 693656d6..79beb775 100644 --- a/x/tokenization/keeper/msg_server_set_collection_approvals.go +++ b/x/tokenization/keeper/msg_server_set_collection_approvals.go @@ -31,16 +31,16 @@ func (k msgServer) SetCollectionApprovals(goCtx context.Context, msg *types.MsgS CollectionPermissions: &types.CollectionPermissions{ CanUpdateCollectionApprovals: msg.CanUpdateCollectionApprovals, // Copy existing permissions for other fields - CanDeleteCollection: collection.CollectionPermissions.CanDeleteCollection, - CanArchiveCollection: collection.CollectionPermissions.CanArchiveCollection, - CanUpdateStandards: collection.CollectionPermissions.CanUpdateStandards, - CanUpdateCustomData: collection.CollectionPermissions.CanUpdateCustomData, - CanUpdateManager: collection.CollectionPermissions.CanUpdateManager, - CanUpdateValidTokenIds: collection.CollectionPermissions.CanUpdateValidTokenIds, - CanUpdateCollectionMetadata: collection.CollectionPermissions.CanUpdateCollectionMetadata, - CanUpdateTokenMetadata: collection.CollectionPermissions.CanUpdateTokenMetadata, - CanAddMoreAliasPaths: collection.CollectionPermissions.CanAddMoreAliasPaths, - CanAddMoreCosmosCoinWrapperPaths: collection.CollectionPermissions.CanAddMoreCosmosCoinWrapperPaths, + CanDeleteCollection: collection.GetCollectionPermissions().GetCanDeleteCollection(), + CanArchiveCollection: collection.GetCollectionPermissions().GetCanArchiveCollection(), + CanUpdateStandards: collection.GetCollectionPermissions().GetCanUpdateStandards(), + CanUpdateCustomData: collection.GetCollectionPermissions().GetCanUpdateCustomData(), + CanUpdateManager: collection.GetCollectionPermissions().GetCanUpdateManager(), + CanUpdateValidTokenIds: collection.GetCollectionPermissions().GetCanUpdateValidTokenIds(), + CanUpdateCollectionMetadata: collection.GetCollectionPermissions().GetCanUpdateCollectionMetadata(), + CanUpdateTokenMetadata: collection.GetCollectionPermissions().GetCanUpdateTokenMetadata(), + CanAddMoreAliasPaths: collection.GetCollectionPermissions().GetCanAddMoreAliasPaths(), + CanAddMoreCosmosCoinWrapperPaths: collection.GetCollectionPermissions().GetCanAddMoreCosmosCoinWrapperPaths(), }, } diff --git a/x/tokenization/keeper/msg_server_set_collection_metadata.go b/x/tokenization/keeper/msg_server_set_collection_metadata.go index f9878ac0..a0a357cc 100644 --- a/x/tokenization/keeper/msg_server_set_collection_metadata.go +++ b/x/tokenization/keeper/msg_server_set_collection_metadata.go @@ -31,16 +31,16 @@ func (k msgServer) SetCollectionMetadata(goCtx context.Context, msg *types.MsgSe CollectionPermissions: &types.CollectionPermissions{ CanUpdateCollectionMetadata: msg.CanUpdateCollectionMetadata, // Copy existing permissions for other fields - CanDeleteCollection: collection.CollectionPermissions.CanDeleteCollection, - CanArchiveCollection: collection.CollectionPermissions.CanArchiveCollection, - CanUpdateStandards: collection.CollectionPermissions.CanUpdateStandards, - CanUpdateCustomData: collection.CollectionPermissions.CanUpdateCustomData, - CanUpdateManager: collection.CollectionPermissions.CanUpdateManager, - CanUpdateValidTokenIds: collection.CollectionPermissions.CanUpdateValidTokenIds, - CanUpdateTokenMetadata: collection.CollectionPermissions.CanUpdateTokenMetadata, - CanUpdateCollectionApprovals: collection.CollectionPermissions.CanUpdateCollectionApprovals, - CanAddMoreAliasPaths: collection.CollectionPermissions.CanAddMoreAliasPaths, - CanAddMoreCosmosCoinWrapperPaths: collection.CollectionPermissions.CanAddMoreCosmosCoinWrapperPaths, + CanDeleteCollection: collection.GetCollectionPermissions().GetCanDeleteCollection(), + CanArchiveCollection: collection.GetCollectionPermissions().GetCanArchiveCollection(), + CanUpdateStandards: collection.GetCollectionPermissions().GetCanUpdateStandards(), + CanUpdateCustomData: collection.GetCollectionPermissions().GetCanUpdateCustomData(), + CanUpdateManager: collection.GetCollectionPermissions().GetCanUpdateManager(), + CanUpdateValidTokenIds: collection.GetCollectionPermissions().GetCanUpdateValidTokenIds(), + CanUpdateTokenMetadata: collection.GetCollectionPermissions().GetCanUpdateTokenMetadata(), + CanUpdateCollectionApprovals: collection.GetCollectionPermissions().GetCanUpdateCollectionApprovals(), + CanAddMoreAliasPaths: collection.GetCollectionPermissions().GetCanAddMoreAliasPaths(), + CanAddMoreCosmosCoinWrapperPaths: collection.GetCollectionPermissions().GetCanAddMoreCosmosCoinWrapperPaths(), }, } diff --git a/x/tokenization/keeper/msg_server_set_custom_data.go b/x/tokenization/keeper/msg_server_set_custom_data.go index 72c881fc..a350ab9e 100644 --- a/x/tokenization/keeper/msg_server_set_custom_data.go +++ b/x/tokenization/keeper/msg_server_set_custom_data.go @@ -31,16 +31,16 @@ func (k msgServer) SetCustomData(goCtx context.Context, msg *types.MsgSetCustomD CollectionPermissions: &types.CollectionPermissions{ CanUpdateCustomData: msg.CanUpdateCustomData, // Copy existing permissions for other fields - CanDeleteCollection: collection.CollectionPermissions.CanDeleteCollection, - CanArchiveCollection: collection.CollectionPermissions.CanArchiveCollection, - CanUpdateStandards: collection.CollectionPermissions.CanUpdateStandards, - CanUpdateManager: collection.CollectionPermissions.CanUpdateManager, - CanUpdateValidTokenIds: collection.CollectionPermissions.CanUpdateValidTokenIds, - CanUpdateCollectionMetadata: collection.CollectionPermissions.CanUpdateCollectionMetadata, - CanUpdateTokenMetadata: collection.CollectionPermissions.CanUpdateTokenMetadata, - CanUpdateCollectionApprovals: collection.CollectionPermissions.CanUpdateCollectionApprovals, - CanAddMoreAliasPaths: collection.CollectionPermissions.CanAddMoreAliasPaths, - CanAddMoreCosmosCoinWrapperPaths: collection.CollectionPermissions.CanAddMoreCosmosCoinWrapperPaths, + CanDeleteCollection: collection.GetCollectionPermissions().GetCanDeleteCollection(), + CanArchiveCollection: collection.GetCollectionPermissions().GetCanArchiveCollection(), + CanUpdateStandards: collection.GetCollectionPermissions().GetCanUpdateStandards(), + CanUpdateManager: collection.GetCollectionPermissions().GetCanUpdateManager(), + CanUpdateValidTokenIds: collection.GetCollectionPermissions().GetCanUpdateValidTokenIds(), + CanUpdateCollectionMetadata: collection.GetCollectionPermissions().GetCanUpdateCollectionMetadata(), + CanUpdateTokenMetadata: collection.GetCollectionPermissions().GetCanUpdateTokenMetadata(), + CanUpdateCollectionApprovals: collection.GetCollectionPermissions().GetCanUpdateCollectionApprovals(), + CanAddMoreAliasPaths: collection.GetCollectionPermissions().GetCanAddMoreAliasPaths(), + CanAddMoreCosmosCoinWrapperPaths: collection.GetCollectionPermissions().GetCanAddMoreCosmosCoinWrapperPaths(), }, } diff --git a/x/tokenization/keeper/msg_server_set_is_archived.go b/x/tokenization/keeper/msg_server_set_is_archived.go index dce140ce..0929a572 100644 --- a/x/tokenization/keeper/msg_server_set_is_archived.go +++ b/x/tokenization/keeper/msg_server_set_is_archived.go @@ -31,16 +31,16 @@ func (k msgServer) SetIsArchived(goCtx context.Context, msg *types.MsgSetIsArchi CollectionPermissions: &types.CollectionPermissions{ CanArchiveCollection: msg.CanArchiveCollection, // Copy existing permissions for other fields - CanDeleteCollection: collection.CollectionPermissions.CanDeleteCollection, - CanUpdateStandards: collection.CollectionPermissions.CanUpdateStandards, - CanUpdateCustomData: collection.CollectionPermissions.CanUpdateCustomData, - CanUpdateManager: collection.CollectionPermissions.CanUpdateManager, - CanUpdateValidTokenIds: collection.CollectionPermissions.CanUpdateValidTokenIds, - CanUpdateCollectionMetadata: collection.CollectionPermissions.CanUpdateCollectionMetadata, - CanUpdateTokenMetadata: collection.CollectionPermissions.CanUpdateTokenMetadata, - CanUpdateCollectionApprovals: collection.CollectionPermissions.CanUpdateCollectionApprovals, - CanAddMoreAliasPaths: collection.CollectionPermissions.CanAddMoreAliasPaths, - CanAddMoreCosmosCoinWrapperPaths: collection.CollectionPermissions.CanAddMoreCosmosCoinWrapperPaths, + CanDeleteCollection: collection.GetCollectionPermissions().GetCanDeleteCollection(), + CanUpdateStandards: collection.GetCollectionPermissions().GetCanUpdateStandards(), + CanUpdateCustomData: collection.GetCollectionPermissions().GetCanUpdateCustomData(), + CanUpdateManager: collection.GetCollectionPermissions().GetCanUpdateManager(), + CanUpdateValidTokenIds: collection.GetCollectionPermissions().GetCanUpdateValidTokenIds(), + CanUpdateCollectionMetadata: collection.GetCollectionPermissions().GetCanUpdateCollectionMetadata(), + CanUpdateTokenMetadata: collection.GetCollectionPermissions().GetCanUpdateTokenMetadata(), + CanUpdateCollectionApprovals: collection.GetCollectionPermissions().GetCanUpdateCollectionApprovals(), + CanAddMoreAliasPaths: collection.GetCollectionPermissions().GetCanAddMoreAliasPaths(), + CanAddMoreCosmosCoinWrapperPaths: collection.GetCollectionPermissions().GetCanAddMoreCosmosCoinWrapperPaths(), }, } diff --git a/x/tokenization/keeper/msg_server_set_manager.go b/x/tokenization/keeper/msg_server_set_manager.go index f1ef66aa..1af77a87 100644 --- a/x/tokenization/keeper/msg_server_set_manager.go +++ b/x/tokenization/keeper/msg_server_set_manager.go @@ -31,16 +31,16 @@ func (k msgServer) SetManager(goCtx context.Context, msg *types.MsgSetManager) ( CollectionPermissions: &types.CollectionPermissions{ CanUpdateManager: msg.CanUpdateManager, // Copy existing permissions for other fields - CanDeleteCollection: collection.CollectionPermissions.CanDeleteCollection, - CanArchiveCollection: collection.CollectionPermissions.CanArchiveCollection, - CanUpdateStandards: collection.CollectionPermissions.CanUpdateStandards, - CanUpdateCustomData: collection.CollectionPermissions.CanUpdateCustomData, - CanUpdateValidTokenIds: collection.CollectionPermissions.CanUpdateValidTokenIds, - CanUpdateCollectionMetadata: collection.CollectionPermissions.CanUpdateCollectionMetadata, - CanUpdateTokenMetadata: collection.CollectionPermissions.CanUpdateTokenMetadata, - CanUpdateCollectionApprovals: collection.CollectionPermissions.CanUpdateCollectionApprovals, - CanAddMoreAliasPaths: collection.CollectionPermissions.CanAddMoreAliasPaths, - CanAddMoreCosmosCoinWrapperPaths: collection.CollectionPermissions.CanAddMoreCosmosCoinWrapperPaths, + CanDeleteCollection: collection.GetCollectionPermissions().GetCanDeleteCollection(), + CanArchiveCollection: collection.GetCollectionPermissions().GetCanArchiveCollection(), + CanUpdateStandards: collection.GetCollectionPermissions().GetCanUpdateStandards(), + CanUpdateCustomData: collection.GetCollectionPermissions().GetCanUpdateCustomData(), + CanUpdateValidTokenIds: collection.GetCollectionPermissions().GetCanUpdateValidTokenIds(), + CanUpdateCollectionMetadata: collection.GetCollectionPermissions().GetCanUpdateCollectionMetadata(), + CanUpdateTokenMetadata: collection.GetCollectionPermissions().GetCanUpdateTokenMetadata(), + CanUpdateCollectionApprovals: collection.GetCollectionPermissions().GetCanUpdateCollectionApprovals(), + CanAddMoreAliasPaths: collection.GetCollectionPermissions().GetCanAddMoreAliasPaths(), + CanAddMoreCosmosCoinWrapperPaths: collection.GetCollectionPermissions().GetCanAddMoreCosmosCoinWrapperPaths(), }, } diff --git a/x/tokenization/keeper/msg_server_set_standards.go b/x/tokenization/keeper/msg_server_set_standards.go index b099b217..314b50b5 100644 --- a/x/tokenization/keeper/msg_server_set_standards.go +++ b/x/tokenization/keeper/msg_server_set_standards.go @@ -31,16 +31,16 @@ func (k msgServer) SetStandards(goCtx context.Context, msg *types.MsgSetStandard CollectionPermissions: &types.CollectionPermissions{ CanUpdateStandards: msg.CanUpdateStandards, // Copy existing permissions for other fields - CanDeleteCollection: collection.CollectionPermissions.CanDeleteCollection, - CanArchiveCollection: collection.CollectionPermissions.CanArchiveCollection, - CanUpdateCustomData: collection.CollectionPermissions.CanUpdateCustomData, - CanUpdateManager: collection.CollectionPermissions.CanUpdateManager, - CanUpdateValidTokenIds: collection.CollectionPermissions.CanUpdateValidTokenIds, - CanUpdateCollectionMetadata: collection.CollectionPermissions.CanUpdateCollectionMetadata, - CanUpdateTokenMetadata: collection.CollectionPermissions.CanUpdateTokenMetadata, - CanUpdateCollectionApprovals: collection.CollectionPermissions.CanUpdateCollectionApprovals, - CanAddMoreAliasPaths: collection.CollectionPermissions.CanAddMoreAliasPaths, - CanAddMoreCosmosCoinWrapperPaths: collection.CollectionPermissions.CanAddMoreCosmosCoinWrapperPaths, + CanDeleteCollection: collection.GetCollectionPermissions().GetCanDeleteCollection(), + CanArchiveCollection: collection.GetCollectionPermissions().GetCanArchiveCollection(), + CanUpdateCustomData: collection.GetCollectionPermissions().GetCanUpdateCustomData(), + CanUpdateManager: collection.GetCollectionPermissions().GetCanUpdateManager(), + CanUpdateValidTokenIds: collection.GetCollectionPermissions().GetCanUpdateValidTokenIds(), + CanUpdateCollectionMetadata: collection.GetCollectionPermissions().GetCanUpdateCollectionMetadata(), + CanUpdateTokenMetadata: collection.GetCollectionPermissions().GetCanUpdateTokenMetadata(), + CanUpdateCollectionApprovals: collection.GetCollectionPermissions().GetCanUpdateCollectionApprovals(), + CanAddMoreAliasPaths: collection.GetCollectionPermissions().GetCanAddMoreAliasPaths(), + CanAddMoreCosmosCoinWrapperPaths: collection.GetCollectionPermissions().GetCanAddMoreCosmosCoinWrapperPaths(), }, } diff --git a/x/tokenization/keeper/msg_server_set_token_metadata.go b/x/tokenization/keeper/msg_server_set_token_metadata.go index 361f194f..b321c249 100644 --- a/x/tokenization/keeper/msg_server_set_token_metadata.go +++ b/x/tokenization/keeper/msg_server_set_token_metadata.go @@ -32,16 +32,16 @@ func (k msgServer) SetTokenMetadata(goCtx context.Context, msg *types.MsgSetToke CollectionPermissions: &types.CollectionPermissions{ CanUpdateTokenMetadata: msg.CanUpdateTokenMetadata, // Copy existing permissions for other fields - CanDeleteCollection: collection.CollectionPermissions.CanDeleteCollection, - CanArchiveCollection: collection.CollectionPermissions.CanArchiveCollection, - CanUpdateStandards: collection.CollectionPermissions.CanUpdateStandards, - CanUpdateCustomData: collection.CollectionPermissions.CanUpdateCustomData, - CanUpdateManager: collection.CollectionPermissions.CanUpdateManager, - CanUpdateValidTokenIds: collection.CollectionPermissions.CanUpdateValidTokenIds, - CanUpdateCollectionMetadata: collection.CollectionPermissions.CanUpdateCollectionMetadata, - CanUpdateCollectionApprovals: collection.CollectionPermissions.CanUpdateCollectionApprovals, - CanAddMoreAliasPaths: collection.CollectionPermissions.CanAddMoreAliasPaths, - CanAddMoreCosmosCoinWrapperPaths: collection.CollectionPermissions.CanAddMoreCosmosCoinWrapperPaths, + CanDeleteCollection: collection.GetCollectionPermissions().GetCanDeleteCollection(), + CanArchiveCollection: collection.GetCollectionPermissions().GetCanArchiveCollection(), + CanUpdateStandards: collection.GetCollectionPermissions().GetCanUpdateStandards(), + CanUpdateCustomData: collection.GetCollectionPermissions().GetCanUpdateCustomData(), + CanUpdateManager: collection.GetCollectionPermissions().GetCanUpdateManager(), + CanUpdateValidTokenIds: collection.GetCollectionPermissions().GetCanUpdateValidTokenIds(), + CanUpdateCollectionMetadata: collection.GetCollectionPermissions().GetCanUpdateCollectionMetadata(), + CanUpdateCollectionApprovals: collection.GetCollectionPermissions().GetCanUpdateCollectionApprovals(), + CanAddMoreAliasPaths: collection.GetCollectionPermissions().GetCanAddMoreAliasPaths(), + CanAddMoreCosmosCoinWrapperPaths: collection.GetCollectionPermissions().GetCanAddMoreCosmosCoinWrapperPaths(), }, } diff --git a/x/tokenization/keeper/msg_server_set_valid_token_ids.go b/x/tokenization/keeper/msg_server_set_valid_token_ids.go index 08acbc33..b9420b11 100644 --- a/x/tokenization/keeper/msg_server_set_valid_token_ids.go +++ b/x/tokenization/keeper/msg_server_set_valid_token_ids.go @@ -31,16 +31,16 @@ func (k msgServer) SetValidTokenIds(goCtx context.Context, msg *types.MsgSetVali CollectionPermissions: &types.CollectionPermissions{ CanUpdateValidTokenIds: msg.CanUpdateValidTokenIds, // Copy existing permissions for other fields - CanDeleteCollection: collection.CollectionPermissions.CanDeleteCollection, - CanArchiveCollection: collection.CollectionPermissions.CanArchiveCollection, - CanUpdateStandards: collection.CollectionPermissions.CanUpdateStandards, - CanUpdateCustomData: collection.CollectionPermissions.CanUpdateCustomData, - CanUpdateManager: collection.CollectionPermissions.CanUpdateManager, - CanUpdateCollectionMetadata: collection.CollectionPermissions.CanUpdateCollectionMetadata, - CanUpdateTokenMetadata: collection.CollectionPermissions.CanUpdateTokenMetadata, - CanUpdateCollectionApprovals: collection.CollectionPermissions.CanUpdateCollectionApprovals, - CanAddMoreAliasPaths: collection.CollectionPermissions.CanAddMoreAliasPaths, - CanAddMoreCosmosCoinWrapperPaths: collection.CollectionPermissions.CanAddMoreCosmosCoinWrapperPaths, + CanDeleteCollection: collection.GetCollectionPermissions().GetCanDeleteCollection(), + CanArchiveCollection: collection.GetCollectionPermissions().GetCanArchiveCollection(), + CanUpdateStandards: collection.GetCollectionPermissions().GetCanUpdateStandards(), + CanUpdateCustomData: collection.GetCollectionPermissions().GetCanUpdateCustomData(), + CanUpdateManager: collection.GetCollectionPermissions().GetCanUpdateManager(), + CanUpdateCollectionMetadata: collection.GetCollectionPermissions().GetCanUpdateCollectionMetadata(), + CanUpdateTokenMetadata: collection.GetCollectionPermissions().GetCanUpdateTokenMetadata(), + CanUpdateCollectionApprovals: collection.GetCollectionPermissions().GetCanUpdateCollectionApprovals(), + CanAddMoreAliasPaths: collection.GetCollectionPermissions().GetCanAddMoreAliasPaths(), + CanAddMoreCosmosCoinWrapperPaths: collection.GetCollectionPermissions().GetCanAddMoreCosmosCoinWrapperPaths(), }, } diff --git a/x/tokenization/keeper/msg_server_universal_update_collection.go b/x/tokenization/keeper/msg_server_universal_update_collection.go index 087d09e6..5039dac9 100644 --- a/x/tokenization/keeper/msg_server_universal_update_collection.go +++ b/x/tokenization/keeper/msg_server_universal_update_collection.go @@ -265,7 +265,7 @@ func (k msgServer) UniversalUpdateCollection(goCtx context.Context, msg *types.M } // Handle cosmos coin backed path - generate address - if msg.Invariants.CosmosCoinBackedPath != nil { + if !types.IsBasicallyEmpty(msg.Invariants.CosmosCoinBackedPath) { pathAddObject := msg.Invariants.CosmosCoinBackedPath if pathAddObject.Conversion == nil || pathAddObject.Conversion.SideA == nil { return nil, errorsmod.Wrap(ErrCosmosCoinBackedPathConversionNil, "") @@ -298,6 +298,16 @@ func (k msgServer) UniversalUpdateCollection(goCtx context.Context, msg *types.M } } + // Normalize nil pointers on the freshly-built/loaded collection so the + // rest of this handler can read direct field paths + // (`collection.Invariants.CosmosCoinBackedPath`, + // `collection.CollectionPermissions.X`, etc.) without nil-deref. The + // CREATE branch only sets `collection.Invariants` when `msg.Invariants` + // is non-nil, so a no-op invariants create would otherwise panic at + // line 613. The UPDATE branch's GetCollectionFromStore already + // normalizes; this call is a no-op there. + NormalizeNilPointers(collection) + // Check must be manager err = k.UniversalValidate(ctx, collection, UniversalValidationParams{ Creator: msg.Creator, @@ -313,7 +323,7 @@ func (k msgServer) UniversalUpdateCollection(goCtx context.Context, msg *types.M // not previouslyArchived && not stillArchived - unarchived before and now so we allow previouslyArchived := types.GetIsArchived(ctx, collection) if msg.UpdateIsArchived { - if err := k.ValidateIsArchivedUpdate(ctx, collection.IsArchived, msg.IsArchived, collection.CollectionPermissions.CanArchiveCollection); err != nil { + if err := k.ValidateIsArchivedUpdate(ctx, collection.IsArchived, msg.IsArchived, collection.GetCollectionPermissions().GetCanArchiveCollection()); err != nil { return nil, err } collection.IsArchived = msg.IsArchived @@ -343,7 +353,7 @@ func (k msgServer) UniversalUpdateCollection(goCtx context.Context, msg *types.M // It will be validated separately in validateCollectionBeforeStore } - if err := k.ValidateCollectionApprovalsUpdate(ctx, &tempCollection, collection.CollectionApprovals, msg.CollectionApprovals, collection.CollectionPermissions.CanUpdateCollectionApprovals); err != nil { + if err := k.ValidateCollectionApprovalsUpdate(ctx, &tempCollection, collection.CollectionApprovals, msg.CollectionApprovals, collection.GetCollectionPermissions().GetCanUpdateCollectionApprovals()); err != nil { return nil, err } @@ -392,35 +402,35 @@ func (k msgServer) UniversalUpdateCollection(goCtx context.Context, msg *types.M } if msg.UpdateCollectionMetadata { - if err := k.ValidateCollectionMetadataUpdate(ctx, collection.CollectionMetadata, msg.CollectionMetadata, collection.CollectionPermissions.CanUpdateCollectionMetadata); err != nil { + if err := k.ValidateCollectionMetadataUpdate(ctx, collection.CollectionMetadata, msg.CollectionMetadata, collection.GetCollectionPermissions().GetCanUpdateCollectionMetadata()); err != nil { return nil, err } collection.CollectionMetadata = msg.CollectionMetadata } if msg.UpdateTokenMetadata { - if err := k.ValidateTokenMetadataUpdate(ctx, collection.TokenMetadata, msg.TokenMetadata, collection.CollectionPermissions.CanUpdateTokenMetadata); err != nil { + if err := k.ValidateTokenMetadataUpdate(ctx, collection.TokenMetadata, msg.TokenMetadata, collection.GetCollectionPermissions().GetCanUpdateTokenMetadata()); err != nil { return nil, err } collection.TokenMetadata = msg.TokenMetadata } if msg.UpdateManager { - if err := k.ValidateManagerUpdate(ctx, collection.Manager, msg.Manager, collection.CollectionPermissions.CanUpdateManager); err != nil { + if err := k.ValidateManagerUpdate(ctx, collection.Manager, msg.Manager, collection.GetCollectionPermissions().GetCanUpdateManager()); err != nil { return nil, err } collection.Manager = msg.Manager } if msg.UpdateStandards { - if err := k.ValidateStandardsUpdate(ctx, collection.Standards, msg.Standards, collection.CollectionPermissions.CanUpdateStandards); err != nil { + if err := k.ValidateStandardsUpdate(ctx, collection.Standards, msg.Standards, collection.GetCollectionPermissions().GetCanUpdateStandards()); err != nil { return nil, err } collection.Standards = msg.Standards } if msg.UpdateCustomData { - if err := k.ValidateCustomDataUpdate(ctx, collection.CustomData, msg.CustomData, collection.CollectionPermissions.CanUpdateCustomData); err != nil { + if err := k.ValidateCustomDataUpdate(ctx, collection.CustomData, msg.CustomData, collection.GetCollectionPermissions().GetCanUpdateCustomData()); err != nil { return nil, err } collection.CustomData = msg.CustomData @@ -452,7 +462,7 @@ func (k msgServer) UniversalUpdateCollection(goCtx context.Context, msg *types.M } if len(msg.CosmosCoinWrapperPathsToAdd) > 0 { - if err := k.ValidateCosmosCoinWrapperPathsAdd(ctx, collection.CollectionPermissions.CanAddMoreCosmosCoinWrapperPaths); err != nil { + if err := k.ValidateCosmosCoinWrapperPathsAdd(ctx, collection.GetCollectionPermissions().GetCanAddMoreCosmosCoinWrapperPaths()); err != nil { return nil, err } pathsToAdd := make([]*types.CosmosCoinWrapperPath, len(msg.CosmosCoinWrapperPathsToAdd)) @@ -491,7 +501,7 @@ func (k msgServer) UniversalUpdateCollection(goCtx context.Context, msg *types.M } if len(msg.AliasPathsToAdd) > 0 { - if err := k.ValidateAliasPathsAdd(ctx, collection.CollectionPermissions.CanAddMoreAliasPaths); err != nil { + if err := k.ValidateAliasPathsAdd(ctx, collection.GetCollectionPermissions().GetCanAddMoreAliasPaths()); err != nil { return nil, err } pathsToAdd := make([]*types.AliasPath, len(msg.AliasPathsToAdd)) @@ -527,7 +537,7 @@ func (k msgServer) UniversalUpdateCollection(goCtx context.Context, msg *types.M collection.Invariants.EvmQueryChallenges = msg.Invariants.EvmQueryChallenges // Handle cosmos coin backed path - generate address - if msg.Invariants.CosmosCoinBackedPath != nil { + if !types.IsBasicallyEmpty(msg.Invariants.CosmosCoinBackedPath) { pathAddObject := msg.Invariants.CosmosCoinBackedPath if pathAddObject.Conversion == nil || pathAddObject.Conversion.SideA == nil { return nil, errorsmod.Wrap(ErrCosmosCoinBackedPathConversionNil, "") @@ -610,7 +620,7 @@ func (k msgServer) UniversalUpdateCollection(goCtx context.Context, msg *types.M } // Auto-set collection permission to forbid Mint address approvals if cosmosCoinBackedPath is set - hasCosmosCoinBackedPath := collection.Invariants != nil && collection.Invariants.CosmosCoinBackedPath != nil + hasCosmosCoinBackedPath := collection.Invariants != nil && !types.IsBasicallyEmpty(collection.Invariants.CosmosCoinBackedPath) if hasCosmosCoinBackedPath { if collection.CollectionPermissions == nil { collection.CollectionPermissions = &types.CollectionPermissions{} @@ -636,7 +646,7 @@ func (k msgServer) UniversalUpdateCollection(goCtx context.Context, msg *types.M } } - if collection.Invariants != nil && collection.Invariants.CosmosCoinBackedPath != nil { + if collection.Invariants != nil && !types.IsBasicallyEmpty(collection.Invariants.CosmosCoinBackedPath) { if err := k.setAutoApproveFlagsForPathAddress(ctx, collection, collection.Invariants.CosmosCoinBackedPath.Address, "cosmoscoinbacked"); err != nil { return nil, err } diff --git a/x/tokenization/keeper/normalize.go b/x/tokenization/keeper/normalize.go new file mode 100644 index 00000000..a21c31cc --- /dev/null +++ b/x/tokenization/keeper/normalize.go @@ -0,0 +1,143 @@ +// Nil-pointer normalization for proto messages loaded from storage. +// +// Background: nullable=true on nested struct fields is required so the +// chain's `MarshalAminoJSON` omits empty sub-structs (otherwise empty +// types in the typed-data tree trigger go-ethereum's encodeType bug +// and break EIP-712 verification — see codec.go and the proto changes). +// But it means stored messages may have `nil` pointers where the older +// schema always had non-nil zero-value structs. +// +// Existing keeper code (~170+ sites) reads chains like +// `approval.ApprovalCriteria.PredeterminedBalances.OrderCalculationMethod.ChallengeTrackerId` +// without nil-guarding every level — those checks were unnecessary +// before nullable=true. Rather than thread nil checks through every +// access site, this normalizer walks a freshly-unmarshaled message and +// replaces any nil pointer-to-struct field with a fresh empty instance. +// Downstream code keeps reading direct field paths and gets the +// zero-value semantics it would have gotten under the old non-nullable +// schema. +// +// Apply at storage-load boundaries (GetCollectionFromStore, etc.) and +// at msg-handler entry points. The empty struct values default to +// fields that mean "no constraint" / "default behavior" — same as the +// pre-nullable=true world, so semantics are preserved. + +package keeper + +import ( + "reflect" + "strings" + + sdkmath "cosmossdk.io/math" +) + +// NormalizeNilPointers recursively walks `v` (must be a pointer) and +// initializes any uninitialized `sdkmath.Uint` / `sdkmath.Int` field +// with `NewUint(0)` / `NewInt(0)`. The Go zero value of those types +// holds a nil internal `*big.Int`, so any arithmetic op (.GT, .Cmp, +// .Uint64, etc.) panics. Proto fields tagged `customtype = "Uint", +// nullable = false` deserialize to the broken zero value when the +// wire bytes don't include the field — common after the SDK side +// strips empty Uint customtype strings before broadcasting. +// +// This intentionally DOES NOT fill nil pointer-to-struct fields with +// fresh empty structs. Earlier versions did, but that broke the +// nil-vs-empty distinction many code paths rely on (equality checks, +// "user explicitly set this" semantic checks, change-detection in +// approval-update tracking, etc.). Callers that need direct field +// access on potentially-nil pointers must use explicit nil guards or +// the proto-generated `GetX()` accessors. +func NormalizeNilPointers(v interface{}) { + if v == nil { + return + } + rv := reflect.ValueOf(v) + if rv.Kind() != reflect.Ptr || rv.IsNil() { + return + } + walkStructForNormalize(rv.Elem(), 0) +} + +// uintZero / intZero are pre-built non-nil zero values used to replace +// uninitialized sdkmath.Uint{} / sdkmath.Int{} fields. Those types wrap +// `*big.Int`; their Go zero value has a nil internal pointer, so any +// `.GT() / .Cmp() / .Uint64()` etc. panics. Proto fields with +// `customtype = "Uint"` and `nullable = false` deserialize to the zero +// value when the wire bytes don't include the field — typical when the +// SDK side dropped the empty string. Normalize-time replacement +// guarantees downstream math operations never see nil internals. +var ( + uintZero = sdkmath.NewUint(0) + intZero = sdkmath.NewInt(0) + + uintType = reflect.TypeOf(uintZero) + intType = reflect.TypeOf(intZero) +) + +func walkStructForNormalize(v reflect.Value, depth int) { + if depth > 50 { + return // safety: bounded recursion + } + if v.Kind() != reflect.Struct { + return + } + + // sdkmath.Uint / sdkmath.Int are struct values (non-pointer), but + // their Go zero state is *invalid* — internal *big.Int is nil and any + // arithmetic operation panics. Detect and replace with a properly- + // initialized zero. Must run BEFORE the field walk because the + // recursive call would skip these (Int/Uint internals aren't fields + // we want to recurse into). + if v.Type() == uintType { + if (sdkmath.Uint{}) == v.Interface().(sdkmath.Uint) { + if v.CanSet() { + v.Set(reflect.ValueOf(uintZero)) + } + } + return + } + if v.Type() == intType { + if (sdkmath.Int{}) == v.Interface().(sdkmath.Int) { + if v.CanSet() { + v.Set(reflect.ValueOf(intZero)) + } + } + return + } + + t := v.Type() + for i := 0; i < v.NumField(); i++ { + field := v.Field(i) + ft := t.Field(i) + if !field.CanSet() { + continue + } + // Skip protobuf bookkeeping fields + if strings.HasPrefix(ft.Name, "XXX_") { + continue + } + + switch field.Kind() { + case reflect.Ptr: + // Only recurse into ALREADY-non-nil pointers — don't fill + // nil pointers (would break nil-vs-empty equality semantics). + if !field.IsNil() && field.Type().Elem().Kind() == reflect.Struct { + walkStructForNormalize(field.Elem(), depth+1) + } + case reflect.Struct: + walkStructForNormalize(field, depth+1) + case reflect.Slice: + for j := 0; j < field.Len(); j++ { + elem := field.Index(j) + switch elem.Kind() { + case reflect.Ptr: + if !elem.IsNil() && elem.Type().Elem().Kind() == reflect.Struct { + walkStructForNormalize(elem.Elem(), depth+1) + } + case reflect.Struct: + walkStructForNormalize(elem, depth+1) + } + } + } + } +} diff --git a/x/tokenization/keeper/normalize_test.go b/x/tokenization/keeper/normalize_test.go new file mode 100644 index 00000000..8247d27f --- /dev/null +++ b/x/tokenization/keeper/normalize_test.go @@ -0,0 +1,96 @@ +package keeper + +import ( + "testing" + + sdkmath "cosmossdk.io/math" + "github.com/bitbadges/bitbadgeschain/x/tokenization/types" + "github.com/stretchr/testify/require" +) + +// Ensures NormalizeNilPointers is a no-op on nil / non-pointer / non-struct +// inputs (must not panic). +func TestNormalize_DegenerateInputs(t *testing.T) { + require.NotPanics(t, func() { NormalizeNilPointers(nil) }) + + var nilCollection *types.TokenCollection + require.NotPanics(t, func() { NormalizeNilPointers(nilCollection) }) + + notAPtr := types.TokenCollection{} + require.NotPanics(t, func() { NormalizeNilPointers(notAPtr) }) + + prim := 42 + require.NotPanics(t, func() { NormalizeNilPointers(&prim) }) +} + +// NormalizeNilPointers does NOT fill nil pointer-to-struct fields — +// that would break nil-vs-empty equality semantics. Confirm. +func TestNormalize_DoesNotFillNilPointers(t *testing.T) { + c := &types.TokenCollection{} + require.Nil(t, c.CollectionPermissions) + require.Nil(t, c.DefaultBalances) + + NormalizeNilPointers(c) + + require.Nil(t, c.CollectionPermissions, "must NOT be filled — preserves 'unset' semantic") + require.Nil(t, c.DefaultBalances) +} + +// Already-filled fields are left intact (we don't overwrite caller data). +func TestNormalize_PreservesExistingValues(t *testing.T) { + c := &types.TokenCollection{ + Manager: "bb1existing", + CollectionPermissions: &types.CollectionPermissions{ + CanArchiveCollection: []*types.ActionPermission{ + {}, + }, + }, + Invariants: &types.CollectionInvariants{ + DisablePoolCreation: true, + }, + } + + NormalizeNilPointers(c) + + require.Equal(t, "bb1existing", c.Manager) + require.NotNil(t, c.CollectionPermissions) + require.Len(t, c.CollectionPermissions.CanArchiveCollection, 1) + require.NotNil(t, c.Invariants) + require.True(t, c.Invariants.DisablePoolCreation) +} + +// `sdkmath.Uint{}` (the Go zero value) wraps a nil `*big.Int`; any math +// op panics on it. Proto fields tagged `customtype = "Uint", nullable +// = false` deserialize to the zero value when the wire bytes don't +// include the field — common after our SDK strips empty Uint strings. +// Normalize must replace with `NewUint(0)` so downstream math is safe. +func TestNormalize_RecoversNilUintInternals(t *testing.T) { + // AltTimeChecks.TimezoneOffsetMinutes is exactly such a field. + atc := &types.AltTimeChecks{} + require.True(t, atc.TimezoneOffsetMinutes.IsNil(), "before normalize: nil internal big.Int") + + NormalizeNilPointers(atc) + + require.False(t, atc.TimezoneOffsetMinutes.IsNil(), "after normalize: must be initialized to 0") + + // Math operations must no longer panic. + require.NotPanics(t, func() { + _ = atc.TimezoneOffsetMinutes.GT(sdkmath.NewUint(0)) + }) +} + +// Walks into ALREADY-non-nil nested pointers (does not fill nils), +// so any uninitialized Uints inside user-set sub-messages get fixed. +func TestNormalize_RecoversNilUintsInNestedFilledPointers(t *testing.T) { + approval := &types.CollectionApproval{ + ApprovalCriteria: &types.ApprovalCriteria{ + AltTimeChecks: &types.AltTimeChecks{}, + }, + } + + NormalizeNilPointers(approval) + + require.NotPanics(t, func() { + _ = approval.ApprovalCriteria.AltTimeChecks.TimezoneOffsetMinutes.GT(sdkmath.NewUint(0)) + }) +} diff --git a/x/tokenization/keeper/store.go b/x/tokenization/keeper/store.go index 603a5dd0..23c5f577 100644 --- a/x/tokenization/keeper/store.go +++ b/x/tokenization/keeper/store.go @@ -45,7 +45,7 @@ func (k Keeper) validateCollectionBeforeStore(ctx sdk.Context, collection *types } // If cosmosCoinBackedPath is set, collection approvals cannot include the Mint address - if collection.Invariants != nil && collection.Invariants.CosmosCoinBackedPath != nil { + if collection.Invariants != nil && !types.IsBasicallyEmpty(collection.Invariants.CosmosCoinBackedPath) { for _, approval := range collection.CollectionApprovals { // Check if FromListId includes Mint fromIncludesMint, err := k.CheckAddresses(ctx, approval.FromListId, types.MintAddress) @@ -96,6 +96,12 @@ func (k Keeper) GetCollectionFromStore(ctx sdk.Context, collectionId sdkmath.Uin return &collection, false } k.cdc.MustUnmarshal(marshaled_collection, &collection) + // Fill nil pointer-to-struct fields with fresh zero-value instances. + // See normalize.go for the rationale — short version: nullable=true + // proto fields can deserialize to nil pointers, but ~170 keeper + // access sites assume non-nil. Normalizing on load preserves the + // pre-nullable=true zero-value semantics without touching every site. + NormalizeNilPointers(&collection) return &collection, true } @@ -112,6 +118,7 @@ func (k Keeper) GetCollectionsFromStore(ctx sdk.Context) (collections []*types.T for ; iterator.Valid(); iterator.Next() { var collection types.TokenCollection k.cdc.MustUnmarshal(iterator.Value(), &collection) + NormalizeNilPointers(&collection) collections = append(collections, &collection) } return @@ -241,6 +248,7 @@ func (k Keeper) GetUserBalanceFromStore(ctx sdk.Context, balanceKey string) (*ty return &UserBalance, false } k.cdc.MustUnmarshal(marshaled_token_balance_info, &UserBalance) + NormalizeNilPointers(&UserBalance) return &UserBalance, true } @@ -258,6 +266,7 @@ func (k Keeper) GetUserBalancesFromStore(ctx sdk.Context) (balances []*types.Use for ; iterator.Valid(); iterator.Next() { var UserBalance types.UserBalanceStore k.cdc.MustUnmarshal(iterator.Value(), &UserBalance) + NormalizeNilPointers(&UserBalance) balanceKeyDetails, err := GetDetailsFromBalanceKey(string(iterator.Key()[1:])) if err != nil { diff --git a/x/tokenization/keeper/tokens.go b/x/tokenization/keeper/tokens.go index 463eedce..e0f49a55 100644 --- a/x/tokenization/keeper/tokens.go +++ b/x/tokenization/keeper/tokens.go @@ -41,7 +41,7 @@ func (k Keeper) CreateTokens(ctx sdk.Context, collection *types.TokenCollection, }) } - err = k.CheckIfTokenIdsActionPermissionPermits(ctx, detailsToCheck, collection.CollectionPermissions.CanUpdateValidTokenIds, "can create more tokens") + err = k.CheckIfTokenIdsActionPermissionPermits(ctx, detailsToCheck, collection.GetCollectionPermissions().GetCanUpdateValidTokenIds(), "can create more tokens") if err != nil { return &types.TokenCollection{}, err } diff --git a/x/tokenization/keeper/transfer_wrap.go b/x/tokenization/keeper/transfer_wrap.go index 9fae2096..a46c04bc 100644 --- a/x/tokenization/keeper/transfer_wrap.go +++ b/x/tokenization/keeper/transfer_wrap.go @@ -206,7 +206,7 @@ func (k Keeper) HandleSpecialAddressBacking( isSendingToSpecialAddress := false isSendingFromSpecialAddress := false - if collection.Invariants != nil && collection.Invariants.CosmosCoinBackedPath != nil { + if collection.Invariants != nil && !types.IsBasicallyEmpty(collection.Invariants.CosmosCoinBackedPath) { path := collection.Invariants.CosmosCoinBackedPath if path.Address == to { isSendingToSpecialAddress = true diff --git a/x/tokenization/keeper/transfer_wrap_utils.go b/x/tokenization/keeper/transfer_wrap_utils.go index 5aba4e42..b9352200 100644 --- a/x/tokenization/keeper/transfer_wrap_utils.go +++ b/x/tokenization/keeper/transfer_wrap_utils.go @@ -14,7 +14,7 @@ func (k Keeper) IsBackedOrWrappingPathAddress(ctx sdk.Context, collection *types return true } } - if collection.Invariants != nil && collection.Invariants.CosmosCoinBackedPath != nil { + if collection.Invariants != nil && !types.IsBasicallyEmpty(collection.Invariants.CosmosCoinBackedPath) { if collection.Invariants.CosmosCoinBackedPath.Address == address { return true } @@ -24,7 +24,7 @@ func (k Keeper) IsBackedOrWrappingPathAddress(ctx sdk.Context, collection *types // IsBackedOrWrappingPathAddress checks if an address is a cosmos coin wrapper path address or backed path address func (k Keeper) IsSpecialBackedAddress(ctx sdk.Context, collection *types.TokenCollection, address string) bool { - if collection.Invariants != nil && collection.Invariants.CosmosCoinBackedPath != nil { + if collection.Invariants != nil && !types.IsBasicallyEmpty(collection.Invariants.CosmosCoinBackedPath) { if collection.Invariants.CosmosCoinBackedPath.Address == address { return true } @@ -34,7 +34,7 @@ func (k Keeper) IsSpecialBackedAddress(ctx sdk.Context, collection *types.TokenC // IsBackingPathAddress checks if an address is a cosmos coin backed path address func (k Keeper) IsBackingPathAddress(ctx sdk.Context, collection *types.TokenCollection, address string) bool { - if collection.Invariants != nil && collection.Invariants.CosmosCoinBackedPath != nil { + if collection.Invariants != nil && !types.IsBasicallyEmpty(collection.Invariants.CosmosCoinBackedPath) { if collection.Invariants.CosmosCoinBackedPath.Address == address { return true } diff --git a/x/tokenization/keeper/update_checks_helpers.go b/x/tokenization/keeper/update_checks_helpers.go index dbd3c84e..55b105c0 100644 --- a/x/tokenization/keeper/update_checks_helpers.go +++ b/x/tokenization/keeper/update_checks_helpers.go @@ -5,7 +5,6 @@ import ( sdkerrors "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" - proto "github.com/gogo/protobuf/proto" "github.com/bitbadges/bitbadgeschain/x/tokenization/types" @@ -243,8 +242,11 @@ func (k Keeper) GetDetailsToCheck(ctx sdk.Context, collection *types.TokenCollec for i := 0; i < len(oldVal); i++ { oldApprovalCriteria := oldVal[i].ApprovalCriteria newApprovalCriteria := newVal[i].ApprovalCriteria - // Check approval criteria changes using stringification - if proto.MarshalTextString(oldApprovalCriteria) != proto.MarshalTextString(newApprovalCriteria) { + // Use nullable-aware equality so a no-op resubmission via the + // new SDK (which strips empty sub-messages) doesn't falsely + // register as "different" against pre-upgrade stored bytes that + // still have explicit `&Empty{}` sub-messages. + if !types.ProtoEqualNullableAware(oldApprovalCriteria, newApprovalCriteria) { different = true } // Check URI changes @@ -302,7 +304,7 @@ func (k Keeper) ValidateCollectionApprovalsWithInvariants(ctx sdk.Context, colle } // Rule 4: Reject if collection has no cosmosCoinBackedPath - if collection == nil || collection.Invariants == nil || collection.Invariants.CosmosCoinBackedPath == nil { + if collection == nil || collection.Invariants == nil || types.IsBasicallyEmpty(collection.Invariants.CosmosCoinBackedPath) { return sdkerrors.Wrapf(types.ErrInvalidRequest, "approval %s has allowBackedMinting=true but collection has no cosmosCoinBackedPath in invariants", collectionApproval.ApprovalId) } diff --git a/x/tokenization/module/module.go b/x/tokenization/module/module.go index cd821744..0e5324a9 100644 --- a/x/tokenization/module/module.go +++ b/x/tokenization/module/module.go @@ -64,7 +64,20 @@ func (AppModuleBasic) Name() string { // RegisterLegacyAminoCodec registers the amino codec for the module, which is used // to marshal and unmarshal structs to/from []byte in order to persist them in the module's KVStore. -func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {} +// +// Required for EIP-712 signature verification: cosmos/evm's verifier amino-decodes +// the StdSignDoc messages on the chain's main legacy amino codec, so every Msg that +// can be signed via EIP-712 must be registered here. Without this call the verifier +// fails with "unrecognized concrete type name tokenization/..." and signature +// verification falls back to ECDSA-on-raw-msg, which never matches an EIP-712 sig. +// +// Calls `RegisterAminoConcretes` (module-only types) — NOT `RegisterCodec`, +// which would also re-register the chain-wide encoding stack and panic with +// "TypeInfo already exists for types.PubKey" since depinject has already +// wired those interfaces. +func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { + types.RegisterAminoConcretes(cdc) +} // RegisterInterfaces registers a module's interface types and their concrete implementations as proto.Message. func (a AppModuleBasic) RegisterInterfaces(reg cdctypes.InterfaceRegistry) { diff --git a/x/tokenization/simulation/helpers.go b/x/tokenization/simulation/helpers.go index 0494d37f..86354bba 100644 --- a/x/tokenization/simulation/helpers.go +++ b/x/tokenization/simulation/helpers.go @@ -498,8 +498,13 @@ func GetOrCreateCollection(ctx sdk.Context, k *keeper.Keeper, creator string, r return collectionId, nil } - // Create a minimal valid collection - validTokenIds := GetBoundedTimelineTimes(r, 1, MinTimelineRange, MaxTimelineRange) + // Create a minimal valid collection. + // Token IDs must be sequential starting from 1 (see keeper.CreateTokens). + // `GetBoundedTimelineTimes` produces randomly-positioned ranges, which + // is correct for timeline-time fields but invalid for ValidTokenIds. + validTokenIds := []*types.UintRange{ + {Start: sdkmath.NewUint(1), End: sdkmath.NewUint(uint64(1 + r.Intn(1000)))}, + } collectionPermissions := GetRandomCollectionPermissions(r, accs) collectionMetadata := &types.CollectionMetadata{ diff --git a/x/tokenization/types/approval_conditions.pb.go b/x/tokenization/types/approval_conditions.pb.go index 154fccdb..3fc9c93f 100644 --- a/x/tokenization/types/approval_conditions.pb.go +++ b/x/tokenization/types/approval_conditions.pb.go @@ -556,60 +556,60 @@ func init() { } var fileDescriptor_4c4ebc9a93791f84 = []byte{ - // 834 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xdd, 0x6e, 0xdc, 0x44, - 0x14, 0x8e, 0x77, 0x93, 0x36, 0x9d, 0xec, 0x56, 0x62, 0x48, 0xa9, 0x49, 0xa5, 0x4d, 0xb4, 0x42, - 0x55, 0x2e, 0xaa, 0x75, 0x9b, 0x4a, 0xa8, 0x80, 0x10, 0xda, 0x6c, 0x28, 0x8d, 0x44, 0x9a, 0xca, - 0x49, 0x55, 0xc1, 0x0d, 0x9a, 0xb5, 0xcf, 0xee, 0x8e, 0x62, 0xcf, 0xd9, 0xce, 0x1c, 0x6f, 0x70, - 0x9f, 0x82, 0x4b, 0xde, 0x85, 0x17, 0xe8, 0x65, 0x25, 0xb8, 0x40, 0x20, 0x55, 0x28, 0x79, 0x11, - 0x34, 0xb6, 0x13, 0xec, 0x65, 0x9d, 0xf4, 0xce, 0x3e, 0xdf, 0xcf, 0xf8, 0x9c, 0xf9, 0xc6, 0xc3, - 0xee, 0x13, 0x9e, 0x80, 0x92, 0x6f, 0x04, 0x49, 0x54, 0x9e, 0x98, 0x4e, 0x35, 0xce, 0x44, 0xf4, - 0x53, 0x80, 0x2a, 0x94, 0xb6, 0x64, 0x7a, 0x53, 0x8d, 0x84, 0xbc, 0x55, 0xe6, 0x6d, 0xac, 0x8f, - 0x71, 0x8c, 0x19, 0xe0, 0xd9, 0xa7, 0x9c, 0xb3, 0x71, 0xaf, 0xe2, 0x35, 0x14, 0x91, 0x50, 0x01, - 0x14, 0x06, 0x1b, 0x9d, 0x00, 0x4d, 0x8c, 0xc6, 0x1b, 0x0a, 0x03, 0xde, 0xec, 0xd1, 0x10, 0x48, - 0x3c, 0xf2, 0x02, 0x94, 0x2a, 0xc7, 0xbb, 0xbf, 0x3b, 0xac, 0x35, 0x40, 0xa9, 0x8e, 0xb5, 0x50, - 0x66, 0x04, 0x9a, 0xdf, 0x66, 0x0d, 0x42, 0xd7, 0xd9, 0x72, 0xb6, 0x6f, 0xf9, 0x0d, 0x42, 0xee, - 0xb1, 0x15, 0x4b, 0x37, 0x6e, 0x63, 0xab, 0xb9, 0xbd, 0xb6, 0xf3, 0x69, 0x2f, 0x37, 0xec, 0x59, - 0xc3, 0x5e, 0x61, 0xd8, 0xb3, 0x0e, 0x7e, 0xce, 0xe3, 0xcf, 0xd8, 0x26, 0xce, 0x40, 0x6b, 0x19, - 0xc2, 0x53, 0x8d, 0xf1, 0x2b, 0x49, 0x93, 0x7e, 0xd6, 0x1f, 0xe8, 0x7e, 0x18, 0x6a, 0x30, 0xc6, - 0x6d, 0x6e, 0x39, 0xdb, 0xab, 0xfe, 0x75, 0x34, 0xfe, 0x84, 0xdd, 0xbd, 0xa0, 0x1c, 0xa3, 0x25, - 0xec, 0x2b, 0x49, 0x52, 0x10, 0x6a, 0x77, 0x39, 0x73, 0xa8, 0x83, 0xbb, 0xbf, 0x36, 0x59, 0xfb, - 0x20, 0x31, 0x74, 0x78, 0xaa, 0x8e, 0xed, 0x70, 0x0c, 0x7f, 0xc8, 0x5a, 0x01, 0x46, 0x11, 0x04, - 0x76, 0x48, 0xfb, 0x61, 0xde, 0xe0, 0x6e, 0xeb, 0xed, 0xfb, 0xcd, 0xa5, 0xbf, 0xde, 0x6f, 0x2e, - 0xbf, 0x94, 0x8a, 0xfc, 0x0a, 0x83, 0x7f, 0xc1, 0xd6, 0x44, 0x8c, 0x89, 0x22, 0x5f, 0xa8, 0x31, - 0xb8, 0x8d, 0x2d, 0x67, 0x7b, 0x6d, 0xe7, 0x6e, 0xaf, 0x3c, 0xec, 0x5e, 0x26, 0xb3, 0xb0, 0x5f, - 0xe6, 0xf2, 0x6f, 0xd8, 0x6d, 0x3c, 0x55, 0xa0, 0xcd, 0x44, 0x4e, 0x8f, 0x65, 0x0c, 0xb6, 0xe3, - 0xe6, 0x55, 0xea, 0x39, 0x3a, 0x7f, 0xcc, 0x56, 0x33, 0xe6, 0x7e, 0x68, 0xdc, 0xe5, 0xab, 0xa5, - 0x97, 0xc4, 0xf2, 0xb8, 0xec, 0x34, 0x06, 0x89, 0xd6, 0xa0, 0xc8, 0x1a, 0xba, 0x2b, 0xd5, 0x71, - 0xcd, 0xc1, 0x56, 0x19, 0x27, 0x86, 0x8e, 0x04, 0x49, 0x33, 0x4a, 0x9f, 0xa2, 0xee, 0x47, 0x51, - 0xdf, 0x18, 0x20, 0xe3, 0xde, 0xc8, 0x95, 0x35, 0x30, 0x7f, 0xc8, 0x3e, 0xbe, 0xfc, 0xf4, 0xc1, - 0x04, 0x82, 0x93, 0x17, 0x42, 0x53, 0xea, 0xde, 0xcc, 0xe2, 0xb3, 0x08, 0xea, 0xbe, 0x66, 0x77, - 0xf6, 0x52, 0x25, 0x62, 0x19, 0x1c, 0x11, 0x6a, 0x18, 0x4c, 0x44, 0x14, 0x81, 0x1d, 0xda, 0x7d, - 0x76, 0xd3, 0xd8, 0x4a, 0xcd, 0xe6, 0x5c, 0x80, 0x75, 0x4b, 0x36, 0xea, 0x97, 0xfc, 0xdb, 0x61, - 0xed, 0x22, 0x53, 0x59, 0xd5, 0xf0, 0x07, 0xec, 0x23, 0xdb, 0xd1, 0x2e, 0x7c, 0x3b, 0x8b, 0x07, - 0xa8, 0x48, 0x8b, 0x80, 0xb2, 0x55, 0x57, 0xfd, 0xff, 0x03, 0x7c, 0x87, 0xad, 0xdb, 0xe2, 0x73, - 0x9c, 0x13, 0x34, 0x32, 0xc1, 0x42, 0xcc, 0x7e, 0x65, 0x6e, 0xf4, 0xbd, 0x7c, 0x9d, 0xc8, 0x50, - 0x52, 0xfa, 0x02, 0x31, 0x2a, 0x92, 0xbf, 0x08, 0xe2, 0x9f, 0xb3, 0x4f, 0x2e, 0x9d, 0xaa, 0xa2, - 0x3c, 0xec, 0x35, 0x68, 0xf7, 0x8f, 0x26, 0x6b, 0xf7, 0xa3, 0x6c, 0x23, 0x8b, 0xee, 0xbe, 0x62, - 0x2d, 0x1c, 0x8d, 0x22, 0xa9, 0xe0, 0x19, 0x26, 0xda, 0xb8, 0xce, 0xd5, 0x09, 0xaa, 0x90, 0x6d, - 0xec, 0x8b, 0xf7, 0x3d, 0x91, 0x5e, 0x9c, 0xfa, 0xfa, 0xd8, 0x97, 0xb8, 0xfc, 0x6b, 0xd6, 0x2e, - 0x5e, 0x0f, 0x50, 0xd1, 0xe4, 0xda, 0xd4, 0x57, 0xd9, 0xfc, 0x3b, 0xc6, 0x4b, 0x6e, 0x87, 0xa3, - 0xac, 0x7c, 0x5d, 0xfc, 0x17, 0x48, 0x4a, 0x46, 0xaf, 0x00, 0x4e, 0xcc, 0xe1, 0xe8, 0x07, 0x10, - 0xda, 0x5d, 0xf9, 0x30, 0xa3, 0x92, 0x84, 0xef, 0xb2, 0x3b, 0x24, 0x63, 0x78, 0x83, 0x0a, 0x0e, - 0x47, 0x23, 0x03, 0x74, 0x20, 0x55, 0x42, 0x90, 0x9f, 0x8a, 0xf9, 0x80, 0x2e, 0xa6, 0xda, 0x6d, - 0xad, 0x02, 0xcf, 0x61, 0x2c, 0x48, 0xce, 0x20, 0x3b, 0x24, 0xab, 0x7e, 0x0d, 0xda, 0xfd, 0xcd, - 0x61, 0xeb, 0x2f, 0x0d, 0xe8, 0x7e, 0x71, 0x37, 0x1c, 0x01, 0x91, 0x54, 0x63, 0xc3, 0x3f, 0x63, - 0x6d, 0x11, 0x45, 0x78, 0x0a, 0xe1, 0x1e, 0x28, 0x8c, 0xf3, 0xed, 0xbd, 0xe5, 0x57, 0x8b, 0xfc, - 0x4b, 0xe6, 0x86, 0xd2, 0x88, 0x61, 0x04, 0xd6, 0xa4, 0xfc, 0x87, 0x37, 0x45, 0x6e, 0x6b, 0x71, - 0xde, 0x67, 0xed, 0xc4, 0x80, 0xf6, 0x31, 0x15, 0x11, 0x49, 0xc8, 0xff, 0xd7, 0x6b, 0x3b, 0xf7, - 0xe6, 0x46, 0x57, 0xa6, 0xf8, 0x55, 0x45, 0x37, 0x60, 0xed, 0x0a, 0xce, 0x1f, 0x30, 0x36, 0x05, - 0x1d, 0x80, 0x22, 0x31, 0x86, 0x85, 0x07, 0xbc, 0x84, 0xdb, 0x1e, 0xa7, 0x22, 0xc5, 0x84, 0x2e, - 0x6e, 0x8c, 0xfc, 0x74, 0x57, 0x8b, 0xbb, 0xfe, 0xdb, 0xb3, 0x8e, 0xf3, 0xee, 0xac, 0xe3, 0xfc, - 0x73, 0xd6, 0x71, 0x7e, 0x39, 0xef, 0x2c, 0xbd, 0x3b, 0xef, 0x2c, 0xfd, 0x79, 0xde, 0x59, 0xfa, - 0xf1, 0xc9, 0x58, 0xd2, 0x24, 0x19, 0xf6, 0x02, 0x8c, 0xbd, 0xa1, 0xa4, 0xa1, 0x08, 0xc7, 0x60, - 0xfe, 0x7b, 0x0a, 0x26, 0x42, 0x2a, 0xef, 0x67, 0xaf, 0x72, 0x71, 0x52, 0x3a, 0x05, 0x33, 0xbc, - 0x91, 0x5d, 0x8b, 0x8f, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x25, 0x1b, 0x8f, 0xa1, 0x07, - 0x00, 0x00, + // 844 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x5f, 0x6b, 0x1b, 0x47, + 0x10, 0xf7, 0x49, 0x76, 0xe2, 0xac, 0xa4, 0x40, 0xb7, 0x4e, 0x73, 0x75, 0x40, 0x36, 0xa2, 0x04, + 0x3f, 0x04, 0x29, 0x71, 0xa0, 0xa4, 0x2d, 0x25, 0x48, 0x72, 0x93, 0x18, 0xea, 0x38, 0x9c, 0x1d, + 0x42, 0xfb, 0x52, 0x56, 0x77, 0x23, 0x69, 0xf1, 0xdd, 0x8e, 0xb2, 0x3b, 0x27, 0x57, 0xf9, 0x14, + 0xfd, 0x04, 0xfd, 0x2e, 0x7d, 0xf3, 0xa3, 0xa1, 0x7d, 0x28, 0x2d, 0x98, 0x62, 0x7f, 0x91, 0xb2, + 0x77, 0x67, 0xf7, 0x4e, 0xd5, 0xd9, 0x79, 0xbb, 0x9b, 0xdf, 0x9f, 0xdd, 0x99, 0x9d, 0xd9, 0x65, + 0x0f, 0x09, 0x8f, 0x40, 0xc9, 0x0f, 0x82, 0x24, 0xaa, 0x8e, 0x98, 0x4c, 0x34, 0x4e, 0x45, 0xf8, + 0x93, 0x8f, 0x2a, 0x90, 0x36, 0x64, 0xda, 0x13, 0x8d, 0x84, 0xbc, 0x9e, 0xe7, 0xad, 0xaf, 0x8d, + 0x70, 0x84, 0x09, 0xd0, 0xb1, 0x5f, 0x29, 0x67, 0xfd, 0x41, 0xc1, 0x6b, 0x20, 0x42, 0xa1, 0x7c, + 0xc8, 0x0c, 0xd6, 0x9b, 0x3e, 0x9a, 0x08, 0x4d, 0x67, 0x20, 0x0c, 0x74, 0xa6, 0x4f, 0x06, 0x40, + 0xe2, 0x49, 0xc7, 0x47, 0xa9, 0x52, 0xbc, 0xf5, 0xbb, 0xc3, 0xea, 0x7d, 0x94, 0xea, 0x50, 0x0b, + 0x65, 0x86, 0xa0, 0xf9, 0x5d, 0x56, 0x21, 0x74, 0x9d, 0x4d, 0x67, 0xeb, 0x8e, 0x57, 0x21, 0xe4, + 0x1d, 0xb6, 0x62, 0xe9, 0xc6, 0xad, 0x6c, 0x56, 0xb7, 0x6a, 0xdb, 0x9f, 0xb7, 0x53, 0xc3, 0xb6, + 0x35, 0x6c, 0x67, 0x86, 0x6d, 0xeb, 0xe0, 0xa5, 0x3c, 0xfe, 0x8a, 0x6d, 0xe0, 0x14, 0xb4, 0x96, + 0x01, 0xbc, 0xd0, 0x18, 0xbd, 0x93, 0x34, 0xee, 0x26, 0xf9, 0x81, 0xee, 0x06, 0x81, 0x06, 0x63, + 0xdc, 0xea, 0xa6, 0xb3, 0xb5, 0xea, 0xdd, 0x44, 0xe3, 0xcf, 0xd8, 0xfd, 0x4b, 0xca, 0x21, 0x5a, + 0xc2, 0xae, 0x92, 0x24, 0x05, 0xa1, 0x76, 0x97, 0x13, 0x87, 0x32, 0xb8, 0xf5, 0x6b, 0x95, 0x35, + 0xf6, 0x62, 0x43, 0xfb, 0xc7, 0xea, 0xd0, 0x16, 0xc7, 0xf0, 0xc7, 0xac, 0xee, 0x63, 0x18, 0x82, + 0x6f, 0x8b, 0xb4, 0x1b, 0xa4, 0x09, 0xf6, 0xea, 0x27, 0x67, 0x1b, 0x4b, 0x7f, 0x9d, 0x6d, 0x2c, + 0xbf, 0x95, 0x8a, 0xbc, 0x02, 0x83, 0x3f, 0x67, 0x35, 0x11, 0x61, 0xac, 0xc8, 0x13, 0x6a, 0x04, + 0x6e, 0x65, 0xd3, 0xd9, 0xaa, 0x6d, 0xdf, 0x6f, 0xe7, 0x8b, 0xdd, 0x4e, 0x64, 0x16, 0xee, 0x2d, + 0x9f, 0x9c, 0x6d, 0x38, 0x5e, 0x5e, 0xc1, 0x9f, 0xb3, 0xbb, 0x78, 0xac, 0x40, 0x9b, 0xb1, 0x9c, + 0x1c, 0xca, 0x08, 0x6c, 0xde, 0xd5, 0x6b, 0x3c, 0xbc, 0x39, 0x3a, 0x7f, 0xca, 0x56, 0x13, 0xe6, + 0x6e, 0x60, 0xdc, 0xe5, 0xeb, 0xa5, 0x57, 0xc4, 0x7c, 0xd1, 0x6c, 0x4d, 0xfa, 0xb1, 0xd6, 0xa0, + 0xc8, 0x1a, 0xba, 0x2b, 0xc5, 0xa2, 0xcd, 0xc1, 0x56, 0x19, 0xc5, 0x86, 0x0e, 0x04, 0x49, 0x33, + 0x9c, 0xbd, 0x40, 0xdd, 0x0d, 0xc3, 0xae, 0x31, 0x40, 0xc6, 0xbd, 0x95, 0x2a, 0x4b, 0x60, 0xfe, + 0x98, 0x7d, 0x7a, 0xb5, 0xf5, 0xfe, 0x18, 0xfc, 0xa3, 0x37, 0x42, 0xd3, 0xcc, 0xbd, 0x9d, 0x34, + 0xd1, 0x22, 0xa8, 0xf5, 0x9e, 0xdd, 0xdb, 0x99, 0x29, 0x11, 0x49, 0xff, 0x80, 0x50, 0x43, 0x7f, + 0x2c, 0xc2, 0x10, 0x6c, 0xd1, 0x1e, 0xb2, 0xdb, 0xc6, 0x46, 0x4a, 0x8e, 0xe8, 0x12, 0x2c, 0x5b, + 0xb2, 0x52, 0xbe, 0xe4, 0xdf, 0x0e, 0x6b, 0x64, 0x9d, 0x95, 0x44, 0x0d, 0x7f, 0xc4, 0x3e, 0xb1, + 0x19, 0xf5, 0xe0, 0xbb, 0x69, 0xd4, 0x47, 0x45, 0x5a, 0xf8, 0x94, 0xac, 0xba, 0xea, 0xfd, 0x1f, + 0xe0, 0xdb, 0x6c, 0xcd, 0x06, 0x5f, 0xe3, 0x9c, 0xa0, 0x92, 0x08, 0x16, 0x62, 0x76, 0x97, 0xa9, + 0xd1, 0xf7, 0xf2, 0x7d, 0x2c, 0x03, 0x49, 0xb3, 0x37, 0x88, 0x61, 0xd6, 0xff, 0x8b, 0x20, 0xfe, + 0x25, 0xfb, 0xec, 0xca, 0xa9, 0x28, 0x4a, 0x5b, 0xbe, 0x04, 0x6d, 0xfd, 0x51, 0x65, 0x8d, 0x6e, + 0x98, 0x1c, 0x64, 0x96, 0xdd, 0x37, 0xac, 0x8e, 0xc3, 0x61, 0x28, 0x15, 0xbc, 0xc2, 0x58, 0x1b, + 0xd7, 0xb9, 0xbe, 0x83, 0x0a, 0x64, 0xfe, 0x15, 0xab, 0x65, 0xff, 0x3b, 0x62, 0x76, 0x39, 0xfb, + 0xa5, 0xda, 0x3c, 0x97, 0x7f, 0xcb, 0x1a, 0xd9, 0xef, 0x1e, 0x2a, 0x1a, 0xdf, 0xd8, 0xf5, 0x45, + 0x36, 0x7f, 0xc9, 0x78, 0xce, 0x6d, 0x7f, 0x98, 0x84, 0x6f, 0x6a, 0xff, 0x05, 0x92, 0x9c, 0xd1, + 0x3b, 0x80, 0x23, 0xb3, 0x3f, 0xfc, 0x01, 0x84, 0x76, 0x57, 0x3e, 0xce, 0x28, 0x27, 0xe1, 0x3d, + 0x76, 0x8f, 0x64, 0x04, 0x1f, 0x50, 0xc1, 0xfe, 0x70, 0x68, 0x80, 0xf6, 0xa4, 0x8a, 0x09, 0xd2, + 0xa9, 0x98, 0x6f, 0xd0, 0xc5, 0x54, 0x7b, 0xac, 0x45, 0xe0, 0x35, 0x8c, 0x04, 0xc9, 0x29, 0x24, + 0x43, 0xb2, 0xea, 0x95, 0xa0, 0xad, 0xdf, 0x1c, 0xb6, 0xf6, 0xd6, 0x80, 0xee, 0x66, 0x2f, 0xc4, + 0x01, 0x10, 0x49, 0x35, 0x32, 0xfc, 0x0b, 0xd6, 0x10, 0x61, 0x88, 0xc7, 0x10, 0xec, 0x80, 0xc2, + 0x28, 0x3d, 0xde, 0x3b, 0x5e, 0x31, 0xc8, 0xbf, 0x66, 0x6e, 0x20, 0x8d, 0x18, 0x84, 0x60, 0x4d, + 0xf2, 0xf7, 0xbc, 0xc9, 0xfa, 0xb6, 0x14, 0xe7, 0x2f, 0x59, 0x23, 0x36, 0xa0, 0x3d, 0x9c, 0x89, + 0x90, 0x24, 0xa4, 0xb7, 0x76, 0x6d, 0xfb, 0xc1, 0x5c, 0xe9, 0xf2, 0x94, 0xec, 0x16, 0x2c, 0xea, + 0x5a, 0x3e, 0x6b, 0x14, 0x58, 0xfc, 0x11, 0x63, 0x13, 0xd0, 0x3e, 0x28, 0x12, 0x23, 0x58, 0x38, + 0xe6, 0x39, 0xdc, 0x66, 0x3a, 0x11, 0x33, 0x8c, 0xe9, 0xf2, 0xf5, 0x48, 0x67, 0xbc, 0x18, 0xec, + 0x79, 0x27, 0xe7, 0x4d, 0xe7, 0xf4, 0xbc, 0xe9, 0xfc, 0x73, 0xde, 0x74, 0x7e, 0xb9, 0x68, 0x2e, + 0x9d, 0x5e, 0x34, 0x97, 0xfe, 0xbc, 0x68, 0x2e, 0xfd, 0xf8, 0x6c, 0x24, 0x69, 0x1c, 0x0f, 0xda, + 0x3e, 0x46, 0x9d, 0x81, 0xa4, 0x81, 0x08, 0x46, 0x60, 0xfe, 0xfb, 0xf2, 0xc7, 0x42, 0xaa, 0xce, + 0xcf, 0x9d, 0xc2, 0x23, 0x4a, 0xb3, 0x09, 0x98, 0xc1, 0xad, 0xe4, 0x89, 0x7c, 0xfa, 0x6f, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xc4, 0xf2, 0x14, 0xa4, 0xad, 0x07, 0x00, 0x00, } func (m *CoinTransfer) Marshal() (dAtA []byte, err error) { diff --git a/x/tokenization/types/approval_criteria.pb.go b/x/tokenization/types/approval_criteria.pb.go index 095b9b18..9eceeab6 100644 --- a/x/tokenization/types/approval_criteria.pb.go +++ b/x/tokenization/types/approval_criteria.pb.go @@ -747,65 +747,66 @@ func init() { } var fileDescriptor_552f7eb0c7cb6786 = []byte{ - // 914 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x98, 0x4f, 0x6f, 0x1b, 0x45, - 0x18, 0xc6, 0x63, 0x5a, 0x92, 0x74, 0xe2, 0x38, 0xee, 0x34, 0x2d, 0x8b, 0xa1, 0x26, 0x18, 0x54, - 0x85, 0x8b, 0x2d, 0x85, 0x0b, 0x27, 0xc0, 0x4e, 0x52, 0x48, 0xa5, 0x24, 0x65, 0x6c, 0x82, 0x80, - 0x43, 0x35, 0xde, 0x7d, 0x59, 0x8f, 0xbc, 0x3b, 0xb3, 0x9d, 0x99, 0x4d, 0x9b, 0x7e, 0x01, 0xc4, - 0x8d, 0xcf, 0xc0, 0xa7, 0xe1, 0xd8, 0x23, 0x47, 0x94, 0x7c, 0x11, 0xb4, 0x93, 0x4d, 0xba, 0xb3, - 0x5e, 0x27, 0xab, 0x60, 0x84, 0x2a, 0xf9, 0x66, 0xed, 0x3c, 0xcf, 0x6f, 0xdf, 0xf9, 0xb3, 0xcf, - 0x3b, 0x32, 0xfa, 0x54, 0x8b, 0x31, 0x70, 0xf6, 0x8a, 0x6a, 0x26, 0x78, 0x87, 0x46, 0x91, 0x14, - 0xc7, 0x34, 0x78, 0xe6, 0x4a, 0xa6, 0x41, 0x32, 0xda, 0x8e, 0xa4, 0xd0, 0x02, 0x57, 0xb3, 0xaa, - 0xc6, 0xba, 0x2f, 0x7c, 0x61, 0x06, 0x3a, 0xc9, 0xaf, 0x73, 0x4d, 0xe3, 0xa1, 0x45, 0x72, 0x47, - 0x34, 0x08, 0x80, 0xfb, 0xa0, 0xd2, 0xe1, 0xcf, 0xac, 0xe1, 0x48, 0x82, 0x07, 0x1a, 0x64, 0xc8, - 0x38, 0x78, 0xcf, 0x86, 0x34, 0xa0, 0xdc, 0xbd, 0x94, 0x4e, 0xa9, 0x49, 0x4b, 0xea, 0x8e, 0x19, - 0xf7, 0x53, 0xd5, 0xa3, 0x29, 0x95, 0x0b, 0xee, 0xb1, 0xe4, 0x51, 0x4a, 0x6b, 0xfd, 0x51, 0x43, - 0xf5, 0x6e, 0x3a, 0xba, 0x9d, 0x4e, 0x0b, 0xef, 0xa1, 0x7a, 0x08, 0x72, 0x1c, 0xc0, 0xf6, 0x65, - 0x9d, 0x4e, 0x65, 0xe3, 0xd6, 0xe6, 0xca, 0xd6, 0xc3, 0x76, 0x96, 0xdb, 0xde, 0xb7, 0x55, 0x64, - 0xc2, 0x86, 0x7f, 0x44, 0xf7, 0xad, 0xd9, 0xf4, 0xd2, 0xc9, 0x38, 0xef, 0x6c, 0x54, 0x36, 0x57, - 0xb6, 0x3e, 0xb1, 0x79, 0x4f, 0x8b, 0xa4, 0xa4, 0x98, 0x80, 0xbf, 0x41, 0x6b, 0x17, 0xf3, 0xea, - 0x86, 0x22, 0xe6, 0x5a, 0x39, 0xb7, 0x0c, 0x34, 0x57, 0x64, 0xd7, 0x16, 0x91, 0xbc, 0x2b, 0x01, - 0x85, 0xf4, 0xe5, 0x41, 0x1c, 0x0e, 0x24, 0xe5, 0xea, 0x17, 0x90, 0xca, 0xb9, 0x5d, 0x04, 0xda, - 0xb7, 0x45, 0x24, 0xef, 0xc2, 0x5f, 0xa3, 0x55, 0x57, 0x30, 0xfe, 0x06, 0xf3, 0xae, 0x59, 0xb4, - 0x86, 0x8d, 0xd9, 0xce, 0x48, 0x88, 0x6d, 0xc0, 0x5f, 0xa2, 0x86, 0x84, 0xe7, 0x31, 0x93, 0x30, - 0x10, 0xbb, 0xcf, 0x63, 0x1a, 0xa8, 0x3d, 0xce, 0x34, 0xa3, 0x1a, 0xbc, 0xde, 0x89, 0xb3, 0xb8, - 0x51, 0xd9, 0x5c, 0x26, 0x57, 0x28, 0x70, 0x0f, 0x7d, 0x98, 0x8e, 0x3e, 0x96, 0x22, 0x9c, 0x24, - 0x2c, 0x19, 0xc2, 0x95, 0x1a, 0xfc, 0x04, 0x6d, 0x5c, 0xbe, 0x61, 0x47, 0x80, 0x3a, 0x10, 0xda, - 0x88, 0xb2, 0x9c, 0x65, 0xc3, 0xb9, 0x56, 0x87, 0x0f, 0x50, 0x2b, 0xf3, 0xae, 0x69, 0xb4, 0x3b, - 0x86, 0x56, 0x42, 0x89, 0x1f, 0xa3, 0xa6, 0x38, 0x06, 0x29, 0x99, 0x07, 0x2a, 0xd1, 0x1d, 0xc6, - 0xda, 0x17, 0x8c, 0xfb, 0x17, 0x7b, 0xac, 0x1c, 0x64, 0x58, 0xd7, 0xa8, 0x92, 0x75, 0xba, 0x54, - 0x0c, 0xc4, 0x1e, 0x77, 0x45, 0x68, 0x51, 0x56, 0xce, 0xd7, 0xe9, 0x2a, 0x0d, 0xee, 0xa3, 0x7b, - 0x34, 0xd6, 0x62, 0x07, 0x02, 0x48, 0xf6, 0xf5, 0x30, 0x32, 0xdf, 0x95, 0x53, 0x35, 0x47, 0xe7, - 0xe3, 0xdc, 0x19, 0x9c, 0x14, 0x92, 0x22, 0x37, 0xee, 0xa2, 0xd5, 0x30, 0x56, 0xfa, 0xf0, 0x05, - 0x1f, 0x24, 0x7e, 0xe5, 0xd4, 0xcc, 0x11, 0xfa, 0x20, 0x77, 0x12, 0xb3, 0x12, 0x62, 0x3b, 0xf0, - 0xcf, 0xe8, 0x81, 0x77, 0xc2, 0x69, 0xc8, 0xdc, 0xbe, 0x16, 0x32, 0xfb, 0x0d, 0xaf, 0x19, 0x56, - 0xee, 0x9b, 0xdb, 0x29, 0xd2, 0x92, 0x29, 0x88, 0x04, 0x0e, 0x7a, 0xd4, 0x67, 0x3e, 0xa7, 0x3a, - 0xb6, 0xe0, 0xf5, 0x22, 0xf8, 0xee, 0xe0, 0xdb, 0x49, 0x2d, 0x99, 0x82, 0xc0, 0x5f, 0xa1, 0xaa, - 0x02, 0xee, 0x81, 0xdc, 0x1e, 0x81, 0x3b, 0x56, 0xce, 0x5d, 0xb3, 0x94, 0xb9, 0xb9, 0x77, 0x3d, - 0x4f, 0x82, 0x52, 0xe7, 0x12, 0x62, 0x19, 0xf0, 0x2e, 0x5a, 0x93, 0xe0, 0xb2, 0x88, 0x01, 0xd7, - 0x29, 0x03, 0x5f, 0xcf, 0xc8, 0x7b, 0x12, 0x0c, 0x3b, 0x3f, 0x74, 0xe2, 0xa2, 0x94, 0x7b, 0x25, - 0x30, 0x39, 0x4f, 0xb2, 0x97, 0x34, 0xd0, 0x03, 0x16, 0x42, 0x0a, 0x59, 0x2f, 0x84, 0x64, 0x25, - 0xc4, 0x76, 0xe0, 0x47, 0xa8, 0x96, 0x6c, 0xee, 0x53, 0xc9, 0x84, 0x64, 0x9a, 0xbd, 0x02, 0xe7, - 0xbe, 0x39, 0x99, 0xb9, 0xa7, 0x49, 0x62, 0x1f, 0x0b, 0xcd, 0xb8, 0x9f, 0xd9, 0x90, 0x07, 0x45, - 0x89, 0x7d, 0x64, 0xab, 0xc8, 0x84, 0x0d, 0xb7, 0x11, 0xa6, 0x41, 0x20, 0x5e, 0xf4, 0xa8, 0x3b, - 0x06, 0x6f, 0x9f, 0xf1, 0x64, 0xdc, 0x79, 0xcf, 0xbc, 0xb6, 0x60, 0x04, 0x6f, 0xa1, 0x75, 0xf3, - 0xb4, 0x1f, 0x81, 0xcb, 0x68, 0xf0, 0x83, 0xa4, 0x51, 0x94, 0x38, 0x1c, 0xe3, 0x28, 0x1c, 0xc3, - 0x87, 0x08, 0xc3, 0x71, 0xf8, 0x5d, 0x0c, 0xf2, 0x24, 0x53, 0xf0, 0xfb, 0xa6, 0xe0, 0x8f, 0x72, - 0x27, 0xe8, 0x68, 0xdf, 0xd6, 0x91, 0x02, 0x2b, 0x3e, 0x42, 0xeb, 0xb1, 0x02, 0x79, 0xf1, 0x71, - 0xf6, 0x41, 0x27, 0xb5, 0x29, 0xa7, 0x61, 0x56, 0xbc, 0x65, 0x23, 0xbf, 0x2f, 0x50, 0x92, 0x42, - 0xff, 0x93, 0xdb, 0xcb, 0xab, 0xf5, 0x5a, 0xeb, 0x57, 0x84, 0x9c, 0x7c, 0x86, 0xcc, 0x9b, 0xe5, - 0x5b, 0xdf, 0x2c, 0xcb, 0x34, 0xba, 0xa5, 0x92, 0x8d, 0x6e, 0x4a, 0x33, 0x58, 0x9e, 0x6d, 0x33, - 0xb8, 0x33, 0xc3, 0x66, 0x80, 0xfe, 0xcb, 0x66, 0xb0, 0xf2, 0xef, 0x9b, 0x41, 0x41, 0x96, 0x57, - 0x67, 0x93, 0xe5, 0xab, 0xb3, 0xc8, 0xf2, 0xda, 0x0c, 0xb2, 0x7c, 0xad, 0x74, 0x96, 0xd7, 0x6f, - 0x96, 0xe5, 0xc5, 0x39, 0x7b, 0xf7, 0xc6, 0x39, 0xdb, 0xfa, 0x0d, 0x21, 0x27, 0x7f, 0x13, 0x9a, - 0x27, 0xe1, 0xff, 0x9e, 0x84, 0xd7, 0x5d, 0xfb, 0x17, 0x4b, 0x5c, 0xfb, 0xcb, 0x5d, 0xd5, 0x97, - 0x4a, 0x5f, 0xd5, 0xe7, 0x89, 0x38, 0xeb, 0x44, 0xcc, 0x5f, 0x8f, 0xab, 0x37, 0xb8, 0x1e, 0xcf, - 0xb3, 0x70, 0x56, 0x59, 0xd8, 0x23, 0x7f, 0x9e, 0x36, 0x2b, 0xaf, 0x4f, 0x9b, 0x95, 0xbf, 0x4f, - 0x9b, 0x95, 0xdf, 0xcf, 0x9a, 0x0b, 0xaf, 0xcf, 0x9a, 0x0b, 0x7f, 0x9d, 0x35, 0x17, 0x7e, 0xfa, - 0xc2, 0x67, 0x7a, 0x14, 0x0f, 0xdb, 0xae, 0x08, 0x3b, 0x43, 0xa6, 0x87, 0xd4, 0xf3, 0x41, 0xbd, - 0xf9, 0xe5, 0x8e, 0x28, 0xe3, 0x9d, 0x97, 0x1d, 0xeb, 0x2f, 0x1a, 0x7d, 0x12, 0x81, 0x1a, 0x2e, - 0x9a, 0x7f, 0x65, 0x3e, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0x64, 0x9f, 0x70, 0xf3, 0x79, 0x12, - 0x00, 0x00, + // 931 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x98, 0xdf, 0x6e, 0xdb, 0x36, + 0x14, 0xc6, 0xe3, 0x35, 0x4b, 0x52, 0xc6, 0x76, 0x5c, 0x36, 0xed, 0x34, 0x6f, 0x75, 0x33, 0x6f, + 0x28, 0xb2, 0x1b, 0x1b, 0xc8, 0x6e, 0x76, 0x35, 0xcc, 0x4e, 0xd2, 0x2d, 0x1d, 0x9c, 0x74, 0x8a, + 0xd7, 0x61, 0x7f, 0x80, 0x80, 0x96, 0xce, 0x64, 0xc2, 0x12, 0xa9, 0x92, 0x54, 0xda, 0xf4, 0x29, + 0xf6, 0x2a, 0xc3, 0x5e, 0xa2, 0x97, 0xbd, 0xec, 0xd5, 0x30, 0x24, 0x2f, 0x32, 0x88, 0x91, 0x53, + 0x51, 0x96, 0x13, 0x21, 0x8b, 0x81, 0x61, 0xf0, 0x9d, 0xa1, 0xf3, 0x9d, 0x9f, 0x0e, 0xa9, 0xa3, + 0xef, 0x88, 0x46, 0x9f, 0x29, 0x3e, 0x02, 0x46, 0x5f, 0x11, 0x45, 0x39, 0x6b, 0x93, 0x30, 0x14, + 0xfc, 0x98, 0xf8, 0x47, 0x8e, 0xa0, 0x0a, 0x04, 0x25, 0xad, 0x50, 0x70, 0xc5, 0x71, 0x39, 0xad, + 0xaa, 0xaf, 0x7b, 0xdc, 0xe3, 0x3a, 0xd0, 0x8e, 0x7f, 0x9d, 0x6b, 0xea, 0x0f, 0x0c, 0x92, 0x33, + 0x24, 0xbe, 0x0f, 0xcc, 0x03, 0x99, 0x84, 0x3f, 0x37, 0xc2, 0xa1, 0x00, 0x17, 0x14, 0x88, 0x80, + 0x32, 0x70, 0x8f, 0x06, 0xc4, 0x27, 0xcc, 0xb9, 0x90, 0x4e, 0xa9, 0x49, 0x09, 0xe2, 0x8c, 0x28, + 0xf3, 0x12, 0xd5, 0xa3, 0x29, 0x95, 0x73, 0xe6, 0xd2, 0xf8, 0x52, 0x42, 0x6b, 0xbe, 0xad, 0xa2, + 0x5a, 0x27, 0x89, 0x6e, 0x27, 0xcb, 0xc2, 0x7b, 0xa8, 0x16, 0x80, 0x18, 0xf9, 0xb0, 0x7d, 0x51, + 0xa7, 0x55, 0xda, 0xb8, 0xb5, 0xb9, 0xba, 0xf5, 0xa0, 0x95, 0xe6, 0xb6, 0x7a, 0xa6, 0xca, 0x9e, + 0x48, 0xc3, 0x47, 0xe8, 0x9e, 0xb1, 0x9a, 0x6e, 0xb2, 0x18, 0xeb, 0xbd, 0x8d, 0xd2, 0xe6, 0xea, + 0xd6, 0xa7, 0x26, 0xef, 0x69, 0x9e, 0xb4, 0xbb, 0xf8, 0xfa, 0xaf, 0x87, 0x25, 0x3b, 0x9f, 0x83, + 0x7b, 0x68, 0x6d, 0xbc, 0xba, 0x4e, 0xc0, 0x23, 0xa6, 0xa4, 0x75, 0x4b, 0xa3, 0x33, 0xa5, 0x76, + 0x4c, 0x51, 0x02, 0xcd, 0xe6, 0xc6, 0xb8, 0x80, 0xbc, 0xdc, 0x8f, 0x82, 0xbe, 0x20, 0x4c, 0xfe, + 0x06, 0x42, 0x5a, 0x8b, 0x79, 0xb8, 0x9e, 0x29, 0x1a, 0xe3, 0x32, 0xb9, 0xf8, 0x6b, 0x54, 0x71, + 0x38, 0x65, 0xef, 0x60, 0xef, 0xeb, 0x6d, 0xac, 0x9b, 0xb0, 0xed, 0x94, 0xc4, 0x36, 0x13, 0xf0, + 0x57, 0xa8, 0x2e, 0xe0, 0x79, 0x44, 0x05, 0xf4, 0xf9, 0xee, 0xf3, 0x88, 0xf8, 0x72, 0x8f, 0x51, + 0x45, 0x89, 0x02, 0xb7, 0x7b, 0x62, 0x2d, 0x6d, 0x94, 0x36, 0x57, 0xec, 0x4b, 0x14, 0xb8, 0x8b, + 0x3e, 0x4e, 0xa2, 0x8f, 0x05, 0x0f, 0x26, 0x09, 0xcb, 0x9a, 0x70, 0xa9, 0x06, 0x3f, 0x41, 0x1b, + 0x17, 0x77, 0xd8, 0xe1, 0x20, 0xf7, 0xb9, 0xd2, 0xa2, 0x34, 0x67, 0x45, 0x73, 0xae, 0xd4, 0xe1, + 0x7d, 0xd4, 0x4c, 0xdd, 0x6b, 0x1a, 0xed, 0xb6, 0xa6, 0x15, 0x50, 0xe2, 0xc7, 0xa8, 0xc1, 0x8f, + 0x41, 0x08, 0xea, 0x82, 0x8c, 0x75, 0x07, 0x91, 0xf2, 0x38, 0x65, 0xde, 0xf8, 0x79, 0x4b, 0x0b, + 0x69, 0xd6, 0x15, 0xaa, 0x78, 0x9f, 0x2e, 0x14, 0x7d, 0xbe, 0xc7, 0x1c, 0x1e, 0x18, 0x94, 0xd5, + 0xf3, 0x7d, 0xba, 0x4c, 0x83, 0x7f, 0x42, 0x77, 0x49, 0xa4, 0xf8, 0x0e, 0xf8, 0x10, 0x3f, 0xd7, + 0x83, 0x50, 0xbf, 0x69, 0x56, 0x59, 0x37, 0xd0, 0x27, 0x99, 0x7e, 0x9c, 0x14, 0x26, 0x4d, 0x94, + 0xc7, 0xc0, 0x1d, 0x54, 0x09, 0x22, 0xa9, 0x0e, 0x5e, 0xb0, 0x7e, 0x4c, 0x91, 0x56, 0x55, 0x37, + 0xd2, 0x47, 0x99, 0xae, 0x4c, 0x4b, 0x6c, 0x33, 0x03, 0xff, 0x82, 0xee, 0xbb, 0x27, 0x8c, 0x04, + 0xd4, 0x39, 0x54, 0x5c, 0xa4, 0xdf, 0xed, 0x35, 0xcd, 0xca, 0xbc, 0x8b, 0x3b, 0x79, 0x5a, 0x7b, + 0x0a, 0x22, 0x86, 0x83, 0x1a, 0x1e, 0x52, 0x8f, 0x11, 0x15, 0x19, 0xf0, 0x5a, 0x1e, 0x7c, 0xb7, + 0xff, 0xed, 0xa4, 0xd6, 0x9e, 0x82, 0xc0, 0xbb, 0xa8, 0x2c, 0x81, 0xb9, 0x20, 0xb6, 0x87, 0xe0, + 0x8c, 0xa4, 0x75, 0x47, 0x6f, 0x68, 0x66, 0xed, 0x1d, 0xd7, 0x15, 0x20, 0xe5, 0xb9, 0x24, 0xd9, + 0x4a, 0x23, 0x0d, 0x7f, 0x87, 0xd6, 0x04, 0x38, 0x34, 0xa4, 0xc0, 0x54, 0x42, 0xc2, 0x45, 0x49, + 0xd9, 0xcc, 0x18, 0x46, 0xcf, 0xdb, 0x90, 0x8f, 0xcb, 0xba, 0x5b, 0x18, 0x96, 0xc9, 0xc4, 0xdf, + 0xa0, 0x0a, 0xf1, 0x55, 0x9f, 0x06, 0x90, 0xa0, 0xd6, 0x73, 0x51, 0x69, 0x49, 0x82, 0x32, 0xf3, + 0xf0, 0x23, 0x54, 0x8d, 0x1f, 0xfa, 0x53, 0x41, 0xb9, 0xa0, 0x8a, 0xbe, 0x02, 0xeb, 0x9e, 0xee, + 0xdb, 0xcc, 0xd5, 0xd8, 0xe1, 0x8f, 0xb9, 0xa2, 0xcc, 0x4b, 0x3d, 0xa8, 0xfb, 0x79, 0x0e, 0xff, + 0xcc, 0x54, 0xd9, 0x13, 0x69, 0xb8, 0x85, 0x30, 0xf1, 0x7d, 0xfe, 0xa2, 0x4b, 0x9c, 0x11, 0xb8, + 0x3d, 0xca, 0xe2, 0xb8, 0xf5, 0x81, 0xbe, 0x6d, 0x4e, 0x04, 0x6f, 0xa1, 0x75, 0x7d, 0xf5, 0x30, + 0x04, 0x87, 0x12, 0xff, 0x47, 0x41, 0xc2, 0x30, 0xce, 0xb0, 0x74, 0x46, 0x6e, 0x0c, 0x1f, 0x20, + 0x0c, 0xc7, 0xc1, 0xf7, 0x11, 0x88, 0x93, 0x54, 0xc1, 0x1f, 0xea, 0x82, 0x1f, 0x66, 0x3a, 0xeb, + 0x59, 0xcf, 0xd4, 0xd9, 0x39, 0xa9, 0xf8, 0x57, 0xb4, 0x1e, 0x49, 0x10, 0xe3, 0x57, 0xf7, 0x10, + 0x54, 0x5c, 0x9b, 0xb4, 0xea, 0x7a, 0xdf, 0x9b, 0x26, 0xf2, 0x87, 0x1c, 0x65, 0xb2, 0xfd, 0xb9, + 0x94, 0x27, 0x8b, 0x2b, 0x95, 0x5a, 0xb5, 0xf9, 0x07, 0x42, 0x56, 0xd6, 0x67, 0xe6, 0x23, 0xf6, + 0x7f, 0x38, 0x62, 0x8b, 0x8c, 0xc7, 0xe5, 0x82, 0xe3, 0x71, 0xca, 0x08, 0x59, 0x99, 0xc5, 0x08, + 0xb9, 0x7d, 0x83, 0x23, 0x04, 0xcd, 0x72, 0x84, 0xac, 0xfe, 0xfb, 0x11, 0x92, 0xe3, 0xfd, 0xe5, + 0x9b, 0xf4, 0xfe, 0xca, 0xcd, 0x79, 0x7f, 0xf5, 0xc6, 0xbc, 0x7f, 0xad, 0xb0, 0xf7, 0xd7, 0xae, + 0xe7, 0xfd, 0xf9, 0xbe, 0x7c, 0xe7, 0xda, 0xbe, 0xdc, 0xfc, 0x13, 0x21, 0x2b, 0xfb, 0x5d, 0x35, + 0xf7, 0xcc, 0xff, 0xa0, 0x67, 0x5e, 0x75, 0xac, 0x58, 0x2a, 0x70, 0xac, 0x28, 0x76, 0x14, 0x58, + 0x2e, 0x7c, 0x14, 0x98, 0x7b, 0xe7, 0x6c, 0xbc, 0x33, 0xfb, 0xf9, 0x5d, 0xbe, 0xf6, 0xe7, 0xf7, + 0xdc, 0x35, 0x67, 0xe1, 0x9a, 0x5d, 0xfb, 0xf5, 0x69, 0xa3, 0xf4, 0xe6, 0xb4, 0x51, 0xfa, 0xfb, + 0xb4, 0x51, 0xfa, 0xfd, 0xac, 0xb1, 0xf0, 0xe6, 0xac, 0xb1, 0xf0, 0xf6, 0xac, 0xb1, 0xf0, 0xf3, + 0x97, 0x1e, 0x55, 0xc3, 0x68, 0xd0, 0x72, 0x78, 0xd0, 0x1e, 0x50, 0x35, 0x20, 0xae, 0x07, 0xf2, + 0xdd, 0x2f, 0x67, 0x48, 0x28, 0x6b, 0xbf, 0x6c, 0x1b, 0x7f, 0x16, 0xa9, 0x93, 0x10, 0xe4, 0x60, + 0x49, 0xff, 0x3f, 0xf4, 0xc5, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd2, 0x44, 0xac, 0x1f, 0x03, + 0x13, 0x00, 0x00, } func (m *ApprovalCriteria) Marshal() (dAtA []byte, err error) { diff --git a/x/tokenization/types/approval_tracking.pb.go b/x/tokenization/types/approval_tracking.pb.go index 96cc8e32..96f59934 100644 --- a/x/tokenization/types/approval_tracking.pb.go +++ b/x/tokenization/types/approval_tracking.pb.go @@ -334,44 +334,45 @@ func init() { } var fileDescriptor_645fcd736df0fa0b = []byte{ - // 592 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x55, 0x4f, 0x6f, 0xd3, 0x3c, - 0x18, 0x6f, 0xde, 0x4e, 0xdb, 0xbb, 0x67, 0x83, 0x49, 0x1e, 0x9b, 0xa2, 0x0d, 0xb2, 0xaa, 0xec, - 0x50, 0x71, 0x68, 0xa6, 0x81, 0x10, 0x47, 0x5a, 0x06, 0x52, 0xa5, 0xb1, 0x4d, 0x51, 0x77, 0xe1, - 0x00, 0xb8, 0xcd, 0xd3, 0xd4, 0x5a, 0x6a, 0x47, 0xb6, 0x5b, 0x5a, 0x3e, 0x05, 0x1f, 0x83, 0x8f, - 0xb2, 0xe3, 0xb8, 0x01, 0x87, 0x09, 0xb5, 0x5f, 0x04, 0x25, 0x29, 0x6a, 0x93, 0x79, 0x65, 0x37, - 0x2e, 0x95, 0xed, 0xdf, 0x9f, 0x3e, 0xf6, 0xcf, 0x4f, 0x0c, 0xfb, 0x5a, 0x5c, 0x20, 0x67, 0x9f, - 0xa9, 0x66, 0x82, 0xbb, 0x34, 0x8a, 0xa4, 0x18, 0xd0, 0xf0, 0x83, 0x96, 0xb4, 0x7d, 0xc1, 0x78, - 0x50, 0x8d, 0xa4, 0xd0, 0x82, 0xac, 0xcf, 0xb3, 0x76, 0x1e, 0x04, 0x22, 0x10, 0x09, 0xe0, 0xc6, - 0xa3, 0x94, 0xb3, 0xb3, 0x9b, 0x71, 0x6a, 0xd1, 0x90, 0xf2, 0x36, 0xaa, 0x14, 0x2c, 0x4f, 0x2c, - 0xd8, 0xac, 0xf5, 0xb5, 0x38, 0xc2, 0x10, 0x63, 0xfc, 0x34, 0x8a, 0x7f, 0x15, 0x29, 0xc1, 0x1a, - 0xed, 0x68, 0x94, 0xa7, 0x1c, 0xcf, 0x15, 0xda, 0x56, 0xc9, 0xaa, 0xfc, 0xef, 0xcd, 0x2f, 0x91, - 0x97, 0xb0, 0x9b, 0x4e, 0x07, 0x28, 0x69, 0x18, 0xbe, 0xa5, 0xc3, 0x93, 0x7e, 0xaf, 0x29, 0x29, - 0x57, 0x1d, 0x94, 0xca, 0xfe, 0x2f, 0x51, 0x2c, 0xa2, 0x90, 0xe7, 0xb0, 0x4d, 0xc3, 0x50, 0x7c, - 0x7a, 0x25, 0xfa, 0x5c, 0xa3, 0x8c, 0xa8, 0xd4, 0xa3, 0xb3, 0xbe, 0x0c, 0xd0, 0x2e, 0x26, 0xe2, - 0x5b, 0x50, 0x72, 0x00, 0x9b, 0x09, 0x92, 0xcc, 0x1a, 0x9d, 0xd7, 0xc3, 0x88, 0x49, 0xf4, 0xed, - 0xa5, 0x44, 0x64, 0x82, 0xca, 0x03, 0x20, 0x1e, 0x2a, 0xd4, 0x4d, 0xd6, 0xc3, 0x46, 0xec, 0x36, - 0xa0, 0xa1, 0x22, 0x4f, 0x60, 0x55, 0x69, 0x2a, 0x93, 0xd5, 0x64, 0x87, 0xab, 0xf5, 0xf5, 0xcb, - 0xeb, 0xbd, 0xc2, 0xcf, 0xeb, 0xbd, 0xa5, 0x73, 0xc6, 0xb5, 0x37, 0x83, 0xc9, 0x33, 0xb8, 0xcf, - 0xa6, 0xc2, 0x63, 0xe4, 0x81, 0xee, 0x26, 0x1b, 0xcc, 0x0b, 0x72, 0x9c, 0xf2, 0xb7, 0x22, 0x6c, - 0xd4, 0xa6, 0xd1, 0xd5, 0x7a, 0xf1, 0x46, 0x14, 0xa9, 0xc3, 0x96, 0x48, 0xcf, 0x23, 0x8b, 0x18, - 0x2b, 0x30, 0x53, 0xc9, 0x31, 0xec, 0x44, 0x28, 0x9b, 0xa2, 0xe6, 0xfb, 0x12, 0x95, 0xca, 0x19, - 0x99, 0x2a, 0x5b, 0xc0, 0x27, 0x67, 0xf0, 0x30, 0x42, 0xf9, 0x46, 0x8a, 0x9e, 0xd9, 0xaf, 0x68, - 0xf0, 0x5b, 0xa8, 0x20, 0xef, 0xe1, 0x71, 0x84, 0xb2, 0xc1, 0x99, 0x66, 0x54, 0xa3, 0x5f, 0x1f, - 0x99, 0x8d, 0x97, 0x0c, 0xc6, 0x77, 0x11, 0x92, 0x0a, 0x6c, 0xd0, 0x64, 0xd4, 0x8c, 0xdb, 0x01, - 0x65, 0xc3, 0xb7, 0x97, 0x63, 0x2f, 0x2f, 0xbf, 0x4c, 0xce, 0x80, 0xc8, 0x1b, 0xc9, 0xdb, 0x2b, - 0x25, 0xab, 0xb2, 0x76, 0x58, 0xaa, 0xce, 0x77, 0x46, 0xf5, 0xe6, 0x0d, 0xf1, 0x0c, 0xda, 0xf2, - 0x8f, 0x22, 0x6c, 0xe4, 0x6f, 0xf2, 0x11, 0x6c, 0x0b, 0x73, 0x1b, 0x98, 0x42, 0xbd, 0x85, 0x4b, - 0x4e, 0x60, 0x77, 0x3e, 0x25, 0x53, 0x47, 0xe5, 0xad, 0x16, 0x09, 0x88, 0x07, 0x8f, 0xb2, 0x29, - 0xe5, 0x1d, 0x4d, 0xc1, 0x2e, 0x96, 0x90, 0x8f, 0xb0, 0x6f, 0x0c, 0x28, 0x6f, 0x6d, 0x8a, 0xf6, - 0x4e, 0xca, 0x7f, 0x9a, 0xed, 0x57, 0x6b, 0xd6, 0xaf, 0xd3, 0xff, 0x21, 0x07, 0xb0, 0xce, 0xff, - 0x96, 0x68, 0x86, 0x41, 0x5c, 0x58, 0x49, 0x4b, 0x8d, 0x33, 0x2b, 0x56, 0xd6, 0x0e, 0xb7, 0xb2, - 0xc5, 0xd4, 0xd3, 0x4f, 0xb0, 0xf7, 0x87, 0x45, 0x0e, 0xe1, 0x5e, 0x48, 0x95, 0x3e, 0x8f, 0xfc, - 0xf8, 0x64, 0x6a, 0xe6, 0x8e, 0xcb, 0x52, 0xea, 0xde, 0xe5, 0xd8, 0xb1, 0xae, 0xc6, 0x8e, 0xf5, - 0x6b, 0xec, 0x58, 0x5f, 0x26, 0x4e, 0xe1, 0x6a, 0xe2, 0x14, 0xbe, 0x4f, 0x9c, 0xc2, 0xbb, 0x17, - 0x01, 0xd3, 0xdd, 0x7e, 0xab, 0xda, 0x16, 0x3d, 0xb7, 0xc5, 0x74, 0x8b, 0xfa, 0x01, 0xaa, 0xd9, - 0xa8, 0xdd, 0xa5, 0x8c, 0xbb, 0x43, 0x37, 0xf3, 0x2a, 0xe8, 0x51, 0x84, 0xaa, 0xb5, 0x9c, 0xbc, - 0x09, 0x4f, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x46, 0x65, 0x00, 0x5b, 0x7c, 0x06, 0x00, 0x00, + // 597 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xcf, 0x4e, 0x13, 0x41, + 0x18, 0xef, 0xda, 0x06, 0xe4, 0x03, 0x25, 0x19, 0x84, 0x6c, 0x40, 0x97, 0xa6, 0x72, 0x68, 0x3c, + 0x74, 0x09, 0x1a, 0xe3, 0xd1, 0xae, 0x68, 0xd2, 0x04, 0x81, 0x6c, 0x8a, 0x07, 0x0f, 0xea, 0xb4, + 0xfb, 0xb1, 0x4c, 0xd8, 0xce, 0x6c, 0x66, 0xa6, 0x15, 0x7c, 0x0a, 0x1f, 0xc3, 0x47, 0xe1, 0xc8, + 0x4d, 0xe3, 0x01, 0x4d, 0xfb, 0x22, 0x66, 0x77, 0x6b, 0xda, 0x5d, 0x86, 0xca, 0xd1, 0x4b, 0x33, + 0x33, 0xbf, 0x3f, 0xfd, 0x66, 0x7e, 0xf3, 0xed, 0xc0, 0x96, 0x16, 0xa7, 0xc8, 0xd9, 0x17, 0xaa, + 0x99, 0xe0, 0x2e, 0x8d, 0x63, 0x29, 0x06, 0x34, 0xfa, 0xa8, 0x25, 0xed, 0x9e, 0x32, 0x1e, 0x36, + 0x62, 0x29, 0xb4, 0x20, 0x4b, 0xd3, 0xac, 0xf5, 0x07, 0xa1, 0x08, 0x45, 0x0a, 0xb8, 0xc9, 0x28, + 0xe3, 0xac, 0x6f, 0xe4, 0x9c, 0x3a, 0x34, 0xa2, 0xbc, 0x8b, 0x2a, 0x03, 0x6b, 0x23, 0x0b, 0x56, + 0x9a, 0x7d, 0x2d, 0x76, 0x31, 0xc2, 0x04, 0x3f, 0x88, 0x93, 0x5f, 0x45, 0xaa, 0xb0, 0x48, 0x8f, + 0x35, 0xca, 0x03, 0x8e, 0x47, 0x0a, 0x6d, 0xab, 0x6a, 0xd5, 0xef, 0xfa, 0xd3, 0x4b, 0xe4, 0x25, + 0x6c, 0x64, 0xd3, 0x01, 0x4a, 0x1a, 0x45, 0x6f, 0xe9, 0xd9, 0x7e, 0xbf, 0xd7, 0x96, 0x94, 0xab, + 0x63, 0x94, 0xca, 0xbe, 0x93, 0x2a, 0x66, 0x51, 0xc8, 0x73, 0x58, 0xa3, 0x51, 0x24, 0x3e, 0xbf, + 0x12, 0x7d, 0xae, 0x51, 0xc6, 0x54, 0xea, 0xf3, 0xc3, 0xbe, 0x0c, 0xd1, 0x2e, 0xa7, 0xe2, 0x1b, + 0x50, 0xb2, 0x0d, 0x2b, 0x29, 0x92, 0xce, 0x5a, 0xc7, 0xaf, 0xcf, 0x62, 0x26, 0x31, 0xb0, 0x2b, + 0xa9, 0xc8, 0x04, 0xd5, 0x06, 0x40, 0x7c, 0x54, 0xa8, 0xdb, 0xac, 0x87, 0xad, 0xc4, 0x6d, 0x40, + 0x23, 0x45, 0x9e, 0xc0, 0x82, 0xd2, 0x54, 0xa6, 0xab, 0xe9, 0x0e, 0x17, 0xbc, 0xa5, 0x8b, 0xab, + 0xcd, 0xd2, 0xcf, 0xab, 0xcd, 0xca, 0x11, 0xe3, 0xda, 0x9f, 0xc0, 0xe4, 0x19, 0xdc, 0x67, 0x63, + 0xe1, 0x1e, 0xf2, 0x50, 0x9f, 0xa4, 0x1b, 0x2c, 0x0a, 0x0a, 0x9c, 0xda, 0xf7, 0x32, 0x2c, 0x37, + 0xc7, 0xd1, 0x35, 0x7b, 0xc9, 0x46, 0x14, 0xf1, 0x60, 0x55, 0x64, 0xe7, 0x91, 0x47, 0x8c, 0x15, + 0x98, 0xa9, 0x64, 0x0f, 0xd6, 0x63, 0x94, 0x6d, 0xd1, 0x0c, 0x02, 0x89, 0x4a, 0x15, 0x8c, 0x4c, + 0x95, 0xcd, 0xe0, 0x93, 0x43, 0x78, 0x18, 0xa3, 0x7c, 0x23, 0x45, 0xcf, 0xec, 0x57, 0x36, 0xf8, + 0xcd, 0x54, 0x90, 0x0f, 0xf0, 0x38, 0x46, 0xd9, 0xe2, 0x4c, 0x33, 0xaa, 0x31, 0xf0, 0xce, 0xcd, + 0xc6, 0x15, 0x83, 0xf1, 0x6d, 0x84, 0xa4, 0x0e, 0xcb, 0x34, 0x1d, 0xb5, 0x93, 0x76, 0x40, 0xd9, + 0x0a, 0xec, 0xb9, 0xc4, 0xcb, 0x2f, 0x2e, 0x93, 0x77, 0x40, 0xe4, 0xb5, 0xe4, 0xed, 0xf9, 0xaa, + 0x55, 0x5f, 0xdc, 0xa9, 0x36, 0xa6, 0x3b, 0xa3, 0x71, 0xfd, 0x86, 0x78, 0x95, 0x8b, 0xab, 0x4d, + 0xcb, 0x37, 0x38, 0xd4, 0x7e, 0x95, 0x61, 0xb9, 0x78, 0x9f, 0x77, 0x61, 0x4d, 0x98, 0x9b, 0xc1, + 0x14, 0xed, 0x0d, 0x5c, 0xb2, 0x0f, 0x1b, 0xd3, 0x59, 0x99, 0xfa, 0xaa, 0x68, 0x35, 0x4b, 0x40, + 0x7c, 0x78, 0x94, 0xcf, 0xaa, 0xe8, 0x68, 0x8a, 0x77, 0xb6, 0x84, 0x7c, 0x82, 0x2d, 0x63, 0x4c, + 0x45, 0x6b, 0x53, 0xc0, 0xb7, 0x52, 0xfe, 0x07, 0x09, 0x7f, 0xb3, 0x26, 0xbd, 0x3b, 0xfe, 0x37, + 0xb2, 0x0d, 0x4b, 0xfc, 0x5f, 0xb9, 0xe6, 0x18, 0xc4, 0x85, 0xf9, 0xac, 0xe0, 0x24, 0xb9, 0x72, + 0x7d, 0x71, 0x67, 0x35, 0x5f, 0x92, 0x97, 0x7d, 0x8e, 0xfd, 0xbf, 0x2c, 0xb2, 0x03, 0xf7, 0x22, + 0xaa, 0xf4, 0x51, 0x1c, 0x24, 0xe7, 0xd3, 0x34, 0x77, 0x5f, 0x9e, 0xe2, 0xf9, 0x17, 0x43, 0xc7, + 0xba, 0x1c, 0x3a, 0xd6, 0xef, 0xa1, 0x63, 0x7d, 0x1d, 0x39, 0xa5, 0xcb, 0x91, 0x53, 0xfa, 0x31, + 0x72, 0x4a, 0xef, 0x5f, 0x84, 0x4c, 0x9f, 0xf4, 0x3b, 0x8d, 0xae, 0xe8, 0xb9, 0x1d, 0xa6, 0x3b, + 0x34, 0x08, 0x51, 0x4d, 0x46, 0xdd, 0x13, 0xca, 0xb8, 0x7b, 0xe6, 0xe6, 0x5e, 0x08, 0x7d, 0x1e, + 0xa3, 0xea, 0xcc, 0xa5, 0xef, 0xc3, 0xd3, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xef, 0x79, 0xbe, + 0x81, 0x88, 0x06, 0x00, 0x00, } func (m *AutoDeletionOptions) Marshal() (dAtA []byte, err error) { diff --git a/x/tokenization/types/approvals.pb.go b/x/tokenization/types/approvals.pb.go index cb2bda5b..ea7922a3 100644 --- a/x/tokenization/types/approvals.pb.go +++ b/x/tokenization/types/approvals.pb.go @@ -468,42 +468,43 @@ func init() { func init() { proto.RegisterFile("tokenization/approvals.proto", fileDescriptor_c3a3af987e3fdf26) } var fileDescriptor_c3a3af987e3fdf26 = []byte{ - // 560 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x95, 0x4f, 0x6f, 0xd3, 0x3e, - 0x18, 0xc7, 0x9b, 0xa5, 0xeb, 0x1f, 0x77, 0xfb, 0xfd, 0x86, 0x35, 0x89, 0x50, 0x50, 0x56, 0x4d, - 0xd3, 0xd4, 0x03, 0x6a, 0xa5, 0xed, 0xc2, 0x05, 0xa1, 0x76, 0xbb, 0x14, 0x4d, 0x42, 0x8a, 0xd8, - 0x85, 0x0b, 0x72, 0x93, 0xa7, 0xa9, 0xb5, 0xc4, 0x8e, 0x6c, 0xb7, 0x30, 0x5e, 0x05, 0xef, 0x85, - 0x37, 0xb1, 0xe3, 0x8e, 0x88, 0xc3, 0x84, 0xda, 0x03, 0xaf, 0x81, 0x1b, 0xca, 0x9f, 0xb6, 0x49, - 0x3a, 0xba, 0xaa, 0x82, 0x1b, 0x37, 0xfb, 0xf9, 0x7e, 0xfd, 0xf8, 0x6b, 0x7f, 0x94, 0x18, 0x3d, - 0x53, 0xfc, 0x0a, 0x18, 0xfd, 0x44, 0x14, 0xe5, 0xac, 0x4d, 0x82, 0x40, 0xf0, 0x31, 0xf1, 0x64, - 0x2b, 0x10, 0x5c, 0x71, 0xbc, 0x93, 0x56, 0xeb, 0xfb, 0x2e, 0x77, 0x79, 0x24, 0xb4, 0xc3, 0x51, - 0xec, 0xa9, 0x3f, 0xcd, 0x74, 0xe8, 0x13, 0x8f, 0x30, 0x1b, 0x92, 0x06, 0xf5, 0xa3, 0x7b, 0xdb, - 0xbf, 0xb7, 0x05, 0x55, 0x20, 0x28, 0x89, 0x5d, 0x87, 0x3f, 0x75, 0x84, 0xcf, 0xb8, 0xe7, 0x81, - 0x1d, 0xda, 0x3a, 0x89, 0x0b, 0x9b, 0x08, 0x0d, 0x04, 0xf7, 0x2f, 0xa8, 0x54, 0x3d, 0xc7, 0xd0, - 0x1a, 0x5a, 0xb3, 0x6a, 0xa5, 0x2a, 0xb8, 0x8e, 0x2a, 0x8a, 0x27, 0xea, 0x56, 0xa4, 0xce, 0xe7, - 0xf8, 0x39, 0x7a, 0x44, 0x19, 0x55, 0x94, 0x28, 0x70, 0xba, 0xd7, 0x89, 0x49, 0x8f, 0x4c, 0xcb, - 0x02, 0x7e, 0x89, 0x76, 0x95, 0x20, 0x4c, 0x0e, 0x40, 0xbc, 0xa5, 0x3e, 0x48, 0xa3, 0xd8, 0xd0, - 0x9b, 0xb5, 0x93, 0xc7, 0xad, 0x74, 0xfc, 0xd6, 0x25, 0x65, 0xca, 0x22, 0xcc, 0x05, 0x2b, 0xeb, - 0xc6, 0xa7, 0x61, 0x90, 0x2b, 0x60, 0x3d, 0x47, 0x1a, 0xdb, 0xab, 0x57, 0xce, 0x8d, 0xf8, 0x15, - 0xfa, 0x8f, 0x7f, 0x60, 0x20, 0xe4, 0x90, 0x06, 0xf1, 0xa6, 0xa5, 0xd5, 0x4b, 0x73, 0x76, 0xbc, - 0x87, 0xf4, 0x91, 0xa0, 0x46, 0x39, 0x3a, 0x54, 0x38, 0x0c, 0x2f, 0xcc, 0x1e, 0x49, 0xc5, 0xfd, - 0x73, 0xa2, 0x88, 0x51, 0x89, 0x2f, 0x6c, 0x51, 0x09, 0xf5, 0x19, 0x82, 0x9e, 0x63, 0x54, 0x63, - 0x7d, 0x51, 0xc1, 0xaf, 0xd1, 0xde, 0x6c, 0x76, 0x96, 0x10, 0x32, 0x50, 0x43, 0x6b, 0xd6, 0x4e, - 0xcc, 0x6c, 0xa8, 0x4e, 0xce, 0x65, 0x2d, 0xad, 0xc3, 0xc7, 0xa8, 0x3c, 0x06, 0x21, 0x29, 0x67, - 0x46, 0x2d, 0xdc, 0xa8, 0xbb, 0x73, 0x73, 0x77, 0x50, 0xf8, 0x76, 0x77, 0x50, 0x8c, 0x4e, 0x34, - 0x13, 0x0f, 0xa7, 0x3a, 0xda, 0xbf, 0x94, 0x20, 0xde, 0x8c, 0x94, 0xcb, 0x29, 0x73, 0xe7, 0xf4, - 0xd3, 0x74, 0xb5, 0x75, 0xe8, 0x6e, 0xad, 0x4d, 0x57, 0xdf, 0x98, 0x6e, 0x71, 0x73, 0xba, 0xdb, - 0x1b, 0xd1, 0x2d, 0xfd, 0x8e, 0x6e, 0xf9, 0x01, 0xba, 0x95, 0x25, 0xba, 0xd6, 0x3d, 0x74, 0xab, - 0x11, 0xdd, 0xe3, 0x6c, 0xa8, 0x3c, 0x8a, 0xf5, 0x28, 0xa3, 0x55, 0x94, 0x7f, 0x24, 0x94, 0x7b, - 0xcc, 0xe6, 0x7e, 0x9a, 0xf2, 0x43, 0xdf, 0xf8, 0x3f, 0xd2, 0x7f, 0x93, 0x74, 0x1e, 0xc7, 0x1f, - 0x20, 0xfd, 0x45, 0x43, 0x4f, 0x3a, 0xf3, 0x28, 0xc0, 0x14, 0x1d, 0x50, 0x10, 0xe7, 0xa0, 0x08, - 0xf5, 0x64, 0x2e, 0xb9, 0xb6, 0x94, 0xfc, 0x08, 0xed, 0xce, 0x66, 0x17, 0x30, 0x06, 0x2f, 0x41, - 0x9d, 0x2d, 0xe2, 0x26, 0xfa, 0x3f, 0x2e, 0x80, 0xe8, 0x38, 0x8e, 0x00, 0x29, 0x93, 0x5f, 0x7b, - 0xbe, 0x9c, 0x4e, 0x5d, 0x5c, 0x91, 0xba, 0x6b, 0xdd, 0x4c, 0x4c, 0xed, 0x76, 0x62, 0x6a, 0xdf, - 0x27, 0xa6, 0xf6, 0x79, 0x6a, 0x16, 0x6e, 0xa7, 0x66, 0xe1, 0xeb, 0xd4, 0x2c, 0xbc, 0x7b, 0xe1, - 0x52, 0x35, 0x1c, 0xf5, 0x5b, 0x36, 0xf7, 0xdb, 0x7d, 0xaa, 0xfa, 0xc4, 0x71, 0x41, 0x2e, 0x46, - 0xf6, 0x90, 0x50, 0xd6, 0xfe, 0xd8, 0xce, 0xbc, 0x73, 0xea, 0x3a, 0x00, 0xd9, 0x2f, 0x45, 0x8f, - 0xdb, 0xe9, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x8d, 0x9b, 0xcd, 0x63, 0x07, 0x00, 0x00, + // 566 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x95, 0x4f, 0x6f, 0x12, 0x41, + 0x18, 0xc6, 0xd9, 0x2e, 0xe5, 0xcf, 0xd0, 0x6a, 0x9d, 0x34, 0x71, 0x45, 0xb3, 0x90, 0xa6, 0x69, + 0x38, 0x18, 0x48, 0xda, 0x8b, 0x17, 0x63, 0xa0, 0xbd, 0x90, 0x34, 0xd1, 0x10, 0x9b, 0x18, 0x2f, + 0x66, 0xd8, 0x7d, 0x59, 0x26, 0x5d, 0x66, 0x36, 0x33, 0x03, 0x5a, 0x3f, 0x85, 0xdf, 0xc5, 0x2f, + 0xc1, 0xb1, 0x47, 0xe3, 0x81, 0x18, 0x38, 0x79, 0xf0, 0x33, 0x68, 0xf6, 0x0f, 0xb0, 0xbb, 0x54, + 0x5a, 0x89, 0xde, 0xbc, 0xcd, 0xbc, 0xcf, 0x33, 0xef, 0x3c, 0x33, 0x3f, 0xd8, 0x41, 0x4f, 0x14, + 0xbf, 0x04, 0x46, 0x3f, 0x12, 0x45, 0x39, 0x6b, 0x10, 0xcf, 0x13, 0x7c, 0x44, 0x5c, 0x59, 0xf7, + 0x04, 0x57, 0x1c, 0xef, 0xc4, 0xd5, 0xf2, 0xbe, 0xc3, 0x1d, 0x1e, 0x08, 0x0d, 0x7f, 0x14, 0x7a, + 0xca, 0x8f, 0x13, 0x1d, 0xba, 0xc4, 0x25, 0xcc, 0x82, 0xa8, 0x41, 0xf9, 0xf0, 0xc6, 0xf6, 0xef, + 0x2c, 0x41, 0x15, 0x08, 0x4a, 0x42, 0xd7, 0xc1, 0x4f, 0x1d, 0xe1, 0x53, 0xee, 0xba, 0x60, 0xf9, + 0xb6, 0x66, 0xe4, 0xc2, 0x26, 0x42, 0x3d, 0xc1, 0x07, 0xe7, 0x54, 0xaa, 0xb6, 0x6d, 0x68, 0x55, + 0xad, 0x56, 0xec, 0xc4, 0x2a, 0xb8, 0x8c, 0x0a, 0x8a, 0x47, 0xea, 0x56, 0xa0, 0x2e, 0xe6, 0xf8, + 0x29, 0x7a, 0x40, 0x19, 0x55, 0x94, 0x28, 0xb0, 0x5b, 0x57, 0x91, 0x49, 0x0f, 0x4c, 0xab, 0x02, + 0x7e, 0x8e, 0x76, 0x95, 0x20, 0x4c, 0xf6, 0x40, 0xbc, 0xa6, 0x03, 0x90, 0x46, 0xb6, 0xaa, 0xd7, + 0x4a, 0xc7, 0x0f, 0xeb, 0xf1, 0xf8, 0xf5, 0x0b, 0xca, 0x54, 0x87, 0x30, 0x07, 0x3a, 0x49, 0x37, + 0x3e, 0xf1, 0x83, 0x5c, 0x02, 0x6b, 0xdb, 0xd2, 0xd8, 0x5e, 0xbf, 0x72, 0x61, 0xc4, 0x2f, 0xd0, + 0x3d, 0xfe, 0x9e, 0x81, 0x90, 0x7d, 0xea, 0x85, 0x9b, 0xe6, 0xd6, 0x2f, 0x4d, 0xd9, 0xf1, 0x1e, + 0xd2, 0x87, 0x82, 0x1a, 0xf9, 0xe0, 0x50, 0xfe, 0xd0, 0xbf, 0x30, 0x6b, 0x28, 0x15, 0x1f, 0x9c, + 0x11, 0x45, 0x8c, 0x42, 0x78, 0x61, 0xcb, 0x8a, 0xaf, 0xcf, 0x11, 0xb4, 0x6d, 0xa3, 0x18, 0xea, + 0xcb, 0x0a, 0x7e, 0x85, 0xf6, 0xe6, 0xb3, 0xd3, 0x88, 0x90, 0x81, 0xaa, 0x5a, 0xad, 0x74, 0x6c, + 0x26, 0x43, 0x35, 0x53, 0xae, 0x56, 0x76, 0x3c, 0xa9, 0x68, 0x9d, 0x95, 0xd5, 0xf8, 0x08, 0xe5, + 0x47, 0x20, 0x24, 0xe5, 0xcc, 0x28, 0xf9, 0xdb, 0xb5, 0x76, 0xc6, 0x93, 0x4a, 0xe6, 0xeb, 0xa4, + 0x92, 0x0d, 0xce, 0x35, 0x17, 0x0f, 0xbe, 0xeb, 0x68, 0xff, 0x42, 0x82, 0x78, 0x39, 0x54, 0x0e, + 0xa7, 0xcc, 0x59, 0xfc, 0x06, 0xe2, 0x8c, 0xb5, 0xbb, 0x30, 0xde, 0xba, 0x33, 0x63, 0x7d, 0x63, + 0xc6, 0xd9, 0xcd, 0x19, 0x6f, 0x6f, 0xc4, 0x38, 0xf7, 0x3b, 0xc6, 0xf9, 0x5b, 0x18, 0x17, 0x56, + 0x18, 0xbf, 0xb9, 0x81, 0x71, 0x31, 0x60, 0x7c, 0x94, 0x0c, 0x95, 0x46, 0xf1, 0x27, 0xac, 0xd1, + 0x3a, 0xd6, 0x3f, 0x22, 0xd6, 0x6d, 0x66, 0xf1, 0x41, 0x9c, 0xf5, 0x6d, 0xff, 0xf7, 0xff, 0xbc, + 0xff, 0x25, 0xef, 0x34, 0x8e, 0xbf, 0xc6, 0xfb, 0xb3, 0x86, 0x1e, 0x35, 0x17, 0x81, 0x80, 0x29, + 0xda, 0xa3, 0x20, 0xce, 0x40, 0x11, 0xea, 0xca, 0x54, 0x7e, 0x6d, 0x25, 0xff, 0x21, 0xda, 0x9d, + 0xcf, 0xce, 0x61, 0x04, 0x6e, 0x04, 0x3c, 0x59, 0xc4, 0x35, 0x74, 0x3f, 0x2c, 0x80, 0x68, 0xda, + 0xb6, 0x00, 0x29, 0xa3, 0x8f, 0x7d, 0xba, 0x1c, 0x4f, 0x9d, 0x5d, 0x93, 0xba, 0xd5, 0x19, 0x4f, + 0x4d, 0xed, 0x7a, 0x6a, 0x6a, 0xdf, 0xa6, 0xa6, 0xf6, 0x69, 0x66, 0x66, 0xae, 0x67, 0x66, 0xe6, + 0xcb, 0xcc, 0xcc, 0xbc, 0x7d, 0xe6, 0x50, 0xd5, 0x1f, 0x76, 0xeb, 0x16, 0x1f, 0x34, 0xba, 0x54, + 0x75, 0x89, 0xed, 0x80, 0x5c, 0x8e, 0xac, 0x3e, 0xa1, 0xac, 0xf1, 0xa1, 0x91, 0x78, 0xf9, 0xd4, + 0x95, 0x07, 0xb2, 0x9b, 0x0b, 0x9e, 0xbb, 0x93, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xed, 0xeb, + 0x63, 0x23, 0x75, 0x07, 0x00, 0x00, } func (m *CollectionApproval) Marshal() (dAtA []byte, err error) { diff --git a/x/tokenization/types/codec.go b/x/tokenization/types/codec.go index 85c9fcd4..c6b61aa4 100644 --- a/x/tokenization/types/codec.go +++ b/x/tokenization/types/codec.go @@ -13,7 +13,11 @@ import ( // all necessary codec types are registered once for the tokens module. // This is required for proper serialization/deserialization across the module. -func RegisterCodec(cdc *codec.LegacyAmino) { +// RegisterAminoConcretes registers only the tokenization module's concrete +// amino types. Idempotent across module-level calls because each concrete +// is unique to this module's namespace, so it's safe to call from the +// AppModuleBasic.RegisterLegacyAminoCodec depinject path. +func RegisterAminoConcretes(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgTransferTokens{}, "tokenization/TransferTokens", nil) cdc.RegisterConcrete(&MsgDeleteCollection{}, "tokenization/DeleteCollection", nil) cdc.RegisterConcrete(&MsgUpdateUserApprovals{}, "tokenization/UpdateUserApprovals", nil) @@ -40,6 +44,15 @@ func RegisterCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgSetIsArchived{}, "tokenization/SetIsArchived", nil) cdc.RegisterConcrete(&MsgSetReservedProtocolAddress{}, "tokenization/SetReservedProtocolAddress", nil) cdc.RegisterConcrete(&MsgCastVote{}, "tokenization/CastVote", nil) +} + +// RegisterCodec performs the full registration including the chain-wide +// encoding stack. ONLY call this on a fresh codec (e.g. the package-level +// `Amino` from init below) — not on the chain's main legacy amino, which +// already has the encoding stack wired by depinject and would panic with +// "TypeInfo already exists for types.PubKey" on re-registration. +func RegisterCodec(cdc *codec.LegacyAmino) { + RegisterAminoConcretes(cdc) encodingcodec.RegisterLegacyAminoCodec(cdc) // this line is used by starport scaffolding # 2 diff --git a/x/tokenization/types/collections.pb.go b/x/tokenization/types/collections.pb.go index 10016bf7..a5228e64 100644 --- a/x/tokenization/types/collections.pb.go +++ b/x/tokenization/types/collections.pb.go @@ -867,78 +867,79 @@ func init() { func init() { proto.RegisterFile("tokenization/collections.proto", fileDescriptor_ecee1d63ef3ca603) } var fileDescriptor_ecee1d63ef3ca603 = []byte{ - // 1128 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcb, 0x6e, 0x1b, 0x37, - 0x17, 0xb6, 0x2c, 0xcb, 0x96, 0x8e, 0x9d, 0x38, 0x3f, 0xe3, 0xf8, 0x9f, 0x3a, 0x89, 0x22, 0xa8, - 0x69, 0x21, 0xb4, 0x85, 0x95, 0x3a, 0x45, 0x92, 0x45, 0x0b, 0x54, 0x97, 0x04, 0xf5, 0xc2, 0xb0, - 0x4a, 0x5f, 0x82, 0xb6, 0x8b, 0x80, 0x9a, 0xa1, 0x25, 0x36, 0x33, 0xa4, 0x40, 0x52, 0x72, 0x94, - 0xa7, 0xe8, 0x2b, 0xf4, 0x05, 0x0a, 0xf4, 0x2d, 0xb2, 0xcc, 0xb2, 0xe8, 0xc2, 0x28, 0xec, 0x17, - 0xe8, 0x23, 0x14, 0xc3, 0xb9, 0xcb, 0x23, 0x27, 0x69, 0x77, 0x43, 0x9e, 0xef, 0x5c, 0xbe, 0x8f, - 0x67, 0x0e, 0x09, 0x55, 0x2d, 0x5e, 0x52, 0xce, 0x5e, 0x13, 0xcd, 0x04, 0x6f, 0xda, 0xc2, 0x75, - 0xa9, 0xed, 0x7f, 0xaa, 0xed, 0x91, 0x14, 0x5a, 0xa0, 0xb5, 0xb4, 0x7d, 0xeb, 0xa3, 0x81, 0x10, - 0x03, 0x97, 0x36, 0x8d, 0xad, 0x3f, 0x3e, 0x69, 0x12, 0x3e, 0x0d, 0x80, 0x5b, 0x77, 0x32, 0x81, - 0xb4, 0x24, 0x5c, 0x9d, 0x50, 0x19, 0x86, 0xd9, 0xba, 0x9d, 0xb1, 0xf6, 0x89, 0x4b, 0xb8, 0x4d, - 0x23, 0x63, 0xb6, 0x86, 0x11, 0x95, 0x1e, 0x53, 0x2a, 0xa9, 0x61, 0xc6, 0xd9, 0xa3, 0x9a, 0x38, - 0x44, 0x93, 0xdc, 0xbc, 0x64, 0x34, 0x92, 0x62, 0x42, 0xdc, 0xc8, 0xf5, 0x93, 0x8c, 0x75, 0xac, - 0xa8, 0x7c, 0x11, 0x26, 0x7f, 0xa1, 0xb4, 0x90, 0x34, 0x84, 0xdd, 0xcd, 0xaa, 0x30, 0x24, 0xae, - 0x4b, 0xf9, 0x20, 0x2e, 0x70, 0x63, 0x20, 0x06, 0xc2, 0x7c, 0x36, 0xfd, 0xaf, 0x60, 0xb7, 0xfe, - 0xdb, 0x0a, 0xac, 0x1f, 0xfa, 0x7e, 0x9d, 0x58, 0x35, 0xf4, 0x00, 0xd6, 0x12, 0x0d, 0x77, 0x1d, - 0xab, 0x50, 0x2b, 0x34, 0x2a, 0xed, 0xb5, 0x37, 0x67, 0xf7, 0x16, 0xfe, 0x3c, 0xbb, 0xb7, 0x74, - 0xc4, 0xb8, 0xc6, 0x19, 0x04, 0xea, 0x01, 0x4a, 0xd6, 0x7b, 0x21, 0x37, 0x6b, 0xb1, 0x56, 0x68, - 0xac, 0xee, 0xd4, 0xb6, 0xd3, 0x75, 0x6d, 0x77, 0x2e, 0xe1, 0x70, 0x8e, 0x2f, 0x6a, 0xc1, 0x35, - 0xe3, 0x16, 0x07, 0x2b, 0xd6, 0x8a, 0x8d, 0xd5, 0x9d, 0xdb, 0xd9, 0x60, 0x87, 0x69, 0x08, 0xce, - 0x7a, 0xa0, 0x2a, 0x80, 0x3d, 0x56, 0x5a, 0x78, 0x5d, 0xdf, 0x7f, 0xc9, 0x27, 0x81, 0x53, 0x3b, - 0xc8, 0x82, 0x15, 0x8f, 0x70, 0x32, 0xa0, 0xd2, 0x2a, 0x19, 0x63, 0xb4, 0x44, 0x3f, 0xc0, 0xad, - 0xa4, 0xa4, 0x5e, 0x72, 0x94, 0xd6, 0xb2, 0x61, 0xf4, 0xf1, 0x3c, 0x46, 0x29, 0x28, 0xce, 0x8f, - 0x80, 0x30, 0xdc, 0x4c, 0x0c, 0xad, 0xe8, 0xa0, 0xad, 0x15, 0xc3, 0x6e, 0xae, 0x54, 0x11, 0x10, - 0xe7, 0x39, 0xa3, 0x3b, 0x50, 0x51, 0x9a, 0x70, 0x87, 0x48, 0x47, 0x59, 0xe5, 0x5a, 0xb1, 0x51, - 0xc1, 0xc9, 0x86, 0x2f, 0x03, 0x53, 0x2d, 0x69, 0x0f, 0xd9, 0x84, 0x3a, 0x56, 0xa5, 0x56, 0x68, - 0x94, 0x71, 0x6a, 0x07, 0x7d, 0x07, 0xeb, 0x0e, 0x3d, 0x21, 0x63, 0x57, 0xb7, 0xc3, 0x8e, 0xb6, - 0xc0, 0xd0, 0xac, 0x66, 0xab, 0x39, 0x52, 0x54, 0x86, 0x88, 0x03, 0xbf, 0xeb, 0xf0, 0xac, 0x9b, - 0x5f, 0x87, 0x2d, 0x29, 0xd1, 0xd4, 0x69, 0x4f, 0xad, 0x55, 0x23, 0x69, 0xb2, 0x81, 0xbe, 0x81, - 0x6b, 0x13, 0xe2, 0x32, 0xc7, 0x9c, 0xd9, 0xae, 0xa3, 0xac, 0x35, 0xc3, 0xf9, 0xff, 0x33, 0x59, - 0xfc, 0xe6, 0x22, 0x7c, 0x40, 0x71, 0x16, 0x8d, 0xbe, 0x80, 0xff, 0x79, 0x8c, 0xeb, 0xa7, 0xca, - 0x96, 0xe2, 0xb4, 0xe5, 0x38, 0x92, 0x2a, 0x65, 0x5d, 0x33, 0x49, 0x2e, 0x1b, 0xd0, 0x4f, 0xb0, - 0x69, 0x0b, 0xe5, 0x09, 0xd5, 0x11, 0x8c, 0x3f, 0x97, 0x64, 0x34, 0xa2, 0xb2, 0x47, 0xf4, 0x50, - 0x59, 0xd7, 0x4d, 0xd6, 0x4b, 0x47, 0x98, 0x83, 0xc5, 0x73, 0x42, 0xa0, 0x36, 0x00, 0xe3, 0x13, - 0x22, 0x19, 0xe1, 0x5a, 0x59, 0xeb, 0x46, 0xac, 0xfa, 0xbc, 0xa3, 0xdb, 0x8d, 0x91, 0x38, 0xe5, - 0x85, 0x1e, 0x03, 0x10, 0x97, 0x11, 0x15, 0x14, 0x75, 0x23, 0x4f, 0x8a, 0x56, 0x64, 0xc7, 0x29, - 0x68, 0xfd, 0x14, 0xa0, 0x23, 0xf8, 0x84, 0x4a, 0xbf, 0x9f, 0xd0, 0xd7, 0x50, 0x52, 0xcc, 0xa1, - 0x2d, 0xf3, 0x8f, 0xae, 0xee, 0x7c, 0x3a, 0x5b, 0x45, 0x04, 0x3c, 0xf0, 0x41, 0xcf, 0x99, 0x1e, - 0x76, 0x29, 0x17, 0x1e, 0x0e, 0x9c, 0xd0, 0xe7, 0x81, 0x77, 0xdb, 0x5a, 0x34, 0xf9, 0x6f, 0x65, - 0xbd, 0xc3, 0x73, 0x0d, 0xc0, 0xed, 0xfa, 0x31, 0x58, 0xf3, 0xe2, 0xa1, 0xfb, 0xb0, 0x4c, 0x3c, - 0x31, 0xe6, 0x3a, 0x77, 0x56, 0x84, 0x36, 0xb4, 0x01, 0x25, 0xc7, 0x87, 0x9b, 0xc1, 0x50, 0xc1, - 0xc1, 0xa2, 0xfe, 0x1a, 0x36, 0x93, 0xb8, 0x7e, 0x48, 0x31, 0xd6, 0x41, 0xd4, 0x87, 0x59, 0x72, - 0x77, 0xaf, 0x24, 0xf7, 0xaf, 0x38, 0x3d, 0x86, 0xf5, 0x99, 0x30, 0xef, 0x47, 0xa5, 0x7e, 0xb6, - 0x08, 0xb7, 0x72, 0x9b, 0xc6, 0x9f, 0x2a, 0x24, 0xec, 0xce, 0x42, 0x30, 0x55, 0xc2, 0x65, 0x3e, - 0x7d, 0xd4, 0x05, 0xb0, 0xe3, 0x12, 0xac, 0xa2, 0x61, 0x7a, 0x7f, 0x1e, 0xd3, 0xb4, 0x3c, 0x38, - 0xe5, 0x87, 0x36, 0x61, 0x59, 0x4d, 0xbd, 0xbe, 0x70, 0xc3, 0x39, 0x17, 0xae, 0xfc, 0x36, 0x33, - 0x69, 0x8e, 0x38, 0xd3, 0xca, 0x2a, 0xe5, 0xb5, 0x59, 0x37, 0xb2, 0xe3, 0x14, 0x14, 0x3d, 0x83, - 0x2a, 0x71, 0x5d, 0x71, 0xba, 0x3f, 0xa1, 0x52, 0x32, 0x87, 0xfa, 0x99, 0x5b, 0x7c, 0x7a, 0x1c, - 0xff, 0x93, 0x66, 0x16, 0x96, 0xf1, 0x3b, 0x50, 0xe8, 0x11, 0x94, 0xa3, 0xbb, 0xce, 0x5a, 0x31, - 0xe4, 0xb6, 0xb2, 0xe9, 0x7d, 0xd1, 0xe2, 0x09, 0x1e, 0x63, 0xeb, 0x7f, 0x17, 0xa0, 0x12, 0xff, - 0x00, 0x89, 0x74, 0x85, 0xf9, 0xd2, 0x2d, 0xfe, 0x67, 0xe9, 0x8a, 0x57, 0x48, 0xb7, 0xf4, 0xfe, - 0xd2, 0xa5, 0x29, 0x97, 0x3e, 0x80, 0xf2, 0xcf, 0xb0, 0x91, 0xb4, 0x54, 0x9b, 0xd8, 0x2f, 0xa9, - 0xf3, 0x8e, 0x8e, 0x7a, 0x92, 0x23, 0x80, 0x35, 0x4f, 0x80, 0x34, 0xe9, 0xfa, 0xef, 0x05, 0xa8, - 0xc4, 0xd5, 0xa3, 0x06, 0x94, 0x1d, 0x6a, 0x33, 0xcf, 0xbf, 0x89, 0xf2, 0xba, 0x3e, 0xb6, 0xa6, - 0xc4, 0x5a, 0xcc, 0x88, 0xf5, 0x19, 0xdc, 0x60, 0xaa, 0x1b, 0xdc, 0x07, 0x5d, 0xa6, 0x46, 0x2e, - 0x99, 0x1a, 0x39, 0xcb, 0xf8, 0xd2, 0x7e, 0x46, 0x9f, 0xa5, 0x0f, 0xd0, 0xe7, 0xd7, 0xa2, 0x2f, - 0xd0, 0xe5, 0xb9, 0x8a, 0x1e, 0xc1, 0x26, 0x17, 0x1d, 0x73, 0xb1, 0xef, 0x9f, 0x72, 0x2a, 0xd5, - 0x90, 0x8d, 0x0e, 0x99, 0x47, 0x03, 0x32, 0x65, 0x3c, 0xc7, 0x8a, 0xbe, 0x82, 0xeb, 0x1e, 0x79, - 0x75, 0x30, 0x1e, 0x8d, 0xdc, 0x69, 0x8f, 0xca, 0x5d, 0x27, 0x20, 0x35, 0x43, 0x7e, 0x06, 0x83, - 0x8e, 0x61, 0xc3, 0xce, 0x39, 0xa6, 0xf0, 0xd7, 0xad, 0xcf, 0xbb, 0x58, 0x12, 0x24, 0xce, 0xf5, - 0x47, 0xdf, 0xc2, 0x6d, 0x2e, 0x9e, 0x09, 0x69, 0xd3, 0x93, 0xb1, 0xdb, 0x13, 0x4a, 0xef, 0x31, - 0xae, 0x0f, 0xa3, 0x27, 0xa8, 0x51, 0xaa, 0x8c, 0xaf, 0x82, 0xa0, 0x07, 0x70, 0xd3, 0x61, 0x8a, - 0xf4, 0x5d, 0xda, 0x13, 0xc2, 0xed, 0xf8, 0x37, 0xaf, 0xdf, 0x17, 0x25, 0xe3, 0x99, 0x67, 0x42, - 0xfb, 0x80, 0xe8, 0xc4, 0xfb, 0x7e, 0x4c, 0xe5, 0xb4, 0x13, 0xbf, 0x17, 0xad, 0x65, 0xd3, 0xeb, - 0xf7, 0xb2, 0x4c, 0x9e, 0x1e, 0xef, 0x65, 0x71, 0x38, 0xc7, 0xb5, 0xae, 0xfd, 0x81, 0x1a, 0x1d, - 0xd1, 0x81, 0x26, 0x5a, 0xa1, 0x6d, 0x58, 0x1d, 0x0a, 0xd7, 0xa1, 0xb2, 0x33, 0x77, 0xaa, 0xa6, - 0x01, 0xe8, 0x4b, 0x28, 0x47, 0x4f, 0xeb, 0xab, 0x67, 0x78, 0x0c, 0x6b, 0xe3, 0x37, 0xe7, 0xd5, - 0xc2, 0xdb, 0xf3, 0x6a, 0xe1, 0xaf, 0xf3, 0x6a, 0xe1, 0x97, 0x8b, 0xea, 0xc2, 0xdb, 0x8b, 0xea, - 0xc2, 0x1f, 0x17, 0xd5, 0x85, 0x1f, 0x9f, 0x0c, 0x98, 0x1e, 0x8e, 0xfb, 0xdb, 0xb6, 0xf0, 0x9a, - 0x7d, 0xa6, 0xfb, 0xc4, 0x19, 0x50, 0x95, 0x7c, 0xd9, 0x43, 0xc2, 0x78, 0xf3, 0x55, 0x33, 0xfb, - 0xec, 0x9f, 0x8e, 0xa8, 0xea, 0x2f, 0x9b, 0xf7, 0xf1, 0xc3, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, - 0x6a, 0x0e, 0xc8, 0xea, 0x5c, 0x0c, 0x00, 0x00, + // 1151 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xdf, 0x6e, 0x1b, 0xc5, + 0x17, 0xce, 0xc6, 0x71, 0x62, 0x9f, 0xa4, 0x4d, 0x7f, 0xd3, 0x34, 0xbf, 0x25, 0x6d, 0x1d, 0xcb, + 0x14, 0x64, 0x01, 0x8a, 0x4b, 0x41, 0x14, 0x24, 0x40, 0xd8, 0x4e, 0x2b, 0x82, 0x54, 0x12, 0x36, + 0x7f, 0x2a, 0x01, 0x52, 0x34, 0xde, 0x9d, 0xd8, 0xa3, 0xee, 0xce, 0xac, 0x66, 0xc6, 0x4e, 0x8d, + 0x84, 0xc4, 0x23, 0xf0, 0x16, 0x3c, 0x02, 0x6f, 0x80, 0x72, 0xd9, 0x4b, 0xc4, 0x45, 0x84, 0x92, + 0x3b, 0x9e, 0x81, 0x0b, 0xb4, 0xb3, 0xff, 0xed, 0x75, 0xda, 0x0a, 0xee, 0x76, 0xe6, 0x7c, 0xe7, + 0xcc, 0xf9, 0xbe, 0x39, 0x73, 0x66, 0x16, 0x6a, 0x8a, 0x3f, 0x23, 0x8c, 0xfe, 0x80, 0x15, 0xe5, + 0xac, 0x65, 0x73, 0xd7, 0x25, 0x76, 0xf0, 0x29, 0xb7, 0x7c, 0xc1, 0x15, 0x47, 0x2b, 0x59, 0xfb, + 0xc6, 0x1b, 0x7d, 0xce, 0xfb, 0x2e, 0x69, 0x69, 0x5b, 0x6f, 0x78, 0xd2, 0xc2, 0x6c, 0x1c, 0x02, + 0x37, 0xee, 0xe4, 0x02, 0x29, 0x81, 0x99, 0x3c, 0x21, 0x22, 0x0a, 0xb3, 0x71, 0x3b, 0x67, 0xed, + 0x61, 0x17, 0x33, 0x9b, 0xc4, 0xc6, 0x7c, 0x0e, 0x3e, 0x11, 0x1e, 0x95, 0x32, 0xcd, 0x61, 0xc2, + 0xd9, 0x23, 0x0a, 0x3b, 0x58, 0xe1, 0xc2, 0x75, 0xb1, 0xef, 0x0b, 0x3e, 0xc2, 0x6e, 0xec, 0xfa, + 0x56, 0xce, 0x3a, 0x94, 0x44, 0x1c, 0x47, 0x8b, 0x1f, 0x4b, 0xc5, 0x05, 0x89, 0x60, 0x77, 0xf3, + 0x2a, 0x0c, 0xb0, 0xeb, 0x12, 0xd6, 0x4f, 0x12, 0x5c, 0xeb, 0xf3, 0x3e, 0xd7, 0x9f, 0xad, 0xe0, + 0x2b, 0x9c, 0x6d, 0xfc, 0xb6, 0x04, 0xab, 0x07, 0x81, 0x5f, 0x37, 0x51, 0x0d, 0xdd, 0x87, 0x95, + 0x54, 0xc3, 0x1d, 0xc7, 0x34, 0xea, 0x46, 0xb3, 0xda, 0x59, 0x39, 0x3b, 0xdf, 0x9c, 0xfb, 0xe3, + 0x7c, 0x73, 0xe1, 0x90, 0x32, 0x65, 0xe5, 0x10, 0xe8, 0x08, 0x50, 0x3a, 0x7e, 0x12, 0x71, 0x33, + 0xe7, 0xeb, 0x46, 0x73, 0xf9, 0x41, 0x7d, 0x2b, 0x9b, 0xd7, 0x56, 0x77, 0x0a, 0xd7, 0x59, 0x38, + 0x3b, 0xdf, 0x34, 0xac, 0x82, 0x08, 0xa8, 0x0d, 0xd7, 0xb4, 0x73, 0x12, 0xb2, 0x54, 0x2f, 0x35, + 0x97, 0x1f, 0xdc, 0xce, 0x87, 0x3c, 0xc8, 0x42, 0xac, 0xbc, 0x07, 0xaa, 0x01, 0xd8, 0x43, 0xa9, + 0xb8, 0xb7, 0x1d, 0xf8, 0x2f, 0x04, 0x54, 0xac, 0xcc, 0x0c, 0x32, 0x61, 0xc9, 0xc3, 0x0c, 0xf7, + 0x89, 0x30, 0xcb, 0xda, 0x18, 0x0f, 0xd1, 0x31, 0xdc, 0x4a, 0x53, 0xda, 0x4b, 0x37, 0xd4, 0x5c, + 0xd4, 0xbc, 0xde, 0x9c, 0xc5, 0x2b, 0x03, 0x8d, 0xa8, 0x15, 0xc7, 0x41, 0x16, 0xdc, 0x4c, 0x0d, + 0xed, 0x78, 0xd3, 0xcd, 0x25, 0xcd, 0x71, 0xa6, 0x6c, 0x31, 0xd0, 0x2a, 0x72, 0x46, 0x77, 0xa0, + 0x2a, 0x15, 0x66, 0x0e, 0x16, 0x8e, 0x34, 0x2b, 0xf5, 0x52, 0xb3, 0x6a, 0xa5, 0x13, 0x81, 0x18, + 0x54, 0xb6, 0x85, 0x3d, 0xa0, 0x23, 0xe2, 0x98, 0xd5, 0xba, 0xd1, 0xac, 0x58, 0x99, 0x19, 0xf4, + 0x35, 0xac, 0x3a, 0xe4, 0x04, 0x0f, 0x5d, 0xd5, 0x89, 0xaa, 0xdb, 0x04, 0x4d, 0xb6, 0x96, 0xcf, + 0xe6, 0x50, 0x12, 0x11, 0x21, 0xf6, 0x83, 0x0a, 0x8c, 0x78, 0x4e, 0x3a, 0x07, 0xd9, 0xd8, 0x82, + 0x60, 0x45, 0x9c, 0xce, 0xd8, 0x5c, 0xd6, 0xf2, 0xa6, 0x13, 0xe8, 0x33, 0xb8, 0x36, 0xc2, 0x2e, + 0x75, 0xf4, 0xfe, 0xed, 0x38, 0xd2, 0x5c, 0xd1, 0xcc, 0xff, 0x3f, 0xb1, 0x56, 0x50, 0x6e, 0x98, + 0xf5, 0x89, 0x95, 0x47, 0xa3, 0xf7, 0xe0, 0x7f, 0x1e, 0x65, 0xea, 0x91, 0xb4, 0x05, 0x3f, 0x6d, + 0x3b, 0x8e, 0x20, 0x52, 0x9a, 0xd7, 0xf4, 0x22, 0xd3, 0x06, 0xf4, 0x1d, 0xac, 0xdb, 0x5c, 0x7a, + 0x5c, 0x76, 0x39, 0x65, 0x4f, 0x05, 0xf6, 0x7d, 0x22, 0xf6, 0xb0, 0x1a, 0x48, 0xf3, 0xba, 0x5e, + 0x75, 0x6a, 0x3b, 0x0b, 0xb0, 0xd6, 0x8c, 0x10, 0xe8, 0x4b, 0x00, 0xca, 0x46, 0x58, 0x50, 0xcc, + 0x94, 0x34, 0x57, 0xb5, 0x64, 0x8d, 0x59, 0x1b, 0xb8, 0x93, 0x20, 0x23, 0xd9, 0x32, 0xbe, 0xe8, + 0x21, 0x00, 0x76, 0x29, 0x96, 0x61, 0x6a, 0x37, 0x8a, 0x04, 0x69, 0xc7, 0x76, 0x2b, 0x03, 0x6d, + 0xfc, 0x08, 0xd0, 0xe5, 0x6c, 0x44, 0x44, 0x50, 0x5b, 0xa8, 0x03, 0x65, 0x49, 0x1d, 0xd2, 0xd6, + 0x67, 0x77, 0xf9, 0xc1, 0xdb, 0x93, 0xb9, 0xc4, 0xc0, 0xfd, 0x00, 0xf4, 0x94, 0xaa, 0xc1, 0x36, + 0x61, 0xdc, 0x8b, 0xf2, 0x09, 0x5d, 0xd1, 0xbb, 0x61, 0x8c, 0x8e, 0x39, 0xaf, 0xb3, 0xb8, 0x95, + 0x8f, 0x11, 0xed, 0x71, 0x08, 0xee, 0x34, 0x8e, 0xc0, 0x9c, 0x15, 0x15, 0xdd, 0x83, 0x45, 0xec, + 0xf1, 0x21, 0x53, 0x85, 0x9d, 0x24, 0xb2, 0xa1, 0x35, 0x28, 0x3b, 0x01, 0x5c, 0xb7, 0x8d, 0xaa, + 0x15, 0x0e, 0x1a, 0x3f, 0x19, 0xb0, 0x9e, 0x06, 0x0e, 0x62, 0xf2, 0xa1, 0x0a, 0xc3, 0x7e, 0x92, + 0xe7, 0x78, 0xf7, 0x4a, 0x8e, 0xff, 0x82, 0xda, 0x43, 0x58, 0x9d, 0x08, 0xf6, 0x6a, 0x8c, 0x1a, + 0x7f, 0xcd, 0xc3, 0xad, 0xc2, 0x3a, 0x0a, 0x9a, 0x0e, 0x8e, 0x0a, 0xd6, 0x08, 0x9b, 0x4e, 0x34, + 0x2c, 0x56, 0x01, 0x7d, 0x05, 0x60, 0x27, 0x29, 0x98, 0x25, 0xcd, 0xf7, 0xde, 0x2c, 0xbe, 0x59, + 0x91, 0xe2, 0x0a, 0x4b, 0xbd, 0xd1, 0x3a, 0x2c, 0xca, 0xb1, 0xd7, 0xe3, 0x6e, 0xd4, 0x0c, 0xa3, + 0x51, 0x50, 0x79, 0x7a, 0xb1, 0x43, 0x46, 0x95, 0x34, 0xcb, 0x45, 0x95, 0xb7, 0x1d, 0xdb, 0xad, + 0x0c, 0x14, 0x3d, 0x86, 0x1a, 0x76, 0x5d, 0x7e, 0xba, 0x3b, 0x22, 0x42, 0x50, 0x87, 0x04, 0xeb, + 0xb7, 0xd9, 0xf8, 0x28, 0x39, 0xac, 0xba, 0x61, 0x56, 0xac, 0x97, 0xa0, 0xd0, 0xa7, 0x50, 0x89, + 0xaf, 0x45, 0x73, 0x49, 0x53, 0xdc, 0xc8, 0x2f, 0x1f, 0x48, 0x37, 0x71, 0x69, 0x24, 0x1e, 0x8d, + 0xbf, 0x0d, 0xa8, 0x26, 0x27, 0x23, 0x95, 0xd1, 0x98, 0x2d, 0xe3, 0xfc, 0x7f, 0x24, 0x63, 0xe9, + 0x0a, 0x19, 0x17, 0x5e, 0x5d, 0xc6, 0x2c, 0xfd, 0xf2, 0x6b, 0xd3, 0xf7, 0x61, 0x2d, 0x2d, 0xb5, + 0x0e, 0xb6, 0x9f, 0x11, 0xe7, 0x25, 0x95, 0xf6, 0x79, 0x81, 0x18, 0xe6, 0x2c, 0x31, 0xa6, 0x05, + 0x68, 0xfc, 0x6a, 0x40, 0x35, 0x61, 0x82, 0x9a, 0x50, 0x71, 0x88, 0x4d, 0xbd, 0xe0, 0x02, 0x2b, + 0x3a, 0x13, 0x89, 0x35, 0x23, 0xdc, 0x7c, 0x4e, 0xb8, 0x77, 0xe0, 0x06, 0x95, 0xdb, 0xe1, 0x05, + 0xb2, 0x4d, 0xa5, 0xef, 0xe2, 0xb1, 0x96, 0xb6, 0x62, 0x4d, 0xcd, 0xe7, 0xb4, 0x5a, 0x78, 0x6d, + 0xad, 0x7e, 0x29, 0x05, 0x62, 0x4d, 0xb7, 0x63, 0xf4, 0x11, 0xac, 0x33, 0xde, 0xd5, 0x6f, 0x83, + 0xdd, 0x53, 0x46, 0x84, 0x1c, 0x50, 0xff, 0x80, 0x7a, 0x24, 0xa4, 0x54, 0xb1, 0x66, 0x58, 0xd1, + 0x87, 0x70, 0xdd, 0xc3, 0xcf, 0xf7, 0x87, 0xbe, 0xef, 0x8e, 0xf7, 0x88, 0xd8, 0x71, 0x42, 0x6a, + 0x13, 0x12, 0x4c, 0x60, 0xd0, 0xf7, 0xb0, 0x66, 0x17, 0x6c, 0x59, 0x74, 0xbc, 0x1b, 0xb3, 0xee, + 0xa3, 0x14, 0x19, 0x11, 0x2b, 0x8c, 0x82, 0xbe, 0x80, 0xdb, 0x8c, 0x3f, 0xe6, 0xc2, 0x26, 0x27, + 0x43, 0x77, 0x8f, 0x4b, 0xf5, 0x84, 0x32, 0x75, 0x10, 0xbf, 0x68, 0xb5, 0x6a, 0x15, 0xeb, 0x2a, + 0x08, 0xba, 0x0f, 0x37, 0x1d, 0x2a, 0x71, 0xcf, 0x25, 0x7b, 0x9c, 0xbb, 0xdd, 0xe0, 0xda, 0x0e, + 0x2a, 0xa5, 0xac, 0x3d, 0x8b, 0x4c, 0x68, 0x17, 0x10, 0x19, 0x79, 0xdf, 0x0c, 0x89, 0x18, 0x77, + 0x93, 0xe7, 0xa7, 0xb9, 0xa8, 0xcf, 0xc0, 0x66, 0x9e, 0xcf, 0xa3, 0xa3, 0x27, 0x79, 0x9c, 0x55, + 0xe0, 0xda, 0x50, 0x41, 0xeb, 0x8d, 0x37, 0x6a, 0x5f, 0x61, 0x25, 0xd1, 0x16, 0x2c, 0x0f, 0xb8, + 0xeb, 0x10, 0xd1, 0x9d, 0xd9, 0x7f, 0xb3, 0x00, 0xf4, 0x3e, 0x54, 0xe2, 0x97, 0xfa, 0xd5, 0xdd, + 0x3e, 0x81, 0x75, 0xac, 0xb3, 0x8b, 0x9a, 0xf1, 0xe2, 0xa2, 0x66, 0xfc, 0x79, 0x51, 0x33, 0x7e, + 0xbe, 0xac, 0xcd, 0xbd, 0xb8, 0xac, 0xcd, 0xfd, 0x7e, 0x59, 0x9b, 0xfb, 0xf6, 0xe3, 0x3e, 0x55, + 0x83, 0x61, 0x6f, 0xcb, 0xe6, 0x5e, 0xab, 0x47, 0x55, 0x0f, 0x3b, 0x7d, 0x22, 0xd3, 0x2f, 0x7b, + 0x80, 0x29, 0x6b, 0x3d, 0x6f, 0xe5, 0xff, 0x22, 0xc6, 0x3e, 0x91, 0xbd, 0x45, 0xfd, 0xdc, 0xfe, + 0xe0, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x17, 0x51, 0xc6, 0x86, 0xab, 0x0c, 0x00, 0x00, } func (m *TokenCollection) Marshal() (dAtA []byte, err error) { diff --git a/x/tokenization/types/legacytx.pb.go b/x/tokenization/types/legacytx.pb.go index 778e0264..ec93b992 100644 --- a/x/tokenization/types/legacytx.pb.go +++ b/x/tokenization/types/legacytx.pb.go @@ -1162,76 +1162,76 @@ func init() { func init() { proto.RegisterFile("tokenization/legacytx.proto", fileDescriptor_dda50bf7b14d496a) } var fileDescriptor_dda50bf7b14d496a = []byte{ - // 1096 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcb, 0x72, 0x1b, 0x45, - 0x14, 0xf5, 0x58, 0xf2, 0xeb, 0xda, 0x89, 0xe3, 0x26, 0x21, 0x13, 0xd9, 0xc8, 0x62, 0x20, 0x85, - 0x17, 0x60, 0xf1, 0x5a, 0xb0, 0x71, 0xa5, 0x64, 0x1b, 0x28, 0x51, 0x11, 0x76, 0x75, 0xec, 0xa2, - 0x60, 0x41, 0xaa, 0x35, 0xd3, 0x1e, 0x37, 0x8c, 0xba, 0x55, 0xd3, 0x2d, 0xe3, 0xf0, 0x01, 0x2c, - 0x58, 0xf1, 0x15, 0xb0, 0x64, 0x03, 0xff, 0x90, 0x65, 0x96, 0x14, 0x8b, 0x14, 0x65, 0x57, 0xf1, - 0x13, 0x6c, 0x28, 0x8d, 0x46, 0xf3, 0xe8, 0x99, 0x51, 0xe4, 0x48, 0xce, 0x4e, 0x76, 0x9f, 0x73, - 0xfa, 0xde, 0xdb, 0xb7, 0x4f, 0x5f, 0x09, 0xd6, 0x95, 0xf8, 0x9e, 0x72, 0xf6, 0x23, 0x51, 0x4c, - 0xf0, 0xba, 0x47, 0x5d, 0x62, 0x3f, 0x51, 0xe7, 0xdb, 0x5d, 0x5f, 0x28, 0x81, 0x56, 0x92, 0x8b, - 0x95, 0x8d, 0x14, 0x54, 0xf9, 0x84, 0xcb, 0x13, 0xea, 0xcb, 0x01, 0xb6, 0x92, 0x16, 0x6a, 0x13, - 0x8f, 0x70, 0x9b, 0x0e, 0x17, 0xab, 0xa9, 0xc5, 0x2e, 0xf5, 0x3b, 0x4c, 0x4a, 0x26, 0x78, 0x3e, - 0xb9, 0x43, 0x15, 0x71, 0x88, 0x22, 0xb9, 0x64, 0x5b, 0x78, 0x1e, 0xb5, 0x55, 0x82, 0x7c, 0xdb, - 0x15, 0xae, 0x08, 0x3e, 0xd6, 0xfb, 0x9f, 0xc2, 0xff, 0xd6, 0x52, 0x2c, 0xe2, 0x38, 0x3e, 0x95, - 0xf2, 0xb1, 0xc7, 0xa4, 0x1a, 0xf2, 0xb4, 0x7c, 0x58, 0x87, 0x7a, 0x8c, 0x47, 0x21, 0xdf, 0x49, - 0xaf, 0x9e, 0xe7, 0x92, 0x48, 0xb7, 0xeb, 0x8b, 0x33, 0xe2, 0x85, 0x24, 0xeb, 0x77, 0x03, 0x36, - 0x8e, 0x25, 0xf5, 0x0f, 0x7a, 0xca, 0x15, 0x8c, 0xbb, 0x8d, 0x70, 0xfd, 0x28, 0x14, 0x47, 0x87, - 0xb0, 0x26, 0xb4, 0x35, 0x69, 0x1a, 0xb5, 0xd2, 0xd6, 0xf2, 0x87, 0xd6, 0x76, 0x52, 0x7a, 0x3b, - 0x4f, 0x06, 0x67, 0xc9, 0x68, 0x07, 0x6e, 0x0c, 0x43, 0xef, 0xef, 0x22, 0xcd, 0xd9, 0x40, 0xed, - 0xae, 0xa6, 0xc6, 0xb8, 0xc2, 0x84, 0xbb, 0x14, 0xa7, 0xd1, 0x51, 0xc4, 0x4d, 0x6e, 0x8b, 0x4e, - 0x41, 0xc4, 0x4c, 0x5b, 0x1b, 0x11, 0xb1, 0x2e, 0x83, 0xb3, 0xe4, 0x29, 0x44, 0x5c, 0xd9, 0x8b, - 0x9a, 0x20, 0x13, 0x2f, 0x86, 0xd7, 0xec, 0xcc, 0xea, 0x30, 0xe2, 0x5a, 0x7a, 0x8f, 0xac, 0x0c, - 0xce, 0x23, 0x4f, 0x1a, 0xf1, 0xcf, 0xcb, 0x70, 0xab, 0x25, 0xdd, 0x2f, 0xe9, 0x0f, 0xf1, 0x86, - 0xc8, 0x84, 0x05, 0xdb, 0xa7, 0x44, 0x09, 0xdf, 0x34, 0x6a, 0xc6, 0xd6, 0x12, 0x1e, 0xfe, 0x89, - 0x4e, 0xa1, 0x12, 0x07, 0xd1, 0x0a, 0xef, 0xc2, 0x30, 0xbf, 0x70, 0xeb, 0xad, 0xa2, 0x44, 0x74, - 0x3c, 0x1e, 0xa1, 0x85, 0xbe, 0x86, 0x41, 0x97, 0x67, 0x36, 0x29, 0x05, 0x9b, 0xbc, 0x95, 0xde, - 0xe4, 0x28, 0x0f, 0x8a, 0xf3, 0x15, 0xd0, 0x21, 0x20, 0xbb, 0x27, 0x95, 0xe8, 0xec, 0x27, 0x75, - 0xcb, 0xb9, 0xa7, 0x90, 0xc1, 0xe1, 0x1c, 0x6e, 0xd1, 0xc1, 0xce, 0x4d, 0x72, 0xb0, 0x9f, 0xc2, - 0x72, 0xc2, 0x8c, 0xcc, 0xf9, 0x9a, 0x91, 0x4d, 0x3b, 0xd6, 0x3a, 0x8c, 0xa1, 0x38, 0xc9, 0x43, - 0x2d, 0x58, 0x93, 0x8a, 0x70, 0x87, 0xf8, 0x8e, 0x8c, 0x72, 0x5d, 0x08, 0x02, 0xdb, 0x4c, 0x8b, - 0x3d, 0xd2, 0x61, 0x38, 0xcb, 0x44, 0x3b, 0x70, 0x33, 0x20, 0xc9, 0x23, 0xb1, 0xd7, 0xef, 0x09, - 0x6a, 0x2e, 0x06, 0x5a, 0x77, 0xd2, 0x5a, 0xbb, 0x03, 0x8f, 0xc5, 0x1a, 0x18, 0x7d, 0x0c, 0x4b, - 0x91, 0x39, 0x9b, 0x4b, 0x01, 0xf3, 0x75, 0xed, 0x24, 0xc3, 0x65, 0x1c, 0x03, 0xd1, 0x63, 0xb8, - 0x6b, 0x0b, 0xae, 0x7c, 0x62, 0xab, 0xc6, 0xc0, 0x2c, 0xa3, 0x4c, 0x20, 0xd0, 0xb8, 0xaf, 0x97, - 0x25, 0x17, 0x8c, 0x8b, 0x54, 0xd0, 0x0e, 0xac, 0x84, 0x2e, 0xfc, 0xb0, 0x6f, 0xc2, 0xe6, 0x72, - 0xa0, 0x7a, 0x2f, 0xad, 0xda, 0x88, 0x11, 0x38, 0x05, 0x47, 0xdf, 0x82, 0xe9, 0xd0, 0x13, 0xd2, - 0xf3, 0xd4, 0x41, 0xc6, 0x40, 0x57, 0xc6, 0x36, 0xd0, 0x42, 0x8d, 0x84, 0x7e, 0x33, 0x63, 0x77, - 0x37, 0xc6, 0xb6, 0xbb, 0x42, 0x0d, 0xf4, 0x19, 0x54, 0xc3, 0xb5, 0x7d, 0x26, 0x07, 0xef, 0x06, - 0x7d, 0x44, 0xbd, 0x93, 0x26, 0x67, 0x8a, 0x11, 0x45, 0x1d, 0xf3, 0x66, 0xcd, 0xd8, 0x5a, 0xc4, - 0x2f, 0x40, 0xa1, 0x07, 0xb0, 0x1a, 0x22, 0xc2, 0xf3, 0x97, 0xe6, 0xea, 0xa8, 0xee, 0xd0, 0xd1, - 0x88, 0xc3, 0xba, 0x2d, 0x64, 0x47, 0xc8, 0x3d, 0xc1, 0xf8, 0x57, 0x3e, 0xe9, 0x76, 0xa9, 0x7f, - 0x48, 0xd4, 0xa9, 0x3c, 0x12, 0x0d, 0xc7, 0x31, 0x6f, 0x05, 0x62, 0xef, 0xea, 0x87, 0x9d, 0x43, - 0x68, 0x38, 0xce, 0x41, 0xfb, 0x3b, 0x6a, 0x2b, 0x3c, 0x4a, 0x10, 0x35, 0x00, 0x18, 0x3f, 0x23, - 0x3e, 0x23, 0x5c, 0x49, 0x73, 0x2d, 0xb8, 0x62, 0x6f, 0xa6, 0xe5, 0x9b, 0xd1, 0x7a, 0xac, 0x99, - 0x20, 0xa1, 0x2f, 0x60, 0x95, 0x78, 0x8c, 0xc8, 0x44, 0x98, 0x28, 0xef, 0xda, 0x37, 0x86, 0xa0, - 0x58, 0x46, 0x27, 0x5a, 0x0f, 0xc1, 0xd4, 0xbd, 0x18, 0x53, 0xd9, 0x15, 0x5c, 0x52, 0xf4, 0x3e, - 0xac, 0xc4, 0x2e, 0xd1, 0x74, 0x06, 0xc6, 0xbc, 0xbb, 0xf2, 0xf4, 0xf9, 0xe6, 0xcc, 0xdf, 0xcf, - 0x37, 0xcb, 0x81, 0xc1, 0xa7, 0x10, 0xd6, 0x9f, 0x65, 0xa8, 0xb4, 0xa4, 0xdb, 0x62, 0x5c, 0x35, - 0xb8, 0xb3, 0xcf, 0xa4, 0xf2, 0x59, 0xbb, 0xa7, 0x68, 0xe0, 0x95, 0x72, 0x84, 0xc9, 0xeb, 0x5b, - 0xcd, 0xbe, 0x68, 0xab, 0x1c, 0x57, 0x28, 0xbd, 0xb4, 0x2b, 0x94, 0xc7, 0x75, 0x85, 0xd1, 0x6f, - 0xd1, 0xdc, 0xab, 0x78, 0x8b, 0xe6, 0x27, 0x7e, 0x8b, 0x0a, 0x5e, 0x8e, 0x85, 0xc9, 0x46, 0x82, - 0xb4, 0x9b, 0x2d, 0x5e, 0xc9, 0xcd, 0xac, 0xb7, 0xc1, 0x2a, 0x6e, 0x9b, 0x61, 0x3f, 0x5a, 0x3f, - 0xcd, 0xc2, 0xfd, 0x96, 0x74, 0x8f, 0x39, 0x3b, 0xa3, 0xbe, 0x24, 0xde, 0x71, 0xd7, 0x21, 0x8a, - 0xee, 0xe5, 0x84, 0x33, 0xcd, 0x46, 0x2b, 0x28, 0x57, 0x69, 0x9a, 0xe5, 0x2a, 0x5f, 0xad, 0x5c, - 0x75, 0x78, 0x6f, 0xac, 0x3a, 0x44, 0x95, 0xfb, 0xb5, 0x0c, 0x6b, 0x7d, 0x46, 0x00, 0x1c, 0x36, - 0xc4, 0x54, 0xab, 0x34, 0xfa, 0x66, 0x94, 0x5e, 0xc5, 0xcd, 0x28, 0x5f, 0xd3, 0x94, 0x36, 0x37, - 0xc1, 0x94, 0x36, 0x62, 0x8c, 0x98, 0x9f, 0xca, 0x18, 0x31, 0xdd, 0x59, 0xcb, 0x5a, 0x87, 0x7b, - 0x99, 0x3e, 0x89, 0xba, 0xe8, 0x3f, 0x03, 0xde, 0x19, 0xd5, 0x77, 0x89, 0x81, 0x70, 0xaa, 0xbd, - 0xa5, 0x8d, 0xa5, 0xa5, 0x97, 0x1c, 0x4b, 0x27, 0xbc, 0x74, 0x1f, 0x40, 0x7d, 0xcc, 0xe4, 0xa3, - 0x82, 0xfd, 0x6b, 0x04, 0xaf, 0xeb, 0x00, 0xda, 0x1f, 0x90, 0xae, 0xab, 0x42, 0x0f, 0xf2, 0x2a, - 0xf4, 0x46, 0x76, 0x40, 0xbb, 0xae, 0xda, 0x58, 0x50, 0x2b, 0xca, 0x33, 0x2a, 0xc6, 0x6f, 0x46, - 0xf0, 0xb5, 0x2f, 0xec, 0x2d, 0xc2, 0x89, 0x4b, 0xfd, 0xa9, 0x16, 0xe1, 0x73, 0x58, 0xed, 0x0c, - 0x64, 0x35, 0xdf, 0xd1, 0x0a, 0xd1, 0x4a, 0x83, 0xb0, 0xce, 0xb2, 0x2a, 0x89, 0x53, 0x0b, 0xc1, - 0x51, 0x16, 0x7f, 0x18, 0x70, 0xbb, 0x25, 0xdd, 0x86, 0x6f, 0x9f, 0xb2, 0x33, 0x3a, 0xd6, 0x17, - 0xd8, 0xab, 0x67, 0x72, 0x08, 0x88, 0xc9, 0x70, 0x0b, 0x47, 0x4b, 0x46, 0xf3, 0xa1, 0x66, 0x06, - 0x87, 0x73, 0xb8, 0x56, 0x15, 0x36, 0xf2, 0xa2, 0x1e, 0xa6, 0xb5, 0x8b, 0x9f, 0x5e, 0x54, 0x8d, - 0x67, 0x17, 0x55, 0xe3, 0x9f, 0x8b, 0xaa, 0xf1, 0xcb, 0x65, 0x75, 0xe6, 0xd9, 0x65, 0x75, 0xe6, - 0xaf, 0xcb, 0xea, 0xcc, 0x37, 0x9f, 0xb8, 0x4c, 0x9d, 0xf6, 0xda, 0xdb, 0xb6, 0xe8, 0xd4, 0xdb, - 0x4c, 0xb5, 0x89, 0xe3, 0x52, 0x19, 0x7f, 0xb2, 0x4f, 0x09, 0xe3, 0xf5, 0xf3, 0x7a, 0xfa, 0xe7, - 0xa1, 0x27, 0x5d, 0x2a, 0xdb, 0xf3, 0xc1, 0x8f, 0x40, 0x1f, 0xfd, 0x1f, 0x00, 0x00, 0xff, 0xff, - 0xda, 0x82, 0x6c, 0xe7, 0x54, 0x13, 0x00, 0x00, + // 1104 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcf, 0x53, 0x23, 0x45, + 0x14, 0x66, 0x48, 0xf8, 0xf5, 0x60, 0x97, 0xa5, 0xdd, 0x75, 0x67, 0x03, 0x86, 0x38, 0xba, 0x25, + 0x07, 0x25, 0xfe, 0x3a, 0x78, 0xa1, 0xac, 0x00, 0xba, 0x15, 0xdd, 0x08, 0xd5, 0x0b, 0x65, 0xe9, + 0xc1, 0xad, 0xce, 0x4c, 0x33, 0xb4, 0x4e, 0xba, 0x53, 0xd3, 0x0d, 0xb2, 0xde, 0xbc, 0x78, 0xf6, + 0xe4, 0x9f, 0xa0, 0x47, 0x2f, 0xfa, 0x3f, 0x70, 0xdc, 0xa3, 0xe5, 0x81, 0xb2, 0xe0, 0xea, 0x1f, + 0x61, 0x65, 0x32, 0x33, 0x99, 0xe9, 0x99, 0xc9, 0x06, 0x13, 0xf6, 0x16, 0xe8, 0xef, 0xfb, 0xfa, + 0xbd, 0xd7, 0xaf, 0xbf, 0x7e, 0x09, 0xac, 0x2a, 0xf1, 0x1d, 0xe5, 0xec, 0x07, 0xa2, 0x98, 0xe0, + 0x75, 0x8f, 0xba, 0xc4, 0x7e, 0xa6, 0xce, 0x36, 0xbb, 0xbe, 0x50, 0x02, 0x2d, 0x25, 0x17, 0x2b, + 0x6b, 0x29, 0xa8, 0xf2, 0x09, 0x97, 0x47, 0xd4, 0x97, 0x7d, 0x6c, 0x25, 0x2d, 0xd4, 0x26, 0x1e, + 0xe1, 0x36, 0x8d, 0x16, 0xab, 0xa9, 0xc5, 0x2e, 0xf5, 0x3b, 0x4c, 0x4a, 0x26, 0x78, 0x3e, 0xb9, + 0x43, 0x15, 0x71, 0x88, 0x22, 0xb9, 0x64, 0x5b, 0x78, 0x1e, 0xb5, 0x55, 0x82, 0x7c, 0xd7, 0x15, + 0xae, 0x08, 0x3e, 0xd6, 0x7b, 0x9f, 0xc2, 0xff, 0xd6, 0x52, 0x2c, 0xe2, 0x38, 0x3e, 0x95, 0xf2, + 0xa9, 0xc7, 0xa4, 0x8a, 0x78, 0x5a, 0x3e, 0xac, 0x43, 0x3d, 0xc6, 0xe3, 0x90, 0xef, 0xa5, 0x57, + 0xcf, 0x72, 0x49, 0xa4, 0xdb, 0xf5, 0xc5, 0x29, 0xf1, 0x42, 0x92, 0xf5, 0xbb, 0x01, 0x6b, 0x87, + 0x92, 0xfa, 0x7b, 0x27, 0xca, 0x15, 0x8c, 0xbb, 0x8d, 0x70, 0xfd, 0x20, 0x14, 0x47, 0xfb, 0xb0, + 0x22, 0xb4, 0x35, 0x69, 0x1a, 0xb5, 0xd2, 0xc6, 0xe2, 0xfb, 0xd6, 0x66, 0x52, 0x7a, 0x33, 0x4f, + 0x06, 0x67, 0xc9, 0x68, 0x0b, 0x6e, 0x45, 0xa1, 0xf7, 0x76, 0x91, 0xe6, 0x74, 0xa0, 0x76, 0x5f, + 0x53, 0x63, 0x5c, 0x61, 0xc2, 0x5d, 0x8a, 0xd3, 0xe8, 0x38, 0xe2, 0x26, 0xb7, 0x45, 0xa7, 0x20, + 0x62, 0xa6, 0xad, 0x0d, 0x89, 0x58, 0x97, 0xc1, 0x59, 0xf2, 0x04, 0x22, 0xae, 0xec, 0xc4, 0x4d, + 0x90, 0x89, 0x17, 0xc3, 0x2b, 0x76, 0x66, 0x35, 0x8a, 0xb8, 0x96, 0xde, 0x23, 0x2b, 0x83, 0xf3, + 0xc8, 0xe3, 0x46, 0xfc, 0xcb, 0x22, 0xdc, 0x69, 0x49, 0xf7, 0x0b, 0xfa, 0xfd, 0x60, 0x43, 0x64, + 0xc2, 0x9c, 0xed, 0x53, 0xa2, 0x84, 0x6f, 0x1a, 0x35, 0x63, 0x63, 0x01, 0x47, 0x7f, 0xa2, 0x63, + 0xa8, 0x0c, 0x82, 0x68, 0x85, 0x77, 0x21, 0xca, 0x2f, 0xdc, 0x7a, 0xa3, 0x28, 0x11, 0x1d, 0x8f, + 0x87, 0x68, 0xa1, 0xaf, 0xa0, 0xdf, 0xe5, 0x99, 0x4d, 0x4a, 0xc1, 0x26, 0x6f, 0xa4, 0x37, 0x39, + 0xc8, 0x83, 0xe2, 0x7c, 0x05, 0xb4, 0x0f, 0xc8, 0x3e, 0x91, 0x4a, 0x74, 0x76, 0x93, 0xba, 0xe5, + 0xdc, 0x53, 0xc8, 0xe0, 0x70, 0x0e, 0xb7, 0xe8, 0x60, 0x67, 0xc6, 0x39, 0xd8, 0xcf, 0x61, 0x31, + 0x61, 0x46, 0xe6, 0x6c, 0xcd, 0xc8, 0xa6, 0x3d, 0xd0, 0xda, 0x1f, 0x40, 0xb7, 0xcb, 0xe7, 0x17, + 0xeb, 0x06, 0x4e, 0xb2, 0x51, 0x0b, 0x56, 0xa4, 0x22, 0xdc, 0x21, 0xbe, 0x23, 0xe3, 0x8c, 0xe7, + 0x82, 0xf0, 0xd6, 0xd3, 0x92, 0x4f, 0x74, 0x18, 0xce, 0x32, 0xd1, 0x16, 0xdc, 0x0e, 0x48, 0xf2, + 0x40, 0xec, 0xf4, 0x3a, 0x83, 0x9a, 0xf3, 0x81, 0xd6, 0xbd, 0xb4, 0xd6, 0x76, 0xdf, 0x69, 0xb1, + 0x06, 0x46, 0x1f, 0xc2, 0x42, 0x6c, 0xd1, 0xe6, 0x42, 0xc0, 0x7c, 0x55, 0x3b, 0xcf, 0x70, 0x19, + 0x0f, 0x80, 0xe8, 0x29, 0xdc, 0xb7, 0x05, 0x57, 0x3e, 0xb1, 0x55, 0xa3, 0x6f, 0x99, 0x71, 0x26, + 0x10, 0x68, 0x3c, 0xd4, 0x8b, 0x93, 0x0b, 0xc6, 0x45, 0x2a, 0x68, 0x0b, 0x96, 0x42, 0x2f, 0x7e, + 0xdc, 0xb3, 0x62, 0x73, 0x31, 0x50, 0x7d, 0x90, 0x56, 0x6d, 0x0c, 0x10, 0x38, 0x05, 0x47, 0xdf, + 0x80, 0xe9, 0xd0, 0x23, 0x72, 0xe2, 0xa9, 0xbd, 0x8c, 0x8d, 0x2e, 0x8d, 0x6c, 0xa3, 0x85, 0x1a, + 0x09, 0xfd, 0x66, 0xc6, 0xf4, 0x6e, 0x8d, 0x6c, 0x7a, 0x85, 0x1a, 0xe8, 0x53, 0xa8, 0x86, 0x6b, + 0xbb, 0x4c, 0xf6, 0x5f, 0x0f, 0xfa, 0x84, 0x7a, 0x47, 0x4d, 0xce, 0x14, 0x23, 0x8a, 0x3a, 0xe6, + 0xed, 0x9a, 0xb1, 0x31, 0x8f, 0x5f, 0x80, 0x42, 0x1f, 0xc3, 0x72, 0x88, 0x08, 0xcf, 0x5f, 0x9a, + 0xcb, 0xc3, 0xba, 0x43, 0x47, 0x23, 0x0e, 0xab, 0xb6, 0x90, 0x1d, 0x21, 0x77, 0x04, 0xe3, 0x5f, + 0xfa, 0xa4, 0xdb, 0xa5, 0xfe, 0x3e, 0x51, 0xc7, 0xf2, 0x40, 0x34, 0x1c, 0xc7, 0xbc, 0x13, 0x88, + 0xbd, 0xad, 0x1f, 0x76, 0x0e, 0xa1, 0xe1, 0x38, 0x7b, 0xed, 0x6f, 0xa9, 0xad, 0xf0, 0x30, 0x41, + 0xf4, 0x08, 0x80, 0xf1, 0x53, 0xe2, 0x33, 0xc2, 0x95, 0x34, 0x57, 0x82, 0x8b, 0xf6, 0x7a, 0x5a, + 0xbe, 0x19, 0xaf, 0xc7, 0x9a, 0xe1, 0x35, 0x4b, 0x50, 0xd1, 0x67, 0xb0, 0x4c, 0x3c, 0x46, 0x64, + 0x22, 0x58, 0x94, 0x67, 0x01, 0x8d, 0x08, 0x34, 0x08, 0x50, 0x27, 0x5a, 0x8f, 0xc1, 0xd4, 0x7d, + 0x19, 0x53, 0xd9, 0x15, 0x5c, 0x52, 0xf4, 0x2e, 0x2c, 0x0d, 0x1c, 0xa3, 0xe9, 0xf4, 0x4d, 0x7a, + 0x7b, 0xe9, 0xfc, 0x62, 0x7d, 0xea, 0xef, 0x8b, 0xf5, 0x72, 0x60, 0xf6, 0x29, 0x84, 0xf5, 0x67, + 0x19, 0x2a, 0x2d, 0xe9, 0xb6, 0x18, 0x57, 0x0d, 0xee, 0xec, 0x32, 0xa9, 0x7c, 0xd6, 0x3e, 0x51, + 0x34, 0xf0, 0x4d, 0x39, 0xc4, 0xf0, 0xf5, 0xad, 0xa6, 0x5f, 0xb4, 0x55, 0x8e, 0x37, 0x94, 0xfe, + 0xb7, 0x37, 0x94, 0x47, 0xf5, 0x86, 0xe1, 0xef, 0xd2, 0xcc, 0xcb, 0x78, 0x97, 0x66, 0xc7, 0x7e, + 0x97, 0x0a, 0x5e, 0x91, 0xb9, 0xf1, 0xc6, 0x83, 0xb4, 0xa7, 0xcd, 0x5f, 0xcb, 0xd3, 0xac, 0x37, + 0xc1, 0x2a, 0x6e, 0x9b, 0xa8, 0x1f, 0xad, 0x9f, 0xa6, 0xe1, 0x61, 0x4b, 0xba, 0x87, 0x9c, 0x9d, + 0x52, 0x5f, 0x12, 0xef, 0xb0, 0xeb, 0x10, 0x45, 0x77, 0x72, 0xc2, 0x99, 0x64, 0xa3, 0x15, 0x94, + 0xab, 0x34, 0xc9, 0x72, 0x95, 0xaf, 0x57, 0xae, 0x3a, 0xbc, 0x33, 0x52, 0x1d, 0xe2, 0xca, 0xfd, + 0x5a, 0x86, 0x95, 0x1e, 0x23, 0x00, 0x46, 0x0d, 0x31, 0xd1, 0x2a, 0x0d, 0xbf, 0x19, 0xa5, 0x97, + 0x71, 0x33, 0xca, 0x37, 0x34, 0xb1, 0xcd, 0x8c, 0x31, 0xb1, 0x0d, 0x19, 0x26, 0x66, 0x27, 0x32, + 0x4c, 0x4c, 0x76, 0xe2, 0xb2, 0x56, 0xe1, 0x41, 0xa6, 0x4f, 0xe2, 0x2e, 0xfa, 0x71, 0x1a, 0xde, + 0x1a, 0xd6, 0x77, 0x89, 0xe1, 0x70, 0xa2, 0xbd, 0xa5, 0x8d, 0xa8, 0xa5, 0xb1, 0x46, 0xd4, 0x31, + 0xaf, 0xde, 0x7b, 0x50, 0x1f, 0xb1, 0x04, 0x71, 0xd9, 0xfe, 0x35, 0x82, 0x37, 0xb6, 0x0f, 0xed, + 0x0d, 0x4b, 0x37, 0x55, 0xa7, 0x4f, 0xf2, 0xea, 0xf4, 0x5a, 0x76, 0x58, 0xbb, 0xd9, 0x0a, 0x59, + 0x50, 0x2b, 0xca, 0x36, 0x2e, 0xc9, 0x6f, 0x46, 0xf0, 0x75, 0x30, 0xec, 0x33, 0xc2, 0x89, 0x4b, + 0xfd, 0x89, 0x96, 0xe2, 0x11, 0x2c, 0x77, 0xfa, 0xb2, 0x9a, 0x07, 0x69, 0xe5, 0x68, 0xa5, 0x41, + 0x58, 0x67, 0x59, 0x95, 0xc4, 0xd9, 0x85, 0xe0, 0x38, 0x8b, 0x3f, 0x0c, 0xb8, 0xdb, 0x92, 0x6e, + 0xc3, 0xb7, 0x8f, 0xd9, 0x29, 0x1d, 0xe9, 0x8b, 0xed, 0xf5, 0x33, 0xd9, 0x07, 0xc4, 0x64, 0xb8, + 0x85, 0xa3, 0x25, 0xa3, 0x79, 0x52, 0x33, 0x83, 0xc3, 0x39, 0x5c, 0xab, 0x0a, 0x6b, 0x79, 0x51, + 0x47, 0x69, 0x6d, 0xe3, 0xf3, 0xcb, 0xaa, 0xf1, 0xfc, 0xb2, 0x6a, 0xfc, 0x73, 0x59, 0x35, 0x7e, + 0xbe, 0xaa, 0x4e, 0x3d, 0xbf, 0xaa, 0x4e, 0xfd, 0x75, 0x55, 0x9d, 0xfa, 0xfa, 0x23, 0x97, 0xa9, + 0xe3, 0x93, 0xf6, 0xa6, 0x2d, 0x3a, 0xf5, 0x36, 0x53, 0x6d, 0xe2, 0xb8, 0x54, 0x0e, 0x3e, 0xd9, + 0xc7, 0x84, 0xf1, 0xfa, 0x59, 0x3d, 0xfd, 0xb3, 0xd1, 0xb3, 0x2e, 0x95, 0xed, 0xd9, 0xe0, 0xc7, + 0xa1, 0x0f, 0xfe, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x69, 0x98, 0x75, 0xdb, 0x6c, 0x13, 0x00, 0x00, } func (m *UserOutgoingApprovalTimeline) Marshal() (dAtA []byte, err error) { diff --git a/x/tokenization/types/nilcheck.go b/x/tokenization/types/nilcheck.go new file mode 100644 index 00000000..e3f182cf --- /dev/null +++ b/x/tokenization/types/nilcheck.go @@ -0,0 +1,207 @@ +// Helper for distinguishing "field unset" from "field set to zero value" +// after the chain normalizes nil pointers on load. +// +// Background: the proto schema marks nested struct fields +// `(gogoproto.nullable) = true` so the canonical Amino JSON omits +// them when the SDK's `dropEmptyProtoSubMessages` strips empty +// sub-messages from the proto wire. This is required for EIP-712 +// typed-data parity with what MetaMask signs. +// +// To prevent nil-deref panics across ~170 keeper access sites, +// `keeper.NormalizeNilPointers` fills nil pointer-to-struct fields +// with fresh zero-value instances after storage load. After +// normalization, `field != nil` no longer reliably distinguishes +// "user set this field" from "user did not set this field" — both +// produce a non-nil pointer (one points to a zero-value struct, +// the other to a populated one). +// +// `IsBasicallyEmpty` recovers that distinction by checking the +// proto-encoded size: a populated message has wire size > 0, a +// zero-value message has size 0. Use this at "is field set" +// semantic check sites; keep `!= nil` for plain nil-safety guards +// (those continue to work after normalize). + +package types + +import ( + "bytes" + "reflect" + "strings" + + "github.com/gogo/protobuf/proto" +) + +// ProtoEqualNullableAware reports whether two proto messages are +// semantically equal under the nullable=true schema, treating any +// IsBasicallyEmpty sub-message as equivalent to a nil pointer. +// +// Plain proto.Marshal byte-comparison is incorrect post-upgrade +// because storage written under the old (nullable=false) binary has +// explicit `&Empty{}` sub-messages serialized with a length-0 tag, +// while a fresh submission via the new SDK omits the tag entirely. +// Same semantic content, different bytes — naive byte.Equal returns +// false. This helper deep-clones both sides, recursively replaces +// IsBasicallyEmpty pointer-to-struct fields with nil, then marshals. +// Nil and empty collapse to the same canonical form. +// +// Use at change-detection sites (approval edits, CanUpdate permission +// gates) — anywhere "did the user change this" matters. +func ProtoEqualNullableAware(a, b proto.Message) bool { + if (a == nil) != (b == nil) { + return false + } + if a == nil { + return true + } + aBytes, errA := canonicalProtoBytes(a) + bBytes, errB := canonicalProtoBytes(b) + if errA != nil || errB != nil { + return false + } + return bytes.Equal(aBytes, bBytes) +} + +func canonicalProtoBytes(m proto.Message) ([]byte, error) { + cloned := proto.Clone(m) + if cloned != nil { + canonicalizeProtoMessage(cloned) + } + return proto.Marshal(cloned) +} + +// canonicalizeProtoMessage walks a proto message and replaces any +// IsBasicallyEmpty pointer-to-struct field with nil. Mutates in place. +// Caller is responsible for cloning if the input must be preserved. +func canonicalizeProtoMessage(m proto.Message) { + if m == nil { + return + } + rv := reflect.ValueOf(m) + if rv.Kind() != reflect.Ptr || rv.IsNil() { + return + } + canonicalizeStructValue(rv.Elem(), 0) +} + +func canonicalizeStructValue(rv reflect.Value, depth int) { + if depth > 50 || rv.Kind() != reflect.Struct { + return + } + t := rv.Type() + for i := 0; i < rv.NumField(); i++ { + f := rv.Field(i) + if !f.CanSet() || strings.HasPrefix(t.Field(i).Name, "XXX_") { + continue + } + switch f.Kind() { + case reflect.Ptr: + if f.IsNil() { + continue + } + if f.Type().Elem().Kind() != reflect.Struct { + continue + } + // Recurse first (children may turn this struct into all-zero) + canonicalizeStructValue(f.Elem(), depth+1) + // Then collapse if now basically empty + if isStructAllZero(f.Elem(), depth+1) { + f.Set(reflect.Zero(f.Type())) + } + case reflect.Struct: + canonicalizeStructValue(f, depth+1) + case reflect.Slice: + for j := 0; j < f.Len(); j++ { + e := f.Index(j) + if e.Kind() == reflect.Ptr && !e.IsNil() && e.Type().Elem().Kind() == reflect.Struct { + canonicalizeStructValue(e.Elem(), depth+1) + } else if e.Kind() == reflect.Struct { + canonicalizeStructValue(e, depth+1) + } + } + } + } +} + +// IsBasicallyEmpty reports whether `m` is conceptually unset. +// +// Returns true when: +// - `m` is nil (interface or typed nil pointer) +// - all of `m`'s fields are zero values +// - all message-typed sub-fields are themselves IsBasicallyEmpty +// (recursive — a non-nil pointer to a zero-value struct counts as +// empty, including when its sub-fields are also non-nil pointers to +// zero-value structs) +// +// Why not just `m.Size() == 0`: gogoproto's Size() includes the wire +// tag + length-0 marker (typically 2 bytes) for every non-nil +// embedded-message field, even when that embedded message is itself +// all-zero. After `keeper.NormalizeNilPointers` walks a fresh struct, +// every sub-field is a non-nil pointer to a zero struct, so Size +// returns nonzero — falsely reporting "set" — which over-fires +// security checks like the cosmosCoinBackedPath / Mint-approval +// rule. +// +// Reflection walk treats normalize-filled empty pointer chains as +// empty so callers get the original "user actually configured this" +// semantic back. +func IsBasicallyEmpty(m interface{}) bool { + if m == nil { + return true + } + rv := reflect.ValueOf(m) + if rv.Kind() == reflect.Ptr { + if rv.IsNil() { + return true + } + rv = rv.Elem() + } + if rv.Kind() != reflect.Struct { + // scalar pointed-to value: zero <=> empty + return rv.IsZero() + } + return isStructAllZero(rv, 0) +} + +func isStructAllZero(rv reflect.Value, depth int) bool { + if depth > 50 { + // safety: assume non-empty rather than recurse infinitely + return false + } + t := rv.Type() + for i := 0; i < rv.NumField(); i++ { + f := rv.Field(i) + name := t.Field(i).Name + // Skip protobuf bookkeeping fields (XXX_unrecognized, XXX_sizecache, etc). + if strings.HasPrefix(name, "XXX_") { + continue + } + if !isFieldZero(f, depth+1) { + return false + } + } + return true +} + +func isFieldZero(f reflect.Value, depth int) bool { + switch f.Kind() { + case reflect.Ptr: + if f.IsNil() { + return true + } + // Non-nil pointer to a struct: empty if the pointee is all-zero + // (recursive). This is the load-bearing case — it makes + // `&Conversion{}` (normalize-filled) report as empty even though + // the parent `&CosmosCoinBackedPath{Conversion: &Conversion{}}` + // has non-zero proto.Size(). + if f.Type().Elem().Kind() == reflect.Struct { + return isStructAllZero(f.Elem(), depth) + } + return f.IsZero() + case reflect.Struct: + return isStructAllZero(f, depth) + case reflect.Slice, reflect.Map: + return f.Len() == 0 + default: + return f.IsZero() + } +} diff --git a/x/tokenization/types/nilcheck_test.go b/x/tokenization/types/nilcheck_test.go new file mode 100644 index 00000000..123590da --- /dev/null +++ b/x/tokenization/types/nilcheck_test.go @@ -0,0 +1,111 @@ +package types + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +// nil interface → true. +func TestIsBasicallyEmpty_NilInterface(t *testing.T) { + require.True(t, IsBasicallyEmpty(nil)) +} + +// Typed nil pointer (interface holds nil but not typed nil) → true. +// gogoproto's Size() returns 0 for nil receiver, so this works even +// without an explicit reflect check. +func TestIsBasicallyEmpty_TypedNilPointer(t *testing.T) { + var p *CosmosCoinBackedPath + require.True(t, IsBasicallyEmpty(p)) +} + +// Zero-value struct (no fields populated) → true. +// This is the "after normalize-on-load" case: the field is non-nil but +// conceptually unset. +func TestIsBasicallyEmpty_ZeroValueStruct(t *testing.T) { + p := &CosmosCoinBackedPath{} + require.True(t, IsBasicallyEmpty(p), "fresh empty struct must be considered unset") +} + +// Populated struct → false. +func TestIsBasicallyEmpty_PopulatedStruct(t *testing.T) { + p := &CosmosCoinBackedPath{ + Address: "bb1xyz", + } + require.False(t, IsBasicallyEmpty(p), "struct with set field must NOT be considered empty") +} + +// Partially populated still counts as not-empty (single field is enough). +func TestIsBasicallyEmpty_BoolFieldOnly(t *testing.T) { + inv := &CollectionInvariants{ + DisablePoolCreation: true, + } + require.False(t, IsBasicallyEmpty(inv)) +} + +// Test against AddressChecks (one of our main empty struct types). +func TestIsBasicallyEmpty_AddressChecks(t *testing.T) { + require.True(t, IsBasicallyEmpty((*AddressChecks)(nil))) + require.True(t, IsBasicallyEmpty(&AddressChecks{})) + require.False(t, IsBasicallyEmpty(&AddressChecks{MustBeEvmContract: true})) +} + +// Test against AutoDeletionOptions. +func TestIsBasicallyEmpty_AutoDeletionOptions(t *testing.T) { + require.True(t, IsBasicallyEmpty((*AutoDeletionOptions)(nil))) + require.True(t, IsBasicallyEmpty(&AutoDeletionOptions{})) + require.False(t, IsBasicallyEmpty(&AutoDeletionOptions{AfterOneUse: true})) +} + +// Critical regression: after `keeper.NormalizeNilPointers` walks a +// fresh struct it leaves every sub-field as a non-nil pointer to a +// zero-value struct. `Size()` on the parent returns nonzero (it +// counts the embedded-message tag + length-0 marker), but the +// container is conceptually still unset. IsBasicallyEmpty must +// see through this. +func TestIsBasicallyEmpty_NormalizeFilledStillEmpty(t *testing.T) { + // `&CosmosCoinBackedPath{Conversion: &Conversion{}}` — exactly the + // shape after a normalize fill on a fresh struct that started nil. + post := &CosmosCoinBackedPath{ + Conversion: &Conversion{}, + } + require.True(t, IsBasicallyEmpty(post), + "normalize-filled empty chain must be reported as 'unset' even though Size() > 0") + + // And a deeper nest still empty. + deeper := &CosmosCoinBackedPath{ + Conversion: &Conversion{ + SideA: &ConversionSideAWithDenom{}, + SideB: nil, + }, + } + require.True(t, IsBasicallyEmpty(deeper)) + + // Once any leaf has a real value, it's no longer empty. + withValue := &CosmosCoinBackedPath{ + Conversion: &Conversion{ + SideA: &ConversionSideAWithDenom{Denom: "ucredit"}, + }, + } + require.False(t, IsBasicallyEmpty(withValue)) +} + +// Verify the actual bootstrap-blocking scenario: a CollectionInvariants +// with CosmosCoinBackedPath set vs unset. +func TestIsBasicallyEmpty_BootstrapScenario(t *testing.T) { + // Scenario A: user did not configure CosmosCoinBackedPath. Before + // normalize-on-load, this would be `nil`. After normalize, this is + // `&CosmosCoinBackedPath{}` (non-nil empty). + invUnset := &CollectionInvariants{ + CosmosCoinBackedPath: &CosmosCoinBackedPath{}, // post-normalize empty + } + require.True(t, IsBasicallyEmpty(invUnset.CosmosCoinBackedPath), + "post-normalize empty must be reported as 'unset' so Mint transfers aren't wrongly blocked") + + // Scenario B: user configured a real backed path. + invSet := &CollectionInvariants{ + CosmosCoinBackedPath: &CosmosCoinBackedPath{Address: "bb1xyz"}, + } + require.False(t, IsBasicallyEmpty(invSet.CosmosCoinBackedPath), + "populated CosmosCoinBackedPath must be reported as set") +} diff --git a/x/tokenization/types/predetermined_balances.pb.go b/x/tokenization/types/predetermined_balances.pb.go index 81c93a33..d25a7875 100644 --- a/x/tokenization/types/predetermined_balances.pb.go +++ b/x/tokenization/types/predetermined_balances.pb.go @@ -372,53 +372,53 @@ func init() { } var fileDescriptor_ed7945f6a1a04eba = []byte{ - // 724 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x95, 0xdf, 0x4e, 0xdb, 0x48, - 0x14, 0xc6, 0x63, 0x92, 0x65, 0x93, 0x09, 0xcb, 0xc5, 0xf0, 0xcf, 0x0b, 0x4b, 0xc8, 0x66, 0x77, - 0xa5, 0xec, 0x5e, 0x24, 0x22, 0xbb, 0x5a, 0x55, 0x6a, 0x55, 0x41, 0x40, 0x48, 0xa9, 0x48, 0x41, - 0x26, 0x6d, 0xa5, 0xde, 0xa0, 0x89, 0x7d, 0xb0, 0x47, 0x8c, 0xc7, 0xd1, 0x78, 0x0c, 0xa4, 0x4f, - 0xd1, 0x17, 0xe8, 0x13, 0xf4, 0x09, 0xfa, 0x06, 0x5c, 0x72, 0x59, 0xf5, 0x02, 0x55, 0xf0, 0x0c, - 0xbd, 0xaf, 0x3c, 0xe4, 0xdf, 0xa0, 0x09, 0xe5, 0x2e, 0xf6, 0xf9, 0x7d, 0x5f, 0x66, 0xce, 0x7c, - 0x73, 0x8c, 0xfe, 0x96, 0xd1, 0x29, 0x70, 0xfa, 0x8e, 0x48, 0x1a, 0xf1, 0x7a, 0x4f, 0x80, 0x07, - 0x12, 0x44, 0x48, 0x39, 0x78, 0xc7, 0x5d, 0xc2, 0x08, 0x77, 0x21, 0xae, 0xf5, 0x44, 0x24, 0x23, - 0x3c, 0x37, 0x89, 0xae, 0x2e, 0xfa, 0x91, 0x1f, 0xa9, 0x42, 0x3d, 0xfd, 0x75, 0xc7, 0xac, 0xae, - 0x69, 0x76, 0xba, 0xc1, 0xea, 0xba, 0x56, 0x74, 0x03, 0xc2, 0x18, 0x70, 0x7f, 0x58, 0xae, 0xec, - 0xa0, 0xf9, 0x36, 0xe1, 0x09, 0x61, 0xcd, 0x81, 0x0c, 0x6f, 0xa2, 0xfc, 0xd0, 0xc2, 0xb6, 0xca, - 0xd9, 0x6a, 0xb1, 0xb1, 0x54, 0x9b, 0xf4, 0xa8, 0x0d, 0x48, 0x67, 0x84, 0x55, 0x3e, 0x59, 0x68, - 0xc5, 0x01, 0x37, 0x11, 0x82, 0x72, 0xff, 0xe0, 0x9c, 0x83, 0x88, 0x03, 0xda, 0xeb, 0xd0, 0x10, - 0x62, 0xfc, 0x0f, 0x2a, 0xc4, 0x92, 0x08, 0x99, 0x3e, 0xd9, 0x56, 0xd9, 0xaa, 0x16, 0x9a, 0x73, - 0x97, 0xd7, 0x1b, 0x99, 0x2f, 0xd7, 0x1b, 0xb9, 0x57, 0x94, 0x4b, 0x67, 0x5c, 0xc6, 0xff, 0xa1, - 0x79, 0xca, 0x25, 0x88, 0x33, 0xc2, 0xf6, 0x81, 0xfb, 0x32, 0xb0, 0x67, 0x0c, 0x82, 0x7b, 0x0c, - 0x7e, 0x86, 0xb0, 0x1b, 0x10, 0xe1, 0xc3, 0x21, 0x08, 0x1a, 0x79, 0x03, 0x65, 0xd6, 0xa0, 0x34, - 0x70, 0x95, 0x6f, 0x39, 0xb4, 0xd0, 0xe2, 0xae, 0x80, 0x10, 0xb8, 0x04, 0x6f, 0xd4, 0x86, 0xa7, - 0xe8, 0x17, 0xb5, 0xb0, 0xe6, 0xa3, 0x7a, 0xa1, 0xb3, 0xf8, 0x39, 0x5a, 0xa0, 0x43, 0xcf, 0x4e, - 0xca, 0xb7, 0xbc, 0xb8, 0xd9, 0x37, 0xee, 0xc6, 0x04, 0xe2, 0x17, 0xe8, 0xd7, 0xd1, 0x6b, 0xbd, - 0x9f, 0xcd, 0xbe, 0x71, 0x67, 0xd3, 0x71, 0xdc, 0x44, 0x4b, 0x5e, 0x22, 0xd4, 0x72, 0xf7, 0x44, - 0x14, 0xaa, 0xd7, 0x92, 0x84, 0x3d, 0x3b, 0x67, 0xf0, 0x31, 0xa3, 0xf8, 0x7f, 0xb4, 0x4c, 0x18, - 0x8b, 0xce, 0x0f, 0xce, 0x40, 0x08, 0xea, 0xc1, 0xd8, 0xe4, 0xa7, 0xb2, 0x55, 0xcd, 0x3b, 0x53, - 0xaa, 0xf8, 0x18, 0xad, 0x08, 0x73, 0x2e, 0xec, 0xd9, 0xb2, 0x55, 0x2d, 0x36, 0xfe, 0xd2, 0xdb, - 0x39, 0x25, 0x44, 0xce, 0x34, 0x17, 0xbc, 0x87, 0x4a, 0xda, 0x5f, 0xbf, 0xa1, 0x32, 0xd8, 0xe6, - 0xfd, 0xd7, 0x84, 0x51, 0x4f, 0xf5, 0xd3, 0xfe, 0x59, 0x2d, 0xf0, 0x07, 0x14, 0xae, 0x21, 0xac, - 0x88, 0xed, 0x30, 0x4a, 0xb8, 0x3c, 0x72, 0x09, 0xa3, 0xdc, 0xb7, 0xf3, 0x4a, 0x6b, 0xa8, 0xe0, - 0x2d, 0xb4, 0x18, 0x92, 0x8b, 0xc1, 0x53, 0x3b, 0x61, 0x92, 0xf6, 0x18, 0x05, 0x61, 0x17, 0x0c, - 0x3d, 0x35, 0x92, 0x95, 0x8f, 0x59, 0xf4, 0xc7, 0xe1, 0xe4, 0xcd, 0x3f, 0x10, 0x1e, 0x88, 0x1d, - 0xc2, 0xdc, 0x84, 0xa9, 0x66, 0xb4, 0x41, 0x06, 0x91, 0x97, 0xb6, 0x3e, 0x89, 0x21, 0x5d, 0x39, - 0x61, 0xec, 0x65, 0x12, 0x76, 0x04, 0xe1, 0xf1, 0x09, 0x88, 0x58, 0x5d, 0xa6, 0xbc, 0x33, 0xa5, - 0x8a, 0xb7, 0xd0, 0x5a, 0x12, 0xa7, 0x51, 0xef, 0x44, 0xdb, 0x9e, 0x27, 0x20, 0x8e, 0x35, 0xf1, - 0x8c, 0x12, 0x3f, 0x84, 0xe0, 0x5d, 0xb4, 0x7e, 0x57, 0x4e, 0xb3, 0x60, 0xf2, 0xc8, 0x2a, 0x8f, - 0x87, 0x21, 0xec, 0xa0, 0x3f, 0xef, 0x80, 0x16, 0xa7, 0x92, 0x92, 0xf4, 0x8a, 0xf5, 0x4d, 0x66, - 0x39, 0x65, 0xf6, 0x28, 0x76, 0xb0, 0xb7, 0x36, 0x88, 0x53, 0x06, 0x3b, 0xc3, 0x89, 0xb6, 0x0f, - 0xe4, 0xa4, 0xc5, 0x3d, 0xb8, 0x18, 0x64, 0xf2, 0x21, 0x24, 0x3d, 0xef, 0xd1, 0x28, 0xec, 0x08, - 0xe2, 0x9e, 0x82, 0x68, 0x79, 0x2a, 0x93, 0x05, 0xc7, 0x50, 0xa9, 0x7c, 0x98, 0x41, 0x4b, 0xda, - 0x69, 0x8d, 0xae, 0xfa, 0x2e, 0x9a, 0x0f, 0xb5, 0x01, 0x3a, 0x18, 0x14, 0xbf, 0xe9, 0xc9, 0xd6, - 0x87, 0xac, 0x73, 0x4f, 0x83, 0x8f, 0x26, 0x06, 0xc6, 0xd8, 0x5c, 0x9d, 0x52, 0xb1, 0xf1, 0xbb, - 0x6e, 0x65, 0x98, 0x56, 0x8e, 0x49, 0x8d, 0x29, 0x5a, 0x8e, 0x8c, 0xa1, 0x52, 0x27, 0x57, 0x6c, - 0x6c, 0xea, 0xbe, 0x8f, 0x48, 0xa3, 0x33, 0xc5, 0xb0, 0xe9, 0x5c, 0xde, 0x94, 0xac, 0xab, 0x9b, - 0x92, 0xf5, 0xf5, 0xa6, 0x64, 0xbd, 0xbf, 0x2d, 0x65, 0xae, 0x6e, 0x4b, 0x99, 0xcf, 0xb7, 0xa5, - 0xcc, 0xdb, 0x27, 0x3e, 0x95, 0x41, 0xd2, 0xad, 0xb9, 0x51, 0x58, 0xef, 0x52, 0xd9, 0x25, 0x9e, - 0x0f, 0xf1, 0xf8, 0x97, 0x1b, 0x10, 0xca, 0xeb, 0x17, 0x75, 0xed, 0x2b, 0x25, 0xfb, 0x3d, 0x88, - 0xbb, 0xb3, 0xea, 0x0b, 0xf5, 0xef, 0xf7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6e, 0x51, 0xcb, 0x74, - 0x2e, 0x07, 0x00, 0x00, + // 730 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x95, 0xdd, 0x4e, 0xdb, 0x48, + 0x14, 0xc7, 0x63, 0x92, 0x65, 0x93, 0x09, 0xcb, 0xc5, 0xf0, 0xe5, 0x85, 0x25, 0x64, 0xb3, 0xbb, + 0x52, 0x76, 0x2f, 0x12, 0x91, 0xad, 0xaa, 0x4a, 0xad, 0x2a, 0x30, 0x08, 0x29, 0x15, 0x29, 0xc8, + 0x4d, 0x5b, 0xb5, 0x37, 0xd5, 0xc4, 0x3e, 0xd8, 0x23, 0xc6, 0xe3, 0x68, 0x3c, 0x06, 0xd2, 0xa7, + 0xe8, 0x6b, 0x54, 0x7d, 0x82, 0xbe, 0x01, 0x97, 0x5c, 0x56, 0xbd, 0x40, 0x15, 0x3c, 0x46, 0x6f, + 0x2a, 0x0f, 0xce, 0x87, 0xd1, 0x84, 0x72, 0x67, 0xfb, 0xfc, 0xce, 0xdf, 0x67, 0xce, 0xd7, 0xa0, + 0x7f, 0x65, 0x78, 0x0c, 0x9c, 0xbe, 0x27, 0x92, 0x86, 0xbc, 0xd9, 0x17, 0xe0, 0x82, 0x04, 0x11, + 0x50, 0x0e, 0xee, 0xbb, 0x1e, 0x61, 0x84, 0x3b, 0x10, 0x35, 0xfa, 0x22, 0x94, 0x21, 0x9e, 0x9b, + 0x44, 0x57, 0x17, 0xbd, 0xd0, 0x0b, 0x95, 0xa1, 0x99, 0x3c, 0xdd, 0x30, 0xab, 0x6b, 0x19, 0xb9, + 0xac, 0xc0, 0xea, 0x7a, 0xc6, 0xe8, 0xf8, 0x84, 0x31, 0xe0, 0xde, 0xd0, 0x5c, 0xdb, 0x41, 0xf3, + 0x1d, 0xc2, 0x63, 0xc2, 0xac, 0xd4, 0x0d, 0x6f, 0xa2, 0xe2, 0x50, 0xc2, 0x34, 0xaa, 0xf9, 0x7a, + 0xb9, 0xb5, 0xd4, 0x98, 0xd4, 0x68, 0xa4, 0xa4, 0x3d, 0xc2, 0x6a, 0x9f, 0x0d, 0xb4, 0x62, 0x83, + 0x13, 0x0b, 0x41, 0xb9, 0x77, 0x70, 0xca, 0x41, 0x44, 0x3e, 0xed, 0x77, 0x69, 0x00, 0x11, 0xfe, + 0x0f, 0x95, 0x22, 0x49, 0x84, 0x4c, 0xde, 0x4c, 0xa3, 0x6a, 0xd4, 0x4b, 0xd6, 0xdc, 0xf9, 0xe5, + 0x46, 0xee, 0xeb, 0xe5, 0x46, 0xe1, 0x25, 0xe5, 0xd2, 0x1e, 0x9b, 0xf1, 0x03, 0x34, 0x4f, 0xb9, + 0x04, 0x71, 0x42, 0xd8, 0x3e, 0x70, 0x4f, 0xfa, 0xe6, 0x8c, 0xc6, 0xe1, 0x16, 0x83, 0x9f, 0x20, + 0xec, 0xf8, 0x44, 0x78, 0x70, 0x08, 0x82, 0x86, 0x6e, 0xea, 0x99, 0xd7, 0x78, 0x6a, 0xb8, 0xda, + 0xf7, 0x02, 0x5a, 0x68, 0x73, 0x47, 0x40, 0x00, 0x5c, 0x82, 0x3b, 0x4a, 0xc3, 0x63, 0xf4, 0x9b, + 0x0a, 0xcc, 0xba, 0x57, 0x2e, 0xb2, 0x2c, 0x7e, 0x8a, 0x16, 0xe8, 0x50, 0xb3, 0x9b, 0xf0, 0x6d, + 0x37, 0xb2, 0x06, 0xda, 0xd3, 0xe8, 0x40, 0xfc, 0x0c, 0xfd, 0x3e, 0xfa, 0x9c, 0xcd, 0xa7, 0x35, + 0xd0, 0x9e, 0x6c, 0x3a, 0x8e, 0x2d, 0xb4, 0xe4, 0xc6, 0x42, 0x85, 0xbb, 0x27, 0xc2, 0x40, 0x7d, + 0x96, 0x24, 0xe8, 0x9b, 0x05, 0x8d, 0x8e, 0x1e, 0xc5, 0x0f, 0xd1, 0x32, 0x61, 0x2c, 0x3c, 0x3d, + 0x38, 0x01, 0x21, 0xa8, 0x0b, 0x63, 0x91, 0x5f, 0xaa, 0x46, 0xbd, 0x68, 0x4f, 0xb1, 0x62, 0x40, + 0x2b, 0x42, 0xdf, 0x17, 0xe6, 0x6c, 0xd5, 0xa8, 0x97, 0x5b, 0xff, 0x64, 0xd3, 0x39, 0xa5, 0x89, + 0xac, 0xc2, 0xf9, 0xe5, 0x86, 0x61, 0x4f, 0xd3, 0xc2, 0x7b, 0xa8, 0x92, 0x09, 0xe0, 0x35, 0x95, + 0xfe, 0x36, 0x1f, 0xbc, 0x22, 0x8c, 0xba, 0x2a, 0xab, 0xe6, 0xaf, 0x2a, 0xcc, 0x9f, 0x50, 0xb8, + 0x81, 0xb0, 0x22, 0xb6, 0x83, 0x30, 0xe6, 0xf2, 0x85, 0x43, 0x18, 0xe5, 0x9e, 0x59, 0x54, 0xbe, + 0x1a, 0x0b, 0xde, 0x42, 0x8b, 0x01, 0x39, 0x4b, 0xdf, 0x3a, 0x31, 0x93, 0xb4, 0xcf, 0x28, 0x08, + 0xb3, 0xa4, 0xc9, 0xac, 0x96, 0xac, 0x7d, 0xca, 0xa3, 0xbf, 0x0e, 0x27, 0xe7, 0xff, 0x40, 0xb8, + 0x20, 0x76, 0x08, 0x73, 0x62, 0xa6, 0x52, 0xd2, 0x01, 0xe9, 0x87, 0x6e, 0x52, 0x80, 0x38, 0x82, + 0x24, 0x72, 0xc2, 0xd8, 0xf3, 0x38, 0xe8, 0x0a, 0xc2, 0xa3, 0x23, 0x10, 0x91, 0x1a, 0xa9, 0xa2, + 0x3d, 0xc5, 0x8a, 0xb7, 0xd0, 0x5a, 0x1c, 0x25, 0x0d, 0xdf, 0x0d, 0xb7, 0x5d, 0x57, 0x40, 0x14, + 0x65, 0x9c, 0x67, 0x94, 0xf3, 0x5d, 0x08, 0xde, 0x45, 0xeb, 0x37, 0xe6, 0xa4, 0x23, 0x74, 0x1a, + 0x79, 0xa5, 0x71, 0x37, 0x84, 0x6d, 0xf4, 0xf7, 0x0d, 0xd0, 0xe6, 0x54, 0x52, 0x92, 0x0c, 0xda, + 0x40, 0x27, 0x56, 0x50, 0x62, 0xf7, 0x62, 0xd3, 0xb3, 0x75, 0x40, 0x1c, 0x33, 0xd8, 0x19, 0xee, + 0xb5, 0x7d, 0x20, 0x47, 0x6d, 0xee, 0xc2, 0x59, 0xda, 0x99, 0x77, 0x21, 0x49, 0xbd, 0x47, 0x0b, + 0xb1, 0x2b, 0x88, 0x73, 0x0c, 0xa2, 0xed, 0xaa, 0xce, 0x2c, 0xd9, 0x1a, 0x4b, 0xed, 0xe3, 0x0c, + 0x5a, 0xca, 0x54, 0x6b, 0x34, 0xf0, 0xbb, 0x68, 0x3e, 0xc8, 0xac, 0xd1, 0x74, 0x5d, 0xfc, 0x91, + 0xed, 0xef, 0xec, 0xaa, 0xb5, 0x6f, 0xf9, 0xe0, 0x37, 0x13, 0x6b, 0x63, 0x2c, 0xae, 0xaa, 0x54, + 0x6e, 0xfd, 0x99, 0x95, 0xd2, 0xec, 0xac, 0x74, 0x4c, 0x74, 0x1a, 0x38, 0x44, 0xcb, 0xa1, 0xb6, + 0xb5, 0x54, 0xfd, 0xca, 0xad, 0xcd, 0xac, 0xfa, 0x3d, 0x7a, 0x32, 0xfd, 0xdb, 0x14, 0x59, 0xcb, + 0x3e, 0xbf, 0xaa, 0x18, 0x17, 0x57, 0x15, 0xe3, 0xdb, 0x55, 0xc5, 0xf8, 0x70, 0x5d, 0xc9, 0x5d, + 0x5c, 0x57, 0x72, 0x5f, 0xae, 0x2b, 0xb9, 0xb7, 0x8f, 0x3c, 0x2a, 0xfd, 0xb8, 0xd7, 0x70, 0xc2, + 0xa0, 0xd9, 0xa3, 0xb2, 0x47, 0x5c, 0x0f, 0xa2, 0xf1, 0x93, 0xe3, 0x13, 0xca, 0x9b, 0x67, 0xcd, + 0xcc, 0xbd, 0x25, 0x07, 0x7d, 0x88, 0x7a, 0xb3, 0xea, 0xce, 0xfa, 0xff, 0x47, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xd3, 0xda, 0x8a, 0xa3, 0x40, 0x07, 0x00, 0x00, } func (m *ManualBalances) Marshal() (dAtA []byte, err error) { diff --git a/x/tokenization/types/query.pb.go b/x/tokenization/types/query.pb.go index 10624c35..22a02b4c 100644 --- a/x/tokenization/types/query.pb.go +++ b/x/tokenization/types/query.pb.go @@ -1714,118 +1714,119 @@ func init() { func init() { proto.RegisterFile("tokenization/query.proto", fileDescriptor_527f2b136015fc22) } var fileDescriptor_527f2b136015fc22 = []byte{ - // 1764 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0x4b, 0x6f, 0x14, 0x57, - 0x16, 0x76, 0x35, 0x7e, 0xe0, 0x03, 0x0c, 0xd2, 0xc5, 0x03, 0xed, 0xc2, 0xb4, 0xed, 0x8b, 0x99, - 0x61, 0x00, 0x77, 0xf1, 0x14, 0xcc, 0x4b, 0x0c, 0xc6, 0x03, 0x34, 0x63, 0x84, 0x69, 0x3f, 0x18, - 0x79, 0x16, 0xad, 0xea, 0xee, 0xeb, 0x76, 0x89, 0xea, 0xaa, 0xa6, 0xaa, 0xda, 0x83, 0xa7, 0xd5, - 0x9b, 0x21, 0x8a, 0x14, 0x09, 0xe5, 0x21, 0x36, 0x91, 0xa2, 0x28, 0x52, 0x76, 0x64, 0x91, 0x64, - 0x91, 0xbf, 0x10, 0x09, 0x65, 0x85, 0xc4, 0x26, 0x41, 0x0a, 0x8a, 0x20, 0xca, 0x2a, 0xf9, 0x0f, - 0x51, 0xdd, 0x3a, 0xf5, 0xb8, 0xdd, 0x55, 0xfd, 0xc0, 0x2c, 0xc8, 0xce, 0x75, 0xcf, 0xb9, 0xe7, - 0x7e, 0xdf, 0x39, 0xa7, 0xef, 0x3d, 0x9f, 0x21, 0xed, 0x98, 0x77, 0x98, 0xa1, 0xfd, 0x4f, 0x75, - 0x34, 0xd3, 0x50, 0xee, 0xd6, 0x99, 0xb5, 0x95, 0xad, 0x59, 0xa6, 0x63, 0x92, 0xdd, 0x51, 0x8b, - 0x3c, 0x56, 0x31, 0x2b, 0x26, 0x37, 0x28, 0xee, 0x5f, 0x9e, 0x8f, 0x3c, 0x51, 0x31, 0xcd, 0x8a, - 0xce, 0x14, 0xb5, 0xa6, 0x29, 0xaa, 0x61, 0x98, 0x0e, 0x77, 0xb6, 0xd1, 0x7a, 0xac, 0x64, 0xda, - 0x55, 0xd3, 0x56, 0x8a, 0xaa, 0xcd, 0xbc, 0xd0, 0xca, 0xe6, 0xa9, 0x22, 0x73, 0xd4, 0x53, 0x4a, - 0x4d, 0xad, 0x68, 0x06, 0x77, 0x46, 0xdf, 0x71, 0x01, 0x47, 0x4d, 0xb5, 0xd4, 0xaa, 0x1f, 0x26, - 0x23, 0x98, 0x4a, 0xa6, 0xae, 0xb3, 0x52, 0xf4, 0x98, 0x83, 0x82, 0xbd, 0xa8, 0xea, 0xaa, 0x51, - 0x62, 0xbe, 0x71, 0x42, 0x30, 0x3a, 0x96, 0x6a, 0xd8, 0xeb, 0xcc, 0xf2, 0xad, 0x53, 0x82, 0x55, - 0x2d, 0x97, 0x2d, 0x66, 0xdb, 0x05, 0x5d, 0xb3, 0x1d, 0xdf, 0x63, 0x5a, 0xf0, 0x28, 0x6f, 0x19, - 0x6a, 0x55, 0x2b, 0x15, 0x6c, 0xc7, 0xb4, 0x82, 0x23, 0x8e, 0x08, 0x2e, 0x75, 0x9b, 0x59, 0x05, - 0x04, 0xe1, 0xf9, 0xa1, 0xdb, 0x8c, 0x78, 0x56, 0xad, 0x66, 0x99, 0x9b, 0xaa, 0x5e, 0x70, 0x2c, - 0xb5, 0x74, 0x47, 0x33, 0x2a, 0xe8, 0x75, 0x48, 0x24, 0xbb, 0xa1, 0xea, 0x3a, 0x33, 0x2a, 0xfe, - 0x59, 0x74, 0x0c, 0xc8, 0x2d, 0x37, 0x91, 0x8b, 0x3c, 0x41, 0x79, 0x76, 0xb7, 0xce, 0x6c, 0x87, - 0xe6, 0x60, 0x9f, 0xb0, 0x6a, 0xd7, 0x4c, 0xc3, 0x66, 0xe4, 0x34, 0x0c, 0x7b, 0x89, 0x4c, 0x4b, - 0x53, 0xd2, 0xd1, 0x5d, 0xa7, 0xc7, 0xb2, 0xd1, 0xe0, 0x59, 0xcf, 0x7b, 0x6e, 0xf0, 0xf1, 0xf3, - 0xc9, 0x81, 0x3c, 0x7a, 0xd2, 0x8b, 0x30, 0xce, 0x43, 0x5d, 0x65, 0xce, 0xe5, 0x20, 0xd3, 0x78, - 0x0e, 0xa1, 0xb0, 0x3b, 0x4c, 0x7f, 0xae, 0xcc, 0xc3, 0x8e, 0xe6, 0x85, 0x35, 0xfa, 0x1f, 0x90, - 0xe3, 0x02, 0x20, 0xa4, 0xbf, 0x03, 0x84, 0xde, 0x08, 0xeb, 0x90, 0x08, 0x6b, 0xd9, 0xfd, 0x88, - 0x6c, 0x8d, 0x6c, 0xa0, 0xab, 0xb0, 0xdf, 0x0f, 0x3e, 0xe7, 0xa5, 0xb8, 0x0f, 0x68, 0x24, 0x0d, - 0x23, 0x58, 0xe2, 0x74, 0x8a, 0x9b, 0xfd, 0x4f, 0xba, 0x04, 0x07, 0xda, 0xe2, 0x22, 0xe2, 0x0b, - 0x30, 0x82, 0xd5, 0x44, 0xb8, 0x19, 0x11, 0xee, 0x8a, 0xcd, 0x2c, 0xdc, 0xb3, 0xe4, 0x56, 0x3b, - 0xef, 0xbb, 0xd3, 0xb3, 0x61, 0x26, 0x2e, 0x79, 0xe7, 0x2c, 0x68, 0xb6, 0xe3, 0x03, 0xde, 0x0f, - 0xc3, 0x6e, 0x9f, 0x05, 0x50, 0xf1, 0x8b, 0x2e, 0xc0, 0xc1, 0xd8, 0x5d, 0x08, 0x67, 0x16, 0x06, - 0x5d, 0x47, 0xc4, 0x32, 0x2e, 0x62, 0x89, 0x6e, 0xe0, 0x6e, 0xf4, 0xb3, 0x14, 0x64, 0x82, 0x70, - 0xd8, 0x72, 0xcb, 0x6e, 0xc7, 0x31, 0xcb, 0x07, 0x72, 0x14, 0xf6, 0xaa, 0x55, 0xb3, 0x6e, 0x38, - 0xb8, 0x1e, 0x20, 0x6a, 0x5d, 0x26, 0x33, 0xb0, 0xc7, 0x6f, 0xdb, 0x05, 0xb6, 0xc9, 0x74, 0xcc, - 0xa2, 0xb8, 0xc8, 0xe3, 0xf1, 0x05, 0x66, 0x21, 0x9e, 0xf4, 0x0e, 0x8c, 0x27, 0x2e, 0x93, 0x29, - 0xd8, 0xe5, 0x78, 0xc1, 0x97, 0xb7, 0x6a, 0x2c, 0x3d, 0xc8, 0xbd, 0xa2, 0x4b, 0x6d, 0x55, 0x1d, - 0x8a, 0xa9, 0x6a, 0x78, 0x5e, 0xd9, 0x3f, 0x6f, 0x58, 0x38, 0xcf, 0x5f, 0x26, 0x19, 0x00, 0x1f, - 0x6a, 0xae, 0x9c, 0x1e, 0xe1, 0x4e, 0x91, 0x15, 0xba, 0x06, 0x93, 0x89, 0xb9, 0xc2, 0xf4, 0x9f, - 0x87, 0x11, 0xc4, 0x17, 0xdf, 0xbc, 0xad, 0xfb, 0x7c, 0x6f, 0x7a, 0x3f, 0x15, 0x06, 0xbf, 0xec, - 0xff, 0xaa, 0x5b, 0x2a, 0xd1, 0x4b, 0x0f, 0xbf, 0xee, 0x1a, 0x64, 0x81, 0x94, 0x5a, 0xe0, 0xe4, - 0xca, 0x58, 0x8a, 0x18, 0x0b, 0x99, 0x80, 0x51, 0x9d, 0xa9, 0xeb, 0x39, 0xa3, 0xcc, 0xee, 0x61, - 0x39, 0xc2, 0x85, 0x96, 0x0c, 0x0f, 0xb7, 0x65, 0xf8, 0x6f, 0x30, 0x95, 0x9c, 0x04, 0x4c, 0x71, - 0x1a, 0x46, 0x8c, 0x7a, 0x75, 0xc5, 0x66, 0x7e, 0x02, 0xfc, 0x4f, 0x7a, 0x3e, 0xfc, 0x69, 0xcc, - 0x7b, 0x17, 0xb1, 0xf7, 0x8b, 0xc3, 0xf4, 0xa5, 0x61, 0x84, 0xdf, 0xb7, 0x41, 0xe6, 0xfc, 0x4f, - 0xba, 0x08, 0x13, 0xf1, 0x1b, 0xf1, 0xc8, 0x93, 0x30, 0xc4, 0x5d, 0xb1, 0xa6, 0xb2, 0x58, 0x53, - 0x61, 0x8b, 0xe7, 0x48, 0x57, 0x43, 0x22, 0x51, 0xf3, 0xaa, 0xaa, 0xd7, 0xbb, 0xe3, 0xe9, 0x70, - 0x11, 0xad, 0xc1, 0x74, 0x87, 0xb8, 0x08, 0xf7, 0x1c, 0x0c, 0x6d, 0xba, 0x0b, 0x08, 0x77, 0x32, - 0x19, 0xae, 0xb7, 0xcf, 0xf3, 0xa6, 0x6f, 0xa7, 0x80, 0xfa, 0xc1, 0xff, 0xb9, 0x7c, 0x6d, 0x49, - 0xab, 0x18, 0xaa, 0x53, 0xb7, 0xde, 0x84, 0x2e, 0x14, 0xfb, 0x66, 0xb0, 0xb5, 0x6f, 0x12, 0xba, - 0x74, 0xa8, 0x53, 0x97, 0xda, 0x3e, 0x3d, 0x6c, 0xc3, 0x70, 0x81, 0x5e, 0x84, 0xc3, 0x1d, 0xf3, - 0xd0, 0xb5, 0x11, 0xf3, 0x61, 0xf5, 0x6f, 0x5b, 0x6a, 0xad, 0xa6, 0x16, 0x75, 0x86, 0x6f, 0x80, - 0xff, 0x26, 0x93, 0x31, 0x18, 0x2a, 0x33, 0xc3, 0xac, 0xe2, 0x5e, 0xef, 0xa3, 0x43, 0xe5, 0x73, - 0x61, 0xe5, 0x63, 0x62, 0x22, 0xa4, 0x19, 0x18, 0xf6, 0x2e, 0x65, 0x2f, 0xea, 0xdc, 0x6e, 0xf7, - 0xed, 0x7e, 0xf6, 0x7c, 0x72, 0x70, 0x45, 0x33, 0x9c, 0x3c, 0xda, 0xe8, 0x25, 0x38, 0xc2, 0x43, - 0xe5, 0x6c, 0xcc, 0x6f, 0x9e, 0xd9, 0xcc, 0xda, 0x64, 0xe5, 0x45, 0x77, 0x86, 0x28, 0x99, 0x7a, - 0xa4, 0x43, 0x7d, 0x34, 0x92, 0x88, 0xe6, 0xdf, 0xf0, 0x87, 0x6e, 0x21, 0x10, 0x52, 0x16, 0x88, - 0xd6, 0x66, 0xe5, 0xe1, 0x76, 0xe6, 0x63, 0x2c, 0x74, 0x16, 0x8e, 0x07, 0x97, 0xac, 0xae, 0xb7, - 0x9a, 0xf1, 0xb4, 0x20, 0x8d, 0x74, 0x01, 0x4e, 0xf4, 0xe6, 0x8e, 0x70, 0x26, 0x60, 0x54, 0xf5, - 0x17, 0xd3, 0xd2, 0xd4, 0x0e, 0xb7, 0xf2, 0xc1, 0x02, 0xfd, 0x45, 0xc2, 0x49, 0xe9, 0x2a, 0x73, - 0x56, 0x4d, 0x87, 0xbd, 0xc9, 0x3d, 0x9f, 0x01, 0xa8, 0x59, 0x66, 0xcd, 0xb4, 0xb9, 0xdd, 0xeb, - 0xf5, 0xc8, 0x8a, 0x8b, 0x79, 0xd3, 0x74, 0xc2, 0x63, 0xbc, 0x36, 0x17, 0xd6, 0xe8, 0x65, 0x18, - 0x13, 0xe9, 0x62, 0x96, 0x8e, 0xc3, 0xa0, 0xeb, 0x87, 0x17, 0xc8, 0x01, 0xf1, 0x02, 0x71, 0x3d, - 0x17, 0x2d, 0xd3, 0x5c, 0xcf, 0x73, 0x27, 0xfa, 0x8d, 0x24, 0x46, 0xb1, 0x7f, 0xc3, 0x59, 0xa3, - 0x57, 0xe0, 0xf7, 0x2d, 0x5c, 0x82, 0xc1, 0x6a, 0xc8, 0x65, 0xeb, 0x35, 0x4d, 0x87, 0x9c, 0x78, - 0x5e, 0x74, 0x3e, 0x9c, 0xab, 0xc2, 0x59, 0x75, 0xc9, 0x51, 0x9d, 0x7e, 0xb2, 0x43, 0x57, 0x23, - 0x43, 0x41, 0x6b, 0x14, 0xc4, 0x75, 0xc6, 0x7d, 0x9b, 0x54, 0xc7, 0x8e, 0x9f, 0x37, 0x5a, 0x77, - 0x79, 0xbe, 0xf4, 0x81, 0x14, 0xc2, 0xc3, 0x4b, 0xe4, 0x8a, 0x69, 0xf1, 0xc9, 0xfa, 0xb5, 0x0c, - 0xcc, 0xae, 0x85, 0xe3, 0xc8, 0x95, 0xb1, 0x50, 0xfe, 0x27, 0x21, 0x30, 0xe8, 0x68, 0x55, 0x7f, - 0x9a, 0xe3, 0x7f, 0xd3, 0xbf, 0x86, 0x34, 0xdb, 0xd0, 0x84, 0x97, 0x6d, 0x74, 0xcc, 0x1e, 0x0d, - 0xc6, 0xe8, 0xd3, 0x1f, 0x1d, 0x84, 0x21, 0xbe, 0x9b, 0xbc, 0x25, 0xc1, 0xb0, 0x27, 0x5a, 0xc8, - 0x94, 0x98, 0x86, 0x76, 0x4d, 0x24, 0x4f, 0x77, 0xf0, 0xf0, 0xce, 0xa4, 0xe7, 0xfe, 0xff, 0xf4, - 0xc7, 0x87, 0x29, 0x85, 0xcc, 0x2a, 0x45, 0xcd, 0x29, 0xaa, 0xe5, 0x0a, 0xb3, 0xc3, 0xbf, 0x4a, - 0x1b, 0xaa, 0x66, 0x28, 0x31, 0xaa, 0x94, 0x7c, 0x29, 0xc1, 0x1e, 0xa1, 0x60, 0xe4, 0x8f, 0x31, - 0x67, 0xc5, 0x09, 0x28, 0xf9, 0x68, 0x77, 0x47, 0xc4, 0xb6, 0xc0, 0xb1, 0x5d, 0x21, 0xf3, 0x3d, - 0x62, 0xab, 0x30, 0xa7, 0x10, 0xd6, 0x4e, 0x69, 0x44, 0xeb, 0xd8, 0x24, 0x5f, 0x48, 0xf0, 0x3b, - 0x51, 0x50, 0x90, 0x04, 0x28, 0xed, 0x4a, 0x45, 0xfe, 0x53, 0x0f, 0x9e, 0x88, 0xfa, 0x1a, 0x47, - 0x3d, 0x47, 0xfe, 0xd1, 0x07, 0xea, 0xa8, 0xea, 0x56, 0x1a, 0x9e, 0x0a, 0x6a, 0x92, 0x8f, 0x53, - 0x40, 0xda, 0xe7, 0x70, 0x72, 0x22, 0x01, 0x4b, 0xac, 0xb4, 0x91, 0x67, 0x7b, 0xf4, 0x46, 0xf4, - 0x8f, 0x24, 0x0e, 0xff, 0x53, 0x89, 0x7c, 0x22, 0xf5, 0x43, 0x00, 0xc3, 0xd9, 0x05, 0x1c, 0xf6, - 0x5b, 0xb2, 0xaf, 0x34, 0x84, 0xcb, 0x2e, 0xf8, 0x0e, 0x2e, 0x35, 0x77, 0x45, 0x94, 0x5a, 0x4d, - 0xa5, 0x11, 0x91, 0x41, 0xe1, 0x0e, 0x5f, 0xca, 0x34, 0xc9, 0x7b, 0x29, 0xd8, 0x17, 0x33, 0x45, - 0x93, 0x04, 0xca, 0x09, 0x92, 0x43, 0xce, 0xf6, 0xea, 0x8e, 0x29, 0xfa, 0xd0, 0x4b, 0xd1, 0x07, - 0x12, 0x79, 0xb7, 0x9f, 0x14, 0x05, 0x23, 0xda, 0x36, 0x52, 0xd4, 0x3e, 0xe6, 0x35, 0x95, 0x46, - 0x20, 0x3d, 0x9a, 0xe4, 0x51, 0x0a, 0xf6, 0xc7, 0x4f, 0x74, 0xe4, 0x64, 0x3c, 0xcb, 0xe4, 0x21, - 0x58, 0x3e, 0xd5, 0xc7, 0x8e, 0xed, 0x75, 0x0f, 0x73, 0x36, 0x0a, 0xc1, 0x68, 0xba, 0x9d, 0x0e, - 0x0a, 0xde, 0xc0, 0xa4, 0x5c, 0x05, 0xa7, 0x34, 0xc9, 0xe7, 0x12, 0x40, 0x78, 0x19, 0x93, 0x99, - 0x78, 0xb6, 0xe2, 0xbf, 0x58, 0xe4, 0x23, 0x5d, 0xbc, 0x30, 0x0f, 0x4b, 0x3c, 0x0d, 0x37, 0xc8, - 0xbf, 0xfa, 0x48, 0x02, 0xde, 0xf5, 0xed, 0xb4, 0xfd, 0x76, 0xff, 0x4a, 0x82, 0xbd, 0x2d, 0x9a, - 0x88, 0x24, 0xdc, 0x4b, 0x31, 0xd2, 0x50, 0x3e, 0xd6, 0x8b, 0x2b, 0xe2, 0xbf, 0xce, 0xf1, 0xcf, - 0x93, 0xb9, 0x3e, 0xf0, 0x0b, 0xff, 0x17, 0x54, 0x1a, 0xa8, 0xf3, 0x9a, 0xe4, 0xa9, 0x04, 0x63, - 0x71, 0x52, 0x8e, 0x64, 0xbb, 0x03, 0x8a, 0x6a, 0x49, 0x59, 0xe9, 0xd9, 0x1f, 0x59, 0xac, 0x71, - 0x16, 0xcb, 0x24, 0xff, 0xaa, 0x2c, 0x0a, 0x5c, 0x34, 0x86, 0x5c, 0x22, 0xc5, 0x78, 0xe2, 0xb1, - 0x6a, 0x93, 0x29, 0x49, 0xac, 0x92, 0x34, 0x52, 0x12, 0xab, 0x44, 0xfd, 0x43, 0x6f, 0x73, 0x56, - 0xb7, 0xc8, 0xcd, 0x3e, 0x58, 0xfd, 0xd7, 0x8f, 0xe6, 0x77, 0x99, 0xad, 0x34, 0xb8, 0x18, 0x8b, - 0x52, 0xfa, 0x5e, 0x82, 0xf1, 0x44, 0xad, 0x43, 0xce, 0xc4, 0xe0, 0xec, 0x26, 0xae, 0xe4, 0xb3, - 0xfd, 0x6d, 0x42, 0x86, 0x2b, 0x9c, 0xe1, 0x4d, 0x72, 0xa3, 0x47, 0x86, 0x9a, 0x1d, 0x3c, 0xa0, - 0x16, 0xc6, 0x2c, 0xd4, 0x30, 0x68, 0x84, 0xdf, 0xcf, 0x12, 0x4c, 0x76, 0x91, 0x50, 0xe4, 0xcf, - 0x09, 0xaf, 0x65, 0x77, 0x95, 0x26, 0xff, 0xe5, 0x55, 0xb6, 0x22, 0xe3, 0x3c, 0x67, 0xbc, 0x40, - 0xae, 0xf7, 0xf3, 0xe4, 0xea, 0x7a, 0x3b, 0xdd, 0x42, 0xa0, 0xf3, 0xc8, 0x4f, 0x12, 0x8c, 0xe0, - 0x84, 0x4f, 0xa6, 0xe3, 0xb1, 0x45, 0xe4, 0x9f, 0x4c, 0x3b, 0xb9, 0x20, 0xcc, 0x87, 0xde, 0xf5, - 0xfe, 0x40, 0x22, 0xef, 0xf4, 0x73, 0xbd, 0xbb, 0x6a, 0x61, 0xbb, 0xb7, 0x79, 0x28, 0x5f, 0x9a, - 0x4a, 0x23, 0xaa, 0xef, 0x9a, 0xe4, 0x3b, 0x09, 0x76, 0xfa, 0x52, 0x86, 0x74, 0xa0, 0x11, 0x54, - 0xea, 0x70, 0x47, 0x1f, 0xe4, 0x7a, 0xdf, 0xe3, 0xda, 0x24, 0x8d, 0x3e, 0x99, 0xda, 0xaf, 0x91, - 0x2a, 0xf9, 0x5a, 0xe2, 0x23, 0x60, 0x8b, 0xc4, 0x49, 0x1a, 0x01, 0xe3, 0x55, 0x58, 0xd2, 0x08, - 0x98, 0xa0, 0xb6, 0x5e, 0xa9, 0x19, 0x43, 0xc6, 0x05, 0xae, 0xbe, 0x5a, 0x87, 0xef, 0x67, 0x1e, - 0x8f, 0x16, 0xe5, 0x93, 0xc4, 0x23, 0x5e, 0xae, 0x25, 0xf1, 0x48, 0x90, 0x53, 0xb4, 0xc2, 0x79, - 0xa8, 0xa4, 0xd0, 0xff, 0x23, 0x5c, 0x58, 0x37, 0xad, 0x02, 0x37, 0x26, 0x3e, 0xc7, 0x4a, 0x03, - 0xd5, 0x5e, 0x73, 0x2e, 0xff, 0xf8, 0x45, 0x46, 0x7a, 0xf2, 0x22, 0x23, 0xfd, 0xf0, 0x22, 0x23, - 0xbd, 0xff, 0x32, 0x33, 0xf0, 0xe4, 0x65, 0x66, 0xe0, 0xdb, 0x97, 0x99, 0x81, 0xb5, 0x0b, 0x15, - 0xcd, 0xd9, 0xa8, 0x17, 0xb3, 0x25, 0xb3, 0x9a, 0x0c, 0xe2, 0x9e, 0x08, 0xc3, 0xd9, 0xaa, 0x31, - 0xbb, 0x38, 0xcc, 0x7f, 0xd1, 0x67, 0x7e, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xfa, 0x6e, 0x7a, 0x9a, - 0x9c, 0x1c, 0x00, 0x00, + // 1782 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xdb, 0x8f, 0x14, 0x4d, + 0x15, 0xdf, 0x1e, 0xf6, 0xc2, 0x1e, 0x40, 0x92, 0x62, 0x85, 0xd9, 0x66, 0x99, 0xdd, 0x2d, 0x16, + 0x45, 0x64, 0xa7, 0x5d, 0xc0, 0x0b, 0xa2, 0x22, 0xcb, 0x0a, 0x0c, 0x2e, 0x01, 0x66, 0x2f, 0x28, + 0x31, 0x19, 0x7a, 0x66, 0x6a, 0x67, 0x3b, 0xf4, 0x74, 0x0f, 0xdd, 0x3d, 0x2b, 0xeb, 0x64, 0x5e, + 0xc4, 0x98, 0x98, 0x10, 0x2f, 0xe1, 0xc5, 0xc4, 0x18, 0x13, 0xdf, 0xf0, 0x41, 0x7d, 0xf0, 0x5f, + 0x30, 0x21, 0x3e, 0x91, 0xf0, 0xa2, 0x24, 0x12, 0x03, 0xc6, 0x27, 0xbf, 0xff, 0xe1, 0x4b, 0x57, + 0x9f, 0xea, 0xee, 0x9a, 0xe9, 0x9e, 0x0b, 0xcb, 0x03, 0xdf, 0xdb, 0x76, 0xd5, 0x39, 0xa7, 0x7e, + 0xbf, 0x73, 0xce, 0x54, 0x9d, 0xdf, 0x42, 0xd6, 0xb3, 0x1f, 0x32, 0xcb, 0xf8, 0x89, 0xee, 0x19, + 0xb6, 0xa5, 0x3d, 0x6a, 0x32, 0x67, 0x37, 0xdf, 0x70, 0x6c, 0xcf, 0x26, 0x07, 0xe3, 0x3b, 0xea, + 0x54, 0xcd, 0xae, 0xd9, 0x7c, 0x43, 0xf3, 0xff, 0x0a, 0x6c, 0xd4, 0x99, 0x9a, 0x6d, 0xd7, 0x4c, + 0xa6, 0xe9, 0x0d, 0x43, 0xd3, 0x2d, 0xcb, 0xf6, 0xb8, 0xb1, 0x8b, 0xbb, 0x67, 0x2a, 0xb6, 0x5b, + 0xb7, 0x5d, 0xad, 0xac, 0xbb, 0x2c, 0x08, 0xad, 0xed, 0x2c, 0x95, 0x99, 0xa7, 0x2f, 0x69, 0x0d, + 0xbd, 0x66, 0x58, 0xdc, 0x18, 0x6d, 0xa7, 0x25, 0x1c, 0x0d, 0xdd, 0xd1, 0xeb, 0x22, 0x4c, 0x4e, + 0xda, 0xaa, 0xd8, 0xa6, 0xc9, 0x2a, 0xf1, 0x63, 0x8e, 0x4b, 0xfb, 0x65, 0xdd, 0xd4, 0xad, 0x0a, + 0x13, 0x9b, 0x33, 0xd2, 0xa6, 0xe7, 0xe8, 0x96, 0xbb, 0xc5, 0x1c, 0xb1, 0x3b, 0x27, 0xed, 0xea, + 0xd5, 0xaa, 0xc3, 0x5c, 0xb7, 0x64, 0x1a, 0xae, 0x27, 0x2c, 0xe6, 0x25, 0x8b, 0xea, 0xae, 0xa5, + 0xd7, 0x8d, 0x4a, 0xc9, 0xf5, 0x6c, 0x27, 0x3c, 0xe2, 0x94, 0x64, 0xd2, 0x74, 0x99, 0x53, 0x42, + 0x10, 0x81, 0x1d, 0x9a, 0x2d, 0xc8, 0x67, 0x35, 0x1a, 0x8e, 0xbd, 0xa3, 0x9b, 0x25, 0xcf, 0xd1, + 0x2b, 0x0f, 0x0d, 0xab, 0x86, 0x56, 0x27, 0x64, 0xb2, 0xdb, 0xba, 0x69, 0x32, 0xab, 0x26, 0xce, + 0xa2, 0x53, 0x40, 0xee, 0xfa, 0x89, 0xbc, 0xc3, 0x13, 0x54, 0x64, 0x8f, 0x9a, 0xcc, 0xf5, 0x68, + 0x01, 0x8e, 0x48, 0xab, 0x6e, 0xc3, 0xb6, 0x5c, 0x46, 0xce, 0xc1, 0x78, 0x90, 0xc8, 0xac, 0x32, + 0xa7, 0x9c, 0x3e, 0x70, 0x6e, 0x2a, 0x1f, 0x0f, 0x9e, 0x0f, 0xac, 0x97, 0x47, 0x5f, 0xbc, 0x99, + 0x1d, 0x29, 0xa2, 0x25, 0xbd, 0x0c, 0xd3, 0x3c, 0xd4, 0x75, 0xe6, 0x5d, 0x0d, 0x33, 0x8d, 0xe7, + 0x10, 0x0a, 0x07, 0xa3, 0xf4, 0x17, 0xaa, 0x3c, 0xec, 0x64, 0x51, 0x5a, 0xa3, 0x3a, 0xa8, 0x49, + 0x01, 0x10, 0xd2, 0x55, 0x80, 0xc8, 0x1a, 0x61, 0x9d, 0x90, 0x61, 0xad, 0xfb, 0x1f, 0x91, 0x2b, + 0xc7, 0xa7, 0x14, 0x63, 0x6e, 0x74, 0x13, 0x8e, 0x8a, 0x23, 0x96, 0x83, 0x44, 0x0f, 0x01, 0x90, + 0x64, 0x61, 0x02, 0x0b, 0x9d, 0xcd, 0xf0, 0x6d, 0xf1, 0x49, 0x7f, 0x08, 0xc7, 0xba, 0xe2, 0x22, + 0xee, 0xef, 0xc0, 0x04, 0xd6, 0x14, 0x41, 0xe7, 0x64, 0xd0, 0x1b, 0x2e, 0x73, 0xd0, 0x67, 0xcd, + 0xaf, 0x39, 0xa2, 0x16, 0x4e, 0xf4, 0x42, 0x94, 0x95, 0x2b, 0xc1, 0x69, 0xab, 0x86, 0xeb, 0x09, + 0xd8, 0x47, 0x61, 0xdc, 0xef, 0xb9, 0x10, 0x30, 0x7e, 0xd1, 0x22, 0x1c, 0x4f, 0xf4, 0x42, 0x50, + 0xe7, 0x61, 0xd4, 0x37, 0x44, 0x44, 0xd3, 0x32, 0xa2, 0x98, 0x03, 0x82, 0xe1, 0xc6, 0xf4, 0x4f, + 0x19, 0xc8, 0x85, 0x41, 0xb1, 0x09, 0xd7, 0xfd, 0x1e, 0x64, 0x8e, 0x80, 0x73, 0x1a, 0x0e, 0xeb, + 0x75, 0xbb, 0x69, 0x79, 0xb8, 0x1e, 0xe2, 0xea, 0x5c, 0x26, 0x0b, 0x70, 0x48, 0x34, 0xf2, 0x2a, + 0xdb, 0x61, 0x26, 0x66, 0x54, 0x5e, 0xe4, 0xf1, 0xf8, 0x02, 0x73, 0x10, 0x55, 0x76, 0x1f, 0xc6, + 0x93, 0x97, 0xc9, 0x1c, 0x1c, 0xf0, 0x82, 0xe0, 0xeb, 0xbb, 0x0d, 0x96, 0x1d, 0xe5, 0x56, 0xf1, + 0xa5, 0xae, 0x0a, 0x8f, 0x25, 0x54, 0x38, 0x3a, 0xaf, 0x2a, 0xce, 0x1b, 0x97, 0xce, 0x13, 0xcb, + 0x24, 0x07, 0x20, 0xa0, 0x16, 0xaa, 0xd9, 0x09, 0x6e, 0x14, 0x5b, 0xa1, 0x0f, 0x60, 0x36, 0x35, + 0x57, 0x58, 0x84, 0x6f, 0xc3, 0x04, 0xe2, 0x4b, 0x6e, 0xe7, 0x0e, 0x3f, 0xd1, 0x18, 0xe8, 0x43, + 0x9f, 0x64, 0xa2, 0x23, 0xae, 0x8a, 0x5f, 0x7b, 0x47, 0x3d, 0x06, 0xe9, 0xea, 0x0f, 0x5d, 0x89, + 0x3c, 0x90, 0x4a, 0x07, 0x9c, 0x42, 0x15, 0x0b, 0x92, 0xb0, 0x43, 0x66, 0x60, 0xd2, 0x64, 0xfa, + 0x56, 0xc1, 0xaa, 0xb2, 0xc7, 0x58, 0x94, 0x68, 0xa1, 0x23, 0xcf, 0xe3, 0x5d, 0x79, 0xfe, 0x16, + 0xcc, 0xa5, 0x27, 0x01, 0x13, 0x9d, 0x85, 0x09, 0xab, 0x59, 0xdf, 0x70, 0x99, 0x48, 0x80, 0xf8, + 0xa4, 0x5f, 0x8f, 0x7e, 0x26, 0x2b, 0xc1, 0x05, 0xcd, 0x7f, 0x83, 0x22, 0x7d, 0x59, 0x98, 0xe0, + 0xf7, 0x70, 0x98, 0x39, 0xf1, 0x49, 0x37, 0x61, 0x26, 0xd9, 0x11, 0x8f, 0xfc, 0x1a, 0x8c, 0x71, + 0x53, 0xac, 0xac, 0x2a, 0x57, 0x36, 0xee, 0x82, 0x65, 0x0d, 0xcc, 0xe9, 0x66, 0x44, 0x27, 0x6e, + 0xb4, 0xa9, 0x9b, 0xcd, 0xfe, 0xa8, 0x7a, 0x5c, 0x50, 0x0f, 0x60, 0xbe, 0x47, 0x5c, 0x04, 0x7d, + 0x09, 0xc6, 0x76, 0xfc, 0x05, 0x04, 0x3d, 0x9b, 0x0e, 0x9a, 0xfb, 0x09, 0xe4, 0xdc, 0x87, 0xfe, + 0x3c, 0x03, 0x54, 0x1c, 0xf1, 0xbd, 0xf5, 0x1b, 0x6b, 0x46, 0xcd, 0xd2, 0xbd, 0xa6, 0xf3, 0x31, + 0x74, 0xa4, 0xdc, 0x43, 0xa3, 0x9d, 0x3d, 0x94, 0xd2, 0xb1, 0x63, 0xbd, 0x3a, 0xd6, 0x15, 0xf4, + 0xb0, 0x25, 0xa3, 0x05, 0x7a, 0x19, 0x4e, 0xf6, 0xcc, 0x43, 0xdf, 0xa6, 0x2c, 0x46, 0x3d, 0x70, + 0xcf, 0xd1, 0x1b, 0x0d, 0xbd, 0x6c, 0x32, 0x7c, 0x21, 0xc4, 0xbb, 0x4d, 0xa6, 0x60, 0xac, 0xca, + 0x2c, 0xbb, 0x8e, 0xbe, 0xc1, 0x47, 0x8f, 0xfa, 0x17, 0xa2, 0xfa, 0x27, 0xc4, 0x44, 0x48, 0x0b, + 0x30, 0x1e, 0x5c, 0xd3, 0x41, 0xd4, 0xe5, 0x83, 0xfe, 0xfb, 0xfe, 0xfa, 0xcd, 0xec, 0xe8, 0x86, + 0x61, 0x79, 0x45, 0xdc, 0xa3, 0x57, 0xe0, 0x14, 0x0f, 0x55, 0x70, 0x31, 0xbf, 0x45, 0xe6, 0x32, + 0x67, 0x87, 0x55, 0xef, 0xf8, 0x73, 0x46, 0xc5, 0x36, 0x63, 0x7d, 0x2a, 0xd0, 0x28, 0x32, 0x9a, + 0x1f, 0xc0, 0x17, 0xfa, 0x85, 0x40, 0x48, 0x79, 0x20, 0x46, 0xd7, 0x2e, 0x0f, 0xb7, 0xbf, 0x98, + 0xb0, 0x43, 0x17, 0xe1, 0xcb, 0xe1, 0xb5, 0x6b, 0x9a, 0x9d, 0xdb, 0x78, 0x5a, 0x98, 0x46, 0xba, + 0x0a, 0x67, 0x07, 0x33, 0x47, 0x38, 0x33, 0x30, 0xa9, 0x8b, 0xc5, 0xac, 0x32, 0xb7, 0xcf, 0xaf, + 0x7c, 0xb8, 0x40, 0x3f, 0x51, 0x70, 0x9a, 0xba, 0xce, 0xbc, 0x4d, 0xdb, 0x63, 0x1f, 0x73, 0xcf, + 0xe7, 0x00, 0x1a, 0x8e, 0xdd, 0xb0, 0x5d, 0xbe, 0x1f, 0xf4, 0x7a, 0x6c, 0xc5, 0xc7, 0xbc, 0x63, + 0x7b, 0xd1, 0x31, 0x41, 0x9b, 0x4b, 0x6b, 0xb4, 0x00, 0x53, 0x32, 0x5d, 0xcc, 0xd2, 0x12, 0x8c, + 0xfa, 0x76, 0x78, 0x8d, 0x1c, 0x93, 0xaf, 0x11, 0xdf, 0xf2, 0x8e, 0x63, 0xdb, 0x5b, 0x62, 0xb6, + 0xf0, 0x4d, 0xe9, 0x3f, 0x14, 0x39, 0x96, 0xfb, 0x19, 0xce, 0x1d, 0xbd, 0x06, 0x9f, 0xef, 0xe0, + 0x82, 0x89, 0x59, 0x84, 0x31, 0x9f, 0x6d, 0xd0, 0x3a, 0xe9, 0x99, 0x29, 0x06, 0x56, 0x74, 0x25, + 0x9a, 0xb7, 0xa2, 0xa9, 0x76, 0xcd, 0xd3, 0xbd, 0x61, 0xb2, 0x43, 0x7f, 0x14, 0x1b, 0x13, 0x3a, + 0xa3, 0x20, 0xae, 0x8b, 0xfe, 0x6b, 0xa5, 0x7b, 0x6e, 0xf2, 0x1c, 0xd2, 0xe1, 0x15, 0x3d, 0x58, + 0xba, 0xe7, 0xd2, 0xa7, 0x4a, 0x04, 0x12, 0x2f, 0x94, 0x6b, 0xb6, 0xc3, 0x27, 0xf1, 0x0f, 0x32, + 0x5a, 0xfb, 0x3b, 0x1c, 0x4d, 0xa1, 0x8a, 0xe5, 0x12, 0x9f, 0x84, 0xc0, 0xa8, 0x67, 0xd4, 0xc5, + 0xac, 0xc7, 0xff, 0xa6, 0x97, 0x22, 0xb2, 0x5d, 0x68, 0xa2, 0x8b, 0x37, 0x3e, 0x90, 0x4f, 0x86, + 0xa3, 0xf6, 0xb9, 0xdf, 0x1d, 0x87, 0x31, 0xee, 0x4d, 0x7e, 0xa6, 0xc0, 0x78, 0x20, 0x72, 0xc8, + 0x9c, 0x9c, 0x8c, 0x6e, 0x0d, 0xa5, 0xce, 0xf7, 0xb0, 0x08, 0xce, 0xa4, 0x5f, 0xfd, 0xe9, 0xab, + 0xff, 0x3e, 0xcb, 0x68, 0x64, 0x51, 0x2b, 0x1b, 0x5e, 0x59, 0xaf, 0xd6, 0x98, 0x1b, 0xfd, 0x55, + 0xd9, 0xd6, 0x0d, 0x4b, 0x4b, 0x50, 0xb1, 0xe4, 0xaf, 0x0a, 0x1c, 0x92, 0xca, 0x46, 0xbe, 0x98, + 0x70, 0x56, 0x92, 0xe0, 0x52, 0x4f, 0xf7, 0x37, 0x44, 0x6c, 0xab, 0x1c, 0xdb, 0x35, 0xb2, 0x32, + 0x20, 0xb6, 0x1a, 0xf3, 0x4a, 0x51, 0xed, 0xb4, 0x56, 0xbc, 0x8e, 0x6d, 0xf2, 0x17, 0x05, 0x3e, + 0x27, 0x8b, 0x0e, 0x92, 0x02, 0xa5, 0x5b, 0xcd, 0xa8, 0x5f, 0x1a, 0xc0, 0x12, 0x51, 0xdf, 0xe0, + 0xa8, 0x97, 0xc9, 0x77, 0x87, 0x40, 0x1d, 0x57, 0xe9, 0x5a, 0x2b, 0x50, 0x4a, 0x6d, 0xf2, 0xfb, + 0x0c, 0x90, 0xee, 0x29, 0x9d, 0x9c, 0x4d, 0xc1, 0x92, 0x28, 0x7c, 0xd4, 0xc5, 0x01, 0xad, 0x11, + 0xfd, 0x73, 0x85, 0xc3, 0xff, 0xa3, 0x42, 0xfe, 0xa0, 0x0c, 0x43, 0x00, 0xc3, 0xb9, 0x25, 0x14, + 0x01, 0x1d, 0xd9, 0xd7, 0x5a, 0xd2, 0x95, 0x17, 0x7e, 0x87, 0x57, 0x9b, 0xbf, 0x22, 0x0b, 0xb1, + 0xb6, 0xd6, 0x8a, 0x89, 0xa4, 0xc8, 0x43, 0x08, 0x9d, 0x36, 0xf9, 0x55, 0x06, 0x8e, 0x24, 0x4c, + 0xd7, 0x24, 0x85, 0x72, 0x8a, 0x14, 0x51, 0xf3, 0x83, 0x9a, 0x63, 0x8a, 0x7e, 0x1b, 0xa4, 0xe8, + 0x37, 0x0a, 0xf9, 0xe5, 0x30, 0x29, 0x0a, 0xc7, 0xb5, 0x3d, 0xa4, 0xa8, 0x7b, 0xe4, 0x6b, 0x6b, + 0xad, 0x50, 0x92, 0xb4, 0xc9, 0xf3, 0x0c, 0x1c, 0x4d, 0x9e, 0xee, 0xc8, 0x57, 0x92, 0x59, 0xa6, + 0x0f, 0xc4, 0xea, 0xd2, 0x10, 0x1e, 0x7b, 0xeb, 0x1e, 0xe6, 0x6d, 0x97, 0xc2, 0x31, 0x75, 0x2f, + 0x1d, 0x14, 0xbe, 0x84, 0x69, 0xb9, 0x0a, 0x4f, 0x69, 0x93, 0x3f, 0x2b, 0x00, 0xd1, 0x65, 0x4c, + 0x16, 0x92, 0xd9, 0xca, 0xff, 0x8c, 0x51, 0x4f, 0xf5, 0xb1, 0xc2, 0x3c, 0xac, 0xf1, 0x34, 0xdc, + 0x22, 0xdf, 0x1f, 0x22, 0x09, 0x78, 0xd7, 0x77, 0xd3, 0x16, 0xed, 0xfe, 0x37, 0x05, 0x0e, 0x77, + 0xa8, 0x24, 0x92, 0x72, 0x2f, 0x25, 0x48, 0x46, 0xf5, 0xcc, 0x20, 0xa6, 0x88, 0xff, 0x26, 0xc7, + 0xbf, 0x42, 0x96, 0x87, 0xc0, 0x2f, 0xfd, 0x1f, 0x51, 0x6b, 0xa1, 0xf2, 0x6b, 0x93, 0x57, 0x0a, + 0x4c, 0x25, 0x89, 0x3b, 0x92, 0xef, 0x0f, 0x28, 0xae, 0x2e, 0x55, 0x6d, 0x60, 0x7b, 0x64, 0x71, + 0x9f, 0xb3, 0x58, 0x27, 0xc5, 0xf7, 0x65, 0x51, 0xe2, 0x02, 0x32, 0xe2, 0x12, 0x2b, 0xc6, 0xcb, + 0x80, 0x55, 0x97, 0x64, 0x49, 0x63, 0x95, 0xa6, 0x97, 0xd2, 0x58, 0xa5, 0x6a, 0x21, 0x7a, 0x8f, + 0xb3, 0xba, 0x4b, 0x6e, 0x0f, 0xc1, 0xea, 0xc7, 0x22, 0x9a, 0xe8, 0x32, 0x57, 0x6b, 0x71, 0x61, + 0x16, 0xa7, 0xf4, 0x6f, 0x05, 0xa6, 0x53, 0x75, 0x0f, 0x39, 0x9f, 0x80, 0xb3, 0x9f, 0xd0, 0x52, + 0x2f, 0x0c, 0xe7, 0x84, 0x0c, 0x37, 0x38, 0xc3, 0xdb, 0xe4, 0xd6, 0x80, 0x0c, 0x0d, 0x37, 0x7c, + 0x40, 0x1d, 0x8c, 0x59, 0x6a, 0x60, 0xd0, 0x18, 0xbf, 0xff, 0x2b, 0x30, 0xdb, 0x47, 0x4e, 0x91, + 0x8b, 0x29, 0xaf, 0x65, 0x7f, 0xc5, 0xa6, 0x7e, 0xf3, 0x7d, 0x5c, 0x91, 0x71, 0x91, 0x33, 0x5e, + 0x25, 0x37, 0x87, 0x79, 0x72, 0x4d, 0xb3, 0x9b, 0x6e, 0x29, 0xd4, 0x7c, 0xe4, 0x7f, 0x0a, 0x4c, + 0xe0, 0x9c, 0x4f, 0xe6, 0x93, 0xb1, 0xc5, 0xa4, 0xa0, 0x4a, 0x7b, 0x99, 0x20, 0xcc, 0x67, 0xc1, + 0xf5, 0xfe, 0x54, 0x21, 0xbf, 0x18, 0xe6, 0x7a, 0xf7, 0x35, 0xc3, 0x5e, 0x6f, 0xf3, 0x48, 0xc4, + 0xb4, 0xb5, 0x56, 0x5c, 0xeb, 0xb5, 0xc9, 0xbf, 0x14, 0xd8, 0x2f, 0x04, 0x0d, 0xe9, 0x41, 0x23, + 0xac, 0xd4, 0xc9, 0x9e, 0x36, 0xc8, 0xf5, 0x49, 0xc0, 0xb5, 0x4d, 0x5a, 0x43, 0x32, 0x75, 0x3f, + 0x20, 0x55, 0xf2, 0x77, 0x85, 0x8f, 0x80, 0x1d, 0x42, 0x27, 0x6d, 0x04, 0x4c, 0xd6, 0x62, 0x69, + 0x23, 0x60, 0x8a, 0xe6, 0x7a, 0xaf, 0x66, 0x8c, 0x18, 0x97, 0xb8, 0xfa, 0xea, 0x1c, 0xbe, 0x5f, + 0x07, 0x3c, 0x3a, 0x94, 0x4f, 0x1a, 0x8f, 0x64, 0xb9, 0x96, 0xc6, 0x23, 0x45, 0x4e, 0xd1, 0x1a, + 0xe7, 0xa1, 0x93, 0xd2, 0xf0, 0x8f, 0x70, 0x69, 0xcb, 0x76, 0x4a, 0x7c, 0x33, 0xf5, 0x39, 0xd6, + 0x5a, 0xa8, 0xf6, 0xda, 0xcb, 0xc5, 0x17, 0x6f, 0x73, 0xca, 0xcb, 0xb7, 0x39, 0xe5, 0x3f, 0x6f, + 0x73, 0xca, 0xaf, 0xdf, 0xe5, 0x46, 0x5e, 0xbe, 0xcb, 0x8d, 0xfc, 0xf3, 0x5d, 0x6e, 0xe4, 0xfe, + 0x37, 0x6a, 0x86, 0xb7, 0xdd, 0x2c, 0xe7, 0x2b, 0x76, 0x3d, 0x1d, 0xc4, 0x63, 0x19, 0x86, 0xb7, + 0xdb, 0x60, 0x6e, 0x79, 0x9c, 0xff, 0xa2, 0xcf, 0x7f, 0x1a, 0x00, 0x00, 0xff, 0xff, 0x54, 0x53, + 0xd4, 0x48, 0xcc, 0x1c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/tokenization/types/timelines.pb.go b/x/tokenization/types/timelines.pb.go index 0dbd0510..c88e1809 100644 --- a/x/tokenization/types/timelines.pb.go +++ b/x/tokenization/types/timelines.pb.go @@ -422,35 +422,35 @@ func init() { func init() { proto.RegisterFile("tokenization/timelines.proto", fileDescriptor_bd0cac6f33ddf7cb) } var fileDescriptor_bd0cac6f33ddf7cb = []byte{ - // 436 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0x31, 0x8f, 0xd3, 0x30, - 0x14, 0xc7, 0x6b, 0x90, 0x80, 0xfa, 0x38, 0x9d, 0x88, 0x40, 0x17, 0x72, 0x27, 0xab, 0xba, 0xa9, - 0x53, 0x22, 0x1d, 0x0b, 0x0b, 0x43, 0x29, 0x0b, 0xc3, 0x49, 0xc8, 0x1c, 0x0b, 0xdb, 0x8b, 0xe3, - 0x73, 0x0d, 0x89, 0x1d, 0xd9, 0x2e, 0xe2, 0x18, 0xf9, 0x04, 0xac, 0x7c, 0x08, 0xbe, 0x07, 0xe3, - 0x8d, 0x8c, 0xa8, 0xfd, 0x22, 0x28, 0x69, 0x92, 0xc6, 0x6d, 0xb7, 0xb0, 0x39, 0xff, 0xff, 0x7b, - 0xff, 0xdf, 0x7b, 0x56, 0x12, 0x7c, 0xee, 0xf4, 0x67, 0xae, 0xe4, 0x37, 0x70, 0x52, 0xab, 0xc4, - 0xc9, 0x82, 0xe7, 0x52, 0x71, 0x1b, 0x97, 0x46, 0x3b, 0x1d, 0x3c, 0xee, 0xbb, 0xd1, 0x73, 0xa1, - 0xb5, 0xc8, 0x79, 0x52, 0x7b, 0xe9, 0xf2, 0x26, 0x01, 0x75, 0xbb, 0x29, 0x8c, 0x76, 0x62, 0x0c, - 0x28, 0x7b, 0xc3, 0x4d, 0x13, 0x13, 0x9d, 0x79, 0x6e, 0x0a, 0x39, 0x28, 0xd6, 0x32, 0x22, 0xe2, - 0x99, 0x25, 0x37, 0x85, 0xb4, 0x56, 0x6a, 0x75, 0xb8, 0xb9, 0xe0, 0x0e, 0x32, 0x70, 0xd0, 0x98, - 0x4f, 0x85, 0x16, 0xba, 0x3e, 0x26, 0xd5, 0x69, 0xa3, 0x5e, 0xfc, 0x42, 0x38, 0x9a, 0xeb, 0x3c, - 0xe7, 0xac, 0xea, 0xb9, 0x6a, 0x5a, 0xae, 0x9b, 0xe5, 0x82, 0x77, 0x38, 0x60, 0x7b, 0x6e, 0x88, - 0x26, 0x68, 0x7a, 0x74, 0x39, 0x89, 0xfb, 0xb8, 0x78, 0x3f, 0x85, 0x1e, 0xe8, 0x0d, 0x5e, 0xe1, - 0xe3, 0xf6, 0xea, 0x2a, 0x8a, 0x0d, 0xef, 0x4d, 0xee, 0x4f, 0x8f, 0x2e, 0x4f, 0xfd, 0xb0, 0x0f, - 0x52, 0x39, 0x0a, 0x4a, 0x70, 0xea, 0x57, 0x5f, 0xfc, 0x44, 0xf8, 0xd9, 0x75, 0x55, 0xb9, 0x37, - 0xea, 0x0c, 0x1f, 0xbb, 0xbe, 0x11, 0xa2, 0x3a, 0xf8, 0xcc, 0x0f, 0xf6, 0x7a, 0xa9, 0xdf, 0x31, - 0x74, 0x36, 0x8b, 0x83, 0xf9, 0xd2, 0x3a, 0x5d, 0xbc, 0xe9, 0xcf, 0x45, 0x30, 0x66, 0x9d, 0x5a, - 0x5f, 0xdd, 0x98, 0xf6, 0x94, 0xa1, 0xd0, 0x4f, 0xf8, 0xe4, 0x0a, 0x14, 0x08, 0x6e, 0x3a, 0x62, - 0x88, 0x1f, 0x16, 0x1b, 0xa9, 0xc1, 0xb5, 0x8f, 0xff, 0x61, 0xc1, 0xb7, 0x76, 0x66, 0xd8, 0x42, - 0x7e, 0xe1, 0x59, 0x7f, 0x41, 0xd9, 0xa9, 0x35, 0xf1, 0x11, 0xed, 0x29, 0x43, 0xa1, 0xdf, 0x11, - 0x3e, 0x9d, 0x6b, 0xe5, 0x0c, 0x30, 0x37, 0xcb, 0x32, 0xc3, 0xad, 0xed, 0xd0, 0x53, 0x7c, 0xc2, - 0x7c, 0xab, 0xd9, 0x78, 0x57, 0x1e, 0x3a, 0x44, 0x89, 0x9f, 0xbc, 0x77, 0xa0, 0x32, 0x30, 0xd9, - 0x96, 0x7e, 0x8e, 0xc7, 0xb6, 0x15, 0xeb, 0xb7, 0x6d, 0x4c, 0xb7, 0xc2, 0x40, 0xe2, 0x6b, 0xfa, - 0x7b, 0x45, 0xd0, 0xdd, 0x8a, 0xa0, 0xbf, 0x2b, 0x82, 0x7e, 0xac, 0xc9, 0xe8, 0x6e, 0x4d, 0x46, - 0x7f, 0xd6, 0x64, 0xf4, 0xf1, 0xa5, 0x90, 0x6e, 0xb1, 0x4c, 0x63, 0xa6, 0x8b, 0x24, 0x95, 0x2e, - 0x85, 0x4c, 0x70, 0xbb, 0x3d, 0xb1, 0x05, 0x48, 0x95, 0x7c, 0x4d, 0xfc, 0xdf, 0xcc, 0x6d, 0xc9, - 0x6d, 0xfa, 0xa0, 0xfe, 0xe6, 0x5f, 0xfc, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xaf, 0xb1, 0x92, 0xbc, - 0xca, 0x04, 0x00, 0x00, + // 443 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0x31, 0x73, 0xd3, 0x30, + 0x14, 0xc7, 0x23, 0xe0, 0x80, 0xa8, 0xf4, 0x7a, 0xf8, 0xe0, 0x1a, 0xdc, 0x9e, 0xc8, 0x75, 0xca, + 0x64, 0xdf, 0x95, 0x85, 0x85, 0x21, 0x0d, 0x0b, 0x43, 0x17, 0x51, 0x18, 0xd8, 0x9e, 0x65, 0x55, + 0x11, 0xd8, 0x92, 0x4f, 0x52, 0x38, 0xca, 0xc8, 0x27, 0x60, 0xe5, 0x73, 0xf0, 0x25, 0x3a, 0x76, + 0x64, 0xe2, 0xb8, 0xe4, 0x8b, 0x70, 0x76, 0x6c, 0xc7, 0x6a, 0xb2, 0xb9, 0x9b, 0xfc, 0xff, 0xbf, + 0xf7, 0xff, 0xbd, 0xa7, 0xb3, 0x8d, 0x8f, 0x9d, 0xfe, 0xc2, 0x95, 0xfc, 0x0e, 0x4e, 0x6a, 0x15, + 0x3b, 0x99, 0xf3, 0x4c, 0x2a, 0x6e, 0xa3, 0xc2, 0x68, 0xa7, 0x83, 0x27, 0x5d, 0x37, 0x7c, 0x21, + 0xb4, 0x16, 0x19, 0x8f, 0x2b, 0x2f, 0x59, 0x5c, 0xc6, 0xa0, 0xae, 0xd6, 0x85, 0xe1, 0xad, 0x18, + 0x03, 0xca, 0x5e, 0x72, 0x53, 0xc7, 0x84, 0x47, 0x9e, 0x9b, 0x40, 0x06, 0x8a, 0x35, 0x8c, 0x90, + 0x78, 0x66, 0xc1, 0x4d, 0x2e, 0xad, 0x95, 0x5a, 0xed, 0x6e, 0xce, 0xb9, 0x83, 0x14, 0x1c, 0xd4, + 0xe6, 0x33, 0xa1, 0x85, 0xae, 0x8e, 0x71, 0x79, 0x5a, 0xab, 0x27, 0xbf, 0x11, 0x0e, 0x67, 0x3a, + 0xcb, 0x38, 0x2b, 0x7b, 0xce, 0xeb, 0x96, 0x8b, 0x7a, 0xb9, 0xe0, 0x23, 0x0e, 0xd8, 0x96, 0x3b, + 0x42, 0x63, 0x34, 0xd9, 0x3b, 0x1d, 0x47, 0x5d, 0x5c, 0xb4, 0x9d, 0x72, 0xf6, 0xe0, 0xfa, 0xef, + 0x4b, 0x44, 0x77, 0x24, 0x04, 0x6f, 0xf0, 0x7e, 0x73, 0x81, 0x25, 0xcb, 0x8e, 0xee, 0x8d, 0xef, + 0x4f, 0xf6, 0x4e, 0x0f, 0xfd, 0xc8, 0x0f, 0x52, 0x39, 0x0a, 0x4a, 0x70, 0xea, 0x57, 0x9f, 0xfc, + 0x42, 0xf8, 0xf9, 0x45, 0x59, 0xb9, 0x35, 0xf0, 0x14, 0xef, 0xbb, 0xae, 0x31, 0x42, 0x55, 0xf0, + 0x91, 0x1f, 0xec, 0xf5, 0x52, 0xbf, 0xa3, 0xef, 0x6c, 0x16, 0x07, 0xb3, 0x85, 0x75, 0x3a, 0x7f, + 0xdb, 0x9d, 0x8b, 0x60, 0xcc, 0x5a, 0xb5, 0xba, 0xc0, 0x21, 0xed, 0x28, 0x7d, 0xa1, 0x9f, 0xf1, + 0xc1, 0x39, 0x28, 0x10, 0xdc, 0xb4, 0xc4, 0x11, 0x7e, 0x94, 0xaf, 0xa5, 0x1a, 0xd7, 0x3c, 0xde, + 0xc1, 0x82, 0xef, 0xec, 0xd4, 0xb0, 0xb9, 0xfc, 0xca, 0xd3, 0xee, 0x82, 0xb2, 0x55, 0x2b, 0xe2, + 0x63, 0xda, 0x51, 0xfa, 0x42, 0x7f, 0x20, 0x7c, 0x38, 0xd3, 0xca, 0x19, 0x60, 0x6e, 0x9a, 0xa6, + 0x86, 0x5b, 0xdb, 0xa2, 0x27, 0xf8, 0x80, 0xf9, 0x56, 0xbd, 0xf1, 0x6d, 0xb9, 0xef, 0x10, 0x05, + 0x7e, 0xfa, 0xde, 0x81, 0x4a, 0xc1, 0xa4, 0x1b, 0xfa, 0x31, 0x1e, 0xda, 0x46, 0xac, 0xde, 0xb6, + 0x21, 0xdd, 0x08, 0x3d, 0x89, 0x67, 0xf4, 0x7a, 0x49, 0xd0, 0xcd, 0x92, 0xa0, 0x7f, 0x4b, 0x82, + 0x7e, 0xae, 0xc8, 0xe0, 0x66, 0x45, 0x06, 0x7f, 0x56, 0x64, 0xf0, 0xe9, 0xb5, 0x90, 0x6e, 0xbe, + 0x48, 0x22, 0xa6, 0xf3, 0x38, 0x91, 0x2e, 0x81, 0x54, 0x70, 0xbb, 0x39, 0xb1, 0x39, 0x48, 0x15, + 0x7f, 0x8b, 0xfd, 0x9f, 0xcd, 0x55, 0xc1, 0x6d, 0xf2, 0xb0, 0xfa, 0xf2, 0x5f, 0xfd, 0x0f, 0x00, + 0x00, 0xff, 0xff, 0x09, 0xf1, 0x7c, 0x71, 0xd0, 0x04, 0x00, 0x00, } func (m *CollectionMetadataTimeline) Marshal() (dAtA []byte, err error) { diff --git a/x/tokenization/types/transfers.pb.go b/x/tokenization/types/transfers.pb.go index 7f75a00b..a34b8645 100644 --- a/x/tokenization/types/transfers.pb.go +++ b/x/tokenization/types/transfers.pb.go @@ -252,43 +252,44 @@ func init() { func init() { proto.RegisterFile("tokenization/transfers.proto", fileDescriptor_a37027d82c2edfa4) } var fileDescriptor_a37027d82c2edfa4 = []byte{ - // 569 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0xc7, 0xe3, 0xa6, 0x1f, 0xc9, 0xa6, 0x08, 0x69, 0xd5, 0x4a, 0xa6, 0x80, 0x6b, 0x95, 0x8f, - 0xfa, 0x94, 0x88, 0x22, 0x24, 0x2e, 0x1c, 0x9a, 0x02, 0xa2, 0x12, 0x28, 0x91, 0x09, 0x12, 0x1f, - 0xa7, 0x8d, 0x33, 0x71, 0x56, 0x59, 0xef, 0x5a, 0xbb, 0x9b, 0x88, 0xf6, 0xc6, 0x1b, 0xf0, 0x00, - 0x3c, 0x50, 0x8f, 0x3d, 0x22, 0x0e, 0x15, 0x4a, 0xde, 0x03, 0x21, 0x3b, 0x76, 0x9d, 0x85, 0x44, - 0xcd, 0x25, 0x9a, 0xcc, 0xff, 0xbf, 0xbf, 0x19, 0x8f, 0x76, 0x16, 0xdd, 0xd3, 0x62, 0x08, 0x9c, - 0x9e, 0x13, 0x4d, 0x05, 0x6f, 0x68, 0x49, 0xb8, 0xea, 0x83, 0x54, 0xf5, 0x58, 0x0a, 0x2d, 0xf0, - 0xf6, 0xbc, 0xba, 0xb7, 0x13, 0x8a, 0x50, 0xa4, 0x42, 0x23, 0x89, 0x66, 0x9e, 0xbd, 0xbb, 0x06, - 0xa1, 0x4b, 0x18, 0xe1, 0x01, 0x64, 0x80, 0x3d, 0x13, 0x4f, 0xe2, 0x58, 0x8a, 0x31, 0x61, 0xb9, - 0x7a, 0xdf, 0x50, 0x83, 0x01, 0x61, 0x0c, 0x78, 0x98, 0x1f, 0x3e, 0xf8, 0xb3, 0x81, 0x2a, 0x9d, - 0xac, 0x23, 0x8c, 0xd1, 0x7a, 0x5f, 0x8a, 0xc8, 0xb6, 0x5c, 0xcb, 0xab, 0xfa, 0x69, 0x8c, 0x5d, - 0x54, 0xd3, 0xe2, 0xb8, 0xd7, 0x93, 0xa0, 0x14, 0x28, 0x7b, 0xcd, 0x2d, 0x7b, 0x55, 0x7f, 0x3e, - 0x85, 0x9f, 0xa0, 0x4a, 0xde, 0x91, 0x5d, 0x76, 0xcb, 0x5e, 0xed, 0x68, 0xb7, 0x3e, 0x5f, 0xb4, - 0xde, 0x9c, 0xa9, 0xfe, 0xb5, 0x0d, 0x7f, 0xb3, 0x90, 0x1b, 0x4b, 0x08, 0x08, 0x0b, 0x46, 0x8c, - 0x68, 0xc8, 0x1c, 0xea, 0xb5, 0x14, 0xd1, 0x71, 0xf6, 0x01, 0xf6, 0xba, 0x6b, 0x79, 0xb5, 0xa3, - 0x67, 0x26, 0xab, 0x7d, 0xc3, 0xa9, 0x97, 0xa0, 0x09, 0x65, 0xca, 0xbf, 0x11, 0x8f, 0x5f, 0xa0, - 0xed, 0x08, 0xe4, 0x90, 0x41, 0x5b, 0x0a, 0xd1, 0x57, 0xf6, 0x46, 0xda, 0xfa, 0x1d, 0xb3, 0xdc, - 0xbb, 0xc2, 0xe1, 0x1b, 0x76, 0xdc, 0x42, 0x18, 0xf4, 0xe0, 0x3d, 0x0d, 0x39, 0xd1, 0x23, 0x99, - 0x43, 0x36, 0x53, 0xc8, 0xbe, 0x09, 0x79, 0xd5, 0x79, 0x63, 0xfa, 0xfc, 0x05, 0x47, 0x93, 0xe1, - 0x47, 0x10, 0x09, 0x7b, 0x6b, 0x36, 0xfc, 0x24, 0xc6, 0x5f, 0xd0, 0x4e, 0x2c, 0xa9, 0x90, 0x54, - 0xd3, 0x73, 0xe8, 0xe5, 0xad, 0x2b, 0xbb, 0x92, 0x96, 0x39, 0x34, 0xcb, 0xe4, 0xf2, 0x69, 0x0f, - 0xb8, 0xa6, 0x7d, 0x0a, 0x32, 0x1f, 0xc6, 0x42, 0x08, 0xfe, 0x88, 0x0e, 0x05, 0x67, 0x67, 0x27, - 0x03, 0x08, 0x86, 0xed, 0xc2, 0x70, 0x22, 0x18, 0x83, 0x20, 0x21, 0x16, 0xf5, 0xaa, 0xae, 0xe5, - 0x55, 0xfc, 0x55, 0xed, 0xb8, 0x83, 0x1e, 0x2d, 0xb2, 0x9e, 0xf2, 0x40, 0x44, 0x94, 0x87, 0x05, - 0x17, 0xa5, 0xdc, 0xd5, 0xcc, 0xcb, 0xa8, 0xad, 0x91, 0x0e, 0x85, 0x41, 0xad, 0x2d, 0xa7, 0xfe, - 0x67, 0x3e, 0xf8, 0xb1, 0x86, 0x0e, 0x57, 0xbc, 0x54, 0xd8, 0x41, 0x88, 0x5c, 0x0f, 0x39, 0xdb, - 0x92, 0xb9, 0x0c, 0x7e, 0x88, 0x6e, 0xe5, 0xff, 0xde, 0xc2, 0x18, 0x98, 0xbd, 0x96, 0x5a, 0xcc, - 0x24, 0xf6, 0xd0, 0xed, 0x59, 0x02, 0x64, 0xb6, 0x44, 0x76, 0x39, 0xf5, 0xfd, 0x9b, 0xc6, 0x8f, - 0xd1, 0xd6, 0x18, 0xa4, 0xa2, 0x82, 0xa7, 0xcb, 0x50, 0x6d, 0x6e, 0x5f, 0x5c, 0xed, 0x97, 0x7e, - 0x5d, 0xed, 0xaf, 0x7f, 0xa0, 0x5c, 0xfb, 0xb9, 0x88, 0x3f, 0xa1, 0xdd, 0xb9, 0xeb, 0x4e, 0x05, - 0x6f, 0xc5, 0xc9, 0x6f, 0x72, 0xa7, 0x93, 0x15, 0x7a, 0xb0, 0x74, 0x85, 0x0a, 0xab, 0xbf, 0x98, - 0xd0, 0xf4, 0x2f, 0x26, 0x8e, 0x75, 0x39, 0x71, 0xac, 0xdf, 0x13, 0xc7, 0xfa, 0x3e, 0x75, 0x4a, - 0x97, 0x53, 0xa7, 0xf4, 0x73, 0xea, 0x94, 0x3e, 0x3f, 0x0f, 0xa9, 0x1e, 0x8c, 0xba, 0xf5, 0x40, - 0x44, 0x8d, 0x2e, 0xd5, 0x5d, 0xd2, 0x0b, 0x41, 0x15, 0x51, 0x30, 0x20, 0x94, 0x37, 0xbe, 0x36, - 0xcc, 0xb7, 0xef, 0x2c, 0x06, 0xd5, 0xdd, 0x4c, 0x9f, 0x9e, 0xa7, 0x7f, 0x03, 0x00, 0x00, 0xff, - 0xff, 0xc0, 0x8d, 0x67, 0xf3, 0x18, 0x05, 0x00, 0x00, + // 578 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xcd, 0x6e, 0xd3, 0x4c, + 0x14, 0x86, 0xe3, 0x26, 0x5f, 0x9b, 0x4c, 0xfa, 0x09, 0x69, 0xd4, 0x4a, 0xa6, 0x80, 0x63, 0x95, + 0x9f, 0x7a, 0x95, 0x88, 0x22, 0x24, 0x36, 0x2c, 0x9a, 0x02, 0xa2, 0x12, 0xa8, 0x95, 0x29, 0x12, + 0x82, 0x05, 0x9a, 0x38, 0x27, 0xce, 0x28, 0xe3, 0x19, 0x6b, 0x66, 0x12, 0xd1, 0xae, 0x91, 0xd8, + 0x72, 0x0d, 0x5c, 0x4d, 0x96, 0x5d, 0x22, 0x16, 0x11, 0x4a, 0x6e, 0x04, 0xd9, 0xb1, 0xeb, 0x0c, + 0x24, 0x6a, 0x36, 0xd6, 0xf1, 0x79, 0xdf, 0x79, 0xce, 0xfc, 0x9d, 0x41, 0x77, 0xb5, 0x18, 0x00, + 0xa7, 0x97, 0x44, 0x53, 0xc1, 0x5b, 0x5a, 0x12, 0xae, 0x7a, 0x20, 0x55, 0x33, 0x96, 0x42, 0x0b, + 0xbc, 0xbd, 0xa8, 0xee, 0xed, 0x84, 0x22, 0x14, 0xa9, 0xd0, 0x4a, 0xa2, 0xb9, 0x67, 0xef, 0x8e, + 0x41, 0xe8, 0x10, 0x46, 0x78, 0x00, 0x19, 0x60, 0xcf, 0xc4, 0x93, 0x38, 0x96, 0x62, 0x44, 0x58, + 0xae, 0xde, 0x33, 0xd4, 0xa0, 0x4f, 0x18, 0x03, 0x1e, 0xe6, 0x83, 0xf7, 0xbf, 0x6e, 0xa2, 0xea, + 0x79, 0x36, 0x23, 0x8c, 0x51, 0xa5, 0x27, 0x45, 0x64, 0x5b, 0xae, 0xe5, 0xd5, 0xfc, 0x34, 0xc6, + 0x2e, 0xaa, 0x6b, 0x71, 0xd4, 0xed, 0x4a, 0x50, 0x0a, 0x94, 0xbd, 0xe1, 0x96, 0xbd, 0x9a, 0xbf, + 0x98, 0xc2, 0x8f, 0x51, 0x35, 0x9f, 0x91, 0x5d, 0x76, 0xcb, 0x5e, 0xfd, 0x70, 0xb7, 0xb9, 0x58, + 0xb4, 0xd9, 0x9e, 0xab, 0xfe, 0xb5, 0x0d, 0x7f, 0xb3, 0x90, 0x1b, 0x4b, 0x08, 0x08, 0x0b, 0x86, + 0x8c, 0x68, 0xc8, 0x1c, 0xea, 0x95, 0x14, 0xd1, 0x51, 0xb6, 0x00, 0xbb, 0xe2, 0x5a, 0x5e, 0xfd, + 0xf0, 0xa9, 0xc9, 0x3a, 0xbb, 0x61, 0xd4, 0x0b, 0xd0, 0x84, 0x32, 0xd5, 0xae, 0x8c, 0x27, 0x0d, + 0xcb, 0xbf, 0xb1, 0x08, 0x7e, 0x8e, 0xb6, 0x23, 0x90, 0x03, 0x06, 0x67, 0x52, 0x88, 0x9e, 0xb2, + 0xff, 0x4b, 0x17, 0x70, 0xdb, 0x2c, 0xfa, 0xb6, 0x70, 0xf8, 0x86, 0x1d, 0x9f, 0x22, 0x0c, 0xba, + 0xff, 0x8e, 0x86, 0x9c, 0xe8, 0xa1, 0xcc, 0x21, 0x9b, 0x29, 0xa4, 0x61, 0x42, 0x5e, 0x9e, 0xbf, + 0x36, 0x7d, 0xfe, 0x92, 0xa1, 0xc9, 0x11, 0x44, 0x10, 0x09, 0x7b, 0x6b, 0x7e, 0x04, 0x49, 0x8c, + 0x3f, 0xa1, 0x9d, 0x58, 0x52, 0x21, 0xa9, 0xa6, 0x97, 0xd0, 0xcd, 0xa7, 0xae, 0xec, 0x6a, 0x5a, + 0xe6, 0xc0, 0x2c, 0x93, 0xcb, 0x27, 0x5d, 0xe0, 0x9a, 0xf6, 0x28, 0xc8, 0x6c, 0x4b, 0xfc, 0xa5, + 0x10, 0xfc, 0x01, 0x1d, 0x08, 0xce, 0x2e, 0x8e, 0xfb, 0x10, 0x0c, 0xce, 0x0a, 0xc3, 0xb1, 0x60, + 0x0c, 0x82, 0x84, 0x58, 0xd4, 0xab, 0xb9, 0x96, 0x57, 0xf5, 0xd7, 0xb5, 0xe3, 0x73, 0xf4, 0x70, + 0x99, 0xf5, 0x84, 0x07, 0x22, 0xa2, 0x3c, 0x2c, 0xb8, 0x28, 0xe5, 0xae, 0x67, 0x5e, 0x45, 0x3d, + 0x1d, 0xea, 0x50, 0x18, 0xd4, 0xfa, 0x6a, 0xea, 0x3f, 0xe6, 0xfd, 0x1f, 0x1b, 0xe8, 0x60, 0xcd, + 0xab, 0x85, 0x1d, 0x84, 0xc8, 0xf5, 0x26, 0x67, 0xbd, 0xb2, 0x90, 0xc1, 0x0f, 0xd0, 0xff, 0xf9, + 0xdf, 0x1b, 0x18, 0x01, 0xb3, 0x37, 0x52, 0x8b, 0x99, 0xc4, 0x1e, 0xba, 0x35, 0x4f, 0x80, 0xcc, + 0x5a, 0xc9, 0x2e, 0xa7, 0xbe, 0xbf, 0xd3, 0xf8, 0x11, 0xda, 0x1a, 0x81, 0x54, 0x54, 0xf0, 0xb4, + 0x25, 0x6a, 0xed, 0xed, 0xf1, 0xa4, 0x51, 0xfa, 0x35, 0x69, 0x54, 0xde, 0x53, 0xae, 0xfd, 0x5c, + 0xc4, 0x9f, 0xd1, 0xee, 0xc2, 0x75, 0xa7, 0x82, 0x9f, 0xc6, 0xc9, 0x37, 0xb9, 0xd3, 0x49, 0x23, + 0xdd, 0x5f, 0xd9, 0x48, 0x85, 0x35, 0x6b, 0x9b, 0xe5, 0x9c, 0xb6, 0x3f, 0x9e, 0x3a, 0xd6, 0xd5, + 0xd4, 0xb1, 0x7e, 0x4f, 0x1d, 0xeb, 0xfb, 0xcc, 0x29, 0x5d, 0xcd, 0x9c, 0xd2, 0xcf, 0x99, 0x53, + 0xfa, 0xf8, 0x2c, 0xa4, 0xba, 0x3f, 0xec, 0x34, 0x03, 0x11, 0xb5, 0x3a, 0x54, 0x77, 0x48, 0x37, + 0x04, 0x55, 0x44, 0x41, 0x9f, 0x50, 0xde, 0xfa, 0xd2, 0x32, 0xdf, 0xc1, 0x8b, 0x18, 0x54, 0x67, + 0x33, 0x7d, 0x86, 0x9e, 0xfc, 0x09, 0x00, 0x00, 0xff, 0xff, 0x86, 0x1c, 0x16, 0x18, 0x24, 0x05, + 0x00, 0x00, } func (m *Transfer) Marshal() (dAtA []byte, err error) { diff --git a/x/tokenization/types/tx.pb.go b/x/tokenization/types/tx.pb.go index 6c6f68da..a59bc5c9 100644 --- a/x/tokenization/types/tx.pb.go +++ b/x/tokenization/types/tx.pb.go @@ -4458,257 +4458,257 @@ func init() { func init() { proto.RegisterFile("tokenization/tx.proto", fileDescriptor_0f9b57e9235d83e7) } var fileDescriptor_0f9b57e9235d83e7 = []byte{ - // 3988 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x3c, 0x4b, 0x6f, 0x1c, 0xc7, - 0xd1, 0xda, 0x5d, 0x3e, 0x76, 0x8b, 0xef, 0xe6, 0x7b, 0x25, 0x51, 0xd4, 0x5a, 0x2f, 0x53, 0x32, - 0x69, 0xc9, 0x82, 0x6d, 0xf0, 0xfb, 0x3e, 0xc3, 0x14, 0x29, 0xd9, 0xf4, 0x67, 0x5a, 0x4c, 0x93, - 0x94, 0x60, 0xc3, 0x88, 0x3c, 0xdc, 0x6d, 0x2e, 0x27, 0xde, 0x9d, 0xd9, 0xcc, 0xcc, 0x52, 0x62, - 0x02, 0x04, 0x41, 0x2e, 0x31, 0xe2, 0x43, 0x92, 0x53, 0xf2, 0x0b, 0xf2, 0x00, 0x72, 0x10, 0x10, - 0x5f, 0x7c, 0x08, 0x0c, 0x24, 0x17, 0x5f, 0x82, 0x18, 0xbe, 0x38, 0x08, 0x10, 0x23, 0xb1, 0x0f, - 0x3a, 0xe4, 0x92, 0x5b, 0x10, 0x20, 0x41, 0x82, 0xe9, 0x99, 0x9e, 0x99, 0x7e, 0xed, 0xce, 0x92, - 0x2b, 0x03, 0xba, 0x48, 0xdc, 0xee, 0xaa, 0xea, 0xee, 0xea, 0x9a, 0x7a, 0x75, 0x75, 0xc3, 0xa4, - 0x67, 0xbf, 0x4b, 0x2c, 0xf3, 0x5b, 0x86, 0x67, 0xda, 0xd6, 0x92, 0xf7, 0x60, 0xb1, 0xe1, 0xd8, - 0x9e, 0x8d, 0x06, 0x93, 0xcd, 0xc5, 0x31, 0xa3, 0x6e, 0x5a, 0xf6, 0x12, 0xfd, 0x37, 0x00, 0x28, - 0x4e, 0x97, 0x6d, 0xb7, 0x6e, 0xbb, 0x4b, 0x75, 0xb7, 0xba, 0x74, 0x70, 0xd5, 0xff, 0x2f, 0xec, - 0x98, 0x0d, 0x3a, 0xee, 0xd1, 0x5f, 0x4b, 0xc1, 0x8f, 0xb0, 0x6b, 0xa2, 0x6a, 0x57, 0xed, 0xa0, - 0xdd, 0xff, 0x8b, 0x21, 0x70, 0x33, 0x68, 0x18, 0x8e, 0x51, 0x67, 0x08, 0xa7, 0xf8, 0xc9, 0x39, - 0x86, 0xe5, 0xee, 0x11, 0x87, 0xf5, 0x9e, 0xe4, 0x7a, 0x77, 0x8d, 0x9a, 0x61, 0x95, 0x09, 0xeb, - 0x9c, 0xe3, 0xa9, 0x12, 0xa7, 0x6e, 0xba, 0xae, 0x69, 0x5b, 0x6a, 0xe4, 0x3a, 0xf1, 0x8c, 0x8a, - 0xe1, 0x19, 0x4a, 0xe4, 0xb2, 0x5d, 0xab, 0x91, 0xb2, 0x97, 0x40, 0x9e, 0xe7, 0xfa, 0x8d, 0x4a, - 0xc5, 0x21, 0xae, 0x7b, 0xaf, 0x66, 0xba, 0x1e, 0x83, 0x38, 0xcb, 0x41, 0x54, 0x0e, 0x2d, 0xa3, - 0x6e, 0x96, 0xef, 0xb9, 0x9e, 0xed, 0x10, 0xf5, 0xe2, 0x8c, 0x46, 0xc3, 0xb1, 0x0f, 0x8c, 0x1a, - 0xeb, 0x3d, 0xcf, 0xf5, 0x36, 0x5d, 0xe2, 0xdc, 0x0b, 0x57, 0x18, 0x50, 0x09, 0xc1, 0x4e, 0xf3, - 0x33, 0xdd, 0x37, 0x6a, 0x35, 0x62, 0x55, 0x63, 0x2e, 0x84, 0xbb, 0xb4, 0x6b, 0xb8, 0x64, 0xe9, - 0xe0, 0xea, 0x2e, 0xf1, 0x8c, 0xab, 0x4b, 0x65, 0xdb, 0xb4, 0x82, 0xfe, 0xd2, 0xcf, 0x10, 0xcc, - 0x6e, 0x27, 0x28, 0xac, 0x36, 0x5d, 0xcf, 0xae, 0x6f, 0xb8, 0xd5, 0xed, 0xc3, 0x06, 0x41, 0x6f, - 0xc2, 0x64, 0xd9, 0x21, 0x86, 0x47, 0x56, 0x82, 0x15, 0xbe, 0xee, 0x2f, 0x70, 0xc3, 0xad, 0xce, - 0x64, 0xe6, 0x33, 0x97, 0x06, 0xae, 0x3d, 0xb5, 0x98, 0x1c, 0x7c, 0x71, 0xc3, 0xad, 0xae, 0x4a, - 0xd0, 0x58, 0x4d, 0x01, 0x59, 0x70, 0xaa, 0x69, 0x99, 0x07, 0xc4, 0x71, 0x8d, 0xda, 0x4e, 0xa3, - 0x62, 0x78, 0x64, 0x35, 0xe2, 0xb2, 0x3f, 0x42, 0x96, 0x8e, 0xb0, 0x20, 0x8d, 0xb0, 0xa3, 0x43, - 0xc2, 0x2d, 0xe9, 0xa1, 0x2d, 0x18, 0xaf, 0x90, 0x1a, 0x11, 0x87, 0xc9, 0xd1, 0x61, 0xce, 0x4a, - 0xc3, 0xac, 0x09, 0xb0, 0x58, 0x85, 0x8d, 0x36, 0x60, 0x8c, 0xc9, 0x24, 0x65, 0x22, 0xe5, 0x4d, - 0x0f, 0x25, 0x79, 0x46, 0x22, 0xb9, 0xcd, 0x41, 0x62, 0x19, 0x13, 0xbd, 0x0d, 0x53, 0x4d, 0x3a, - 0xf5, 0x1d, 0x97, 0x38, 0x2b, 0x4c, 0x1e, 0x7c, 0x9a, 0xbd, 0x94, 0xe6, 0x39, 0x99, 0x1b, 0x32, - 0x38, 0xd6, 0xd0, 0xf0, 0x39, 0xd0, 0x54, 0x30, 0xba, 0x4f, 0xc3, 0x01, 0x89, 0xbf, 0x2a, 0x6c, - 0x9f, 0x68, 0xb0, 0xbf, 0x3c, 0xd1, 0x7e, 0x0d, 0xd1, 0x55, 0x01, 0x16, 0xab, 0xb0, 0x63, 0xb1, - 0x5b, 0x0b, 0x3e, 0x9b, 0x2d, 0x5f, 0xde, 0x7d, 0xb2, 0xf9, 0x96, 0x62, 0x97, 0x84, 0xc6, 0x6a, - 0x0a, 0x3e, 0xe9, 0x60, 0x19, 0x22, 0xe9, 0x82, 0x86, 0xf4, 0x8e, 0x04, 0x8d, 0xd5, 0x14, 0x7c, - 0xd2, 0x81, 0x8c, 0x88, 0xa4, 0x41, 0x43, 0x7a, 0x4d, 0x82, 0xc6, 0x6a, 0x0a, 0xe8, 0x1e, 0x4c, - 0xbb, 0xc4, 0x4b, 0xb6, 0xde, 0x31, 0x6a, 0x4d, 0x4a, 0x7c, 0x80, 0x12, 0x3f, 0x2f, 0x11, 0xdf, - 0x52, 0xc0, 0x63, 0x1d, 0x15, 0x5f, 0xf2, 0x5c, 0xe2, 0xad, 0x5b, 0x65, 0xbb, 0x6e, 0x5a, 0x55, - 0x26, 0x36, 0x3e, 0xfd, 0x61, 0x8d, 0xe4, 0x6d, 0xc9, 0xe0, 0x58, 0x43, 0x03, 0x11, 0x98, 0x0d, - 0xd6, 0xa5, 0x1a, 0x60, 0x84, 0x0e, 0x70, 0x51, 0xc3, 0x1d, 0x69, 0x0c, 0x3d, 0xa5, 0x70, 0x11, - 0xb7, 0x9b, 0x5e, 0xd5, 0x16, 0xc6, 0x18, 0xd5, 0x2f, 0x42, 0x04, 0xc7, 0x1a, 0x1a, 0xf1, 0x22, - 0x54, 0x03, 0x8c, 0xb5, 0x5c, 0x84, 0x34, 0x86, 0x9e, 0x92, 0xaf, 0x52, 0x1a, 0x4d, 0xa7, 0x4a, - 0xb8, 0xcf, 0x1f, 0x69, 0x54, 0xca, 0x26, 0x07, 0x89, 0x65, 0x4c, 0xff, 0xfb, 0x74, 0x89, 0x77, - 0xc7, 0xa8, 0x99, 0x15, 0xaa, 0x67, 0xd6, 0x2b, 0x94, 0xe0, 0xb8, 0xe6, 0xfb, 0xdc, 0x12, 0x60, - 0xb1, 0x0a, 0x1b, 0xad, 0xc0, 0x90, 0x4b, 0xbc, 0x0d, 0xc3, 0x32, 0xaa, 0xc4, 0xf1, 0xc9, 0x4d, - 0x50, 0x72, 0x27, 0x55, 0xe4, 0x42, 0x28, 0xcc, 0x63, 0xa0, 0x5d, 0x98, 0x71, 0x89, 0x97, 0xf8, - 0xec, 0x43, 0xfb, 0xeb, 0x53, 0x9b, 0xa4, 0xd4, 0x2e, 0xa8, 0xa8, 0xc9, 0x08, 0x58, 0x4b, 0x27, - 0x5c, 0x3b, 0x9d, 0x78, 0x92, 0xfc, 0x94, 0x7e, 0xed, 0x1c, 0x2c, 0x56, 0x61, 0xa3, 0xd7, 0x60, - 0xd4, 0x1f, 0x90, 0x9a, 0xc9, 0xb5, 0x90, 0xe2, 0x34, 0xa5, 0x38, 0xa7, 0x9c, 0x70, 0x04, 0x88, - 0x25, 0x3c, 0xf4, 0x0a, 0x8c, 0xb8, 0xc4, 0xdb, 0xf2, 0x0c, 0xab, 0x62, 0x38, 0xc1, 0xc6, 0xcc, - 0x50, 0x52, 0xa7, 0x55, 0xa4, 0x22, 0x38, 0x2c, 0x62, 0xf9, 0xb2, 0xc9, 0x71, 0x81, 0x13, 0x9e, - 0x59, 0x8d, 0x6c, 0x6e, 0x29, 0x31, 0xb0, 0x9e, 0x52, 0xb8, 0xf6, 0x75, 0x77, 0xc5, 0x29, 0xef, - 0x9b, 0x07, 0xa4, 0xe2, 0x53, 0x2f, 0xea, 0xd7, 0x1e, 0x03, 0x62, 0x09, 0x0f, 0x7d, 0x13, 0x4e, - 0xbb, 0xc4, 0xc3, 0xc4, 0x25, 0xce, 0x01, 0xa9, 0x6c, 0xfa, 0xce, 0x48, 0xd9, 0xae, 0x85, 0x5e, - 0x82, 0x4f, 0xf8, 0x24, 0x25, 0x7c, 0x59, 0x45, 0x58, 0x83, 0x85, 0x5b, 0x53, 0x44, 0xff, 0x03, - 0x03, 0x65, 0xc3, 0xf5, 0xee, 0xd8, 0x1e, 0xd5, 0x9c, 0xa7, 0xe8, 0x00, 0xb3, 0xb2, 0x31, 0x09, - 0x61, 0x70, 0x12, 0xba, 0xf4, 0xeb, 0x0c, 0x8c, 0x44, 0xe6, 0x60, 0x93, 0xfa, 0xa8, 0xe8, 0x79, - 0x28, 0x18, 0x4d, 0x6f, 0xdf, 0x76, 0x4c, 0xef, 0x90, 0xba, 0x44, 0x85, 0x1b, 0x33, 0x9f, 0x7e, - 0xf0, 0xcc, 0x44, 0xe8, 0xf3, 0x86, 0x43, 0x6f, 0x79, 0x8e, 0x69, 0x55, 0x71, 0x0c, 0x8a, 0x5e, - 0x80, 0xbe, 0xc0, 0xcb, 0x0d, 0xbd, 0x9c, 0x09, 0x7e, 0x0e, 0x01, 0xf5, 0x1b, 0x85, 0x8f, 0x3f, - 0x3f, 0x73, 0xe2, 0x17, 0x8f, 0x1e, 0x2e, 0x64, 0x70, 0x08, 0xbe, 0xbc, 0xf4, 0xbd, 0x47, 0x0f, - 0x17, 0x62, 0x42, 0x3f, 0x78, 0xf4, 0x70, 0x81, 0x77, 0x22, 0x85, 0x19, 0x96, 0x66, 0x61, 0x5a, - 0x68, 0xc2, 0xc4, 0x6d, 0xd8, 0x96, 0x4b, 0x4a, 0xbf, 0xcf, 0xc2, 0xdc, 0x2a, 0x9d, 0xe8, 0xaa, - 0x6d, 0x5a, 0x77, 0x1d, 0xa3, 0xd1, 0x20, 0xce, 0xa6, 0xe1, 0xed, 0xaf, 0x54, 0x2a, 0xb7, 0x77, - 0xbf, 0x41, 0xca, 0x1e, 0x9a, 0x80, 0xde, 0x0a, 0xb1, 0xec, 0x7a, 0xb0, 0x36, 0x1c, 0xfc, 0x40, - 0x6b, 0x00, 0x65, 0xdb, 0xf2, 0x3d, 0x2d, 0xd3, 0xb6, 0xc2, 0x15, 0x08, 0xaa, 0x75, 0x35, 0xea, - 0xbf, 0x6b, 0x7a, 0xfb, 0x76, 0xd3, 0x5b, 0xf3, 0x31, 0x71, 0x02, 0x0f, 0x4d, 0x41, 0x9f, 0x7b, - 0x58, 0xdf, 0xb5, 0x6b, 0xd4, 0x05, 0x2b, 0xe0, 0xf0, 0x17, 0x7a, 0x01, 0x80, 0x0e, 0xb3, 0x63, - 0x99, 0x9e, 0x3b, 0xd3, 0x33, 0x9f, 0xbb, 0x34, 0x70, 0x6d, 0x9a, 0xa7, 0xbe, 0xc6, 0xfa, 0x71, - 0x02, 0x14, 0xdd, 0x82, 0x39, 0xa3, 0x56, 0xb3, 0xef, 0xdf, 0x3e, 0x20, 0x8e, 0x63, 0x56, 0x88, - 0x3f, 0xf2, 0x8a, 0x75, 0x18, 0x2b, 0x2f, 0xea, 0x44, 0xe5, 0x71, 0x1b, 0x28, 0xf4, 0x3c, 0xe4, - 0x59, 0x30, 0x10, 0xfa, 0x46, 0x45, 0x71, 0x7b, 0xbc, 0xfd, 0x48, 0x47, 0x44, 0xb0, 0xa5, 0x7f, - 0x66, 0x00, 0xad, 0xd4, 0x4c, 0xc3, 0x7d, 0x82, 0x79, 0x98, 0x5c, 0x7b, 0x6f, 0x07, 0x6b, 0x7f, - 0x13, 0x4e, 0xc7, 0xa2, 0x74, 0xc3, 0x28, 0xbf, 0x4b, 0x2a, 0x3c, 0x17, 0x5e, 0xe4, 0xd6, 0x1b, - 0x44, 0x0f, 0x33, 0xba, 0xf5, 0x26, 0xd7, 0x58, 0xfa, 0x65, 0x0e, 0xc6, 0xd7, 0xad, 0x03, 0xc3, - 0x31, 0x0d, 0xcb, 0x73, 0x63, 0x8a, 0xcf, 0xc3, 0x94, 0x65, 0x07, 0xea, 0xf4, 0xf6, 0x7d, 0x8b, - 0x38, 0xee, 0xbe, 0xd9, 0xd8, 0x36, 0xeb, 0xc4, 0xa5, 0xd4, 0xf3, 0x58, 0xd3, 0x8b, 0xae, 0xc3, - 0x70, 0xdd, 0x78, 0xb0, 0xd5, 0x6c, 0x34, 0x6a, 0x87, 0x9b, 0xc4, 0x59, 0xaf, 0x50, 0xee, 0x17, - 0x6e, 0x0c, 0xfa, 0x5f, 0xdb, 0x9f, 0x3e, 0x3f, 0xd3, 0xb3, 0x63, 0x5a, 0x1e, 0x16, 0x60, 0xd0, - 0x3d, 0x08, 0x3f, 0x6a, 0x7e, 0x81, 0x61, 0xf8, 0x70, 0x59, 0x5c, 0x49, 0x0b, 0x56, 0x60, 0x25, - 0x21, 0xf4, 0x32, 0x9c, 0xb4, 0xec, 0x5b, 0xb6, 0x53, 0x26, 0x7b, 0xcd, 0xda, 0xa6, 0xed, 0x7a, - 0x1b, 0xa6, 0xe5, 0xb1, 0x88, 0xc1, 0xa5, 0x31, 0x45, 0x1e, 0xb7, 0x02, 0x41, 0xcf, 0xc2, 0x78, - 0xc5, 0x74, 0x8d, 0xdd, 0x1a, 0xd9, 0xb4, 0xed, 0x1a, 0xf5, 0x88, 0x7d, 0x5e, 0x07, 0x42, 0xaf, - 0xea, 0x42, 0xb7, 0x01, 0x91, 0x83, 0xfa, 0xd7, 0x9a, 0xc4, 0x39, 0x5c, 0x8d, 0xe2, 0xc6, 0x99, - 0x3e, 0x2a, 0x2e, 0x82, 0xaf, 0x71, 0xf3, 0xce, 0x06, 0x0f, 0x87, 0x15, 0xa8, 0xa5, 0xf7, 0x06, - 0xe1, 0x54, 0xab, 0x10, 0x0d, 0xcd, 0x40, 0x3f, 0x75, 0xcb, 0x6d, 0x27, 0xfc, 0x1c, 0xd8, 0x4f, - 0xf4, 0x2c, 0x0c, 0xc6, 0x51, 0xb6, 0x66, 0x53, 0x38, 0x08, 0xf4, 0x2a, 0x8c, 0x54, 0xc8, 0x9e, - 0xd1, 0xac, 0x79, 0x37, 0xc2, 0xc0, 0x3f, 0xdc, 0x0d, 0xc1, 0x16, 0xf9, 0x71, 0x50, 0x08, 0x11, - 0xf8, 0xd8, 0x22, 0x9a, 0xcf, 0xb9, 0xc0, 0xa3, 0xe7, 0x1c, 0x9d, 0x90, 0xe7, 0xaa, 0x2e, 0xf4, - 0x7f, 0x30, 0x74, 0xc0, 0xc1, 0xf6, 0xaa, 0xbe, 0x31, 0x3a, 0x69, 0xc3, 0x67, 0x16, 0x0f, 0xed, - 0x6f, 0xb6, 0x18, 0x4b, 0x6d, 0xc6, 0xf9, 0x09, 0xaa, 0x75, 0xf2, 0xb8, 0x15, 0x08, 0x8d, 0x90, - 0x94, 0xb8, 0xfd, 0xaa, 0x58, 0x43, 0x49, 0x03, 0xab, 0x29, 0xa0, 0x73, 0x30, 0x14, 0x8c, 0x1c, - 0x7a, 0x6b, 0x34, 0xe8, 0xca, 0x63, 0xbe, 0xd1, 0xdf, 0xc9, 0x7a, 0xd8, 0x5f, 0x08, 0x76, 0x32, - 0xfc, 0x89, 0x96, 0x61, 0x46, 0x0a, 0x14, 0x99, 0x4e, 0x01, 0x4a, 0x4a, 0xdb, 0x8f, 0x36, 0x01, - 0x95, 0x65, 0xac, 0x20, 0xc4, 0x99, 0xd7, 0xad, 0x29, 0xd2, 0x47, 0x0a, 0xdc, 0x78, 0x6f, 0x39, - 0x47, 0x6e, 0x66, 0x30, 0xb9, 0xb7, 0x5c, 0x97, 0xef, 0xdc, 0x7a, 0x1c, 0xec, 0x10, 0xdd, 0x5b, - 0xc1, 0xb9, 0xe5, 0x3d, 0x45, 0x1e, 0x03, 0x2d, 0xc0, 0x68, 0xb8, 0xc4, 0xc8, 0xdd, 0xa3, 0x71, - 0x54, 0x1e, 0x4b, 0xed, 0x68, 0x0e, 0xa0, 0x1c, 0x43, 0x8d, 0x50, 0x5e, 0x26, 0x5a, 0xd0, 0xff, - 0xc2, 0xac, 0xc8, 0xae, 0xc8, 0x27, 0xa3, 0x71, 0x4d, 0x1e, 0xeb, 0x01, 0x10, 0x86, 0xf1, 0xb2, - 0x02, 0x6f, 0x8c, 0x2e, 0x49, 0xcb, 0xd1, 0x28, 0x4e, 0x51, 0x21, 0xa3, 0x4b, 0x30, 0x12, 0x0c, - 0x18, 0xb9, 0xa0, 0x34, 0x3e, 0xc9, 0x63, 0xb1, 0x19, 0x9d, 0x82, 0x82, 0x1b, 0xc1, 0x8c, 0xcf, - 0xe7, 0x2e, 0x15, 0x70, 0xdc, 0x10, 0x73, 0x29, 0x76, 0x0c, 0x69, 0x20, 0x11, 0x71, 0x29, 0x6e, - 0xf7, 0xb9, 0x64, 0xc6, 0x50, 0x93, 0x14, 0x2a, 0xd1, 0x82, 0xee, 0xc2, 0x6c, 0xdd, 0xb4, 0xbc, - 0x9b, 0x6e, 0xd9, 0xb1, 0xef, 0xfb, 0xaa, 0xd5, 0xdd, 0xb6, 0x99, 0x6a, 0x9c, 0x99, 0xa2, 0xab, - 0x9d, 0x5d, 0x0c, 0xdd, 0xb2, 0x5d, 0xc3, 0x25, 0x8b, 0x61, 0x2a, 0x6c, 0xd1, 0x87, 0xc5, 0x7a, - 0x5c, 0x64, 0xc1, 0xc9, 0xb2, 0xca, 0x49, 0x72, 0xb7, 0xed, 0x95, 0x4a, 0x65, 0x66, 0x9a, 0x92, - 0xbe, 0xa2, 0xd3, 0xff, 0x2a, 0xaf, 0x0a, 0xb7, 0x22, 0x88, 0x56, 0x00, 0xcc, 0xc8, 0xda, 0x85, - 0xd1, 0x80, 0x10, 0xaa, 0x28, 0xac, 0x21, 0x4e, 0x20, 0xa1, 0xd7, 0x60, 0xc4, 0x60, 0x7e, 0x48, - 0x38, 0xcd, 0x59, 0xd5, 0x7e, 0xcb, 0xce, 0x0a, 0x16, 0x11, 0x97, 0x5f, 0xf0, 0x1d, 0x4e, 0xa6, - 0xa4, 0x7d, 0x77, 0xf3, 0x02, 0xe7, 0x6e, 0x6a, 0x35, 0x7d, 0xe9, 0xb7, 0x19, 0x38, 0xd7, 0x32, - 0x5b, 0x17, 0xba, 0xa1, 0x92, 0xe2, 0xcf, 0xb4, 0x55, 0xfc, 0xb7, 0x60, 0x84, 0xe5, 0x4a, 0x57, - 0xf7, 0x0d, 0x6a, 0xb3, 0xb2, 0x74, 0x7d, 0xa7, 0x84, 0xf5, 0x71, 0x40, 0x58, 0x44, 0x42, 0xf3, - 0x30, 0xe0, 0x90, 0x03, 0x93, 0xdc, 0x5f, 0xf7, 0x48, 0xdd, 0x37, 0x1e, 0xbe, 0x7c, 0x26, 0x9b, - 0x4a, 0xbf, 0x1a, 0x80, 0x71, 0x45, 0x26, 0xac, 0xab, 0x66, 0x4c, 0x63, 0x7c, 0x72, 0x1d, 0x18, - 0x9f, 0x9e, 0x6e, 0x1a, 0x9f, 0xde, 0x63, 0x18, 0x9f, 0xbe, 0xee, 0x1b, 0x9f, 0xfe, 0x36, 0xc6, - 0x27, 0x9f, 0xde, 0xf8, 0x14, 0x8e, 0x64, 0x7c, 0xa0, 0xfb, 0xc6, 0x67, 0xa0, 0x03, 0xe3, 0x33, - 0xd8, 0x15, 0xe3, 0x33, 0x94, 0xca, 0xf8, 0x0c, 0x77, 0x66, 0x7c, 0x46, 0x8e, 0x68, 0x7c, 0x46, - 0xbb, 0x6c, 0x7c, 0xc6, 0x52, 0x18, 0x1f, 0x94, 0xc6, 0xf8, 0x8c, 0xa7, 0x32, 0x3e, 0x13, 0x9d, - 0x19, 0x9f, 0xc9, 0xc7, 0x67, 0x7c, 0xa6, 0x1e, 0xaf, 0xf1, 0x99, 0xee, 0x92, 0xf1, 0x99, 0x39, - 0xaa, 0xf1, 0x59, 0x14, 0x8d, 0x0f, 0x7f, 0xd6, 0x25, 0xd9, 0x9c, 0x0f, 0x33, 0x70, 0x52, 0x75, - 0x70, 0xf1, 0x24, 0x98, 0x9a, 0x7f, 0xf5, 0x53, 0x53, 0x23, 0x9e, 0x8f, 0xb4, 0x30, 0x35, 0x8a, - 0xf8, 0x27, 0x7b, 0xb4, 0xf8, 0x47, 0x32, 0x28, 0xb9, 0x8e, 0x0c, 0x8a, 0xd6, 0x1c, 0xf4, 0x1c, - 0xdb, 0x1c, 0x24, 0x14, 0x7d, 0x2f, 0xaf, 0xe8, 0xd5, 0xca, 0xba, 0xef, 0x18, 0xca, 0x5a, 0x52, - 0xbd, 0xfd, 0x1d, 0xab, 0x5e, 0x5e, 0x9d, 0xe6, 0x25, 0x75, 0xaa, 0x51, 0x88, 0x85, 0xe3, 0x28, - 0x44, 0x4e, 0xcd, 0x81, 0xa8, 0xe6, 0x78, 0xd5, 0x35, 0xd0, 0x99, 0xea, 0x1a, 0x7c, 0x7c, 0xaa, - 0x6b, 0xe8, 0xf1, 0xaa, 0xae, 0xe1, 0x2e, 0xa9, 0xae, 0x91, 0xc7, 0xa4, 0xba, 0xc4, 0xcf, 0x9c, - 0xa9, 0x2e, 0xe9, 0x78, 0xf4, 0x49, 0x50, 0x5d, 0x3f, 0xcf, 0xc0, 0xa4, 0xf2, 0xe8, 0xbf, 0x85, - 0xf2, 0xba, 0x01, 0x83, 0x46, 0x02, 0x32, 0x9c, 0x9a, 0xa0, 0xb9, 0x12, 0xb4, 0xd6, 0xad, 0x46, - 0xd3, 0xc3, 0x1c, 0xce, 0xf2, 0xb3, 0x22, 0x8f, 0xcf, 0x28, 0x78, 0x9c, 0x9c, 0x4f, 0xe9, 0x0c, - 0x9c, 0x56, 0xd7, 0x28, 0xb0, 0x9c, 0xf8, 0xef, 0x32, 0x30, 0x26, 0x9d, 0xd4, 0x77, 0xd5, 0xdd, - 0xbf, 0x0e, 0x85, 0xa8, 0x8a, 0x25, 0xd4, 0xb3, 0x53, 0x82, 0x86, 0x09, 0xbb, 0x71, 0x0c, 0xb8, - 0x7c, 0x45, 0x5c, 0x2a, 0x5f, 0xbc, 0xc2, 0xcf, 0xb7, 0xf4, 0xc3, 0x2c, 0xcc, 0xca, 0xf5, 0x06, - 0x4c, 0x94, 0x5e, 0x86, 0xa1, 0xa8, 0xd4, 0x64, 0xc7, 0x25, 0xbe, 0x2c, 0xe5, 0xe4, 0x44, 0x2f, - 0x13, 0x0b, 0x1f, 0x02, 0xf3, 0x08, 0xe8, 0x26, 0x0c, 0x95, 0x6d, 0xd3, 0x8a, 0xb3, 0x93, 0x59, - 0x55, 0xca, 0x70, 0x35, 0x01, 0x42, 0x0f, 0x63, 0x30, 0x8f, 0x85, 0x5e, 0x81, 0x71, 0x56, 0xb2, - 0xc3, 0x1a, 0x1d, 0x52, 0x09, 0x99, 0x32, 0xc9, 0x13, 0x0b, 0x6d, 0x15, 0x56, 0x61, 0x88, 0x22, - 0xda, 0x23, 0x8b, 0xe8, 0x8f, 0x33, 0xd4, 0xba, 0x8a, 0x45, 0x1d, 0xdd, 0xdc, 0xd9, 0x76, 0x9f, - 0xbc, 0x38, 0x76, 0xe9, 0x34, 0xfd, 0xe2, 0xa5, 0x3a, 0x13, 0x26, 0x8a, 0x9f, 0xe7, 0x61, 0x4a, - 0x5d, 0xe0, 0xd1, 0x55, 0x79, 0x7c, 0x11, 0xa6, 0x03, 0x7f, 0x57, 0x3c, 0x8b, 0x66, 0x21, 0xa8, - 0xae, 0x1b, 0x6d, 0xc2, 0x98, 0x2d, 0xe1, 0x04, 0xa1, 0x68, 0x49, 0xf6, 0x40, 0xa4, 0x23, 0x70, - 0x19, 0x39, 0x9e, 0x8b, 0x78, 0xb8, 0xcf, 0xa2, 0x52, 0x5d, 0xb7, 0x3f, 0x17, 0x53, 0xc2, 0xe9, - 0xd3, 0xcd, 0x45, 0xaa, 0x29, 0x90, 0x91, 0xd1, 0x3e, 0x2c, 0x05, 0x83, 0xad, 0x34, 0x3d, 0x3b, - 0x68, 0x26, 0x5b, 0xa4, 0xb6, 0xb7, 0x6e, 0x99, 0x9e, 0x69, 0x78, 0xa4, 0xc2, 0x16, 0x14, 0x7f, - 0x05, 0x41, 0xa8, 0xda, 0x29, 0x1a, 0x7a, 0x1b, 0x9e, 0x36, 0x52, 0x8f, 0x11, 0xe4, 0x62, 0xd3, - 0x23, 0xb4, 0x5f, 0x07, 0x63, 0x46, 0x3c, 0x46, 0x21, 0xcd, 0x3a, 0x24, 0xb4, 0x56, 0xeb, 0x90, - 0xc7, 0x80, 0xd6, 0xeb, 0x90, 0xa9, 0x6f, 0xc3, 0x79, 0x69, 0x42, 0x2b, 0xb5, 0x9a, 0x4c, 0x39, - 0xf0, 0x71, 0xd2, 0x01, 0xa3, 0x57, 0xe1, 0x8c, 0xd1, 0x86, 0x5e, 0x90, 0x29, 0x6e, 0x07, 0x86, - 0xae, 0xb3, 0xba, 0x22, 0x5f, 0xc0, 0x92, 0x4e, 0x70, 0x10, 0x7a, 0xab, 0x3b, 0xd1, 0x2b, 0x30, - 0xd2, 0x14, 0xe0, 0x87, 0x55, 0x05, 0x00, 0x02, 0x1e, 0x16, 0xb1, 0x96, 0xaf, 0x8a, 0xca, 0x67, - 0x5e, 0x11, 0x2a, 0x71, 0x5a, 0xa4, 0xf4, 0x69, 0x06, 0xe6, 0x34, 0x15, 0x64, 0xcc, 0x54, 0xdc, - 0x82, 0x11, 0xf6, 0x65, 0x30, 0x1f, 0x22, 0x93, 0xc6, 0x87, 0x10, 0x90, 0x7c, 0x3a, 0xec, 0x6b, - 0xef, 0xc8, 0x17, 0x11, 0x90, 0x52, 0xf8, 0x22, 0x9f, 0x65, 0xa8, 0xd6, 0x54, 0x14, 0x27, 0x75, - 0x55, 0x6b, 0xbe, 0x04, 0x79, 0x66, 0x12, 0xc3, 0x43, 0xa7, 0x34, 0x6a, 0x26, 0xc2, 0x69, 0xb7, - 0x5d, 0x8a, 0xe9, 0x97, 0x3c, 0xba, 0x5b, 0xaa, 0xaa, 0x2b, 0xb6, 0x5b, 0x53, 0xd0, 0x67, 0xd0, - 0x09, 0x86, 0xeb, 0x0b, 0x7f, 0xf9, 0x0b, 0x4f, 0x1e, 0x34, 0x17, 0x30, 0xfb, 0x99, 0x82, 0x9f, - 0xbf, 0xc9, 0x50, 0x57, 0x42, 0x5d, 0x8b, 0xd5, 0x55, 0x96, 0xce, 0x01, 0x30, 0xf6, 0xac, 0x57, - 0xc2, 0xf3, 0xec, 0x44, 0xcb, 0xf2, 0x75, 0x91, 0x65, 0x4f, 0x29, 0xcc, 0xab, 0xc4, 0xb5, 0x26, - 0x9c, 0xd5, 0x97, 0x92, 0x31, 0xc6, 0x4d, 0x40, 0xef, 0x9e, 0xdd, 0xb4, 0x2a, 0xe1, 0xc9, 0x71, - 0xf0, 0xe3, 0x58, 0x6c, 0x8b, 0xc5, 0x50, 0xb4, 0x7b, 0x5f, 0xbd, 0x18, 0x4a, 0x96, 0xb7, 0x13, - 0x31, 0x14, 0x91, 0x63, 0x31, 0x94, 0xc8, 0x7e, 0x65, 0x62, 0xf8, 0x58, 0x59, 0xda, 0x15, 0x31, - 0x94, 0xb8, 0x96, 0x14, 0x43, 0x2d, 0xe3, 0xba, 0x2f, 0x86, 0x7f, 0xcf, 0xd2, 0x70, 0x86, 0xaf, - 0x12, 0xec, 0x2a, 0xbb, 0x4a, 0x30, 0x48, 0x6b, 0x0e, 0x6f, 0x3e, 0x68, 0x98, 0x81, 0xf3, 0xee, - 0x4f, 0x9d, 0x6b, 0x43, 0x97, 0x58, 0x24, 0x4a, 0x9c, 0x30, 0xe8, 0xa2, 0x99, 0xa1, 0x02, 0x16, - 0x9b, 0xd1, 0x4b, 0x50, 0xa4, 0x98, 0xab, 0x76, 0xd3, 0xf2, 0x88, 0xd3, 0x30, 0x1c, 0xef, 0x50, - 0xf4, 0x01, 0x5b, 0x40, 0xa0, 0x2d, 0x18, 0x8d, 0x22, 0x95, 0x6d, 0x9b, 0x2e, 0x3b, 0xf4, 0x02, - 0x2f, 0xaa, 0x0d, 0xcd, 0x7a, 0x85, 0x58, 0x9e, 0xb9, 0x67, 0x12, 0x67, 0x8d, 0x78, 0x86, 0x59, - 0x73, 0xb1, 0x44, 0xa0, 0x5d, 0xec, 0xc5, 0x33, 0xb7, 0xf4, 0x93, 0x40, 0x52, 0x85, 0xc2, 0x4c, - 0xb6, 0xc5, 0x0b, 0x50, 0xb0, 0x9a, 0x75, 0xda, 0xa9, 0x8e, 0xe1, 0xe3, 0x6e, 0x74, 0x25, 0x2c, - 0x04, 0xad, 0xc4, 0x93, 0x0d, 0xcc, 0x66, 0x01, 0xcb, 0x1d, 0x29, 0x84, 0xe1, 0xc3, 0x64, 0x98, - 0x9e, 0x2c, 0x02, 0x6e, 0x21, 0x10, 0x25, 0x18, 0x0c, 0x93, 0x85, 0xb4, 0x52, 0x98, 0x0a, 0x44, - 0x1e, 0x73, 0x6d, 0x68, 0x14, 0x72, 0x4d, 0xc7, 0x0c, 0x3f, 0x15, 0xff, 0x4f, 0x21, 0x0d, 0xd6, - 0x23, 0xa6, 0xc1, 0xd2, 0x05, 0xee, 0xc9, 0x19, 0x96, 0xcc, 0x44, 0xe0, 0xce, 0xd5, 0x4b, 0x33, - 0xc6, 0x5e, 0x80, 0x7e, 0x7a, 0x29, 0x42, 0x93, 0x1a, 0x61, 0x9d, 0x22, 0x9b, 0xb2, 0x32, 0x9b, - 0xbe, 0x9f, 0xa5, 0x6c, 0x92, 0xcb, 0xbe, 0x5b, 0xb0, 0x29, 0x31, 0x7a, 0xb6, 0xd5, 0xe8, 0x22, - 0x3b, 0x73, 0x0a, 0x76, 0x9e, 0x83, 0xa1, 0x6a, 0xcd, 0xde, 0x35, 0x6a, 0x37, 0x2d, 0x63, 0xb7, - 0x46, 0x2a, 0x61, 0x19, 0x0a, 0xdf, 0xc8, 0x98, 0xde, 0xab, 0x63, 0x7a, 0x5f, 0xa7, 0x4c, 0x97, - 0xd7, 0x1b, 0x66, 0x4b, 0x14, 0xf5, 0xef, 0x2c, 0x44, 0x7d, 0x3f, 0x90, 0x28, 0xb9, 0x8c, 0xfd, - 0xf8, 0xac, 0x6a, 0x37, 0x5d, 0x79, 0xcc, 0x70, 0xba, 0x8a, 0x9a, 0x7a, 0x36, 0xdd, 0x8f, 0x32, - 0xb4, 0x18, 0x52, 0x55, 0x18, 0xdf, 0x85, 0xbd, 0x9d, 0x81, 0xfe, 0x30, 0x3b, 0x15, 0x7e, 0x0a, - 0xec, 0xa7, 0xaf, 0xd7, 0x0f, 0xe8, 0x76, 0x07, 0x3b, 0x19, 0xfc, 0x58, 0xbe, 0x26, 0x2e, 0xf0, - 0xac, 0x68, 0x7b, 0xa5, 0x59, 0x96, 0x4c, 0x38, 0xa3, 0xab, 0xec, 0x67, 0x1f, 0xc2, 0x39, 0x18, - 0x6a, 0xf8, 0xe2, 0x6c, 0x37, 0xdd, 0x40, 0xc6, 0x82, 0xe5, 0xf0, 0x8d, 0x29, 0x3e, 0x83, 0x87, - 0x59, 0x9a, 0x31, 0x11, 0xeb, 0xc1, 0xbb, 0x6a, 0x3c, 0x8e, 0x79, 0xee, 0xf0, 0x75, 0x98, 0x2a, - 0x1b, 0xd6, 0x8e, 0xb2, 0x72, 0x2b, 0x27, 0x17, 0x90, 0xb3, 0xde, 0x15, 0xe1, 0x94, 0x01, 0x6b, - 0xa8, 0xb4, 0x4b, 0xe8, 0x88, 0xac, 0x29, 0xdd, 0xa6, 0x09, 0x1d, 0xa9, 0x82, 0xfe, 0xc8, 0x29, - 0xdc, 0xd2, 0xdf, 0x32, 0x30, 0xc4, 0x15, 0xd1, 0x77, 0x95, 0xfb, 0x89, 0xb3, 0x95, 0x1c, 0x7f, - 0xb6, 0xf2, 0x1a, 0x8c, 0x46, 0x2c, 0x61, 0xe7, 0xf0, 0x3d, 0xca, 0x04, 0xad, 0xc8, 0x4a, 0x09, - 0x6f, 0xf9, 0x92, 0xc8, 0xc4, 0x69, 0x91, 0x89, 0x21, 0x64, 0x69, 0x9d, 0x2a, 0x93, 0xc4, 0x8d, - 0x81, 0xa3, 0x33, 0xee, 0x0f, 0x59, 0x98, 0xd1, 0xdd, 0x17, 0xe8, 0x2a, 0x0f, 0xd5, 0xa7, 0x50, - 0xb9, 0x63, 0x9c, 0x42, 0xbd, 0x03, 0x27, 0x23, 0x1e, 0x2a, 0x6a, 0x18, 0xd2, 0x6d, 0x43, 0x2b, - 0x12, 0xcb, 0xcf, 0x89, 0x3b, 0x52, 0x12, 0x77, 0x44, 0x46, 0x2a, 0x6d, 0xc3, 0xbc, 0xf6, 0x02, - 0xc6, 0xd1, 0xf7, 0xe9, 0x83, 0x48, 0xc9, 0xf0, 0x55, 0x10, 0xdd, 0xdc, 0x22, 0xe9, 0x58, 0x2f, - 0xd7, 0xf1, 0xb1, 0x5e, 0x52, 0xd1, 0xf0, 0x95, 0x1c, 0x47, 0x55, 0x34, 0x1c, 0x95, 0x14, 0x8a, - 0x86, 0x83, 0x8f, 0x15, 0x0d, 0x3f, 0xeb, 0xa3, 0xef, 0xc3, 0xbf, 0x33, 0x30, 0x2a, 0x5e, 0x57, - 0xe9, 0x76, 0x54, 0x95, 0x70, 0x4e, 0x72, 0xd2, 0xc1, 0xe8, 0x26, 0x8c, 0xc7, 0x22, 0x9b, 0x74, - 0x1d, 0xd3, 0x48, 0xbb, 0x0a, 0x75, 0xf9, 0xb2, 0xc8, 0xd3, 0xa2, 0x24, 0xe5, 0x11, 0x70, 0xe9, - 0xf5, 0x48, 0x5d, 0xc4, 0xb7, 0x75, 0x8e, 0xce, 0xcd, 0x7f, 0x04, 0x37, 0x45, 0x92, 0x37, 0x76, - 0xba, 0xca, 0x4c, 0xee, 0xc4, 0x37, 0x27, 0x9e, 0xf8, 0xbe, 0x01, 0x28, 0xe2, 0x47, 0x5c, 0x23, - 0x93, 0x8e, 0x93, 0x0a, 0xcc, 0xe5, 0x05, 0x91, 0x91, 0xb3, 0x22, 0x23, 0x23, 0xd8, 0xd2, 0xff, - 0x33, 0x07, 0x2b, 0xbe, 0xaa, 0x74, 0x74, 0x36, 0xfe, 0x35, 0x38, 0xc5, 0x52, 0xdf, 0x52, 0xea, - 0x2a, 0x43, 0x35, 0xc7, 0xf2, 0xb9, 0xe3, 0x1c, 0xcb, 0x5b, 0x70, 0x4a, 0xa1, 0x84, 0xc5, 0x83, - 0x92, 0x85, 0x76, 0xc4, 0x13, 0x9b, 0xd3, 0x92, 0x5e, 0xbb, 0xbc, 0x84, 0x9a, 0x8b, 0xbe, 0x4b, - 0x7c, 0x56, 0x7f, 0x13, 0xec, 0x49, 0x38, 0x7c, 0xfe, 0x4f, 0xa4, 0xba, 0x12, 0x05, 0x5b, 0x5d, - 0x56, 0x5d, 0x89, 0x0a, 0x8a, 0x9c, 0x54, 0x41, 0x81, 0x61, 0xa2, 0x6c, 0x58, 0xe1, 0xcf, 0x98, - 0x8b, 0x29, 0xbf, 0x38, 0x25, 0x6e, 0x0a, 0xe5, 0x15, 0x2f, 0x36, 0x56, 0x5e, 0x89, 0xeb, 0x76, - 0x47, 0xff, 0xea, 0xfe, 0x9c, 0xa1, 0x61, 0x94, 0xfe, 0x92, 0xdd, 0x91, 0x2f, 0xbd, 0x25, 0x02, - 0xa4, 0x2c, 0x1f, 0x20, 0x2d, 0x02, 0x32, 0x5d, 0x71, 0xb8, 0x90, 0xd5, 0x8a, 0x9e, 0xe5, 0x65, - 0xf9, 0x16, 0xdc, 0x45, 0x91, 0x41, 0x9a, 0xd9, 0x97, 0x2e, 0xc2, 0xf9, 0xd6, 0x77, 0x08, 0x59, - 0xb4, 0xf8, 0x59, 0x16, 0x06, 0x12, 0x97, 0x01, 0xd1, 0x35, 0x41, 0xa6, 0x5a, 0x2c, 0xfa, 0x18, - 0xd2, 0x76, 0x2e, 0x3e, 0x9c, 0x7f, 0x9d, 0x1c, 0x10, 0x76, 0xb1, 0x8b, 0x6f, 0xec, 0x20, 0xa3, - 0xc6, 0xa7, 0x33, 0x7b, 0xc5, 0x74, 0xa6, 0xdf, 0xdf, 0x70, 0xec, 0x86, 0xed, 0xd2, 0xfe, 0x30, - 0x6b, 0x10, 0xb7, 0xa0, 0x05, 0x28, 0x1c, 0x12, 0xf7, 0x2e, 0x31, 0xab, 0xfb, 0x1e, 0x3d, 0xe0, - 0x94, 0x12, 0x56, 0x51, 0xf7, 0xf2, 0x05, 0x51, 0x6a, 0xf9, 0x97, 0x45, 0x18, 0x27, 0x4b, 0x93, - 0x41, 0xa5, 0x1b, 0xbb, 0x65, 0xc9, 0x18, 0xfe, 0xd3, 0x0c, 0x0c, 0x26, 0xab, 0x0e, 0x84, 0xb9, - 0x67, 0xa4, 0xb9, 0x4b, 0xbc, 0xca, 0xa6, 0xe4, 0x55, 0x4e, 0xcd, 0xab, 0x44, 0xa6, 0xb5, 0x87, - 0xcb, 0xb4, 0x96, 0xde, 0xcf, 0xc0, 0x98, 0x54, 0xce, 0x80, 0x10, 0xf4, 0xec, 0x39, 0xd1, 0xc5, - 0x3e, 0xfa, 0x37, 0x1a, 0x86, 0xac, 0x67, 0x87, 0x13, 0xc9, 0x7a, 0x36, 0x4d, 0x86, 0xd7, 0xed, - 0xa6, 0xe5, 0xb1, 0x1b, 0x7a, 0xc1, 0xaf, 0xf8, 0x56, 0x60, 0x4f, 0xf2, 0x56, 0xe0, 0x39, 0x18, - 0x32, 0x5d, 0x26, 0x90, 0xb7, 0x08, 0x09, 0x53, 0x9e, 0x7c, 0x63, 0xe9, 0xbd, 0x0c, 0x0c, 0xf3, - 0x8a, 0xb3, 0x4b, 0xac, 0x8a, 0x33, 0xf7, 0x39, 0x5d, 0xe6, 0x9e, 0x67, 0xcc, 0xb5, 0x8f, 0x26, - 0x21, 0xb7, 0xe1, 0x56, 0xd1, 0x36, 0x0c, 0x72, 0x17, 0x63, 0x4f, 0x6b, 0x9e, 0x51, 0x08, 0xba, - 0x8b, 0xe7, 0x5b, 0x76, 0x47, 0xda, 0xeb, 0xdb, 0x30, 0xab, 0xbf, 0x4a, 0xd6, 0xc1, 0xcb, 0x20, - 0xc5, 0x6b, 0x1d, 0xbc, 0x22, 0xc2, 0x06, 0xdf, 0x03, 0xa4, 0xa8, 0x68, 0x4a, 0xf3, 0xe2, 0x49, - 0xf1, 0x72, 0x9a, 0x67, 0x51, 0xd8, 0x38, 0x6f, 0xc1, 0xb0, 0x50, 0x6e, 0xd4, 0xee, 0xe5, 0x90, - 0xe2, 0xc5, 0x76, 0x4f, 0x8b, 0x30, 0xda, 0x26, 0x8c, 0xab, 0xea, 0x47, 0x52, 0x3d, 0x23, 0x52, - 0xbc, 0x92, 0xea, 0xb1, 0x91, 0xc4, 0x50, 0xaa, 0x43, 0xd7, 0x54, 0xef, 0x46, 0x28, 0x86, 0x6a, - 0x75, 0xce, 0xe9, 0xc0, 0x94, 0xe6, 0x3c, 0x32, 0xed, 0x23, 0x12, 0xc5, 0xa5, 0xb4, 0xaf, 0x4d, - 0xf0, 0xcb, 0x93, 0x4e, 0x9e, 0x52, 0xbd, 0x28, 0xa1, 0x5e, 0x9e, 0xf6, 0x18, 0x28, 0x5a, 0x9e, - 0x34, 0x5a, 0xda, 0xe7, 0x25, 0xb4, 0xcb, 0xd3, 0x8e, 0xf9, 0x16, 0x0c, 0x0b, 0x87, 0x44, 0xed, - 0xde, 0x9a, 0x50, 0x08, 0xa1, 0xe6, 0xcc, 0xe3, 0x1d, 0x18, 0x95, 0xea, 0xae, 0xda, 0xbf, 0xb7, - 0x53, 0x7c, 0xba, 0xfd, 0x93, 0x3c, 0x89, 0x11, 0x24, 0xf5, 0xd0, 0xfe, 0x3d, 0x1b, 0xc5, 0x08, - 0x5a, 0x65, 0xf0, 0x0e, 0x8c, 0x4a, 0x95, 0xd9, 0xed, 0x1f, 0xb7, 0x51, 0x8c, 0xa0, 0x2d, 0xf0, - 0x8c, 0xd4, 0x0d, 0x97, 0x47, 0x4f, 0xf3, 0xd2, 0x8d, 0x56, 0xdd, 0x28, 0x0f, 0x4a, 0xf6, 0x00, - 0x29, 0x8e, 0x36, 0xd2, 0x3c, 0x7b, 0xa3, 0x18, 0x47, 0x7f, 0x36, 0xe0, 0x8f, 0xa3, 0x38, 0x17, - 0x48, 0xf3, 0x06, 0x8e, 0x62, 0x1c, 0x7d, 0x52, 0x1f, 0xd5, 0x60, 0x42, 0x99, 0xd0, 0x4f, 0xf7, - 0x20, 0x4e, 0xf1, 0x99, 0x74, 0xef, 0xe6, 0x24, 0xe4, 0x40, 0xca, 0x88, 0xb7, 0x7f, 0x44, 0x45, - 0x21, 0x07, 0xda, 0x2c, 0xf1, 0x1b, 0x00, 0x89, 0x7c, 0x6f, 0xab, 0x17, 0x55, 0x8a, 0x4f, 0xb5, - 0x7a, 0x6e, 0x85, 0xd1, 0xb3, 0x61, 0x52, 0x9d, 0x06, 0x4d, 0xf9, 0xbc, 0x4a, 0x71, 0x31, 0xe5, - 0x33, 0x2c, 0x3c, 0x8b, 0xf8, 0x7c, 0x5e, 0xfb, 0xb7, 0x56, 0xd4, 0x2c, 0x52, 0xe7, 0xb7, 0xee, - 0xc2, 0x10, 0x9f, 0xa9, 0x6a, 0xf3, 0xf0, 0x4a, 0xf1, 0x42, 0x9b, 0x87, 0x59, 0x18, 0xe1, 0x6d, - 0x18, 0xe4, 0x92, 0x36, 0xad, 0x5f, 0x61, 0x29, 0x9e, 0x6f, 0xfd, 0x48, 0x4b, 0x42, 0x9f, 0x6b, - 0x72, 0x18, 0x69, 0x9f, 0x64, 0x51, 0xe8, 0xf3, 0x36, 0x11, 0x7b, 0xc0, 0xa2, 0xe4, 0x15, 0xa6, - 0xd6, 0xef, 0xb3, 0xa8, 0x59, 0xa4, 0x08, 0x28, 0xbf, 0x03, 0xc5, 0x16, 0xa1, 0x61, 0x27, 0x8f, - 0xb5, 0x14, 0x9f, 0xeb, 0xe4, 0x65, 0x17, 0x36, 0xfe, 0xab, 0x90, 0x8f, 0x22, 0x32, 0xfd, 0xcb, - 0x2d, 0xc5, 0xb3, 0xfa, 0x47, 0x5d, 0x42, 0x4a, 0xc5, 0xde, 0xef, 0x3e, 0x7a, 0xb8, 0x90, 0xb9, - 0x81, 0x3f, 0xfe, 0x62, 0x2e, 0xf3, 0xc9, 0x17, 0x73, 0x99, 0xbf, 0x7c, 0x31, 0x97, 0xf9, 0xd1, - 0x97, 0x73, 0x27, 0x3e, 0xf9, 0x72, 0xee, 0xc4, 0x1f, 0xbf, 0x9c, 0x3b, 0xf1, 0xd6, 0x8b, 0x55, - 0xd3, 0xdb, 0x6f, 0xee, 0x2e, 0x96, 0xed, 0xfa, 0xd2, 0xae, 0xe9, 0xed, 0x1a, 0x95, 0x2a, 0x71, - 0xe3, 0xbf, 0xca, 0xfb, 0x86, 0x69, 0x2d, 0x3d, 0x58, 0xe2, 0x1f, 0x28, 0x3c, 0x6c, 0x10, 0x77, - 0xb7, 0x8f, 0x3e, 0xad, 0xf7, 0xdc, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x18, 0x1b, 0x34, 0xd1, - 0x5a, 0x51, 0x00, 0x00, + // 3996 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x3c, 0x49, 0x6c, 0x1c, 0xc7, + 0xb5, 0x9a, 0x19, 0x92, 0x9a, 0x79, 0xdc, 0x8b, 0xfb, 0x48, 0x22, 0xa9, 0xb6, 0x36, 0x53, 0x32, + 0x69, 0xc9, 0x82, 0x6d, 0x10, 0xfe, 0x86, 0xb9, 0x48, 0x36, 0xfd, 0x4d, 0x8b, 0xbf, 0x49, 0x4a, + 0xf8, 0xc6, 0xc7, 0x97, 0x9b, 0x33, 0xc5, 0x61, 0x7f, 0xcf, 0x74, 0x0f, 0xba, 0x7b, 0x28, 0xf1, + 0x07, 0x08, 0x82, 0x00, 0x41, 0x82, 0xf8, 0x90, 0x04, 0x08, 0x90, 0x1c, 0x73, 0x4b, 0x6e, 0x11, + 0x10, 0x5f, 0x7c, 0x48, 0x0c, 0x38, 0x17, 0x1f, 0x0d, 0x03, 0x41, 0x16, 0xc0, 0x46, 0x62, 0x07, + 0xd0, 0x21, 0x97, 0xdc, 0x72, 0x0a, 0x12, 0x74, 0x75, 0xf5, 0x52, 0x5b, 0x4f, 0x8f, 0x38, 0x34, + 0xa0, 0x8b, 0xc4, 0xa9, 0x7a, 0x4b, 0xbd, 0x57, 0xaf, 0xde, 0x52, 0x55, 0x5d, 0x30, 0xe1, 0xd9, + 0xef, 0x61, 0xcb, 0xfc, 0x7f, 0xc3, 0x33, 0x6d, 0x6b, 0xc9, 0x7b, 0xb8, 0xd8, 0x74, 0x6c, 0xcf, + 0x46, 0x03, 0xc9, 0xe6, 0xf2, 0xa8, 0xd1, 0x30, 0x2d, 0x7b, 0x89, 0xfc, 0x1b, 0x00, 0x94, 0xa7, + 0x2a, 0xb6, 0xdb, 0xb0, 0xdd, 0xa5, 0x86, 0x5b, 0x5b, 0x3a, 0xbc, 0xee, 0xff, 0x47, 0x3b, 0x66, + 0x82, 0x8e, 0xfb, 0xe4, 0xd7, 0x52, 0xf0, 0x83, 0x76, 0x8d, 0xd7, 0xec, 0x9a, 0x1d, 0xb4, 0xfb, + 0x7f, 0x85, 0x08, 0xcc, 0x08, 0x9a, 0x86, 0x63, 0x34, 0x42, 0x84, 0xb3, 0xec, 0xe0, 0x1c, 0xc3, + 0x72, 0xf7, 0xb1, 0x13, 0xf6, 0x9e, 0x61, 0x7a, 0xf7, 0x8c, 0xba, 0x61, 0x55, 0x70, 0xd8, 0x39, + 0xcb, 0x52, 0xc5, 0x4e, 0xc3, 0x74, 0x5d, 0xd3, 0xb6, 0xe4, 0xc8, 0x0d, 0xec, 0x19, 0x55, 0xc3, + 0x33, 0xa4, 0xc8, 0x15, 0xbb, 0x5e, 0xc7, 0x15, 0x2f, 0x81, 0x3c, 0xcf, 0xf4, 0x1b, 0xd5, 0xaa, + 0x83, 0x5d, 0xf7, 0x7e, 0xdd, 0x74, 0xbd, 0x10, 0xe2, 0x3c, 0x03, 0x51, 0x3d, 0xb2, 0x8c, 0x86, + 0x59, 0xb9, 0xef, 0x7a, 0xb6, 0x83, 0xe5, 0xc2, 0x19, 0xcd, 0xa6, 0x63, 0x1f, 0x1a, 0xf5, 0xb0, + 0xf7, 0x22, 0xd3, 0xdb, 0x72, 0xb1, 0x73, 0x9f, 0x4a, 0x18, 0x50, 0xa1, 0x60, 0xe7, 0xd8, 0x91, + 0x1e, 0x18, 0xf5, 0x3a, 0xb6, 0x6a, 0xb1, 0x16, 0xe8, 0x2c, 0xed, 0x19, 0x2e, 0x5e, 0x3a, 0xbc, + 0xbe, 0x87, 0x3d, 0xe3, 0xfa, 0x52, 0xc5, 0x36, 0xad, 0xa0, 0x5f, 0xfb, 0x78, 0x0c, 0x66, 0x76, + 0x12, 0x14, 0xd6, 0x5a, 0xae, 0x67, 0x37, 0x36, 0xdd, 0xda, 0xce, 0x51, 0x13, 0xa3, 0xfb, 0x30, + 0x51, 0x71, 0xb0, 0xe1, 0xe1, 0x95, 0x40, 0xc2, 0xb7, 0x7c, 0x01, 0x37, 0xdd, 0xda, 0x74, 0x6e, + 0x3e, 0x77, 0xa5, 0xff, 0xc6, 0x33, 0x8b, 0x49, 0xe6, 0x8b, 0x9b, 0x6e, 0x6d, 0x4d, 0x80, 0x5e, + 0xed, 0xf9, 0xe4, 0x8b, 0xb9, 0x9c, 0x2e, 0xa7, 0x83, 0x3c, 0x38, 0xdb, 0xb2, 0xcc, 0x43, 0xec, + 0xb8, 0x46, 0x7d, 0xb7, 0x59, 0x35, 0x3c, 0xbc, 0x16, 0xe9, 0xda, 0xe7, 0x93, 0x27, 0x7c, 0x16, + 0x04, 0x3e, 0xbb, 0x2a, 0x24, 0xca, 0x2e, 0x95, 0x2a, 0xfa, 0x6f, 0x18, 0xab, 0xe2, 0x3a, 0xe6, + 0x99, 0x15, 0x08, 0xb3, 0xf3, 0x02, 0xb3, 0x75, 0x0e, 0x96, 0xf2, 0x90, 0xd1, 0x40, 0xdb, 0x30, + 0x1a, 0x5a, 0x29, 0x51, 0x2b, 0xd1, 0x56, 0x0f, 0x21, 0x3c, 0x27, 0x10, 0xde, 0x61, 0x20, 0x29, + 0x59, 0x11, 0x1f, 0xed, 0xc1, 0x64, 0x8b, 0x88, 0xb1, 0xeb, 0x62, 0x67, 0x25, 0xb4, 0x13, 0x9f, + 0x72, 0x2f, 0xa1, 0x7c, 0x41, 0xd4, 0x8f, 0x08, 0x4e, 0xc9, 0x2b, 0x28, 0xf9, 0x3a, 0x69, 0x49, + 0x26, 0xa0, 0x4f, 0xa1, 0x13, 0x85, 0xde, 0x65, 0x34, 0x7c, 0xd2, 0xc1, 0xec, 0xb3, 0xa4, 0x4f, + 0x2b, 0x48, 0xaf, 0x71, 0xb0, 0x21, 0x69, 0x09, 0x8d, 0xd8, 0x40, 0xd7, 0x83, 0x05, 0xb6, 0xed, + 0xaf, 0x0c, 0x9f, 0x78, 0x31, 0xd5, 0x40, 0x93, 0xd0, 0xac, 0x81, 0x72, 0x74, 0x7c, 0x06, 0x81, + 0x48, 0x3c, 0x83, 0x92, 0x82, 0xc1, 0xae, 0x00, 0x1d, 0x32, 0x90, 0xd2, 0xf1, 0x19, 0x04, 0x76, + 0xc4, 0x33, 0x00, 0x05, 0x83, 0x75, 0x01, 0x3a, 0x64, 0x20, 0xa5, 0x83, 0x30, 0x4c, 0xb9, 0xd8, + 0x4b, 0xb6, 0xde, 0x35, 0xea, 0x2d, 0xc2, 0xa2, 0x9f, 0xb0, 0xb8, 0x28, 0xb0, 0xd8, 0x96, 0xc0, + 0x53, 0x26, 0x2a, 0x5a, 0xbe, 0x8d, 0xba, 0xd8, 0xdb, 0xb0, 0x2a, 0x76, 0xc3, 0xb4, 0x6a, 0xa1, + 0x69, 0xf9, 0x5c, 0x86, 0x14, 0x36, 0xba, 0x2d, 0x82, 0x87, 0x36, 0x2a, 0xa7, 0x84, 0xde, 0x83, + 0x99, 0x40, 0x46, 0x19, 0x9b, 0x61, 0xc2, 0xe6, 0xb2, 0x42, 0x5f, 0x0a, 0x4e, 0x6a, 0x7a, 0x54, + 0xa0, 0x3b, 0x2d, 0xaf, 0x66, 0x73, 0x9c, 0x46, 0xd4, 0x02, 0xf1, 0xe0, 0x09, 0x81, 0x24, 0x94, + 0x62, 0x81, 0x64, 0x6c, 0x46, 0x53, 0x05, 0x52, 0x70, 0x52, 0xd3, 0xf3, 0x5d, 0x53, 0xb3, 0xe5, + 0xd4, 0x30, 0xe3, 0x40, 0x90, 0xc2, 0x35, 0x6d, 0x31, 0x90, 0xa1, 0x6b, 0x12, 0xf0, 0xfd, 0xb5, + 0xed, 0x62, 0xef, 0xae, 0x51, 0x37, 0xab, 0xc4, 0x5f, 0x6d, 0x54, 0x09, 0xd9, 0x31, 0xc5, 0xda, + 0xde, 0xe6, 0x60, 0xc3, 0xb5, 0x2d, 0xa1, 0x81, 0x5e, 0x87, 0x41, 0x17, 0x7b, 0x9b, 0x86, 0x65, + 0xd4, 0xb0, 0xe3, 0x13, 0x1d, 0x27, 0x44, 0xcf, 0xc8, 0x88, 0x52, 0x28, 0x4a, 0x8e, 0xc5, 0x43, + 0x07, 0x30, 0xed, 0x62, 0x2f, 0xe1, 0x38, 0x68, 0xac, 0xf7, 0x69, 0x4e, 0x10, 0x9a, 0x97, 0x64, + 0x34, 0x45, 0x04, 0x4a, 0x5e, 0x49, 0x8d, 0x6a, 0x83, 0x08, 0x91, 0x64, 0x32, 0xa9, 0xd6, 0x06, + 0x03, 0x9b, 0xd0, 0x06, 0x4f, 0x03, 0x6d, 0xc1, 0x88, 0xcf, 0x96, 0x84, 0xe7, 0x75, 0x4a, 0x77, + 0x8a, 0xd0, 0x9d, 0x95, 0x0e, 0x3e, 0x02, 0xa4, 0x44, 0x05, 0x6c, 0xb4, 0x09, 0xc3, 0x2e, 0xf6, + 0xb6, 0x3d, 0xc3, 0xaa, 0x1a, 0x4e, 0x30, 0x6d, 0xd3, 0x84, 0xe0, 0x39, 0x19, 0xc1, 0x08, 0x8e, + 0xd2, 0xe3, 0x71, 0x7d, 0x5b, 0x66, 0xf4, 0xc2, 0x98, 0xd9, 0x8c, 0xc2, 0x96, 0xb7, 0xa5, 0x18, + 0xa1, 0x2d, 0x2b, 0xe9, 0x51, 0x6d, 0x6c, 0xb8, 0x2b, 0x4e, 0xe5, 0xc0, 0x3c, 0xc4, 0x55, 0x9f, + 0x47, 0x59, 0xad, 0x8d, 0x18, 0x30, 0xa1, 0x0d, 0x06, 0x1b, 0x3d, 0x80, 0x73, 0x2e, 0xf6, 0x74, + 0xec, 0x62, 0xe7, 0x10, 0x57, 0xb7, 0xfc, 0xe4, 0xa8, 0x62, 0xd7, 0x69, 0xbe, 0xe2, 0x93, 0x3f, + 0x43, 0xc8, 0x5f, 0x95, 0x91, 0x57, 0x60, 0x51, 0x5e, 0xe9, 0x74, 0xd1, 0x0a, 0xf4, 0x57, 0x0c, + 0xd7, 0xbb, 0x6b, 0x7b, 0xc4, 0x27, 0x9f, 0x25, 0x6c, 0x66, 0xc4, 0xc0, 0x45, 0x61, 0x28, 0xd1, + 0x24, 0x8e, 0xf6, 0xab, 0x1c, 0x0c, 0x47, 0xa1, 0x67, 0x8b, 0xe4, 0xcf, 0xe8, 0x45, 0x28, 0x19, + 0x2d, 0xef, 0xc0, 0x76, 0x4c, 0xef, 0x88, 0xa4, 0x6b, 0xa5, 0xd5, 0xe9, 0xcf, 0x3e, 0x78, 0x6e, + 0x9c, 0xe6, 0xe3, 0x74, 0x00, 0xdb, 0x9e, 0x63, 0x5a, 0x35, 0x3d, 0x06, 0x45, 0x2f, 0x41, 0x5f, + 0x90, 0x81, 0xd3, 0xdc, 0x6b, 0x9c, 0x1d, 0x49, 0x40, 0x7d, 0xb5, 0xf4, 0xc9, 0x17, 0x73, 0xa7, + 0x7e, 0xf1, 0xf8, 0xd1, 0x42, 0x4e, 0xa7, 0xe0, 0xcb, 0x4b, 0xdf, 0x7e, 0xfc, 0x68, 0x21, 0x26, + 0xf4, 0xfd, 0xc7, 0x8f, 0x16, 0xd8, 0x04, 0x97, 0x1b, 0xa1, 0x36, 0x03, 0x53, 0x5c, 0x93, 0x8e, + 0xdd, 0xa6, 0x6d, 0xb9, 0x58, 0xfb, 0x63, 0x1e, 0x66, 0xd7, 0xc8, 0x40, 0xd7, 0x6c, 0xd3, 0xba, + 0xe7, 0x18, 0xcd, 0x26, 0x76, 0xb6, 0x0c, 0xef, 0x60, 0xa5, 0x5a, 0xbd, 0xb3, 0xf7, 0x7f, 0xb8, + 0xe2, 0xa1, 0x71, 0xe8, 0xad, 0x62, 0xcb, 0x6e, 0x04, 0xb2, 0xe9, 0xc1, 0x0f, 0xf4, 0x26, 0x40, + 0xc5, 0xb6, 0xfc, 0xcc, 0xcf, 0xb4, 0x2d, 0x2a, 0x01, 0xe7, 0xa8, 0xd7, 0xa2, 0xfe, 0x7b, 0xa6, + 0x77, 0x60, 0xb7, 0xbc, 0x75, 0x1f, 0x93, 0xaa, 0x35, 0x81, 0x8d, 0x26, 0xa1, 0xcf, 0x3d, 0x6a, + 0xec, 0xd9, 0x75, 0x92, 0x18, 0x96, 0x74, 0xfa, 0x0b, 0xbd, 0x04, 0x40, 0x98, 0xed, 0x5a, 0xa6, + 0xe7, 0x4e, 0xf7, 0xcc, 0x17, 0xae, 0xf4, 0xdf, 0x98, 0x62, 0x79, 0xac, 0x87, 0xfd, 0x7a, 0x02, + 0x14, 0xdd, 0x86, 0x59, 0xa3, 0x5e, 0xb7, 0x1f, 0xdc, 0x39, 0xc4, 0x8e, 0x63, 0x56, 0xb1, 0xcf, + 0x7f, 0xc5, 0x3a, 0x8a, 0x1d, 0x1f, 0x49, 0xe7, 0x8a, 0x7a, 0x1b, 0x28, 0xf4, 0x0a, 0x14, 0xc3, + 0x72, 0x85, 0xe6, 0x67, 0x65, 0x7e, 0x92, 0xbc, 0x03, 0xce, 0xa7, 0x44, 0x18, 0xda, 0x77, 0xf2, + 0x80, 0x56, 0xea, 0xa6, 0xe1, 0x3e, 0xf5, 0xfa, 0x4c, 0xea, 0xa1, 0xb7, 0x63, 0x3d, 0xdc, 0x87, + 0x73, 0xb1, 0x89, 0xad, 0x1a, 0x95, 0xf7, 0x70, 0x95, 0xd5, 0xc8, 0xab, 0x8c, 0xec, 0x41, 0xc5, + 0x33, 0xad, 0x92, 0x5d, 0x94, 0x57, 0xfb, 0x65, 0x01, 0xc6, 0x36, 0xac, 0x43, 0xc3, 0x31, 0x0d, + 0xcb, 0x73, 0x63, 0xba, 0x2f, 0xc2, 0xa4, 0x65, 0x07, 0xae, 0xf8, 0xce, 0x03, 0x0b, 0x3b, 0xee, + 0x81, 0xd9, 0xdc, 0x31, 0x1b, 0xd8, 0x25, 0x3c, 0x8a, 0xba, 0xa2, 0x17, 0xdd, 0x84, 0xa1, 0x86, + 0xf1, 0x70, 0xbb, 0xd5, 0x6c, 0xd6, 0x8f, 0xb6, 0xb0, 0xb3, 0x51, 0x25, 0xf3, 0x51, 0x5a, 0x1d, + 0xf0, 0xd7, 0xe2, 0x9f, 0xbe, 0x98, 0xeb, 0xd9, 0x35, 0x2d, 0x4f, 0xe7, 0x60, 0x10, 0x06, 0xba, + 0xe4, 0x59, 0x31, 0x69, 0xb1, 0x73, 0x95, 0x97, 0x27, 0x45, 0x21, 0x54, 0x44, 0x29, 0x39, 0xf4, + 0x1a, 0x9c, 0xb1, 0xec, 0xdb, 0xb6, 0x53, 0xc1, 0xfb, 0xad, 0xfa, 0x96, 0xed, 0x7a, 0x9b, 0xa6, + 0xe5, 0x85, 0xf5, 0x8d, 0x4b, 0x2a, 0xa0, 0xa2, 0x9e, 0x06, 0x82, 0x9e, 0x87, 0xb1, 0xaa, 0xe9, + 0x1a, 0x7b, 0x75, 0xbc, 0x65, 0xdb, 0x75, 0x92, 0xa7, 0xfb, 0x7a, 0x0f, 0x96, 0x84, 0xac, 0x0b, + 0xdd, 0x01, 0x84, 0x0f, 0x1b, 0xff, 0xd5, 0xc2, 0xce, 0xd1, 0x5a, 0x54, 0xf7, 0x4e, 0xf7, 0x11, + 0x03, 0xe2, 0x32, 0x9a, 0x5b, 0x77, 0x37, 0x59, 0x38, 0x5d, 0x82, 0xaa, 0xfd, 0x6c, 0x00, 0xce, + 0xa6, 0x15, 0x97, 0x68, 0x1a, 0x4e, 0x93, 0x32, 0xc1, 0x76, 0xe8, 0x32, 0x09, 0x7f, 0xa2, 0xe7, + 0x61, 0x20, 0xde, 0x25, 0x50, 0x4c, 0x0d, 0x03, 0x81, 0xde, 0x86, 0xe1, 0x2a, 0xde, 0x37, 0x5a, + 0x75, 0x6f, 0x95, 0x6e, 0x5c, 0xd0, 0x39, 0xe1, 0x22, 0x98, 0x5f, 0xa9, 0x51, 0x88, 0x64, 0xb6, + 0xcf, 0x23, 0xfb, 0xfa, 0x0b, 0x2a, 0x0c, 0x26, 0x91, 0xa2, 0x9a, 0x97, 0x75, 0xa1, 0xff, 0x80, + 0xc1, 0x43, 0x06, 0xb6, 0x57, 0xb6, 0xf6, 0xc8, 0xd0, 0x0d, 0x5f, 0x65, 0x2c, 0xb4, 0x3f, 0xe5, + 0x7c, 0xb5, 0xb7, 0x15, 0xef, 0xb2, 0x10, 0xcf, 0x54, 0xd4, 0xd3, 0x40, 0x48, 0xf5, 0x26, 0xc5, + 0x3d, 0x2d, 0xab, 0x7d, 0xa4, 0x34, 0xa2, 0xea, 0x4d, 0xca, 0xe0, 0x02, 0x0c, 0x06, 0xfc, 0x69, + 0x36, 0x48, 0xca, 0xc2, 0xa2, 0xce, 0x36, 0xfa, 0xb3, 0xda, 0xa0, 0xfd, 0xa5, 0x60, 0x56, 0xe9, + 0x4f, 0xb4, 0x0c, 0xd3, 0x42, 0x41, 0x1b, 0x7a, 0x1c, 0x20, 0xa4, 0x94, 0xfd, 0xe8, 0x2e, 0xa0, + 0x8a, 0x88, 0x15, 0x94, 0x5c, 0xf3, 0x2a, 0xc9, 0x38, 0x6f, 0x25, 0xa1, 0x10, 0xcf, 0x33, 0x93, + 0x22, 0x4e, 0x0f, 0x24, 0xe7, 0x99, 0xe9, 0x42, 0x2b, 0x30, 0xe8, 0x31, 0xb0, 0x83, 0x64, 0x9e, + 0xb9, 0x44, 0x9a, 0xc1, 0xd1, 0x59, 0x0c, 0xb4, 0x00, 0x23, 0x54, 0xd0, 0x28, 0x85, 0x24, 0x75, + 0x5d, 0x51, 0x17, 0xda, 0xd1, 0x2c, 0x40, 0x25, 0x86, 0x1a, 0x26, 0x1a, 0x4d, 0xb4, 0xa0, 0x57, + 0x60, 0x86, 0x57, 0x5a, 0x94, 0xdb, 0x91, 0xda, 0xaa, 0xa8, 0xab, 0x01, 0x90, 0x0e, 0x63, 0x15, + 0x09, 0xde, 0x28, 0x11, 0x49, 0xa9, 0xd7, 0x10, 0x50, 0x97, 0x21, 0xa3, 0x2b, 0x30, 0x1c, 0x30, + 0x8c, 0x12, 0x5a, 0x52, 0x17, 0x15, 0x75, 0xbe, 0x19, 0x9d, 0x85, 0x92, 0x1b, 0xc1, 0x8c, 0xcd, + 0x17, 0xae, 0x94, 0xf4, 0xb8, 0x21, 0xd6, 0x52, 0x9c, 0x5a, 0x92, 0xa2, 0x25, 0xd2, 0x52, 0xdc, + 0xee, 0x6b, 0xc9, 0x8c, 0xa1, 0x26, 0x08, 0x54, 0xa2, 0x05, 0xdd, 0x83, 0x99, 0x86, 0x69, 0x79, + 0xb7, 0xdc, 0x8a, 0x63, 0x3f, 0xf0, 0x9d, 0xad, 0xbb, 0x63, 0x87, 0xce, 0x72, 0x7a, 0x92, 0x48, + 0x3b, 0xb3, 0x48, 0x93, 0xb9, 0x3d, 0xc3, 0xc5, 0x8b, 0x74, 0x73, 0x6f, 0xd1, 0x87, 0xd5, 0xd5, + 0xb8, 0xc8, 0x82, 0x33, 0x15, 0x59, 0x6a, 0xe5, 0xee, 0xd8, 0x2b, 0xd5, 0xea, 0xf4, 0x14, 0x21, + 0x7d, 0x4d, 0x15, 0x17, 0x64, 0xb9, 0x98, 0x9e, 0x46, 0x10, 0xbd, 0x0e, 0x60, 0x46, 0x51, 0x90, + 0x56, 0x18, 0x5c, 0x29, 0x24, 0x89, 0x92, 0x61, 0x3c, 0x8d, 0x51, 0xd1, 0x9b, 0x30, 0x6c, 0x84, + 0x79, 0x0b, 0x1d, 0xec, 0x8c, 0x6c, 0xd6, 0xc5, 0xe4, 0x46, 0xe7, 0x11, 0x97, 0x5f, 0xf2, 0x93, + 0xd5, 0xd0, 0x79, 0xfb, 0xa9, 0xea, 0x25, 0x26, 0x55, 0x55, 0x46, 0x00, 0xed, 0xe3, 0x1c, 0x5c, + 0x48, 0x0b, 0x11, 0x61, 0x0a, 0x2b, 0x04, 0x84, 0x5c, 0xdb, 0x80, 0x70, 0x1b, 0x86, 0xc3, 0x3d, + 0xe0, 0xb5, 0x03, 0x83, 0xc4, 0xb2, 0x3c, 0x91, 0xef, 0x2c, 0x27, 0x1f, 0x03, 0xa4, 0xf3, 0x48, + 0x68, 0x1e, 0xfa, 0x1d, 0x7c, 0x68, 0xe2, 0x07, 0x1b, 0x1e, 0x6e, 0xf8, 0x41, 0xc5, 0xb7, 0xd2, + 0x64, 0x93, 0xf6, 0x9b, 0x7e, 0x18, 0x93, 0xec, 0xe1, 0x75, 0x35, 0xbc, 0x29, 0xc2, 0x51, 0xa1, + 0x83, 0x70, 0xd4, 0xd3, 0xcd, 0x70, 0xd4, 0x7b, 0x8c, 0x70, 0xd4, 0x77, 0x52, 0xe1, 0xe8, 0x74, + 0x9b, 0x70, 0x54, 0xcc, 0x1e, 0x8e, 0x4a, 0x4f, 0x14, 0x8e, 0xe0, 0xa4, 0xc2, 0x51, 0x7f, 0x07, + 0xe1, 0x68, 0xa0, 0x2b, 0xe1, 0x68, 0x30, 0x53, 0x38, 0x1a, 0xea, 0x2c, 0x1c, 0x0d, 0x3f, 0x61, + 0x38, 0x1a, 0xe9, 0x72, 0x38, 0x1a, 0xcd, 0x10, 0x8e, 0x50, 0x96, 0x70, 0x34, 0x96, 0x29, 0x1c, + 0x8d, 0x77, 0x16, 0x8e, 0x26, 0x4e, 0x2e, 0x1c, 0x4d, 0x9e, 0x6c, 0x38, 0x9a, 0xea, 0x6a, 0x38, + 0x9a, 0x7e, 0xd2, 0x70, 0xb4, 0xc8, 0x87, 0x23, 0xf6, 0x54, 0x4f, 0x88, 0x42, 0x1f, 0xe6, 0xe0, + 0x8c, 0xc4, 0x81, 0x3f, 0x15, 0xc1, 0xe7, 0xc7, 0x45, 0x12, 0x7c, 0xf8, 0x53, 0x9e, 0x94, 0xe0, + 0x23, 0xa9, 0x94, 0xf2, 0xc7, 0xa9, 0x94, 0x84, 0x40, 0x53, 0xe8, 0x28, 0xd0, 0x28, 0xc3, 0x44, + 0x4f, 0x97, 0xc2, 0x44, 0x22, 0x00, 0xf4, 0xb2, 0x01, 0x40, 0xee, 0xc4, 0xfb, 0x8e, 0xed, 0xc4, + 0x05, 0x97, 0x7c, 0xba, 0x63, 0x97, 0xcc, 0xba, 0xd9, 0xa2, 0xe0, 0x66, 0x15, 0x8e, 0xb2, 0x74, + 0x1c, 0x47, 0xc9, 0xb8, 0x3f, 0xe0, 0xdd, 0x1f, 0xeb, 0xd2, 0xfa, 0x3b, 0x73, 0x69, 0x03, 0x27, + 0xe7, 0xd2, 0x06, 0x4f, 0xd6, 0xa5, 0x0d, 0x75, 0xd5, 0xa5, 0x0d, 0x9f, 0x90, 0x4b, 0xe3, 0x97, + 0x7f, 0xe8, 0xd2, 0xf8, 0xf6, 0xa7, 0xc2, 0xa5, 0xfd, 0x3c, 0x07, 0x13, 0xd2, 0xcb, 0x0f, 0x29, + 0x4e, 0x6d, 0x15, 0x06, 0x8c, 0x04, 0x24, 0x1d, 0x1a, 0xe7, 0xd1, 0x12, 0xb4, 0x36, 0xac, 0x66, + 0xcb, 0xd3, 0x19, 0x9c, 0xe5, 0xe7, 0x79, 0x1d, 0xcf, 0x49, 0x74, 0x9c, 0x1c, 0x8f, 0x36, 0x07, + 0xe7, 0xa4, 0x03, 0x8d, 0x76, 0xde, 0x7f, 0x9b, 0x83, 0x51, 0xe1, 0x66, 0x42, 0x57, 0x0b, 0x83, + 0x9b, 0x50, 0x8a, 0xee, 0xf1, 0x50, 0xcf, 0x3b, 0xc9, 0xf9, 0x19, 0xda, 0xad, 0xc7, 0x80, 0xcb, + 0xd7, 0x78, 0x51, 0xd9, 0xeb, 0x3b, 0xec, 0x78, 0xb5, 0x1f, 0xe4, 0x61, 0x46, 0x90, 0x22, 0x32, + 0xa5, 0xd7, 0x60, 0x30, 0xba, 0x6c, 0xb3, 0xeb, 0x62, 0xdf, 0x96, 0x0a, 0xe2, 0xe6, 0x71, 0x68, + 0x16, 0x3e, 0x84, 0xce, 0x22, 0xa0, 0x5b, 0x30, 0x58, 0xb1, 0x4d, 0x2b, 0xde, 0xdf, 0xcc, 0xcb, + 0x36, 0x1d, 0xd7, 0x12, 0x20, 0xe4, 0xe0, 0x47, 0x67, 0xb1, 0xd0, 0xeb, 0x30, 0x16, 0x5e, 0x5a, + 0x0a, 0x1b, 0x1d, 0x5c, 0xa5, 0x4a, 0x99, 0x60, 0x89, 0xd1, 0xe8, 0xa5, 0xcb, 0x30, 0x78, 0x13, + 0xed, 0x11, 0x4d, 0xf4, 0x47, 0x39, 0x12, 0x75, 0xf9, 0xab, 0x2c, 0xdd, 0x9c, 0xd9, 0x76, 0x4b, + 0x9e, 0xe7, 0xad, 0x9d, 0x23, 0x2b, 0x9e, 0x6f, 0x8e, 0x4c, 0xf1, 0xaf, 0x45, 0x98, 0x94, 0x5f, + 0x65, 0xe9, 0xaa, 0x3d, 0xbe, 0x0c, 0x53, 0x41, 0x36, 0xcc, 0x9f, 0x99, 0x87, 0xc5, 0xaa, 0xaa, + 0x1b, 0x6d, 0xc1, 0xa8, 0x2d, 0xe0, 0x04, 0x45, 0xab, 0x26, 0x66, 0x26, 0x3c, 0xbe, 0x2e, 0x22, + 0xc7, 0x63, 0xe1, 0x2f, 0x24, 0x84, 0xf5, 0xab, 0xaa, 0xdb, 0x1f, 0x8b, 0x29, 0xe0, 0xf4, 0xa9, + 0xc6, 0xc2, 0xe3, 0xeb, 0x22, 0x32, 0x3a, 0x80, 0xa5, 0x80, 0xd9, 0x4a, 0xcb, 0xb3, 0x83, 0x66, + 0xbc, 0x8d, 0xeb, 0xfb, 0x1b, 0x96, 0xe9, 0x99, 0x86, 0x87, 0xab, 0xa1, 0x40, 0xf1, 0x2a, 0x08, + 0xca, 0xd9, 0x4e, 0xd1, 0xd0, 0xff, 0xc0, 0xb3, 0x46, 0x66, 0x1e, 0xc1, 0x0e, 0x6e, 0x76, 0x84, + 0xf6, 0x72, 0x84, 0xca, 0x88, 0x79, 0x94, 0xb2, 0xc8, 0x21, 0xa0, 0xa5, 0xc9, 0x21, 0xf2, 0x80, + 0x74, 0x39, 0x44, 0xea, 0x3b, 0x70, 0x51, 0x18, 0xd0, 0x4a, 0xbd, 0x2e, 0x52, 0x0e, 0x32, 0x9d, + 0x6c, 0xc0, 0xe8, 0x0d, 0x98, 0x33, 0xda, 0xd0, 0x0b, 0x76, 0x96, 0xdb, 0x81, 0xa1, 0x9b, 0xe1, + 0x4d, 0x29, 0xdf, 0xc0, 0x92, 0x69, 0x71, 0x50, 0x98, 0xcb, 0x3b, 0xd1, 0x26, 0x0c, 0xb7, 0x38, + 0xf8, 0x21, 0xd9, 0x25, 0x04, 0x0e, 0x2f, 0x4c, 0xed, 0x39, 0xdc, 0xe5, 0xeb, 0xbc, 0x0b, 0x9a, + 0x97, 0x14, 0x52, 0x8c, 0x2f, 0xd1, 0x3e, 0xcb, 0xc1, 0xac, 0xdc, 0xcd, 0x44, 0x01, 0xe3, 0x36, + 0x0c, 0x87, 0xeb, 0x23, 0xcc, 0x24, 0x72, 0x59, 0x32, 0x09, 0x0e, 0xc9, 0xa7, 0x13, 0xae, 0xf9, + 0x8e, 0x32, 0x12, 0x0e, 0x29, 0x43, 0x46, 0xf2, 0x79, 0x8e, 0xf8, 0x4e, 0xc9, 0x15, 0xab, 0xae, + 0xfa, 0xce, 0x75, 0x28, 0x86, 0x81, 0x91, 0x1e, 0x5e, 0x65, 0x70, 0x36, 0xe1, 0x49, 0x6c, 0x88, + 0xd9, 0x6e, 0xd2, 0x24, 0x42, 0x68, 0x1e, 0x99, 0x33, 0x49, 0x4f, 0x34, 0x67, 0x93, 0xd0, 0x67, + 0x90, 0x61, 0x52, 0x29, 0xe9, 0x2f, 0x5f, 0xfc, 0xe4, 0x71, 0x76, 0x49, 0x0f, 0x7f, 0x66, 0xd0, + 0xea, 0xaf, 0x73, 0x24, 0xad, 0x90, 0xdf, 0x28, 0xeb, 0xaa, 0x62, 0x67, 0x01, 0x42, 0xf5, 0x6c, + 0x54, 0xe9, 0x79, 0x79, 0xa2, 0x65, 0xf9, 0x26, 0xaf, 0xb2, 0x67, 0x24, 0xa1, 0x56, 0xd0, 0x5a, + 0x0b, 0xce, 0x2b, 0x87, 0x1f, 0x29, 0x6e, 0x1c, 0x7a, 0xf7, 0xed, 0x96, 0x55, 0xa5, 0xa7, 0xd1, + 0xc1, 0x8f, 0x63, 0xa9, 0x2d, 0x36, 0x46, 0x3e, 0x06, 0x7e, 0xfd, 0xc6, 0xa8, 0xb8, 0x36, 0xd7, + 0x89, 0x31, 0xf2, 0x24, 0x62, 0x63, 0x14, 0x42, 0xfc, 0xd7, 0x66, 0x8c, 0x27, 0xaa, 0xd8, 0xae, + 0x18, 0xa3, 0xa0, 0xb5, 0xa4, 0x31, 0x2a, 0x15, 0xd7, 0x7d, 0x63, 0xfc, 0x7b, 0x9e, 0x14, 0x38, + 0xec, 0xfd, 0xc6, 0xae, 0xaa, 0x4b, 0x83, 0x01, 0x72, 0x4f, 0xf2, 0xd6, 0xc3, 0xa6, 0x19, 0xa4, + 0xf3, 0xfe, 0xd0, 0x99, 0x36, 0x74, 0x25, 0xac, 0x4d, 0xb1, 0x43, 0xcb, 0x30, 0xb2, 0x7b, 0x54, + 0xd2, 0xf9, 0x66, 0xf4, 0x2a, 0x94, 0x09, 0xe6, 0x9a, 0xdd, 0xb2, 0x3c, 0xec, 0x34, 0x0d, 0xc7, + 0x3b, 0xe2, 0xb3, 0xc2, 0x14, 0x08, 0xb4, 0x0d, 0x23, 0x51, 0xed, 0xb2, 0x63, 0x13, 0xb1, 0x69, + 0x5e, 0x78, 0x59, 0x1e, 0x74, 0x36, 0xaa, 0xd8, 0xf2, 0xcc, 0x7d, 0x13, 0x3b, 0xeb, 0xd8, 0x33, + 0xcc, 0xba, 0xab, 0x0b, 0x04, 0xda, 0x55, 0x63, 0xac, 0x72, 0xb5, 0x9f, 0x04, 0x96, 0xca, 0xb6, + 0x46, 0x53, 0xbc, 0x00, 0x25, 0xab, 0xd5, 0x20, 0x9d, 0xf2, 0xaa, 0x3e, 0xee, 0x46, 0xd7, 0xe8, + 0x15, 0xd6, 0x6a, 0x3c, 0xd8, 0x20, 0x84, 0x96, 0x74, 0xb1, 0x23, 0x83, 0x31, 0x7c, 0x98, 0x2c, + 0xdc, 0x93, 0xd7, 0x9a, 0x53, 0x0c, 0x42, 0x83, 0x01, 0xba, 0xa1, 0x48, 0xee, 0x3e, 0x13, 0x83, + 0x28, 0xea, 0x4c, 0x1b, 0x1a, 0x81, 0x42, 0xcb, 0x31, 0xe9, 0x52, 0xf1, 0xff, 0xe4, 0xb6, 0xc7, + 0x7a, 0xf8, 0xed, 0xb1, 0x6c, 0xa5, 0x7c, 0x72, 0x84, 0x9a, 0x99, 0x28, 0xe5, 0x93, 0x1d, 0x91, + 0x62, 0x2f, 0xc1, 0x69, 0xf2, 0xa1, 0x88, 0x62, 0xb3, 0x24, 0xec, 0xe4, 0xd5, 0x94, 0x17, 0xd5, + 0xf4, 0xdd, 0x3c, 0x51, 0x93, 0x78, 0xb5, 0x3d, 0x45, 0x4d, 0x09, 0xee, 0xf9, 0x34, 0xee, 0xbc, + 0x3a, 0x0b, 0x12, 0x75, 0x5e, 0x80, 0xc1, 0x5a, 0xdd, 0xde, 0x33, 0xea, 0xb7, 0x2c, 0x63, 0xaf, + 0x8e, 0xab, 0xf4, 0x52, 0x0b, 0xdb, 0x18, 0x2a, 0xbd, 0x57, 0xa5, 0xf4, 0xbe, 0x4e, 0x95, 0x2e, + 0xca, 0x4b, 0xf7, 0x4f, 0xc4, 0x8e, 0xa8, 0x68, 0x7d, 0x3f, 0xb0, 0x28, 0xf1, 0x92, 0xfe, 0xf1, + 0x55, 0xd5, 0x6e, 0xb8, 0x22, 0x4f, 0x3a, 0x5c, 0xb1, 0x23, 0x1a, 0xee, 0x47, 0x39, 0x72, 0x09, + 0x53, 0x76, 0xe1, 0xbf, 0x0b, 0x73, 0x3b, 0x0d, 0xa7, 0xe9, 0x7e, 0x15, 0x5d, 0x0a, 0xe1, 0x4f, + 0xdf, 0xaf, 0x1f, 0x92, 0xe9, 0x0e, 0x66, 0x32, 0xf8, 0xb1, 0x7c, 0x83, 0x17, 0xf0, 0x3c, 0x1f, + 0x7b, 0x85, 0x51, 0x6a, 0x26, 0xcc, 0x29, 0x04, 0x88, 0x16, 0xc2, 0x05, 0x18, 0x6c, 0xfa, 0xe6, + 0x6c, 0xb7, 0xdc, 0xc0, 0xc6, 0x02, 0x71, 0xd8, 0xc6, 0x0c, 0xcb, 0xe0, 0x51, 0x9e, 0xec, 0xa1, + 0xf0, 0x77, 0xd8, 0xbb, 0x1a, 0x3c, 0x8e, 0x79, 0x36, 0xf1, 0xbf, 0x30, 0x59, 0x31, 0xac, 0x5d, + 0xe9, 0x3d, 0xb0, 0x82, 0x78, 0xd1, 0x3d, 0xec, 0x5d, 0xe1, 0xce, 0x20, 0x74, 0x05, 0x95, 0x76, + 0x5b, 0x3c, 0xbc, 0x6a, 0xb4, 0x3b, 0x64, 0x8b, 0x87, 0x6f, 0x7e, 0xf2, 0x4d, 0x5d, 0xed, 0x6f, + 0x39, 0x18, 0x64, 0xae, 0xfc, 0x77, 0x55, 0xfb, 0x89, 0x93, 0x97, 0x02, 0x7b, 0xf2, 0xf2, 0x26, + 0x8c, 0x44, 0x2a, 0x09, 0x4f, 0xef, 0x7b, 0xa4, 0x5b, 0xb6, 0xbc, 0x2a, 0x05, 0xbc, 0xe5, 0x2b, + 0xbc, 0x12, 0xa7, 0x78, 0x25, 0x52, 0x48, 0x6d, 0x83, 0x38, 0x93, 0xb8, 0xe1, 0x18, 0x8a, 0xfb, + 0x5d, 0x1e, 0xa6, 0x55, 0xdf, 0x35, 0x74, 0x55, 0x87, 0xf2, 0x33, 0xaa, 0xc2, 0xb1, 0xcf, 0xa8, + 0xde, 0x85, 0x33, 0x91, 0x26, 0x25, 0xf7, 0x1f, 0xb2, 0x4d, 0x46, 0x1a, 0x89, 0xe5, 0x17, 0xf8, + 0x79, 0xd1, 0xf8, 0x79, 0x11, 0x91, 0xb4, 0x1d, 0x98, 0x57, 0xa9, 0xf5, 0x18, 0xb3, 0xf5, 0x41, + 0xe4, 0x6a, 0xd8, 0xbb, 0x13, 0xdd, 0x9c, 0x28, 0xe1, 0xd0, 0xaf, 0xd0, 0xf1, 0xa1, 0x5f, 0xd2, + 0xdd, 0xb0, 0xf7, 0x3f, 0x9e, 0xd4, 0xdd, 0x30, 0x54, 0x32, 0xb8, 0x1b, 0x06, 0x3e, 0x76, 0x37, + 0xec, 0xa8, 0x9f, 0x7c, 0x1e, 0xfe, 0x99, 0x83, 0x11, 0xfe, 0x83, 0x9a, 0x6e, 0xd7, 0x56, 0x89, + 0x14, 0xa5, 0x20, 0x1c, 0x9b, 0x6e, 0xc1, 0x58, 0x6c, 0xb2, 0xc9, 0x04, 0x32, 0x8b, 0xb5, 0xcb, + 0x50, 0x97, 0xaf, 0xf2, 0x3a, 0x2d, 0x0b, 0x56, 0x1e, 0x01, 0x6b, 0x6f, 0x45, 0x4e, 0x23, 0x6a, + 0x3b, 0x86, 0x36, 0xff, 0x11, 0x7c, 0xa7, 0x92, 0xfc, 0x9a, 0xa8, 0xab, 0xca, 0x64, 0xce, 0x83, + 0x0b, 0xfc, 0x79, 0xf0, 0xdb, 0x80, 0x22, 0x7d, 0xc4, 0x37, 0x6b, 0xb2, 0x69, 0x52, 0x82, 0xb9, + 0xbc, 0xc0, 0x2b, 0x72, 0x86, 0x57, 0x64, 0x04, 0xab, 0xfd, 0x67, 0x98, 0x66, 0x45, 0x4d, 0xc7, + 0x50, 0xe3, 0x5f, 0x82, 0xd3, 0x2d, 0xf9, 0xb7, 0x53, 0x5d, 0x55, 0xa8, 0xe2, 0xd0, 0xbe, 0x70, + 0x9c, 0x43, 0x7b, 0x0b, 0xce, 0x4a, 0x9c, 0x30, 0x7f, 0x80, 0xb2, 0xd0, 0x8e, 0x78, 0x62, 0x72, + 0x52, 0xe9, 0xb5, 0xdb, 0x9d, 0x90, 0x6b, 0xd1, 0x4f, 0x8c, 0xcf, 0x2b, 0x75, 0xfc, 0x54, 0x1c, + 0x4a, 0xff, 0x2b, 0x72, 0x5d, 0x89, 0x6b, 0x5e, 0x5d, 0x76, 0x5d, 0x89, 0xfb, 0x15, 0x05, 0xe1, + 0x7e, 0x85, 0x0e, 0xe3, 0x15, 0xc3, 0xa2, 0x3f, 0x63, 0x2d, 0x66, 0x5c, 0x71, 0x52, 0xdc, 0x0c, + 0xce, 0x2b, 0x16, 0x36, 0x76, 0x5e, 0x71, 0xdb, 0x31, 0x56, 0xdd, 0xe7, 0x39, 0x52, 0x4c, 0xa9, + 0x3f, 0xf7, 0x7b, 0xe2, 0x4f, 0xee, 0x12, 0x65, 0x52, 0x9e, 0x2d, 0x93, 0x16, 0x01, 0x99, 0x2e, + 0xcf, 0x8e, 0xaa, 0x5a, 0xd2, 0xb3, 0xbc, 0x2c, 0x7e, 0x83, 0x77, 0x99, 0x57, 0x90, 0x62, 0xf4, + 0xda, 0x65, 0xb8, 0x98, 0x2a, 0x5e, 0x54, 0x33, 0xfe, 0x3e, 0x0f, 0xfd, 0x89, 0x0f, 0x12, 0xd1, + 0x0d, 0xce, 0xa6, 0x52, 0x84, 0x3e, 0x86, 0xb5, 0x5d, 0x88, 0x0f, 0xed, 0xdf, 0xc2, 0x87, 0x38, + 0xfc, 0x88, 0x8c, 0x6d, 0xec, 0x60, 0x5f, 0x8d, 0xdd, 0xd4, 0xec, 0xe5, 0x37, 0x35, 0xfd, 0xfe, + 0xa6, 0x63, 0x37, 0x6d, 0x97, 0xf4, 0xd3, 0xbd, 0x83, 0xb8, 0x05, 0x2d, 0x40, 0xe9, 0x08, 0xbb, + 0xf7, 0xb0, 0x59, 0x3b, 0xf0, 0xc8, 0xc1, 0xa7, 0xb0, 0x6d, 0x15, 0x75, 0x2f, 0x5f, 0xe2, 0xad, + 0x96, 0x7d, 0x73, 0x25, 0xd4, 0xa4, 0x36, 0x11, 0xdc, 0x8c, 0xa3, 0x3f, 0x23, 0x85, 0xff, 0x34, + 0x07, 0x03, 0xc9, 0xdb, 0x08, 0xdc, 0xd8, 0x73, 0xc2, 0xd8, 0x05, 0x5d, 0xe5, 0x33, 0xea, 0xaa, + 0x20, 0xd7, 0x55, 0x62, 0xbf, 0xb5, 0x87, 0xd9, 0x6f, 0xd5, 0xde, 0xcf, 0xc1, 0xa8, 0x70, 0xcd, + 0x01, 0x21, 0xe8, 0xd9, 0x77, 0xa2, 0x4f, 0x09, 0xc9, 0xdf, 0x68, 0x08, 0xf2, 0x9e, 0x4d, 0x07, + 0x92, 0xf7, 0x6c, 0xb2, 0x25, 0xde, 0xb0, 0x5b, 0x96, 0x17, 0x7e, 0x0d, 0x18, 0xfc, 0x8a, 0xbf, + 0x43, 0xec, 0x49, 0x7e, 0x87, 0x78, 0x01, 0x06, 0x4d, 0x37, 0x34, 0xc8, 0xdb, 0x18, 0xd3, 0x8d, + 0x4f, 0xb6, 0x51, 0xfb, 0x5e, 0x0e, 0x86, 0x58, 0xc7, 0xd9, 0x25, 0x55, 0xc5, 0xfb, 0xf7, 0x05, + 0xd5, 0xfe, 0x3d, 0xab, 0x98, 0x1b, 0x1f, 0x4d, 0x40, 0x61, 0xd3, 0xad, 0xa1, 0x1d, 0x18, 0x60, + 0x3e, 0xcb, 0x3d, 0xa7, 0x78, 0x30, 0x22, 0xe8, 0x2e, 0x5f, 0x4c, 0xed, 0x8e, 0xbc, 0xd7, 0x37, + 0x60, 0x46, 0xfd, 0x91, 0x5a, 0x07, 0xaf, 0xa5, 0x94, 0x6f, 0x64, 0x87, 0x8d, 0x98, 0xef, 0x03, + 0x92, 0xdc, 0x74, 0xca, 0xf2, 0x16, 0x4c, 0xf9, 0x6a, 0x06, 0xa0, 0x88, 0xcf, 0x3b, 0x30, 0xc4, + 0x5d, 0x43, 0x6a, 0xf7, 0x82, 0x4a, 0xf9, 0x72, 0x1b, 0x80, 0x88, 0xb6, 0x09, 0x63, 0xb2, 0x7b, + 0x25, 0x99, 0x1e, 0x52, 0x29, 0x5f, 0xcb, 0x02, 0x95, 0x64, 0x25, 0x3b, 0x86, 0xcd, 0xf4, 0x1e, + 0x86, 0x84, 0x55, 0xda, 0x99, 0xa7, 0x03, 0x93, 0x8a, 0xb3, 0xc9, 0xac, 0xcf, 0x62, 0x94, 0x97, + 0x32, 0x02, 0x72, 0xe2, 0x09, 0xe7, 0x4f, 0x99, 0x5e, 0xc7, 0x90, 0x8b, 0xa7, 0x3c, 0x0c, 0x8a, + 0xc4, 0x13, 0xb8, 0x65, 0x7d, 0x24, 0x43, 0x29, 0x9e, 0x92, 0xe7, 0x3b, 0x30, 0xc4, 0x1d, 0x15, + 0xb5, 0x7b, 0x2b, 0x43, 0x62, 0x84, 0x8a, 0x93, 0x8f, 0x77, 0x61, 0x44, 0xb8, 0x8f, 0xd5, 0xfe, + 0xf5, 0xa1, 0xf2, 0xb3, 0x6d, 0x41, 0x92, 0x1c, 0x04, 0xf7, 0xd0, 0xfe, 0x2d, 0x1f, 0x09, 0x07, + 0xa5, 0x33, 0x78, 0x17, 0x46, 0x84, 0x9b, 0xdc, 0xed, 0x9f, 0xf4, 0x91, 0x70, 0x50, 0x5e, 0xfc, + 0x8c, 0xdc, 0x0d, 0xb3, 0x9b, 0x9e, 0xe5, 0x65, 0x1f, 0xa5, 0xbb, 0x91, 0x1e, 0x97, 0xec, 0x03, + 0x92, 0x1c, 0x70, 0x64, 0x79, 0xe0, 0x47, 0xc2, 0x47, 0x7d, 0x42, 0xe0, 0xf3, 0x91, 0x9c, 0x0e, + 0x64, 0x79, 0xe7, 0x47, 0xc2, 0x47, 0xbd, 0xb5, 0x8f, 0xea, 0x30, 0x2e, 0xdd, 0xd6, 0xcf, 0xf6, + 0xdc, 0x4f, 0xf9, 0xb9, 0x4c, 0x60, 0x49, 0x3b, 0x10, 0xf6, 0xc5, 0xdb, 0x3f, 0xff, 0x22, 0xb1, + 0x03, 0xe5, 0x5e, 0xf1, 0xdb, 0x00, 0x89, 0x5d, 0xdf, 0xb4, 0x57, 0x60, 0xca, 0xcf, 0xa4, 0x74, + 0x46, 0xf4, 0x6c, 0x98, 0x90, 0x6f, 0x86, 0x66, 0x7c, 0x0c, 0xa6, 0xbc, 0x98, 0x0d, 0x8e, 0x53, + 0x11, 0xbb, 0x9f, 0xd7, 0xfe, 0x4d, 0x18, 0xb9, 0x8a, 0xe4, 0xfb, 0x5b, 0xf7, 0x60, 0x90, 0xdd, + 0xa9, 0x6a, 0xf3, 0x34, 0x4c, 0xf9, 0x52, 0x7a, 0x7f, 0x44, 0x78, 0x07, 0x06, 0x98, 0x4d, 0x9b, + 0xf4, 0x17, 0x62, 0xca, 0x17, 0x53, 0xbb, 0x93, 0xfe, 0x5c, 0xb1, 0x87, 0x91, 0xf5, 0xa1, 0x18, + 0x89, 0x3f, 0x6f, 0x53, 0xb1, 0x07, 0x2a, 0x4a, 0x7e, 0xf8, 0x94, 0xfe, 0x5e, 0x8c, 0x5c, 0x45, + 0x92, 0x82, 0xf2, 0x9b, 0x50, 0x4e, 0x29, 0x0d, 0x3b, 0x79, 0x36, 0xa6, 0xfc, 0x42, 0x07, 0xc0, + 0x11, 0xff, 0x37, 0xa0, 0x18, 0x55, 0x64, 0xea, 0xd7, 0x63, 0xca, 0xe7, 0x95, 0x5d, 0x21, 0xa5, + 0x72, 0xef, 0xb7, 0x1e, 0x3f, 0x5a, 0xc8, 0xad, 0xea, 0x9f, 0x7c, 0x39, 0x9b, 0xfb, 0xf4, 0xcb, + 0xd9, 0xdc, 0x9f, 0xbf, 0x9c, 0xcd, 0xfd, 0xf0, 0xab, 0xd9, 0x53, 0x9f, 0x7e, 0x35, 0x7b, 0xea, + 0x0f, 0x5f, 0xcd, 0x9e, 0x7a, 0xe7, 0xe5, 0x9a, 0xe9, 0x1d, 0xb4, 0xf6, 0x16, 0x2b, 0x76, 0x63, + 0x69, 0xcf, 0xf4, 0xf6, 0x8c, 0x6a, 0x0d, 0xbb, 0xf1, 0x5f, 0x95, 0x03, 0xc3, 0xb4, 0x96, 0x1e, + 0x2e, 0xb1, 0x4f, 0x37, 0x1e, 0x35, 0xb1, 0xbb, 0xd7, 0x47, 0x1e, 0x1d, 0x7c, 0xe1, 0xdf, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x60, 0x83, 0x49, 0xb6, 0x74, 0x52, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/tokenization/types/user_balance_store.pb.go b/x/tokenization/types/user_balance_store.pb.go index 88913bad..d950aea4 100644 --- a/x/tokenization/types/user_balance_store.pb.go +++ b/x/tokenization/types/user_balance_store.pb.go @@ -152,30 +152,31 @@ func init() { } var fileDescriptor_8b1543060dfaddd2 = []byte{ - // 367 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x41, 0x4e, 0xc2, 0x40, - 0x14, 0x86, 0xa9, 0x20, 0x92, 0x62, 0xa2, 0x36, 0x9a, 0x34, 0xa8, 0x23, 0x21, 0x31, 0xc1, 0x4d, - 0x1b, 0x71, 0xe3, 0x16, 0x36, 0xca, 0x4a, 0x52, 0x74, 0x63, 0x4c, 0xc8, 0xb4, 0x0c, 0x65, 0x62, - 0x99, 0xd7, 0xcc, 0x4c, 0x8d, 0x7a, 0x0a, 0x8f, 0xe3, 0x11, 0x5c, 0xb2, 0x74, 0x69, 0xe0, 0x22, - 0xa6, 0xa5, 0x95, 0x96, 0x46, 0x74, 0x37, 0xe9, 0xff, 0xfd, 0xdf, 0x7b, 0x69, 0x9e, 0x7a, 0x2a, - 0xe1, 0x91, 0x30, 0xfa, 0x8a, 0x25, 0x05, 0x66, 0x06, 0x82, 0xf0, 0x81, 0x8d, 0x3d, 0xcc, 0x1c, - 0x32, 0x10, 0x12, 0x38, 0x31, 0x7c, 0x0e, 0x12, 0xb4, 0xed, 0x34, 0x56, 0xdb, 0x77, 0xc1, 0x85, - 0x28, 0x30, 0xc3, 0xd7, 0x82, 0xa9, 0x1d, 0x66, 0x54, 0xb1, 0x45, 0xc4, 0x21, 0xca, 0x84, 0x3e, - 0xe1, 0x13, 0x2a, 0x04, 0x05, 0x96, 0xe4, 0x47, 0x99, 0x1c, 0xfb, 0x3e, 0x87, 0x27, 0xec, 0xc5, - 0x69, 0xe3, 0xbd, 0xa4, 0xee, 0xde, 0x09, 0xc2, 0x3b, 0x0b, 0x69, 0x3f, 0xdc, 0x4c, 0x3b, 0x57, - 0x2b, 0xc9, 0x10, 0x5d, 0xa9, 0x17, 0x9b, 0xd5, 0xd6, 0x81, 0x91, 0xb6, 0x18, 0x31, 0x6d, 0xfd, - 0x60, 0x5a, 0x4f, 0xdd, 0x83, 0x40, 0xba, 0x40, 0x99, 0xdb, 0x4e, 0x46, 0xe8, 0x1b, 0x51, 0xb7, - 0x91, 0xed, 0x86, 0xd3, 0x6e, 0x56, 0x50, 0x2b, 0x5f, 0x0e, 0x8d, 0x94, 0x39, 0x30, 0xc9, 0x18, - 0x8b, 0xbf, 0x19, 0xbb, 0x2b, 0xa8, 0x95, 0x2f, 0x6b, 0x0f, 0xea, 0x19, 0x0e, 0x24, 0x2c, 0x3e, - 0x90, 0x3e, 0xf1, 0x46, 0x5d, 0x46, 0x25, 0xc5, 0x92, 0x0c, 0x93, 0x85, 0x6e, 0x39, 0x66, 0x62, - 0x44, 0xb8, 0xd0, 0x4b, 0x75, 0xa5, 0x59, 0xb1, 0xfe, 0x5f, 0x58, 0x67, 0x4f, 0x96, 0x5b, 0xda, - 0x37, 0xd7, 0xdb, 0x73, 0x05, 0xed, 0x5a, 0x3d, 0x49, 0xc1, 0x6d, 0xcf, 0xcb, 0x3b, 0xcb, 0x91, - 0xf3, 0x2f, 0x4c, 0xbb, 0x52, 0x77, 0xc2, 0x63, 0xec, 0x2d, 0x0f, 0x45, 0xdf, 0xaa, 0x2b, 0xcd, - 0x6a, 0xeb, 0x38, 0xff, 0x57, 0x53, 0x90, 0xb5, 0xda, 0xea, 0x58, 0x1f, 0x33, 0xa4, 0x4c, 0x67, - 0x48, 0xf9, 0x9a, 0x21, 0xe5, 0x6d, 0x8e, 0x0a, 0xd3, 0x39, 0x2a, 0x7c, 0xce, 0x51, 0xe1, 0xfe, - 0xd2, 0xa5, 0x72, 0x1c, 0xd8, 0x86, 0x03, 0x13, 0xd3, 0xa6, 0xd2, 0xc6, 0x43, 0x97, 0x88, 0xe5, - 0xcb, 0x19, 0x63, 0xca, 0xcc, 0x67, 0x33, 0x73, 0x98, 0xf2, 0xc5, 0x27, 0xc2, 0x2e, 0x47, 0x57, - 0x79, 0xf1, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x37, 0xae, 0x27, 0x92, 0x3d, 0x03, 0x00, 0x00, + // 376 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xc1, 0x4e, 0xea, 0x40, + 0x14, 0x86, 0xe9, 0x85, 0xcb, 0x25, 0xe5, 0x26, 0xf7, 0xda, 0x68, 0xd2, 0xa0, 0x0e, 0x84, 0xc4, + 0x04, 0x37, 0x6d, 0xc4, 0x8d, 0x5b, 0x58, 0xc9, 0xc2, 0x48, 0x8a, 0x6e, 0x8c, 0x09, 0x99, 0x96, + 0xa1, 0x4c, 0x2c, 0x73, 0x9a, 0x99, 0xa9, 0x51, 0x9f, 0xc2, 0x27, 0x72, 0xcd, 0x92, 0xa5, 0x2b, + 0x63, 0xe0, 0x45, 0x4c, 0x4b, 0x2b, 0x2d, 0x8d, 0xe8, 0x6e, 0xd2, 0xff, 0xfb, 0xbf, 0x73, 0xd2, + 0x1c, 0xf5, 0x48, 0xc2, 0x1d, 0x61, 0xf4, 0x09, 0x4b, 0x0a, 0xcc, 0x0c, 0x04, 0xe1, 0x43, 0x1b, + 0x7b, 0x98, 0x39, 0x64, 0x28, 0x24, 0x70, 0x62, 0xf8, 0x1c, 0x24, 0x68, 0x7f, 0xd3, 0x58, 0x6d, + 0xd7, 0x05, 0x17, 0xa2, 0xc0, 0x0c, 0x5f, 0x2b, 0xa6, 0xb6, 0x9f, 0x51, 0xc5, 0x16, 0x11, 0x87, + 0x28, 0x13, 0xfa, 0x84, 0x4f, 0xa9, 0x10, 0x14, 0x58, 0x92, 0x1f, 0x64, 0x72, 0xec, 0xfb, 0x1c, + 0xee, 0xb1, 0x17, 0xa7, 0xcd, 0x97, 0x92, 0xfa, 0xff, 0x5a, 0x10, 0xde, 0x5d, 0x49, 0x07, 0xe1, + 0x66, 0xda, 0x89, 0x5a, 0x49, 0x86, 0xe8, 0x4a, 0xa3, 0xd8, 0xaa, 0xb6, 0xf7, 0x8c, 0xb4, 0xc5, + 0x88, 0x69, 0xeb, 0x13, 0xd3, 0xfa, 0xea, 0x0e, 0x04, 0xd2, 0x05, 0xca, 0xdc, 0x4e, 0x32, 0x42, + 0xff, 0x15, 0x75, 0x9b, 0xd9, 0x6e, 0x38, 0xed, 0x72, 0x03, 0xb5, 0xf2, 0xe5, 0xd0, 0x48, 0x99, + 0x03, 0xd3, 0x8c, 0xb1, 0xf8, 0x95, 0xb1, 0xb7, 0x81, 0x5a, 0xf9, 0xb2, 0x76, 0xab, 0x1e, 0xe3, + 0x40, 0xc2, 0xea, 0x03, 0x19, 0x10, 0x6f, 0xdc, 0x63, 0x54, 0x52, 0x2c, 0xc9, 0x28, 0x59, 0xe8, + 0x8a, 0x63, 0x26, 0xc6, 0x84, 0x0b, 0xbd, 0xd4, 0x50, 0x5a, 0x15, 0xeb, 0xe7, 0x85, 0x6d, 0xf6, + 0x64, 0xb9, 0xb5, 0xfd, 0xf7, 0x76, 0x7b, 0xae, 0xa0, 0x9d, 0xab, 0xf5, 0x14, 0xdc, 0xf1, 0xbc, + 0xbc, 0xb3, 0x1c, 0x39, 0xbf, 0xc3, 0xb4, 0x0b, 0xf5, 0x5f, 0x78, 0x8c, 0xfd, 0xf5, 0xa1, 0xe8, + 0x7f, 0x1a, 0x4a, 0xab, 0xda, 0x3e, 0xcc, 0xff, 0xd5, 0x14, 0xd4, 0x2d, 0xcd, 0xde, 0xea, 0x8a, + 0xb5, 0xd9, 0xed, 0x5a, 0xb3, 0x05, 0x52, 0xe6, 0x0b, 0xa4, 0xbc, 0x2f, 0x90, 0xf2, 0xbc, 0x44, + 0x85, 0xf9, 0x12, 0x15, 0x5e, 0x97, 0xa8, 0x70, 0x73, 0xe6, 0x52, 0x39, 0x09, 0x6c, 0xc3, 0x81, + 0xa9, 0x69, 0x53, 0x69, 0xe3, 0x91, 0x4b, 0xc4, 0xfa, 0xe5, 0x4c, 0x30, 0x65, 0xe6, 0x83, 0x99, + 0x39, 0x4f, 0xf9, 0xe8, 0x13, 0x61, 0x97, 0xa3, 0xdb, 0x3c, 0xfd, 0x08, 0x00, 0x00, 0xff, 0xff, + 0x80, 0x02, 0xc6, 0x07, 0x43, 0x03, 0x00, 0x00, } func (m *UserBalanceStore) Marshal() (dAtA []byte, err error) { diff --git a/x/tokenization/types/validate_basic.go b/x/tokenization/types/validate_basic.go index ac6f03cb..63bf0b2a 100644 --- a/x/tokenization/types/validate_basic.go +++ b/x/tokenization/types/validate_basic.go @@ -1238,7 +1238,12 @@ func ValidateTransferWithInvariants(ctx sdk.Context, transfer *Transfer, canChan // See HandleSpecialAddressBacking in keeper/transfer_wrap.go for the full argument. // Do NOT relax this check without also scoping the backed-path address derivation // by collection ID, or the drain becomes live. - if collection.Invariants.CosmosCoinBackedPath != nil { + // SEMANTIC "is set" check: after normalize-on-load every nullable + // pointer is non-nil even when the user didn't configure it, so a + // raw `!= nil` would block Mint transfers for every collection. + // Use IsBasicallyEmpty to recover the true "user explicitly set + // this" intent (proto-encoded size > 0). + if !IsBasicallyEmpty(collection.Invariants.CosmosCoinBackedPath) { if IsMintAddress(transfer.From) { return sdkerrors.Wrapf(ErrInvalidRequest, "transfers from Mint address are not allowed when cosmosCoinBackedPath is set") }