pshenmic-dpp 1.1.2-dev.7 → 2.0.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -99
- package/dist/binaries/bindingsTypes.d.ts +1696 -0
- package/dist/binaries/bindingsTypes.js +98 -0
- package/dist/binaries/pshenmic_dpp.android.node/react-native-node-api-module +0 -0
- package/dist/binaries/pshenmic_dpp.android.node/x86_64/libpshenmic_dpp.so +0 -0
- package/dist/binaries/pshenmic_dpp.d.ts +166 -0
- package/dist/binaries/pshenmic_dpp.js +3 -0
- package/dist/binaries/wasm/wasmBytes.d.ts +2 -0
- package/dist/binaries/wasm/wasmBytes.js +2 -0
- package/dist/binaries/wasm.d.ts +166 -0
- package/dist/binaries/wasm.js +44 -0
- package/dist/src/dpp/constants.d.ts +4 -0
- package/dist/src/dpp/constants.js +19 -0
- package/dist/src/dpp/dpp.d.ts +110 -0
- package/dist/src/dpp/dpp.js +110 -0
- package/dist/src/dpp/enums.d.ts +1 -0
- package/dist/src/dpp/enums.js +1 -0
- package/dist/src/dpp/provider.d.ts +11 -0
- package/dist/src/dpp/provider.js +21 -0
- package/dist/src/dpp/structs/Address/AddressWitness.d.ts +12 -0
- package/dist/src/dpp/structs/Address/AddressWitness.js +23 -0
- package/dist/src/dpp/structs/Address/PlatformAddress.d.ts +14 -0
- package/dist/src/dpp/structs/Address/PlatformAddress.js +32 -0
- package/dist/src/dpp/structs/AddressTransitions/AddressCreditWithdrawalTransition.d.ts +38 -0
- package/dist/src/dpp/structs/AddressTransitions/AddressCreditWithdrawalTransition.js +95 -0
- package/dist/src/dpp/structs/AddressTransitions/AddressFundingFromAssetLockTransition.d.ts +35 -0
- package/dist/src/dpp/structs/AddressTransitions/AddressFundingFromAssetLockTransition.js +85 -0
- package/dist/src/dpp/structs/AddressTransitions/AddressFundsTransferTransition.d.ts +30 -0
- package/dist/src/dpp/structs/AddressTransitions/AddressFundsTransferTransition.js +72 -0
- package/dist/src/dpp/structs/AddressTransitions/IdentityCreateFromAddressesTransition.d.ts +33 -0
- package/dist/src/dpp/structs/AddressTransitions/IdentityCreateFromAddressesTransition.js +82 -0
- package/dist/src/dpp/structs/AddressTransitions/IdentityCreditTransferToAddressesTransition.d.ts +31 -0
- package/dist/src/dpp/structs/AddressTransitions/IdentityCreditTransferToAddressesTransition.js +77 -0
- package/dist/src/dpp/structs/AddressTransitions/IdentityTopUpFromAddressesTransition.d.ts +31 -0
- package/dist/src/dpp/structs/AddressTransitions/IdentityTopUpFromAddressesTransition.js +76 -0
- package/dist/src/dpp/structs/AddressTransitions/entities/AddressFundsFeeStrategyStep.d.ts +12 -0
- package/dist/src/dpp/structs/AddressTransitions/entities/AddressFundsFeeStrategyStep.js +26 -0
- package/dist/src/dpp/structs/AddressTransitions/entities/InputAddress.d.ts +14 -0
- package/dist/src/dpp/structs/AddressTransitions/entities/InputAddress.js +32 -0
- package/dist/src/dpp/structs/AddressTransitions/entities/OutputAddress.d.ts +12 -0
- package/dist/src/dpp/structs/AddressTransitions/entities/OutputAddress.js +26 -0
- package/dist/src/dpp/structs/AddressTransitions/entities/OutputAddressNullableCredits.d.ts +12 -0
- package/dist/src/dpp/structs/AddressTransitions/entities/OutputAddressNullableCredits.js +29 -0
- package/dist/src/dpp/structs/AssetLockProof/AssetLockProof.d.ts +19 -0
- package/dist/src/dpp/structs/AssetLockProof/AssetLockProof.js +51 -0
- package/dist/src/dpp/structs/AssetLockProof/ChainAssetLockProof.d.ts +17 -0
- package/dist/src/dpp/structs/AssetLockProof/ChainAssetLockProof.js +36 -0
- package/dist/src/dpp/structs/AssetLockProof/InstantAssetLockProof.d.ts +24 -0
- package/dist/src/dpp/structs/AssetLockProof/InstantAssetLockProof.js +48 -0
- package/dist/src/dpp/structs/AssetLockProof/OutPoint.d.ts +15 -0
- package/dist/src/dpp/structs/AssetLockProof/OutPoint.js +40 -0
- package/dist/src/dpp/structs/AssetLockProof/Transaction.d.ts +20 -0
- package/dist/src/dpp/structs/AssetLockProof/Transaction.js +49 -0
- package/dist/src/dpp/structs/AssetLockProof/TxIn.d.ts +17 -0
- package/dist/src/dpp/structs/AssetLockProof/TxIn.js +39 -0
- package/dist/src/dpp/structs/AssetLockProof/TxOut.d.ts +13 -0
- package/dist/src/dpp/structs/AssetLockProof/TxOut.js +34 -0
- package/dist/src/dpp/structs/AssetLockProof/Witness.d.ts +11 -0
- package/dist/src/dpp/structs/AssetLockProof/Witness.js +25 -0
- package/dist/src/dpp/structs/Batch/BatchTransition.d.ts +34 -0
- package/dist/src/dpp/structs/Batch/BatchTransition.js +95 -0
- package/dist/src/dpp/structs/Batch/BatchedTransition.d.ts +13 -0
- package/dist/src/dpp/structs/Batch/BatchedTransition.js +39 -0
- package/dist/src/dpp/structs/Batch/DocumentBaseTransition.d.ts +20 -0
- package/dist/src/dpp/structs/Batch/DocumentBaseTransition.js +54 -0
- package/dist/src/dpp/structs/Batch/DocumentTransition.d.ts +32 -0
- package/dist/src/dpp/structs/Batch/DocumentTransition.js +74 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentCreateTransition.d.ts +23 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentCreateTransition.js +58 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentDeleteTransition.d.ts +14 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentDeleteTransition.js +26 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentPurchaseTransition.d.ts +19 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentPurchaseTransition.js +39 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentReplaceTransition.d.ts +19 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentReplaceTransition.js +40 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentTransferTransition.d.ts +19 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentTransferTransition.js +35 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentUpdatePriceTransition.d.ts +17 -0
- package/dist/src/dpp/structs/Batch/DocumentTransitions/DocumentUpdatePriceTransition.js +33 -0
- package/dist/src/dpp/structs/Batch/PrefundedVotingBalance.d.ts +9 -0
- package/dist/src/dpp/structs/Batch/PrefundedVotingBalance.js +19 -0
- package/dist/src/dpp/structs/Batch/TokenBaseTransition.d.ts +20 -0
- package/dist/src/dpp/structs/Batch/TokenBaseTransition.js +49 -0
- package/dist/src/dpp/structs/Batch/TokenPaymentInfo.d.ts +19 -0
- package/dist/src/dpp/structs/Batch/TokenPaymentInfo.js +54 -0
- package/dist/src/dpp/structs/Batch/TokenPricingSchedule.d.ts +17 -0
- package/dist/src/dpp/structs/Batch/TokenPricingSchedule.js +41 -0
- package/dist/src/dpp/structs/Batch/TokenTransition.d.ts +20 -0
- package/dist/src/dpp/structs/Batch/TokenTransition.js +92 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenBurnTransition.d.ts +14 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenBurnTransition.js +32 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenClaimTransition.d.ts +15 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenClaimTransition.js +33 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenConfigUpdateTransition.d.ts +15 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenConfigUpdateTransition.js +33 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenDestroyFrozenFundsTransition.d.ts +16 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenDestroyFrozenFundsTransition.js +34 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenDirectPurchaseTransition.d.ts +14 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenDirectPurchaseTransition.js +32 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenEmergencyActionTransition.d.ts +15 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenEmergencyActionTransition.js +33 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenFreezeTransition.d.ts +16 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenFreezeTransition.js +34 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenMintTransition.d.ts +18 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenMintTransition.js +43 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenSetPriceForDirectPurchaseTransition.d.ts +15 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenSetPriceForDirectPurchaseTransition.js +36 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenTransferTransition.d.ts +21 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenTransferTransition.js +53 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenUnFreezeTransition.d.ts +16 -0
- package/dist/src/dpp/structs/Batch/TokenTransitions/TokenUnFreezeTransition.js +34 -0
- package/dist/src/dpp/structs/ConsensusError.d.ts +8 -0
- package/dist/src/dpp/structs/ConsensusError.js +22 -0
- package/dist/src/dpp/structs/ContractBounds.d.ts +17 -0
- package/dist/src/dpp/structs/ContractBounds.js +39 -0
- package/dist/src/dpp/structs/CoreScript.d.ts +15 -0
- package/dist/src/dpp/structs/CoreScript.js +37 -0
- package/dist/src/dpp/structs/DataContract.d.ts +35 -0
- package/dist/src/dpp/structs/DataContract.js +116 -0
- package/dist/src/dpp/structs/DataContractTransitions/DataContractCreateTransition.d.ts +23 -0
- package/dist/src/dpp/structs/DataContractTransitions/DataContractCreateTransition.js +55 -0
- package/dist/src/dpp/structs/DataContractTransitions/DataContractUpdateTransition.d.ts +23 -0
- package/dist/src/dpp/structs/DataContractTransitions/DataContractUpdateTransition.js +55 -0
- package/dist/src/dpp/structs/Document.d.ts +51 -0
- package/dist/src/dpp/structs/Document.js +184 -0
- package/dist/src/dpp/structs/EncryptedNote/PrivateEncryptedNote.d.ts +13 -0
- package/dist/src/dpp/structs/EncryptedNote/PrivateEncryptedNote.js +31 -0
- package/dist/src/dpp/structs/EncryptedNote/SharedEncryptedNote.d.ts +13 -0
- package/dist/src/dpp/structs/EncryptedNote/SharedEncryptedNote.js +31 -0
- package/dist/src/dpp/structs/GroupStateTransitionInfo.d.ts +15 -0
- package/dist/src/dpp/structs/GroupStateTransitionInfo.js +33 -0
- package/dist/src/dpp/structs/Identifier.d.ts +17 -0
- package/dist/src/dpp/structs/Identifier.js +50 -0
- package/dist/src/dpp/structs/Identity.d.ts +26 -0
- package/dist/src/dpp/structs/Identity.js +73 -0
- package/dist/src/dpp/structs/IdentityPublicKey.d.ts +43 -0
- package/dist/src/dpp/structs/IdentityPublicKey.js +126 -0
- package/dist/src/dpp/structs/IdentityPublicKeyInCreation.d.ts +30 -0
- package/dist/src/dpp/structs/IdentityPublicKeyInCreation.js +77 -0
- package/dist/src/dpp/structs/IdentityTransitions/IdentityCreateTransition.d.ts +29 -0
- package/dist/src/dpp/structs/IdentityTransitions/IdentityCreateTransition.js +69 -0
- package/dist/src/dpp/structs/IdentityTransitions/IdentityCreditTransfer.d.ts +33 -0
- package/dist/src/dpp/structs/IdentityTransitions/IdentityCreditTransfer.js +85 -0
- package/dist/src/dpp/structs/IdentityTransitions/IdentityCreditWithdrawalTransition.d.ts +42 -0
- package/dist/src/dpp/structs/IdentityTransitions/IdentityCreditWithdrawalTransition.js +114 -0
- package/dist/src/dpp/structs/IdentityTransitions/IdentityTopUpTransition.d.ts +30 -0
- package/dist/src/dpp/structs/IdentityTransitions/IdentityTopUpTransition.js +75 -0
- package/dist/src/dpp/structs/IdentityTransitions/IdentityUpdateTransition.d.ts +40 -0
- package/dist/src/dpp/structs/IdentityTransitions/IdentityUpdateTransition.js +108 -0
- package/dist/src/dpp/structs/InstantLock.d.ts +17 -0
- package/dist/src/dpp/structs/InstantLock.js +43 -0
- package/dist/src/dpp/structs/MasternodeVote/MasternodeVoteTransition.d.ts +37 -0
- package/dist/src/dpp/structs/MasternodeVote/MasternodeVoteTransition.js +96 -0
- package/dist/src/dpp/structs/MasternodeVote/ResourceVoteChoice.d.ts +14 -0
- package/dist/src/dpp/structs/MasternodeVote/ResourceVoteChoice.js +29 -0
- package/dist/src/dpp/structs/MasternodeVote/Vote.d.ts +13 -0
- package/dist/src/dpp/structs/MasternodeVote/Vote.js +27 -0
- package/dist/src/dpp/structs/MasternodeVote/VotePoll.d.ts +18 -0
- package/dist/src/dpp/structs/MasternodeVote/VotePoll.js +42 -0
- package/dist/src/dpp/structs/PartialIdentity.d.ts +26 -0
- package/dist/src/dpp/structs/PartialIdentity.js +69 -0
- package/dist/src/dpp/structs/PrivateKey.d.ts +20 -0
- package/dist/src/dpp/structs/PrivateKey.js +48 -0
- package/dist/src/dpp/structs/PublicKey.d.ts +15 -0
- package/dist/src/dpp/structs/PublicKey.js +37 -0
- package/dist/src/dpp/structs/StateTransition.d.ts +38 -0
- package/dist/src/dpp/structs/StateTransition.js +100 -0
- package/dist/src/dpp/structs/TokenConfiguration/ActionTaker.d.ts +12 -0
- package/dist/src/dpp/structs/TokenConfiguration/ActionTaker.js +44 -0
- package/dist/src/dpp/structs/TokenConfiguration/AuthorizedActionTakers.d.ts +16 -0
- package/dist/src/dpp/structs/TokenConfiguration/AuthorizedActionTakers.js +43 -0
- package/dist/src/dpp/structs/TokenConfiguration/ChangeControlRules.d.ts +23 -0
- package/dist/src/dpp/structs/TokenConfiguration/ChangeControlRules.js +52 -0
- package/dist/src/dpp/structs/TokenConfiguration/DistributionFunction.d.ts +19 -0
- package/dist/src/dpp/structs/TokenConfiguration/DistributionFunction.js +57 -0
- package/dist/src/dpp/structs/TokenConfiguration/Group.d.ts +19 -0
- package/dist/src/dpp/structs/TokenConfiguration/Group.js +44 -0
- package/dist/src/dpp/structs/TokenConfiguration/RewardDistributionType.d.ts +13 -0
- package/dist/src/dpp/structs/TokenConfiguration/RewardDistributionType.js +40 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenConfiguration.d.ts +54 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenConfiguration.js +139 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenConfigurationChangeItem.d.ts +47 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenConfigurationChangeItem.js +140 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenConfigurationConvention.d.ts +19 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenConfigurationConvention.js +47 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenConfigurationLocalization.d.ts +15 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenConfigurationLocalization.js +34 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenDistributionRecipient.d.ts +14 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenDistributionRecipient.js +31 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenDistributionRules.d.ts +28 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenDistributionRules.js +75 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenKeepsHistoryRules.d.ts +19 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenKeepsHistoryRules.js +49 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenMarketplaceRules.d.ts +13 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenMarketplaceRules.js +27 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenPerpetualDistribution.d.ts +13 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenPerpetualDistribution.js +27 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenPreProgrammedDistribution.d.ts +21 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenPreProgrammedDistribution.js +42 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenTradeMode.d.ts +9 -0
- package/dist/src/dpp/structs/TokenConfiguration/TokenTradeMode.js +17 -0
- package/dist/src/dpp/types.d.ts +274 -0
- package/dist/src/dpp/types.js +1 -0
- package/dist/src/dpp/utils.d.ts +5 -0
- package/dist/src/dpp/utils.js +64 -0
- package/dist/src/dpp/verify/Contested/verifyVotePollVoteStateProof.d.ts +3 -0
- package/dist/src/dpp/verify/Contested/verifyVotePollVoteStateProof.js +34 -0
- package/dist/src/dpp/verify/Contract/verifyContract.d.ts +2 -0
- package/dist/src/dpp/verify/Contract/verifyContract.js +14 -0
- package/dist/src/dpp/verify/Document/verifyDocumentsProof.d.ts +3 -0
- package/dist/src/dpp/verify/Document/verifyDocumentsProof.js +10 -0
- package/dist/src/dpp/verify/Identity/verifyIdentifierByNonUniquePublicKeyHashProof.d.ts +2 -0
- package/dist/src/dpp/verify/Identity/verifyIdentifierByNonUniquePublicKeyHashProof.js +10 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityBalanceProof.d.ts +2 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityBalanceProof.js +9 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityByIdentifierProof.d.ts +2 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityByIdentifierProof.js +10 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityByUniqueKeyHashProof.d.ts +2 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityByUniqueKeyHashProof.js +10 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityContractNonceProof.d.ts +2 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityContractNonceProof.js +9 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityKeysByIdentifierProof.d.ts +2 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityKeysByIdentifierProof.js +10 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityNonceProof.d.ts +2 -0
- package/dist/src/dpp/verify/Identity/verifyIdentityNonceProof.js +9 -0
- package/dist/src/dpp/verify/StateTransition/utils.d.ts +2 -0
- package/dist/src/dpp/verify/StateTransition/utils.js +115 -0
- package/dist/src/dpp/verify/StateTransition/verifyStateTransitionResult.d.ts +4 -0
- package/dist/src/dpp/verify/StateTransition/verifyStateTransitionResult.js +10 -0
- package/dist/src/dpp/verify/System/verifyEpochsInfoProof.d.ts +2 -0
- package/dist/src/dpp/verify/System/verifyEpochsInfoProof.js +16 -0
- package/dist/src/dpp/verify/System/verifyTotalCreditsProof.d.ts +2 -0
- package/dist/src/dpp/verify/System/verifyTotalCreditsProof.js +9 -0
- package/dist/src/dpp/verify/Tokens/verifyTokenBalancesForIdentitiesProof.d.ts +2 -0
- package/dist/src/dpp/verify/Tokens/verifyTokenBalancesForIdentitiesProof.js +13 -0
- package/dist/src/dpp/verify/Tokens/verifyTokenContractInfoProof.d.ts +2 -0
- package/dist/src/dpp/verify/Tokens/verifyTokenContractInfoProof.js +15 -0
- package/dist/src/dpp/verify/Tokens/verifyTokenDirectPurchasePrices.d.ts +2 -0
- package/dist/src/dpp/verify/Tokens/verifyTokenDirectPurchasePrices.js +14 -0
- package/dist/src/dpp/verify/Tokens/verifyTokenTotalSupplyProof.d.ts +2 -0
- package/dist/src/dpp/verify/Tokens/verifyTokenTotalSupplyProof.js +12 -0
- package/dist/src/dpp/verify/Tokens/verifyTokensBalancesForIdentityProof.d.ts +2 -0
- package/dist/src/dpp/verify/Tokens/verifyTokensBalancesForIdentityProof.js +13 -0
- package/dist/src/dpp/verify/verifySignatureDigest.d.ts +1 -0
- package/dist/src/dpp/verify/verifySignatureDigest.js +4 -0
- package/dist/src/react-native.d.ts +3 -0
- package/dist/src/react-native.js +6 -0
- package/dist/src/wasm.d.ts +3 -0
- package/dist/src/wasm.js +6 -0
- package/dist/utils/base122.d.ts +7 -0
- package/dist/utils/base122.js +63 -0
- package/package.json +30 -27
- package/tests/unit/DynamicValue.spec.ts +86 -0
- package/tests/unit/Identifier.spec.ts +105 -0
- package/tests/unit/Identity.spec.ts +119 -0
- package/tests/unit/IdentityPublicKey.spec.ts +126 -0
- package/dist/wasm/base122.d.ts +0 -1
- package/dist/wasm/base122.js +0 -67
- package/dist/wasm/index.d.ts +0 -128
- package/dist/wasm/index.js +0 -13
- package/dist/wasm/initAsync.d.ts +0 -4
- package/dist/wasm/initAsync.js +0 -20
- package/dist/wasm/initInterface.d.ts +0 -3
- package/dist/wasm/initInterface.js +0 -46
- package/dist/wasm/initWASM.d.ts +0 -1
- package/dist/wasm/initWASM.js +0 -28
- package/dist/wasm/pshenmic_dpp.d.ts +0 -4789
- package/dist/wasm/pshenmic_dpp.js +0 -23182
- package/dist/wasm/pshenmic_dpp_bg.d.ts +0 -3
- package/dist/wasm/pshenmic_dpp_bg.js +0 -2
- package/dist/wasm/pshenmic_dpp_bg.wasm.d.ts +0 -1477
- package/dist/wasm/pshenmic_dpp_zipped.d.ts +0 -3
- package/dist/wasm/pshenmic_dpp_zipped.js +0 -2
- package/dist/wasm/snippets/pshenmic_dpp_utils-23ab7381b198778d/stringify.js +0 -7
- package/tests/AssetLockProof.spec.cjs +0 -96
- package/tests/AsyncImportTest.spec.cjs +0 -930
- package/tests/AuthorizedActionTakers.spec.cjs +0 -75
- package/tests/BatchTransition.spec.cjs +0 -141
- package/tests/ChainLockProof.spec.cjs +0 -63
- package/tests/ChangeControlRules.spec.cjs +0 -184
- package/tests/CoreScript.spec.cjs +0 -37
- package/tests/DataContract.spec.cjs +0 -170
- package/tests/DataContractCreateStateTransition.spec.cjs +0 -102
- package/tests/DataContractUpdateStateTransition.spec.cjs +0 -103
- package/tests/DistributionFunction.spec.cjs +0 -416
- package/tests/Document.spec.cjs +0 -227
- package/tests/DocumentTransition.spec.cjs +0 -94
- package/tests/DocumentsTransitions.spec.cjs +0 -699
- package/tests/Identifier.spec.cjs +0 -82
- package/tests/Identity.spec.cjs +0 -107
- package/tests/IdentityCreateTransition.spec.cjs +0 -87
- package/tests/IdentityCreditTransferTransition.spec.cjs +0 -140
- package/tests/IdentityCreditWithdrawalTransition.spec.cjs +0 -186
- package/tests/IdentityPublicKey.spec.cjs +0 -166
- package/tests/IdentityTopUpTransition.spec.cjs +0 -125
- package/tests/IdentityUpdateTransition.spec.cjs +0 -141
- package/tests/InstantLockProof.spec.cjs +0 -91
- package/tests/OutPoint.spec.cjs +0 -49
- package/tests/PrivateKey.spec.cjs +0 -67
- package/tests/PublicKeyInCreation.spec.cjs +0 -252
- package/tests/RewardDistributionType.spec.cjs +0 -90
- package/tests/TokenBaseTransition.spec.cjs +0 -96
- package/tests/TokenConfiguration.spec.cjs +0 -188
- package/tests/TokenConfigurationConvention.spec.cjs +0 -93
- package/tests/TokenConfigurationLocalization.spec.cjs +0 -59
- package/tests/TokenDistributionRecipient.spec.cjs +0 -49
- package/tests/TokenDistributionRules.spec.cjs +0 -313
- package/tests/TokenKeepsHistoryRules.spec.cjs +0 -67
- package/tests/TokenPerpetualDistribution.spec.cjs +0 -130
- package/tests/TokenPreProgrammedDistribution.spec.cjs +0 -61
- package/tests/TokensTransitions.spec.cjs +0 -509
- package/tests/TxOut.spec.cjs +0 -70
- package/tests/mocks/DataContract/DataContract.json +0 -164
- package/tests/mocks/DataContract/index.js +0 -6
- package/tests/mocks/Document/DataContract.json +0 -23
- package/tests/mocks/Document/document.json +0 -3
- package/tests/mocks/Document/document2.json +0 -3
- package/tests/mocks/Document/index.js +0 -13
- package/tests/mocks/Identity/index.js +0 -13
- package/tests/mocks/Locks/index.js +0 -2
- package/tests/mocks/PrivateKey/index.js +0 -5
- package/tests/mocks/PublicKey/index.js +0 -13
- package/tests/mocks/TokenConfiguration/index.js +0 -5
- package/tests/utils/hex.js +0 -14
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const bytes = "baÀ>ouSmMVb@1OWX,s*VN< .m;mcXtsT%;WW.uie|%!-DY5$e53WE~@`D!b>>,1v-Fg03#ruKX$;O73ֈCC 0q^<Cbq8<yy_p/cP/?b'jiuw;7keas5:ϵ@>=-cT!pγ>1a=`hWh}xlV{,E>G_#Q{teShc8]#Meӻ:[/7'$Wwads3gpA5et9V~}[-xinXMs.yy;}x='/(^ 'P@A~8z4=T/cQi!`yXVkÿc-8Qs| S],jECA@]~3>cp n>ucƊ~oKQ@!CF/?p1Yyvbq>FmyίD<3~6l-qB?l>M_>?<iX`dE^|2`}ʰh@'y|}<=~ss;%p1/aE5I{d˾zEK_p`E|;O=6Qr>NgcR,k(`N0O_~ k3nyY-}}Bn+Jz0GtZ0Fi6PV tC!˹D}_XE#>}z5 Pbs`_-e~?/¾r5pJY[4;[o?yCMpKQGʸ8GL~/Fr0Q{a<p5CX{t:F@cx)E0oLoH}-ncfpCBt9{zӵp'2o5kx^o|htFBg|MPCX?!_D²x}3fz`ʑ_>ʂe5fp4#8Horx>f':sviKY˵E`'L1_#ΗkRmA~un<Nop^`v~!v [jJV9ƲfX* ;``c'oxUv<?B{a.`yL1H pbRq}JXQkq~? `%l]2Pc֩^HZ~yx'A_c EbKt46mcyYQtoCל'Auuswe$׀D.0_T<3pXc?cz>r>/g>~?gwKljzr~zz{^~}=<~qNGQdt<iiyP~X֜ <ƛ;ACOiO8 RFMtxhUacJsogx~>f]Ew[w_Ƌm'_18r.XXnaKHXAOCX~Oic0NVq v@$n!7q7H>gMt`qlMwk?zNV1yIV|t/o^o?`#*˘U!`_goClqzr}??=O?_Q7=dDJ'*~wY#odTƷzvz};:P}yrmw COcZjnq?Xc'8;pB@Pӭy:pR=EppBfmI>P}ih>|[x014o+VoB(>zs#C2.z|Gǐ˭v^^Za~xwj6k*mp =tbÄ_H?iϺUK|g)% FIƸҁG.4fK0Z61<o!gE?!yΕ8#!6<үJE6Ëq[3*`6!j7MqK2@.@KgMxd{ʿE#_W!?_?s}`:sjh15^-hlxN[zPaC7v61_oW}0)k}?zokA.yr0^m%oÀ.B`g]8| ~, @#*dpǠ0/`4^qΤ!yBFMDI_v`;c_c(1qwB5A j@֨q~8aDwG}I<2< ;%/`OʘBct<ti4FQmQK,Htm'<4ӷ/v2!:t0yEPS8qCab)HZ#6âjzP6~y|9.j TX1n=rN |3qW!0Jv1δ5p9|saV9p=tEj>gxn<#O|i0`_/8`xT`xPcX|3{0Lpta u`Ӗb#)ƽrfVTϖC'#;.spx!~˞{`V`8s[)HEwc{?.52}~'KaC!y-]/x;o}'4_ wnVGVfDˁaFvC֡Fcqs NIYwuÓHc ,p-amֽ}kGx@b|~glFprjM@9K.XAB?RT14Hn KU[`I`7L-?`oƱf|$Z}þj* }JoDΟ^Oc˂H$$lTo^`0é6l8s;m,Cs!˵`b~=Qx(a+ײ~q>d'rm~ί?)0z)n(`-Grjè0B1>_j*~dʣqN|e ʛ:>4AWb*_fBΠg7gǟA~{J2E+cS~%,aà/F1Zyzcz6~{|~}}?ևy{p7<)#h08#b}3*ǷE-A1,Vo L@6ת3{id[%XB6YoEHwG?a[r5~#kBqc<Zd[O,(a4`-)%M=Yy[<?)H=|ih}MGPe<B LbMC5_c~@e6üYD^FC9s;@?2[20wOX@l>of,xa9x5q1,lkMSL`.x+:^V0om|Fp|o4+gvgt4#^}7^n6[a>֕wk8}h@0 6^wk:^|:%oZgSm> |$M3z/G{qT0+EқPyqtAzäP<~<gvsrFvh0Fw.'?XqPuo_j|/~B5֣w@y|=m)oF[g36a>Zip>pk-p-x`ʊlsA|°KxP/??x]Wp<<S;^ a 7W;mRB-?m?nV0'tΌxeVb:iFIkxrZ3ΐ|dI?oB@=Lt=qwytW'n*iʑ|0v0$AMxC|ƟP 2%Ed*IzJT6nztV<$1q<k|e~˺k@s GҸ'˂Cl)ӕA~Vr'B[xp qϘ.G%֠eWSmsutSm3dZPz6!K!L#VR+ps*Q+7O8lZ$eN1}A<^z/`9C;!Oz/RʫumDCJlP#M_a/RD~[}ʠLz55PuOV8p!]Hcץ˧|r$c>ҏR#h4n#THA?W;B~EDI^H?0SMwZ5f0$D:J+FZ0PƒY# TNʍHL'bt@9z6_# 4%Q%H9pD4# ^˿{˸wxo}^b|5[?IKzW</4_HGV7/C(]7^gh__6ü<zΖM:l5yIxaGk~3Er!iWiVX`×7?/K>~ʯa.0mkG'sklG>fQˣsb|3Z YV85֝qvp>/ofwn.;LƜiIDZ(#@niғΠHNlS<dp>N9l.ugch.z:~oyLr!B:H(<tk9(AE4LB#xp7tc2(9lv7)?H/zpDsHΛp)FƱ$z2ʙ81s4mJJ ULNYHCv3/ǵsWR1j*|I!8NǮ7SSGb/E,.JυΚj{oÙ68xHJ.bgAv6l}X.f]7֜{YPn5ffV^ZbS֬< LzG<Zp7H1M֤4qI*uw Z^}lLdVCXECi'H`hEv6ǁӡʬ:ge<>Ii<~J5xN!{f?MJmF D0S<p(YϹ|V|0bh3-X72l TSO7`wlw1IlϧWs/}0Ө6oIfCoVPEvǩlJplǜ9#+g4Y5excn<qe<8q5zEvu03@ #A5s,jNy__0EQ~XVlm M!|OGs#1@Fg.ʝEI8[, -xp#<uzHbDk`|F0L8CV%wD58`Ǵ'FUJμ>ώZk)PIfDmun4B#X~}(J֗8BRIAWu(XMAR.Al7Ûc4CBw:U,%bW^*ct/rkhWHCWCY3u_.<|X,k28 {PJt^nq3z]BSTl+D|wApz(c[EuM¯2`n<xH^CF|BM0lJ3t` 5X,8QƉy4eƶ4p*ppN°חSfn6 ƱӚ7sg2sgcʳqXGCƙKv2vNwҼ^]Sdtya]:MX(Xҡ,8z}u6nlˮpfc|˃`^Nx,[NK*m1[AFgMp|l(#%VHofD3z~<cD/+VC-brqn$=[sJ-3hҸ5Mk]z[ϓDZ(/:MgS<g*5d9ӏƪ1diҝCT`k'qEƵ%a6Ϝ rK2.x }+)lQK@:'A8LL>pt^S=K֯)D2(%br'-Ǥ!<R0և.O4b2ϑ>J'POcL|8+MeiCh~DJJ>>[zW[=#3sjXzu0X;ϸu5Do]`$֗Uf>MC]i֤mb[0/QG+(S^V ieK4'1wHƹҟR cʕ'JPxBN YΡm.H1D1J+6gNZ2%qEaVaʚWaF4[*9baI*-gLN'`^Kl0T:5g!-k^ZQӂ0X<Z,#pӚ3] pmT8+PkWw*rXl{k=ÂlnA5O` Fa.9L>r#r[1#T]ƤW[pj!6]+'>?p=!K[4)35{: _/$+$D2Mh֙KK[25<S8Ҍke,LLJ^<dEFǬ*],Mp@W*7RӸQ]_3+A=w')r69D2%WZ|LJ0eY.q-!t]+W}=Op8~[`+;.iO1Wo2U8Z #Hj74T/!$s1%]b~0K(>]J$Hwxø<9UmQV<ϵRV=;sa[b5e>')LBDӣ%: WάUH2i*zZ{[%r=]e֍W=zL`~=A^nP=6pa_f+èUBWV{i1a4i0OX rfֽYyHAd֬ x+BvUzHdDeY:v3w#`AzVˈlY-]4%BxNUn3z|e2LY8:2ғ)$OcֲXc`ʜנl I#3P|T(ǂYy)4gSFֳ}uc˫ǿBUf/ aƏcU#A}VFf%jq/_JX/jJEe5/ƂTVA_]L;H*4Xpu@tED;ChFfW p7:yxL}2G cU˯Oa4],PYJ.VPJ.a~q%G!8?XwO% |s+/x{_sc~˩pְ] #qW_9àqsJXQ<uLcxJ;~^H+^}aY|3%_qfYUEsýGYBnZ`mOQ)DaPmDt%K`r;zIJZoSX5}ax Bd2Oӊ H/n$)#]J5^573exMM5>Og#l}7 oyPv{@ǛTGDǕ3ÎWPCpMjNH/4 bYvG.l}CXiq5C(}cרynW s% Ch dU|Bo.x˭>>cqSl8<LtpM^|zkAfbu NwoPxF {NEo^VAZ(7?QwlS{iJ+eCsX-JbqSbʗi];(Wws~n[yhPC}lOD?o{taIƅ}. !ÛD֑FKmrdƋ~aX?FN0?FP|4ʑxingqSH,X?rױi{wGyt@E kxC3?e@l'= ?'t*Xö6Pk>MpYDP*1f > ~._NpM? [) ßNpϯƿ/mfcpqz7G:16AUVvD7{oY3vfWa_R}ƶ^!`c˷SZP,7IfM}7AˀϞ.b_cJ8<|{q0RׂX/z^wN>DƞZS>ywpz^eHSV|zXhn}va[p`2maW<=|wG,ðw}u:xìs)~U=$ÃhkKkwk`}{x>ם/SqdSB qϳsz2M3alaǿd[j^gGsIdvǫ)ox~u<MYCe}z}<]QS`O)O?bxWxʛGI|nI7p_9EqUe@o ~_}vzy7ǵ²RzA ηr2,)|I|0_R3a]}7[@_rBbj%tQK|5'c'xiOFNq4#Ia:EA;(rf]p^>_OV6ww_sio|ʧfҤ^Sy[yKZ{|elG*i7{4 woDURw!,~^M]tD|=!R|;RvsS7tot3]w#ʗ?{8c=|w%mgҮyD$c*ʣ<Yu,gusc?K8dQWh/֨Ͽaj|Ks]rkKL+yD7t74}D7CΣXy~TW]Wj7/%6==<>]_/gke}}tJy}$0M^__?ou=aK#~L7`Y?'Vt^?Ak'j}?>;8=<?{lnEq9?p~^^r_xA{}|;_/7> 1'tϿ?}yK#CUtwXINXʰl>IoO@g9Jb˓o}`˳R77hC>*wk|y^9},?/?_T;ƣ`he{}q|u|ze|'@j;Z*BXtsvkoN@fuqV}#%tL6j;~H|Bm4/J_x[@jx.0;p/KP tSϑ`_Dyas3/4<u3 @u=!dƙBMLLAǵN %?A0~#8gr6jO'B}gT+$PW+9sF#hʪ>S_zcΛb<<;go`C$HHI@NNrRxa|Z FcQ@]~3?)Rl.}ZtJiyj[a*!e=|M'Mf0XMOGC..5j_gD-nDgҌ71CEGcYfHClpxFm~2m>FvweFoNHUqtJdHos9;Gm %?Qa;G(dj7LI/!@vCG1<jO,dWGa'FQ_½SFpHj< P{9}N[30-~]BE'F%x,{G'Ar:<J._UfjIWbGH(lwsKz*Xy6b>=HOge2Oqp^=Ǟp~)'_UmB˕m@SC]T1%60Itau:B$0Ma]4cR:)d8HX(oYy}WW˥:9PϸI:C+ yϞ5-[u]USK%a_[$vSpROyXf#{w½#< 5MʱN9zH!λ8;'dGUigw|ts 'rw{<|> E@x[d2ǧ 'K8RÓ=y.dTEYw3Ϋ'fOϫ}a[QLj[qB/iFf1'0'k'N;+M֡y_O(mqRN>{U1vAS^ LGMwa?i`#?hk<(/6ϱAuӋy^l`ÁC%BFpK_o0Dl8ΪN!+OPfyt{3o?zHeS^ӄ75iUDO>n7~ED1rPb~T=ׯyKSh{^V7ElKS#5Oawu*J7=XmV].D+0-<G:zZdd$PU`,`tnmW@NFL3`Kל1m$KRsn4%ʂ_xkP)cDP()JBJ*4`ChQ!E/ AG5!;RRiHGd0ǀǠEdQҀ7ZCJLL>%ÒW2-O)$~FA[@ %vSY,:қo$ךXXs)_w)K<cBUarsH4=@yGuFxgs˙K13X+p{83a-r<ag!JbA8f DΙg.Q9JZRc1%מt53_!YfGY,ʐҹ?ʒh 5av'˂ώ:+WVmc3wNJ^BHb%4N HR9[l*GI)$n>JT'FjT@vJS8Irrs7}kwJz)ӴsN6¸Ӕ_pVƊN!WEHA+A4vtha(3pµ>M_# Q>?D.2`%Sx2n~KoV`?5i,STIA5ҸbkjqNWE/-¿ER !rϺQMejmjpJΞ)9pHnBgQzN#f16t~7ƭaHIJӉC1HCPRt^k 3z[k?p v Co@8l]`~ ~E(zD, DS`]wq/U-eʨM7s)~Fh.cYCvHpwHY1Ry1;Pq<dJiO9mTowýBhWh#dǨhΘ9þX$bn 3C`Vi/^V ʧEP7MJSKtZ8c*.!#q19ECMSQfYADmEHV|T)Ψt6n>V}EkM605pW(4^|/(wcH?h˞Қ$9$n^.VNK@'L-LVΏm5UPCg7obyӻy(;Ls<svy1.NϫlQ^g+nW@ ^T<IëAքZz}ˇ)/KC5 ¸W2ziH`v)f/-Sl@ F0-,O:)ZiZCa)*G;[g9B5QtwW41HʧV3JL.5H9=tO_Z`<6FXfҐG3D(%5IY%a@;mBpfg$!t{R15N9%1?^Ç>%=aIqPuP3+ʡ2ץ0C#Ҝj ƃ3.20@8*]T(3jA3<QNn1rf$)zh4HIKL(VfPsf,>;{rEǜ` 0c@{d~m;H:At]bph?uטidAe*ʲx2˱SO$~([Z'88|So_aA'+w*[e. q~6%_uDž6l(%3TD1AArvt*@S3w3~{ΧX$A}ir£qgW=;/],s(5.!zqG1uf+LXIyN~JU%BBGAװH48Y:mJ:Ӈjt8!h1MYH-|/]ND'u/c{0bf%¼P}0|%re3f]WgXgxV*l7xI>uN/SzVd¾G+aW[$KPӉAPG@7@@>v8e?mqӄ9w`HB<1xi(]y 4?M.0uaboL-tZ^c#~LuqN66g/Oy%RvrxF2#|d0O9<DV@-6ZÑID:NxgJ<,gY?F$l*WBvQ@*ҘV<`W0{+%JGo^Im s<ZlbǯI:icA6-vE,*M]WO#+c|Vy4]h4lUMhq7+ק*wMeMqaZ+VIʵM!)~o5]^Ϭz0mjfVUv$`3)LaT6DXeF{pwKSDsoF|w9rT?ƣEc.BgoG5?dD?z1[ZqV@(3=P2RT_jXtƗ:V/ZC5.(olU*H=()xag+d,QRj;..g<bm|hMYtNTK5+%[fkSMXDVQ˳|2w@I(+@(Gx*֔X/C*w֘/WSEPGN*^a1T5 S F3x|Dkjqh2QgaDŽ1n$k~Cp/vRjMD1H{E8]4^=;.N=A^/0k8i6}VdBpu8x{yqfuMT4DT.jJ%E;JlH@3Z NKΛBk5UiGM_O^t:]}RJgnN)M$}%JpmnƄimuY)VM#TKpn]hzh)coBa/ƒR0vv[N:QM_<ʫGCW+t-6H<VRxD<sgS4wiiTBp5[MG@a:0֘QuNǁʗZ9rv*Hx(@Z!2<ˋ0)vXdAwRHA]2,BdZ}ssM/AH!j $*sj1TFl2T^Y9!KLA4=DP$E9 >wI<PïfI!LcNcg'/:Z/V` m59*9ˣP<U%^:C dda5~Z6n(-d_Ddʮ[RӯaE28l<nˀ/1;.VA8; Z5'd7TpFc`}.´K{ǵ qofm?sáQP[[ /#s78x``#%V'ZVSSbjj'r4ryDCǒYˡNnV%+Nna@af% ymexQ-?uDhho}MLtg@V)άJ*oQ>|(F^7!L#S2˻7:d0e{MbHe2$Iq+@(HDj#à|P%zH DK2[rh0BpeMcX@DExtgJV6ҏ(#b34(* rZπVtpjbi7?'jFI;Z%L<b^OV^D27K;9<:25)Jp.'7`.7leVO/{ftT$<?4g|^O{'2TVa<xcP|enCYECjBRX]08eVrELPFƒ|rI#(|Ӵf5SOSK~QJ<{m,C1P=! /8g%Op`[wp#20tRVO05ҡvgVdc#zB^Bbn|ofU֒ì Eab'!(LW 7|``Ӆ#LD<,B5O*SGp[@ LLjL%E_BYãxr+C7I29h-+v ++o)2itp1ZϸOq0Ǔ:/yT/4kkm|sci?Kʓmp^-MƱ([$] H@ǀB|*tKKa 05 *ӈ:;>s2IR$c!o6l%VLOK-rnx?=byu={N-=X'EBq!ZLPEC8AלY@@ʹ9:1/*v>ul<THZ+IP}DYjl˭q386^`j %_Ug$6H%QƞPҸoE%8RhK4W!$L )A4!3F!k˦H e,B.BfJ@`NLAM-^| 0c7ϬvA?E:aa^}4]0,qc7s)MGƢ)BX]p-µea$g}:E2r[N)RyTD$!ixҙImwҀ-z*f|F%E˨: 730ʨ*1sedFsfNJ u3Ss]DH~^.5,Y8A6~<xR*C%:3vn^1cMafw3=RUÑ+Q[|o6hPCӣ>Y$~C(t>>MNEʸ3ƱnIFn1.Fp@zU}{1(#tb!]˼m!lǔd 8L˭Ve 3z{0y֍ˋpQ#RO6!wJ,A˃`vqy>[g]d0Ohok/V3x÷bNFeWGflZVNyR m%nϦM!7ǣrJF PrBe@<_!fd-4WCDn,u%MHZLQ%4^mWozrz<]I8<ǥ7 13cRèϨ:>ʺqÌψCo*D%buӬ.ϖ_2cTCDjR}mZIM˧c<vFCWkLҀ#ւ)ªrV%4vRgV`V42/EZ<KH+ұײlb2) @ZXd69@jLψ2MLlFY֪U<$Fʵp@3m]sd;@|0mx@wօcC#o5dk#>>oWJR9>q*6z:+[Y+M2Nʇ7iRLzaF{sߨxXVP0'êׄal,=})0 ÜCl!2XM:m)-U:,UÕβP *|mG1 GVQH0@ǩAk!pXWddBK.8i{ʈKHy$]ҩ:#2jVjlE$Gs2Em9E4mAJ)1k9;7_.zs ,σ]jSҪ'8[Bp+vL* ORA%LQV ;BUlj)/E)YQ#EjrU-*baBE3Yϋnx(2tBX6{1AufZu4<O]NJ]+Mx66 z{w?s}8xrr_s,ˀcwLj0N^ft^և4[_U2ka֔ j k@Ît3^mA@òpҰ!nZʨQh1 tqj'KP:]gXrpUS{5TA07nEVUFj!kZfYI^sλpJ@Jp7x8=X<cGYWoW05a0;tBl3o [EYZG*{eWPPc;TRVro2 D+B2pd1!3Di`Î4nur!֡QBfa$cFPZE1*~Dw{dFyK=:KeU{5F(s;UÜUf>vh+uTl#Ph h!N3ðo':_<FDH9{co~e0˦c^cC4,gatXלW*-L|v^=!vbdc4nRTrwkfu=?ae^iqC{hA8yUu?}HazO+eG6gUBFxl03[VASbF0IiY2#5(:©TKj,=(G):ZvάϴIӕ{|;κx)TvB]P%Ɛu{``Qm;(kU (mljKfY9 )-!ch@:ZbS0fTYx,0k4*- IJg/U!7s-M;E^!OsV]@^ Ag{E8<7b={>QneΞ[zX q=(Ql<O2Ý{^18=7aeCL-MM]`fRpS'ϹKkˣOf;R7z{$<X;9gt!X{ƣ6ʞTg-p?}X+I?6|(;m'9C *c?nZnEϋa֨GoSEg)|`֭u1ּQ{ZO:%!jC H-;eDl7=k>ZXhhfnM4!26_[^ [R<c AP*`B` 1u1Bm Fyn@pS:Έqwvu:+[`bq4,sX^'`eK{89/[D/-G¼#Z,҂'iaHƾyPH%Ji<O?;/RZ_v9g[j[x%`23^eW1lj`o[ v*Y*i_*l(p)d:c'Nf3F/l{r<^n*l4T2C(ҿk[;2B}Yah/eb7'$IΘzAopgFc${STǍHpjEO=]k`jDhx;y8vc*b%]q(^b%rSӼMF0(Naҟ#h]5Jx{jZRIA;fu,תO//_B;MOTK`A@0ǗZ'y}3ScrUWx|9֡67+9fiRZe'^X3xU;=Cn FH^A(}(^RBQyUã֒ELd0PW!vE$)mc;Iyb|gzVvw {76g`D #Z)]Tr/o:!zr}VD)z!4Lc=)+zDdžk $Ͼ,T$Qrr$M{ddm5_Nqk|*=ij)*@A^)Ar*|Dx'NTJօG#XNj5YyM$P-Qb2`0(qӯ!#@y#fyCwvvDHƹET88<wP/XxΦBR>#D%$!=5~oz;`S9i/_W{pqbjTF;wR0X^WGXbK/˴Fw8g<Gc,qz8:94s-8~%Op(<1wv N4Ƌ5wm<=!@nt:p@dT1vw`>N!ubx=oҰNδ8SSGoG3Rr*?[(iWy70%b|[?{4x/lӻ:Wd-?joנ ;k6{pn6JfFǬcΰ#Iz9<v~*w[n{>Ͻv/@{@@lm}!ZM<</8wW!'T77z*QK~tD:.X(v!/f?8yUm>=r0MDzG,x[,PxN׀Cö.U4#59Qe/o@}x!ׅN<JovZcu$FMeRyu~=]Ïnb_`.7fP+ӲזYNm>.a*~Ivb2 b8'HҬF0z,]u3h%q%-EypG1OF<?Y_QxI2fc1#u%[>tW?·Md)21OYʋʴ<G.QN(s`%,D*ׂi_ǑӳO}cRFSuΩ7q!|6<zvù:@S] zґ062V-x0WKSG+R=PUT>'d): ϖsw` WA_BFR 3LaG;Aj9)EΖCAì(|ARpH)3ʅBk_1(;su+3=%ǛOQF.g:Y8u=YUx@T5HQl41o«ƭQ|^.ʫTYSMNu#D<($>D!`q^nϪErAPb'016)9ʑ2NO[C(Y{uÓ.c*Hx.9FAzb1i!Aj$'LfW׳/ιPsi3q@w`/jKOp/^D[8w`?8[8wi;2ʴi]gyex:I2TH:{2!ϽnEWlGTDUW4`q˓^ A-*KP.%#>BI_Li4p.uQ'Ul%QwKdgejc{Nf6,, (Lf8,x/o[MdvXwsMe1tRLhTSujgSl/L<khg%<Va=/jҙi;ˎJ2)e9if=YQ`FmҰ*/<:YYI'hF}*N5Xθ4I4Hr*LZ+8[AλjGRUfO:<rGι IE^7Nht'Q d0S£R]J[N{PE/YAfUBV|rW#z|S@ç:I(tW2m}(9* +Q+Pm3gU%Av4:kQ(pK(QA1.5(+SdTy+9>|p79A.%gg-:N*t7P6</Njt**@[Ǹ/=RP<rVΧ9JV w9U/)<m$(Y*{I*sӾSU^K2>N$?ϱFNAҟMm6U[JõPdS9 21vIz=Uz{uM(Yi_O1E@]0a<%$C'i.v8::T<RsҺnd>G*DwW;%9m.tbH14io`]ƓwtMucc=vi];2MQ(Eh6$n^-T[hBwLn˙z/$ǻr.hʺk2,PzƤfS:|EflyǸn*Ms:I3z8gok =]}RP>)*~#<ʳS2 A7d8eW5tDˮӞ{Ø [-k,TM(}t`Ǚe05S0noʻ+dkdZ1a[^cwJ}9`gG6i r~z=|px7p ;a-Λl>S4j<T{×#j+ʈS(aiQ-x0֡=2[MFm@3$VTǍoר,axL^@|F/)oD5}F[-]%~}Q(s(W-4^J$@5@Mk,7dN]8lc%oQsƝK)F vֿZR92,=Zi1EpGYld b!@s~L`]EXpQ7UBEåǤ`CNoOV?QOpx1>>mZ:zFY0JSdT`BDS.*$=cTTC% M|)J5 ;UmwáeKo),rҫ2%xw *5m<;ÝnTDY*[*/WA*5!6`mui;<iWN@a `TҶ v]n]_K/,}1nYVF|Hu12'YS*hM{6g8֍oIYj1U/T?3Ai>>4֜Yk*֨vt A4FmF:)L.O=, $[v@s c9q32Tye0V//Se^7Bj}fa2/i`U|#;~>Led@w_d9]|@A5am(g<9VRSfJW/eM u%j{Lz`BSR8ZZ-)8+c/A37Zx5J(?mӕZk4{')1A-x#+MQ|T~{77$(a3xǸ?GƟoIE{Ι(S6K9*@W$W5:N:ijsH`ֲU3IOWS|<;UZf3Ӹ0q_U҂eKǯ}|>u#=^ϷVen$m'8+vt7.1zs.GBOn#V=VtLtFx+]8a]kdPMMxSKiVƦ>WVSFnY֔jo]kO%Z`Vcq[4{RkkQDrzm:H>ք/*>5W 6jץ[!x>o~g!C4+?5J7)6<[~q7++Ccϰ:_50u`EΖMU)8$9TO>{Y` P%+w5{S3?LxX~f96 ӭwKhkl1G0oh+V(k_Jl1NXh5RvjuIIkM%yJk֛ƙzmJnfr}ʭF^ieu*de/i$Y2Py0k{aUaCnA+Ǜ4 -}(F2U§U,ҁF|7g!$Ok$:Ɲx|5Mh?F {Oe[#THϪG³Rӭg9 PtLKn7b?APT dwhZ[[4PTqH#Qc<gJ}L s.=[FaY_eR,rI#~ ʪ$Y^MkJ%XW?LD8:$=TFwRRBQyDΉ@Q+L):(1P|1W?Yg5[}85tf4=A4ǻPL0?8ˌJ51HhJ{kh:2#.HTϛPD1E2ˏADQM,g0 +ï|)CaBҵejx_oƨp1;$ZN< z)l)sgƜΖNX1Se)$x[ʬ]B9ʍ=/t`dy({Q*2lDDž7GDxy:;Vӯ%:gmYHht =CK-˾jbW2FVfM1CC9z!@e˜Z$Me2^Ou5S?b$R>@Ij%qKF2MG$</~NұDd5ҠGcj2t*LX2 ~1b>Zcz$uΨ!iCH3(|}6Ga!}v7K;pK;-O1aPdJT?Ɓ!l%Eb(Y1p>UlXD'|-n8a ,tg2J=r]48:O v=g3{8L]_]t_֝xl1*fkhNt`.FM6@!oU(6A=@0i1T'xs[,js[_<oNuY@6G]fydqVEbo37N!HDn<ðhS3Fl8+, u_95BA)O2K?Ӣ.;Vx#f*,JJfK69MZ<f~qStf8eqӝ,Z`9'B:-rP9OC0mb9Ia0H>JU5-{[z |ΫT_K6_!Mʯ}[^D/I{|/#dG[ 9²F!K$ìWLFV~A`]0~t@De3P5m<yNd,sY~KPwbpofvm$1ҷ/V>Q!'K>s6[aE8)Z}`vKk[Q+¥L_N<e0/Wybr:ÊXL,;5?'pR+nW}_@[ qumcpx3m:$ w%V+yçOj8NqPqvK7P^adΎUEtEwvR}Aj5/PSo5/xBX%h%iKQqGmϴPvk:c JeC!@:u UkUW.tǑ;R(W.TǙ;Q*fS~E(:u G`kTB|jA;KVY-g}G}U6=ʸ!Xs*Mw0b)F=-L|r;i{2.Lҗ![Ǎ*[O-EH`O#GW%S}Ҳ$-!L!¢:O%uo>Lk=AAU63^Zj(/e[*h)A'hm֪0:6[NX^B(#SrHdeT )*ZpM#Å#})C4fPHt%(B4Rh$Jˇ>R Pi$:ˑrQyDmUvSLE>AӪxXÕ$/$Z#og>=HҲ3`.V#XfR˱?=9<1##IH`uRQmFP.F~fVK1TjQ-DvS*E6ZM*XNj5(Vb;)Uϛ mӛO,DH~%<`Qj-D^JK=YH G16b5n`Slj[wgwSnt]X6Eҥ=8;7kzH4>WƖjnek# _a%J3U>di ;{Oca.*pA<x}8[BwKB5A$v}4`6sw=TVpEbpk#תkCY+w[WiEǞ]$.ϊKUD'<NdMArY.*@Bhu*A52z'W97E/Eh֚lV^-hTXr~!8LO$?[|_ZY>;(]+kPW%9uvP k00kz/;z5^U-k<49=P{22`v{Ry.f~C'Im42nT!N/S%Ior9^IF3lOe²֢HHʠN~]#rU-'0tNʮJrH9=bOE[bP4Vǫ|XQD6f4(g$8-E2)RWZxF7 DxL-Ani-6`-#UXhpY[[m;4b1oRFCoo Y6('/6CZ[78Lxqk_tuք(yXjƘYLҹ1BV*Eyt`ӕ8:P$c_%H=porX4!_W0IkxXO^GK<~Pi8I:4Pk?%_b*NH,h>]M_-!sI$=Ω(U53ύlf%MP%?ʙVv#BzGFtlw):lKF-OnA%qGJp5 =*=_J[qj,>W|>QFB[
^!?{<pl|z7zqkKqv_0fpWkû^-oi:^Fʙ%a!S2mAQs#CDre(}o@RppQ}K^ז,<o[CǙ+6X `Nktafp$l~>LK,d*pp[ë>__oo;{msumcIg_>1#oo5HLZ+gKmgp=k{,HK ӻ0>sXJaþ}ʈtzN$KAXA9.h҃L0jέ0MI X(>c<yuN1=%yEQiB(,/ˬkQҷlg=$Xbr{RhLΖψn=ςLQÏ[L5UV;N@P׀T}Ot# I0MAqtA3||]do>-CUk+IkAKQ./}i)1%KEUPJõN=H>.k*9S8TV-(M4f! (Z֙fGlvl=J,A3'XlB`m|xm/fm+3eJ+DXj{bη7B֕Ax:dx:1xeRU!vF[3PFv*>֔lXz6,Bp*9rZǮ>;}$_lT_bWYEx,+?5GefV;lתno~|6>3$'jrMQy-h#N6so-}C ;P{Mazt8.-(YUmf@H{T-BU]1KM<Ac!>S1;wycB+r14ƞa F'%Qg=vFjHaA /!0lג0è[kXnAw$:c@L/cUq!zi%@EFaBEJ6F=[%3,L;n8>$aAx8f $ ES;|R7CuqB=o{u_M`csҰ֮rST61dN.}uugdҝ/b`JxY0V:VMki)M<ggB*s֥O<iҞ.*59y0BӖ_nFv/V4Zvü|!1[:~ǎ ҦA3MӠx[ӈbtnGYHcÞYT/:1Q3T`$֢cO˲U8iBl6~X@Rg|U9|T$7$Kw0O9N=4Qg/1WI#E8w2SDLJ n3ϳE7|_0I;?9eӂBhG/MV_6-/kw'kH<^rC 3/gj7X+n9ʐJY_pƻ]¡WBא?1iIpθM^o2QlGn0|*VEk!pt0xEzx(eHv%3M D9jaCF!DPtKSGL|f28#cRx)}A#jDϜ2S]wdSÓe~*1%;{˕,D*<qjWY_DŽ.z}ujD!<Lׄ*Rn|eXעtl#5T(gӏm~HDǁt(eTqCHBps$A|ϵpO5=Po.OC@מCQvjQIè5hWQ)hdXxoLv2= v0/zv@D=LcE}C(g]03.GnD҉}|A_ӝ68VkK7^ףUxL˭ZgZo{{z1lƼʐӝ3=Y^E06MC8BgT:8@lOzÈQuæU׀QC-YgG? gT-׆alMm`[_$Be/e$5)E#ǗKmR*tUJ(ð<Z>ϠTs_Fe2TzW?k 1^OFuH=ZVvd+K4+'jru$ҫ8KmjHF7:4AS5zg(_/ #jdq~9i7cTBe%Hm<`7FA{0,Ϫ@k6fV3',}0S1-9n^.n[_As9%WS*lvX}Zb[9<˭['ZoS[[_z1,yt=5N7lk_[5}7[T֑:2{Jih>lǯ_%XfO4+!75E++'#=RSzSIM+rbO#}c]Ʈt yOUvkdע<EY8[m4fίV:.tW:Y{.Z@aZ]4QDZWҭEӾp87,JxF ˢr=|wDʣh|O.P<#xn24w|,ro8#Ko/_kD*pt`IrDOwfƄEH?XˢDzO9RH3Xh=ƫ_%ãX!E1S'J}9`wyTCYqJYmGgmϝʇG/0H<X,ƺV2Nl7S/hHe{lx)!.aU.rBhQ_0k_D7ƚüT8Ɨw|el3YT~}'@V9[=Wqf;n!5D˨SDc'#)tN/)J<GP+] /ӿ03/WMYA our^1_ihopK˽nF^^YKL`bw˻e+vVyϭv>b˻Ə7y70B~ʷx99pS;n6}T6'o[_m_yWmA}%6SsӀX#A|V0rkE!ζJwfPLO *:ҺR`sPI$b~(yGj>/8ʭ֞a0cf<JlDEiVX M;w$64JHpGjYF_>!~AU+t7[>Bc1vj#wpN|vΛ'S7'%vzD^59a(a26UoF+so?d4zES4v x0R:fM:>n%x%YGtV|$ii 2NX bPMΞ~pFGD7=WP9yZ?Bk) [u^0b>,+{~e5KDHƉI]_DKno~WTlvrӎ֣2 i5xtW(jMCU+=IZ:`BN@i-7X4WJRҘ:2vNaI1L=F9jjT/Z1Nk}ס ZmxΡ-]`W]lAdz3c^w.)W[D q2KzX;¨'nG«/2T93g|,<E ʠ:h0O_p/p[.`#/ҙ-Xts;d6ΡˏYGmTn@Y>>t,]] |Vz2˓EVBjK=vpǨht]D-9R>{+JH+aw<86ns'tb:LZuzEUt~X]H'Xo{pS^Go)$EwyV9'GiZ*zIM!I{W9'S>PT֏Vwrd},h~MWtjd˪U#5TVh*LtK2֊^~<m:y2ZJc5+]B>Ve>m9+4Ij*iNu?iÀ5|7rCÈae51lg6G[CR ϒ[6;NjgWYn|¾H˪.0yBvN#$f~ 9i92d~}0A@_.fk֝Ó<zVOטUX+5L_/OoKu]}v9z~4$I[lR<@a>00HP*>ϖ OBCDA('^;4W-iI@$S4~ӁϢBZLk85uTS*1ҬAyC<Ï8+^%ih5l]vQҬTPN4[5[e^ pS),#3eJwBRөgD+8i|vז/c;{b5${u$uI[-w@[pR)4gH)B6<00* lpaWd8a}0%|v vyp-˔ʏҼ6'.EVa69#%Gf<2<Wkg+LDA!:+ΨcQ0mRPf1u)cהe4c֎euʲZNV-W3NcFFNKizD,%n*T(%*vN<9$RaCMfD.$<Mi0eH]8ir.ssl4!U h='l *X]8KW3`mzVHJSkY]NYNlbqDez$];^ӷ]Ko_UeQǪ`pUs-5k[a g4</c,}f7ʇcx+) *x3}CU^?VlJÄ3uG ]jtǫ zyby:Dz@a֊jdH×B)nen?:Ƃ4'@4PG)oD+T)jOJCLF`]WFXc^UTEwfXHwYM-yQN^*ʱ -aOC֨[ +lJ>>7Ən jkGZLvq(7R3.ξ2d#eǷt39(Mi.n}5~dA9.p$#@ˢM7k+7RT]x֒3MMO`h%oRםz*5,2wi(Ӗ|Eְ§]|ʤN#Wo$^OEH))j,>Iʷeg0g#PǸ{C'J3/'vo˓.M-u^]r[u1$PIf'%1-As?>%n1du4geιIS4-<P+8!c+/f0QYSBnǎ_Xǃ<$v1ƏH-?Alk4o|,g#!mtB'>_.nhuһ-ti.2eT*mK <E6-F@- 2ptr M6pD4emo1RY~ML-`Pho*NGӆrjdx ψgUK3kK-#w<=QU,<UY3b.deBypI#ƭ9DŽ}YRK8oPiJMJW]QmJhΊHd30OlHY֧q_y.w:K70u[qeGlTr6+=tF0ӝzvǙ1%kos+.JkML}#:AN9U:n%Crd}J7}O'˩Z*}Qyr,f,Y^./oHҼ5ENjsK80-mcf9 +M:e+I˻FnVHY)|tC$~IҹFmN|uRyMθjPy;BX:bEϬm-N1cP֢DD]YL`MBNhbbA˒4$wgMau%q^cE*dוJWlhΚM'RgӥY+z<mt0D`ǒX.;#q_:UItYSu*R9IH3A^Re2``0K~[RvxPEVn }4m)d0eF1Ʊtk֢{((Q3i)`!ιhEDqRVʀ)#8FnTS3qjוMǣF'xun*Kքð^-/H8Oy*@lKCUtZJL^ғ*Ldҳ6Fγ-ֻk?A~zmg^_D@K-9^Y1_81| vE˺֨1v Ϲ!ƧQI%~%prUX)7PY)v.TMwSVUƬ`/yj^D^!]iM1s.#*RUew5 0˵%/fc/C/ӊritCu=8eVsϽ}E/KNҲo<{f7IƩ0w=ZP9wbyʸTutl!L,=RM[}k~JHCfmy% tgRp+G B+<vk}Hfe 4'LBD0)RbǼK_F7v!p|e~fRPӍJs?JkbZd8]eDƫ1ӻ]2v{(uw:âx>@e2$;@;xDZƞ;e45@0>`$D|5˽(MY:yDEXtoÙso[oq(^hX/TƕTdT#%%iJTD>bAZ`QgRn~OU{D(j> c//֬f1N`ӵH%j!7[o*'IϨ*RF%~X5nZʇ1$mJ_U>pE9V[d +Ǝ¡#$z+1#f2n+r%:H-_u^HlWΏK (J/E(<*J_rKWF+Ybt _Z*:˅0?a/@/Nu5)dd0-Id4i[bP]ITk!Rq958JNLXL5$6`391Aʀ@l.v2-.#*HJg^/)-p-)?;_=Z6PE0Ӝb!i 6s<k*ʂA+«TVϠo%3r<be9])w~{)9JLmi!!Z_:!*l'wYA;W_yϚ@CÃz7g9F2xf$@Avuz%(jT)y3#Pld]Y?3i<ǬND.>aӳyGrMU*BSI<e]BØutKUMAz3/~CDf9P%*zhDxq;2X8U8jUYBGVKq$@3!ˀ%toJfTδ#8m,_yfuKư8RP4ֲ;8(2Σx${b<Igҹ/#ǐ1ϟfz-ƬL%Rj)W6gYTV/#DXw5Gµs~Xu5)W75`FG[-AkON[G6{B;4Ecw5T|Ƌ>OWWuanK5LS6DL2e7_KΤT9ƪ B338IhS]{4%:tÃ9±c}x{u^wJ}(LKB4]KָmHi,2+/'@7S04a_LZ]_rP9Lҫ++gf^R6Rj:X*`e2dGt9i.4b;>R _0g/xh#'eEVhPNh{usNHpRt'{NlQ6BYI([amO*Pfqe;$QgFfI`:ץIqUBOMLҥ)VjNy~nMnDS_Smƴ O~u h@9tX2@v*EHFQ%]Lj.2]Dž8:YwAV=QCfmxTeYzRaNx^76ztJ~G3w.dHJ:`CÚr5%YpBA4+)lIx,bREG)wEdr) 7/b ]__xYgPV1h$:}%#$#.DŽtrBg8z=P^r=sgMxg%Uw;hBϢCw+YMהmZL`u,Xr^UÈDj6tfƣʇ];zFeG[vM4yMcuN<M_7ƥ:[)wwӉ~%Sr^ƣKrKm{!EIO1}0OPe~i`5!Hi'!U0a=(ELjxJ֢5rAX(<אS;nZDK| ´FH8Ub`cv[[|r`oY_[oPKu#@R?( @q+KkxxtHs9dwΡ!/@_Uj}NJ<-Rltojqvrl!(J!5{ !R#id JAQ`o.ǛO[.@:3$n]:3 qdqVImSS?l2Ux)$:$V]vϝ@} ,Kcw//aӏi5CgNFl)gk0+Z|rp:,.]g44_flONUF.Læ_X2Bӿ?CϚ6P+[g4GXFXBZw{}P1c2 nlC1 `PQPґ˧f-cbq#/06x/mLd>ˋ+O(*t,4TF`UD%-,oIif>ΔIPem(bcrB99c@Iҳ`8{Sz{s[^;6T @z]cBʞ@vXˋJϣ@Jj 4~@iLZ֨OxP{w>(K`Zǩ[DZ C2%cT7~tfn~.3v[WN~%D0#V9pJ;Sք#djP#[X-L5_Ɯ_+5!I֛¿aPם$M@Nje#@htƨb8z_>CEK-]jCsYΔ612xn%Kd=h3w63'gR]}OQmyCx5o;-ӗr-YO~95YI0}I 9Q¶d HC41{SCLJ@3NN3<:w'eMSe%U'Fu<83c nΛcˍ QKwx3?ΟqB,w_S)P<i)O*LYln*/qm~PׁRxj]pײ1Mt6FNLGW3lTzlzcH#R5u#Iz|EPS5,kRNN7ACN^L6~ZtJg.#Ӓ)#^/V $^#X')6 (glJ+S#AX'҈bßE%@HLF%:)vUUiAHx:I DJ?4HM:N%]h8|k.{6-On..d@'W@UzD,h2±q =zWOSGk w2n#L A!A׃+ON{E,P¹ÕNPu%0iKNBrK$eˀW];xc,0i-s1'7z<Jnv%'7=%O)-l 0[N<Zbk}UHIjJ+Bh3#KRc<DB!1jk71~$2D 9Ioғla)4U~#jfbnXp!B]Ƨi'aLZ1Mc>ml;tM5$!{Ҕ:bPOǥG.*3v{i<Rf-|;eN1*Ejb[˚/fSt{O2_yW{DA<yZEEytA09`I.yHMƩVHj$oyCUϐ8D҉o]TtTY*j)='@di֕QF+d#;b<ZRwkעzyH#iGiDImBNlPo7FTEq`tZA+ ]/)φ 53$vmOf1!cGҮ8O/hQjw%[Oq]!so ,1l0h˝Y@bmʐRμ0!ox0Gy*g9LG6s4I?i~S_.Mus$+nUrF})9;V)%$g.:#6X?1ҒVφ*r!(ƝP6)%:JZOO?[=Γ]Ew6x<4G*vG>S@_)`< T6RY>glW3JiGidz$Ƴ$2}y V ]2zss_[m-uU+?˙'>Tʏ89$R]B4'4=U.LpU{mmzDq9:IyS$>ϚdE~>+7CYh*t%e4L-*'j(Ε+;U#c?i# [xʰ4z?MwKzQ/fVGz1|3J:mK'k9>4mDjVy5v,i-ZNM-EDI=$90bU**qhr%ZilʗMte4vM/i};nkJ_M[,(itA7iYSTPS>KT6NT2 FұR5]YϞ1UeU2ˢ2y6m5mWO#wbapNS1ayӁl|~nʛ6b=;[ypP,`}*%zo-fʲǔ|8JDPq<?LdfHP'ӎ_ƃ%k,+Ò#$* )*eA= Dz*H@QtR(6]'d)-qrqӀ= ,WO<O@@}<mZB7gb)Y]@'lUNQ{KJƛwD=16>6% ;dD1Ek|>-ǥZC/E=Y$<vtx˪2 uMk;ùφ3½MYP$GLsӐƌ,1ӮDm$FIrudqPwHzNNNk+WC 8>~}7GZrJoTExhǍe9_חSeUOaI>0#LQgD>BrǻT%ZAƶ;K$hSn+oæZ~>.uk`R[$T_Ƿ nPρf'Ta4BT1ǽTFlckBrʷ-C!I(zY`.J:r!^ש14A>ti>$$q-T175Vzi=%ˇ~jƠ,M)YKSb$NbuQCҊ-yR j_KU+%<M}'KJT.[)^>U6-,_-ajƖ_:1DNvӉuëàeLA|)36x8)_UYvqM|P~YZK~}dRa)75;oT2<0Ϯj Inӵly16>$h)wXOωBV%i!Ɣc~!V0r>w3},w6Μ(m@ӛp,xdq$ϸâACju%JaR# ~DÎ l3#a0V1@mrbiDϭ<vLN=kY<e*:ңhV:Q[ dq(cQT,_tfxֻQT|O)װ[vvu]qc<,pqASSVggHw-S| V._Qsi%o <GM-@9:n8~skCjW.pRҠx:IΕ_o7Ϋj4$ˉKQrO%/xL>H+h6L*,Q0B:YG'-U[GyO6ƖR6R +=(J|TdEU)rIƢ$K`]7_Op3]CU;^d3lBlZ5sDl=a{ =βioJ-%1319XkCKwS;P[E|[;WZ _uH)>]9#y^7còziF/DPQ5BX<$MҸC'7*elRiWGlde)2{_;{EIêZ*^_V*mnfVG0^¨| ^ʎN1DL'4X;)E.%pҘrG.EqPdi/h}eG_*Z^aǼ%)F:1e|?Mrw:ω%ϩK@6Zg=c:]$@LUcSVδ5<$.%LD2ZNwÌ1XӧP0O+Q$M:IQ{z02MdQzg3;x% ʞ1,!Pi+SZLsyMFIjT[OUu6=Yҳy(!I!hN*mRt*4%?Q JWzE50΅DK'=EIDF$:}_@{gE.+;=q;#R5B+Ok$6NHE $@/h:mҶ}'|Ibÿ6Dk xϞf>,h0Tʞ.ʛ/%C>U+e[39C,OZ,L,OvMJe0é0w)hRM1W8s)%MOETTyA](ҕB(ofW~~%wsZ7*}h8;Po$61?ҦIIQ5*A$d.ӌN.Lql[Ηg!ütAkf8p='M%msgpCS,)cYSGFTdq?/Ibg7[#U1'ƭogʬH3[Mij39Un}mgL2GӹP=4J*>C-,T)|0ҰSiXhiN rjH{ OeU{<NʩOF@hNB)NW[7LS0I:{L!N|4f!CR$?#eRS^Ym92> :aAg'Q3BND1h(+WRdA!50κ`Z%`RfkKY=L./X]a(Zz ʙ[r=Y<ICҠ{<*WIo@:._,ˀ(TkS_B/{R)']|Vn_ hkmJh/jj.j<%@BB.ptә1Xd fE2^ӣ18k0l IY K!Y9j)h]7Q E]>Pju{϶C9`u3Q2jkUeR@Ry}*T'bPhTvr59n2ǀiOt3S<tӳs7^.^',@~;fΚdsSMHq?)vv{[;rWǸ$u3|#V~#P57/|P$fT>:RP$W{jO)W%+OLZQUb@TfˠA|%OvFqB7WmkMO;Z^fF*z-5<7E{[87ww@848:puQ{_Lx='?LI}~$#YofsL'iRk>Dt}>q({- -zib}Pq.og4Xu(vΝ[{:Hg PUm1Ej<c]khcV^ӒGHL}u^d)eM8l2Mpd-f:$ϷoJjm0WmPZYUǴ^r.KTq=*-*D^=gp_$]=/(Pi)]}J] $xϙ,jX|*UwRN*URrQeId(%.PH0z/?xףVpxCdQ~Oρw}>_3ι'Rjd$'TIkv(^ƂH -rsWÈLӔ<ϒm?7+Oט68^5jCV;46mS3zAN|0)UL>L{k rrΞHF V7T-s+PRh3|[_ZcnG[VOUEciTl[>|oB, 6N) 7Ay[Ϗo%5)J?0Br:=kl*y!z-`J!t%aWRT[{e2laX)xrUoMUO7%_ʠ5|T0EG*5dz?01/`Ϯmgj$t[kw5OolSzˑ )U8ϺM U2*+}m(dP=i0*j'?Qp@|,vCsJ{o$HPv{$jiGG7AtE1s*avp4-PϤÕxϽ`09lFÜkVӃ6oA44үIh, dV,Ljna#Tfʼ1q/HMz)KqMHaYFJdLRrpr1h9d%҇Kcdˡ2Q'[z@P+3VP~=QMU}q6>2-ti;Qwlnj|c|ƝW5]!LqjƨPbaXÝQQs`A?A`YI0<.=!#[Fb3oҦEBz$@B A5)y!JO_Nd;@R{5Ӫ+x=}c#=6hyǣFg)GsD!e{{Ï8,K,jʁP<r-C-Kc$Oonc.a]ciWu^_U AHMW֢M8iK'K3pjhZ_Fwc7]XB!*PӒx.Q)2ϫ^3L:҂,zlx3c}M}ExZ%ZE$$e *3i52rDfV+@zˁlvZSVI.=.HFw*T =Y!nbc:GJN^ilh;pQmO>Hpw4:*O5Xj0K9ÌG$r` q4ECc%ʥRgzK/˦a!brE`yǧC]::DVz9e9J~?54IJn3!vR%>Z2_eV!yjsv;2 NXeK^^RǧX<tE :-NLs=|K´cIIzcV-d ,e_ -]{p3Q#O$8 D6ËCr;.]>-@2Onz UqDӀOP -lKsc_B±eH.#0)L5:(LkYE*[C.t*yf.uR.U|év2U:S5-m~vQӢ_ցl'6VgI8!n3}KMm+)y~mME[~VTt©j3Si5ASU[ו'.[ZӃKL;Gc4?~socoVxp#+CnXˁflntuNnמ;x)Hk; bZ;'Ttf=Z8XbOϻ@F#./EbIM6X/_96Y%BBgeG'8ʵ6V^,T{`JBxkro_@oD8/LmY7(g0C x3Ef|i}7fOHzR-EU'F5bI$LBi)O+LOeu,P'N= (;ˍ-DhFiyEX(% {kP(Dz?%ye4]'W[8Adp]ʹYzC>PQlNC`[9O2`>O1ed]3.O%L 3AG+kBΌc_.sKHNf?RD.+X*JL961r07Ti*λeIJB]r)AJ?φ0L(dhdKo/*nKuJxkQirE+PBz ϡhrVqbj^$(vEtEOXU7RXXEEek)U,1b#4AVh%1L3$ndA-*!B<~mwl`vR(5 3{i5]3u?'d6- ZqsJm|>3U{`uVy]Ʈ?/8tU(Q_6]j5M?Jz'%HMAE,w$3j4BV+YE/tS`QJtcӢ6:+z<]S+MVeVmA-וV#4iPcRb,xx_4j aIzpfZ1ktz#Mi}xz:y˺֤*`8Nst09ϐ--SS!|$'^i 4sS`TAHӑXNy3U$B* HI_tV+Ӌ FA2~bhni)T?OO|Lqg8H'`Fx,`]e9ʏ8U|җ@+!:ʳJ.0O|!?)b7Lxқ}VI-a^n)gΑ=mmey`Z(r,RӓlVx~ma28nNKK2};;,}wAQ%#{:ð8Po*x7LVZ}@[[Bz}/p;mg>ˣzu<ƒiT 8di8tp84,WCR8pA4o$Et^BX(C0)6|oʊE|˂c)*50R{j OjZK9R)13ҵu~~}YC.k{;S6qYC0w!hÊ|Ksa]62T;?Xui.9Ɨ4*Z)HM,6n;6TV,8%bCGå6lp*lNJeE3cK[@vY g@aníN}_@NVׄ+.MJ.[>$Py%QAVZCRlLd-֬<!$ǣIrd`KÐjPBcQ*K6Y2ri-6=s8xp<`phN.}-mAUq8hÀvBiJLv8F#ʓD{)oQR0jB,$nT=8Yn/>ΌlF+bGf']ƀUpOǹ>/2/@r348oeqY+ykMeΒrC:?J,:x10ZC:R:8{Evedf Bk@#*3>lb*vy|>C-k'Ir}nӓNt!2F<jYCBe7:jzyzDav3A^JlǼ></-˩ia1lʉʭ}%EkKÌ'O6k*n{87OL;7'o7q>փˆҗZtWz]H{GVXϧS*uV<~j_״<WgQ9ο7<[AcW=LwWad|CÆ-A<t__^Q oQblcZ(}3 WHQK+cb 3']Nb.÷`uB38q%qӾcsn;Hϐ*0|ESQoY2hά4iq86]-p-Iu $rb]tiBәz5n0ye):H(MgjsEY3ntz;+.U4_G5x?bk_<3KO+6%CO;a8W-(f:*$mm KapXq1eXkd,DrHQR``e)d3c>*KE(*8+!M!t7J2.NoFƻIWjdRlQ7$^Xi-φYƄ0 `|97#W@23|>j_]1jUHN2nlOQH;>Loy05L/f! ƫiYx7:e12 ǡҔֺ!h<iX<)dR8έT^=}17GUYphrwa~_r@R /dwy*WI):TD]LscJUzooKeҖANӈD4}7Ci6~E[^r;P7tfQT]e/'/j];8yizrLtk}K73aa[J˗g;w~cPhKJ'k1^v7{veuwF hi:E$0Od6*c[]4'u<9 wnA+qyR+h !0^y[/QJ>APfïrRubfwwRe=!CXIeQ0yKe7nRSQ%lMQ$r>F2y4RTc0wL+X8x!FJja`4U'j;Ëpwh [9O)I+NjasOA«b7¨UK5%6r|K4xfu!EmmiE Rϝqu8^3Ә@L{ΝEx@.lKǑ!4MY-@6ehb3CV+>LdIwWO7}[AίvCY%L12L[0]62buy|y}gS-`|ðtPIuhÔ^#֖MHJ cju~ZM5{-MlAϮY24<fWs =l0Ð*r,:fJ;b;:QhV0ZׂEN1)Z_.;LjaU'7bJ]F-c2FMx4}.W˜a qDsb3jMbFQ!URLǭ<`Ss)!<!W.`i{:{[CC;qU8.paVn~7˞WU+xFayZ=Dk)|2>ggt-Da9T'!0LL-|]`P//vңyp|scW9Jƿ9IDm*-+A>_Up¤Yd-YrNpyrJ<Jl.b5tέj?˸gqδExT%Mn7<B8RQuRT>ldq`gWBZtywqc,bsW@fV* c?>4{C֮.֖.÷f6b`]ΰ.3|9K,m:t{MZ_}*=Gl)cE%vOt,#pVbD%]2Y13τF<w{{b?~FW7Ik b vƲ;_1z|,WU$8U9wb:ƌ:1Z}gF,9Z~s3o u7<#(rX#(;ijV(GNStx2C1ת= nҌRrjqx.OFDuW_]%`Bd6iGoʤF`Uwxgy;. Kusw'K3*@s) wltIV4FpײO[*}Ɵ9G*I6MN6xMiV9Jjaʘ:/P=tv8 ~l:`Y~«IL$oK2ƿ7a!nbg M4IV:XOTiPM:'eu73oBMtnor<5xfo+lb;<ImLçu`[C,xvhp+s[-zBd#a~}{zVCiϊn(n,/<Ugvxgw%m?or*[dIa<-NC@iYcuC+׳%7 2`7*}M(YVhZ=-fM~q!|c=;N+eCcVXTOUzp_;faG4Ds Ӿ4#JL*w$y}DOS<BNM,G`SqRY%dV6[sҊBgV`?v8px8(xu |Y%yvtΉ<%<Y3h,;#xh>'G_KwfF?F8WrE-tJ82hb(Cg,9?r=+^} eH/ze,mFsʝUWN. !DV$Ad jWH98TRb8P|1[;QǔdғgDSJzp[!5(gGHBp5!KnYI;³MX_+#kVpψ8YLrx49S4KkSz-ֵSsCCoM8:`DOJ0DJq˘M9h%M_xϘMZ#s#ϬTtv6UK`F%ʌbP~`$xEdz^+JY)>LGzW``}0]¢p)N-fQD!6rSZ2@, r}a>9ZT,_uώEEsֽ^ -ZGFϢ2XWxXBx5nj#CYhdmeERZCR2iw%XU9 I UQUI`Fˑ!1L/V(8tcxiLB1bh#;2W/61FIlLǪIc:[Xҽ#QΗ.|THcR$Flb|X˘~zPx{kfO=KT1GPv=1ouBFn2¥N,pQj-U<=8IuFVW'Wf.:I]X@x{.x[tq]gd s@Q)9L!-'҃5 b Zt+p,SÁ4iD9KE4i9N3Kbm.H1Ɠ1:Bs4DMuET-n23:{Z(,CErE7#IXoq91^_9P8@4KSáx8]q(QӾβǮ,Q:;MMpm?ül!X7ho(1u 3x¶sjBlj28{5f*wc)M~=(jSήyҨ=)+K/2=(!}0DREw_p]j<OGxS<HSXk@`dH4~πqu?[p5FhR53`m)T#5EғDIxҐVOqYàgk-Q>HC[nem$OAַ4 qg!HE,֎{M,M^N ckJ 6joX7}Έ'(CKT*:$/UZǚ+*~h]hWX˃PTysZDZgp(%5f>3Alʳbn~(ChQs'DSgdlAw4zxN.ytBOC'9~+ X:kÄORm5O}=v>d0,,?#MT,BH//OsnkP%dJ1Hea 8vUj>gsʠ{J+,0q=Lap!<-#kJFaq:-)3gZVe_:!ր֖m6LOsd'@5F)ֻi)-*_yÈR5N/үe!LH6Ky[Q$^t%oVXm~0?nW`'gC%Í-#,ǯnύ6-q0=ed+[-% uDh!.0:M=Vi.iT^K>n#li½QdǢrGn)!]i^[9kvFu]`}2Rh(:Gm+<ul@l_|~,n=!ǩ!`$4r0˹ÒZ;X|MA(;>g`NoA?h(JZ/53Nw|qKi)B/H]OY@T*em`$Ny[xG(CQ}FZ==cdtgt>O d:1Jw5A6l*1I='~NlΚ`lg4GPcMRg+$C-!4;#Vc ^JAnC4fa ;ko#<6DRx$/#8_IΉbPo+/?DE4˰92(2Meun<JlLsD#oָyzouL%<*4dursIҠbL8bWt|8D<7Nh gbbWvJU6sQ,KM?Ό S:jT2HBaDCB3b-2tW_Sr 8'WF![Haj0]$@;h4c##NcfNlj'km[DvoaEҥ?f2ַMCLstt 8hT'XMcê>]Kpna>4l5: ;?;*)jc]0x[_GIZymzw_}et)5{mP}rykil9T1-~vp2Hw3I#KjDNaAO7?kk2csI(T>in9 7d]zos.|K={w<op yt!<-3MurH$#xwO0 8wUKr[9*Nҿ-֝f7{~uosƊ5~g=TZUSA|KBebtauaK'KF{m>,oC֦?Im|M*p%Me^EuXk+ת S:j}K,$L~{E3TZp#9d|Zd}5KÚ||!rnQ#t6@`h=k]8A +ǐae-3C9H+_L/f )+O)TGxPdd0kB,`RmaM3kIʬD`5(*P}hID7t@*ʈQIYMU3=BC3/y'AQW`$)5mGdPS3PX6yv<{hӒ$CATrLun}ʋ:YU{w(n[;@?x~P|c[#lNL(Enέ}sG-`BE ǖQdr]`f@>_`Rʉ%Tb p`tj*]<6dC<brm(3WUGdOnw%/+µ_}[mjzq[=c[j/* =>q<ʡ%ϚuA,gCjn3-MWq]7,~֭/F_^ to0ǨëIVMNiE*v So(}U@XIZ+X [!85-4OQoc7OÜ˞_oMsz^Y0P?EDr3k'eU5mX[,o˯m*WZf8ҺOdw)dFwf;<j+q%ObGRUMAh+f>Z^0ZHb6]crvKW3Yc˫IvdVD, W_9 ds15m_- pL0sVk%@p73Y,ƹ-BaH{iý4T8--5DDϏRUs9n^kU/<b}n].k3T<5)xeWׅ0 #Ҝ˫`~@!LE:> EaktD}(@n*}OXM]X~miuhw@sO`o>~2SQ`z>|uMyP< bNJ9B5$¨Yq1c֡dpΥ*EAӄ H^*5-z9ewaeEjkGUnhx#KjdǛ>>lW6l:{d]Xiy-@?6~JNfˬxD X@?L+|{a1yv%4x6A#gB._I{=gPJc+#oˀTob%CKM-P(UkʟC.kZmx5?~JsM.+wl/=v2}8p[9O}L,R;p0-`';i(aR3:d?x%j 7 zfMQ-}ʮfJ 2+$4Oׂ?(t.J$y8mhoӅL$5rtbGg9~7OHz])pax3?ΟqΞθc˄<Á{~J9I_Ɖa5VghbJ?lX[9YIM)#LnEj?o]Z+bMBhqOr5J1>9%MiHf˷cҲ7ǡA|]Xt5Oi pas$c`,.l#4=yp:=e^6Ou~FuÌm˙j@F X4!J#=G F^ƕAˠ<2i5±@hAnF1p]a;oubP-Ӻf#cҧ#[weLY@}$6Qb5}f$3@ˍ?dp#SϤ5gZB]kh;+44]_xVJvì|@RBp8` !J0LP82,æ'DbXf33ˀL0N fEcwKb0,lYa$bVzJS3AU<1h[Sj!d+;x}^k0Uמҹ=:o@Zi;DaeXwG7^9I+ƩΕ])b1tgʐ%M(ϕzE0HENTCgt2?$P0Һ.L.NʇKK9#'mr7v;Evsiר-bf˞X=.ULK0(Tx[$Mu3 tnTIφTio5rgT/9xhZ$P6:$ר^]@+[RRׇҖV!(Jzla#6wP3acYrcp%c%3Vv5'Z$N]=Ƥ G7:(kWϡbǛ=cVB%(Zl.E$O*/7LPC3]|!¯1h_1Q~Bz-kd˓T0SuRGxgά.#4J.HY-FtZm? 1hJ)04L/asqn6Y>{cVHwΝ#PqUO!aZ5t,Ë2L3ֳ#vP@E}X0?@8^)K+c8ty-s$<,'S`]gq.57h/aL{Xhj3YhZ^fv-fNv@eBZE0,g'm)֍5n( ~IҜ-5,Z80v%XHB]dJk'Ec>{VQhZ: NʐtjV{OO֭ZP*paך@Sm*}q5ʦCQ35'fI$*{G'df%?7.p )|qeyOBCIcV<JyF3yUGyXxf<W˟LKjUϰW| S'=T)Er9U:t2Hl~1b{TDfd^0-a2$GI1)!Ͽ?QZ$x5?^bC=b8XY tf4$3(cZi~TƄ˥4!+iJu{F7JkaBs`4NJ,^j0`guh :#?#O:Ò h*_yʡzy@rji]G`P 1Ɓ<,b*B>Ta58Wh f,jZװp%B!Qd}C#^FmuD.7C7!ơmu1aqN6!]Ҳϊ8>W>{4n}[_R!ϝ@{AnX?7bEqsˮæG)BCH(*ϼol:=wêʃu}^[P1=RGO(qr#e'^DS!SzvΖoM_kDj%v#,S~U[NdK5q]V ϗǦB)i[cjljL(|AAa, b=| =Ir.f2VmNJ0%'U;HFE~( M7JÀjM @=WXǁf`E[^h^kǛ$j+(3t<R@cEwJ@4$d J-.>ˆ;uFcf/:;-` 4e|fncPk]D_G,zm~LYRqiPnx'>jZ%%]IQ1isXuQn@W3dO0ejx?][};UukW6_{nAZV.qiM:Y;'.HwkG/IHZuiM(~ך{.A]:@n<Ҙ*83sz}u[ҏ(8Ҁ$[_W;BAMSnNLw©O@+ehc^[WxuDBOwYlT.¡*(]1UF;E9!htbUb@21If#|eL*$#Ə9'dI.CcƔ18HPQVwSʓg 7AW%]JsC|*lXR=E ;jT (PY|+Q D!{K-d$R?C' :ҝƂYӶ]*X.¡/O3zø{FΈi--I((e,El;ցDD.F7#ZMrM(8WdXW6DVb^Jei'(kHύ@o* [I8BPySOO0O:N5*RUfǾHr?t- PrYÈ7hÅNb@_ujӤ Ke A[442#|k2Oo(Ya576!2UU<^! >%=OvjXzsZJ-oz5q{0JַcUFYW+H>0u?w zb$V/m+ a3Ir~efIMv/ҳWUʢa%0Q209(:.og49<ES:~gB˗ϘehRx|jDy_m_vz3Pi4˼wv;ΨS73`8(B>m?[{>!E#C5ϿIrI<A|ztt7_[MJ2AVO>aq6?XhHCng86F(tDJ=v{| 42vnh%_?^ /.CvKʙ(kOξi@7$gx7%i =^=:/oeV9x(#,|>F<'Z=*=OJGi,@^O`f'(DJ/`)UY96Xu-F',{-oFGEp(Ë(Q6U H4eq2Nu+N-h`SCMdUue0P,/e]/ !Vzd~)S5$nXWU<h6{NטvD%o]1pvGCh}=*fHwӨ]]Q-sDKiI.cA ^XUn;~AM+e%-E1gwutf[sX:1,bm|}N1:7-Y6V2Vxηx,o4gIʏ)ÄeOqo6i:5 t9:s+j3ZP_h]>x%iNY>q~]HpX=M0<>*}/T!K /k? s!ôk<;ʮ<X=q-pXaT5֚vxk#U4aFD_M]sf~ʷO;@>cQˡZ}3@l)2k@@/~*=g+y]/Ewpp/NMY7C(klMA!mfUZmjIvq6u=tC[NJz75Dv6ER'~^hGt`k{78zβp>ִ[hG6f<rϲw Y7)@no'aG Q.*C^{ZeVd/Gz;MmmG]D<J4J{b~876Sm}T>Le=m,kp7`7Ffu6~*n=t{fG}a~)a|Τ^3fOz6ql֢Mj{,a`f+֚Ҿq~F~L;aE-=Es.r˷o8A>lnNmDg#¸ Hjx3~+ΊAni).~bhoybl@u#~9-^fjD6CyOP7Jdҡ/Vf%BNR34ӘhǬς%Q90CǨ!lXG@Ng{ZYS/ p.9QWqI!_^@֭*g :;5m5X_;E)oҳç9 ʒ)~);Rb_ ֹ*$cWTGTuzH|x-3.ImL..4Mngw0-;`AlT*fvEpw> $fzdӯ@U{:_@uhncqD9Q}{DV77SH/DDWiS;VG?bE˃No;$P{L˓Va@v}h% wZv8{oKr]G9Y]-8F'oZחkesk<`<=tCPC*8.A,7k*YCq9]QU=@T? +xy:72leuyc|}EZ<Ao YseA-yEoe+]{,HB5v=g% Ø:3ZM[.KMU)C-*BukNTprEʙ[GHtg+8t tXGHx2zc]3AfVi3h;B>{,Ch8b7jx||=WqhtӟFιFPq_zjle5+@ghcǿb*iǓAc1<ҍKiYIXy=#àVo֒PM_CQS5.o%E.MCFzM,r-5Fo-:קfB vwCXTBZQrδ+>כ|X{6JNuIir{¦_~dטTQמA;:t8¯V5 _XωqgoTqGϓ#G f ,Kn(a?52Ɩ]WHN@np8SFӚTn@sOu=F7/iTwKi!XolE; o4Z;9G:c>e}vhDl-6#^u<,DMX(mlU.v=Wk-jFyuwZ:ShhMpLc01hdZv3vFXO5H_;R] C'ʼ8'xJK=/)8%S|Tӱ{Q:e.mbX#`-E<X|D4:c@l@6L0E!Tҍ%ր2P~X`s#u.a?F,Ϯ^{9's%[3AxTjxsDASRnI#nO*0|A12d(R[2Q`9yˤ09'#29pbkH7sƧF;hM.Ͽׂn}#V3lsS~ ʧlHpgR c?cr~'lIM2HCVf:oH(3cD,sY!{ca~~zmi,Yfb ;ja|E ~I_@I+^kg0g`{7H{y{iTqT,]A7O!;h!p;F]xmFG9rx:Zcri/SmY,Z}7t>85:)Ƨ/xiR:R`3L8i48c:1xkPt.4t>[`+qa]|9Ұs{0F>Oe5ouRI4YR+DIҚX@wjNy=BATqvB'RXbt~Tn.ױ% P{j6}7d2Fqp+MBhca3 #oweh`qi^+β#T_<Vf.ˁ!=vgq0Cew+UPʎ#?0c6]L9֢La6vCAe0EYb6b+ C[B_x_2'`21'L..1h>'1Tb$Ay|.x2ʃ +1^12҄Hn>HxPtM) gb)^HÍ~'+@#lҡ|Nnǎ˘<0F8N*LldAzSλJXS$*ƳHHu*!<okH~Vpg-%j]B1sCΣ<ebAuDt3S)u8u'CK W)@xLDYD`:KAhtxdp['/tˈ/DyTS<L2C8mHz80%5S.=QP00]u*KF5(+)`H 6/-LR4:8AcZ(Oh2D³IED˟kX<]0[0s{S-6rQ(ǨK}Q vQ7Vzf*҈D'dAhST`Z8MO~jEOa%ם+H_DQ]^ʑc]f5%tL'P]%S{p<֬v`˅nFLV8dʏ)^qDk6h!HΞNux|ҰΔ%BǹeiNZ:WQlJ#bI(EBDej0c_R|wRΞiDZNN@Hs< M*X.)1J.C=]0he(+ha!.P!5F.$p)gla5xE+bV} PIBk<)[4(2%R.ҿ?P`Q8.u-%eQ'EUNATZmDsj ~eGTWҕsf)e_Cgo8^>eP/flo*sAX<kq,#94#ʕ.Zh(5jS:}Ng;HbNE``g+.LvE.QBr(@U~L]'*H-A6VMl$.5{^K*n:xFְzP0[vz3N :]rYkYk4*upO}SAE;ӛ3<n]8$=kV6x-T1Uq40;1MFEltn:W/)b'Y>S NjjkuS8x)VDrjkj,p^.;MhlvwG xjj;WadmcƲBrYhJdAB8N7kkypqzKl}j7βTϹf)ӲGkʫpx|R@l?UZYM!U2vkҞYtmk|t2QF:Z,;@*E:0@?Ƭ8KZfҁ(LtM`oRBU#5:U5:U/8Kbyj_D)IJ)rcUC|[Gϴ{RhQd rǍA>qH]pIKo(LhHңJcq˗#1e)j)~1!h#ҳfiH-4fʠKǂhECΠL]9Y-UG/YB {.arTPYP:~ʋˠWFgaHZ6(D/kM 0'Yr0bQB!m>E+L_~ #}B *Pa'O}ϋsH6?+> Q*]+bP|C%R;rW9g7,+or$7}.kkw%KV~d7rcxpRS^*IaW1;0aALd(' @Phu#^ZaeQ9<aYJUZYkMaHI(Ek!ǩ-Btzvƥ0bgʢ,Ya[֎z*d+211B@QRPD[_SuU9@icOY+ҕGJ T^x7?vPvQtWx2)*Nb¯=c:v?BB||V%0Wm*HXpn/=:y@0tI/G~Bө[bPJyMA$$v:;_OEJ!ò}$1h$X%M$4aA!c>=5ϮM˯O94d7^xӨ.CT=jR6.{*dw2Uh)MPZםҷm~9%MsjBX8j ueIU4>Cք'UnaCyKV=bqp6m'tFdA>b!NoCWI_n?O>pUuBNB0ƎǟAIHT+DGLDAMd6d%,n7(dh9.nX`F|:kF5I>֜|X?~΄^PY,4#,:('9H!b*b9AéfOO6pEhpKˢ`4)x<tzß:Ψi%<Tu($Ù>MBNJ.=p<5.AL)K4h7j5+Dunǐ,$Bh )NØdϔxG`p]L+ 2d=Bw9#$>PgvL±Msf3;^6B{RA>(';#m/Ùq?p`WM_nZsv| :°l/XÉxZy:19V{+w ;vc{UhZ;v5?=y=q=66zcuӥs!M_=81)%5F wwZpֆQ>sdBDҳ i t1AxpQ'?Ʃΰ% y9t:jWgO@4W^(_.bˑ-3C'%Y#/#]H$s;I02>jMu9,SOC+!ZJ*.F*bF[XIBpy*UΤT@25YTcaAD5by([W7%i]e5ӠMy#F=[y66σQ5I;΄Uvr6_q 29ʁwx>`e~Wt `/ˁVi@x/wW˨P Y890yˬ~0ϲth40r)r4^ bP~.erwB+d4ϖ*%(vv)ǒ|Gos`Bpz^,lv'L5DϨvdIn(?P|%34Ƭ0eRaֿ]R@L3DEΕ'KF!`DO<=FB%X zRY^pq}yϤ_?@<V9ovE4m i/2PdIO^%gtw(ACM)SkfXS=eU=l=YWn UgUAX%pMG<ViUlC-{iQ#pxZolC/~m9ZҬBmY0f$^rPE[-ƞӱ>+fA<78HPwGBTY}$hYM^dd%)?Gn!:1?Ͽ҃nCEUeB6 'G$9o+oN~oV5Xsg2G.jw@{4dlNqkh3ғ#O~Wtv3ƙ91w!ykIwI?+rWJU>^p?IdzOa5Q-u|2Q}<N/w>.%q. ƬF*R *~`RLjR`ht1e|oUgNY1QHk }=@Q[rGIjsz5GUAp*#!.%zyu^0x -z:0VNqûS!i[zUau:X{3aaB'(bE@(FgʭIfo6 Zq#,ӂ7.%BU4`a˱Gw^d5 ~ˉNz# _0έ;GsZ,)V/373vii7ӗ[$Tl˪6jLrQ>U(ZW'2pF^uW=heq2bAjeDcU{Nas,JKl$E?1c DLNgbThKn!c<hSlJC1?//wZ~FEnBz}YM+yXNm.,=ǵaY+/9c[!;nVFDy-?e7 sUQ]Ǘ$).t+Y*2UE|L!e}9^WRD*k+R+lG;ϳJtDF H :Er#2Ùi!X7'=_`8tʸ1tZ<J/,88~`+-I+XƚFǒLrxa9)^ggHAM+GS=-Pwוj(/DKSi!?4Өk(OӺr4qToF: HX@^Dnwg;E<AgOZtFYbqEXνRCb^{$V~radq@g$bU-6 hsH-w,H01(- uJk@Tlʛ}Aώ/'ls ,z o0Ocs2>ϲ^-1j55-'esKZwHOOR-Xöց(5gΥK/89vcxir`XrQ}Jamz/^B 5ZkewU Hm2pj[[+)4K*UwM]*m$[-TT˔fJKrl[w|q(y!}x_ZVCUw|.)oƴ_5q9)zǿGmpW]dw(y;f}JʺMk#^Rsto;CER2}PNkIE,d.e~~c*?g !sO~Jb#Tg>EP5u*Xhnk+9eFJgח'K?Kbhn-%z=:{3V|Rto-yjH[{Ek=sW9t,,Fzj@`EoYN7cÙj *(wDŽ?'+TCZ*X6ϬÆ=gQF$;7ewoexA0u[BtLd lσ-GXLo}`{KPJtDLd Q.$%I5-z.D6ssI!Üqck! D33vm2%qT{g1-q}eT;lq3`cc3ur8sj}_9ne RÚ:E_)`e]9zj_ʁB+r3x}r]CY96e$LVk5(}QWXn-ul4f=%n7AlnJ+v+/AƸrzLUrqF nI!n@T'^XD,I:ƨZ=OuFi9sdP4uZΫH J m$z?P9zfizǨy}Hnlr6(d/S]7G`?1>+|ˡ3%T?Y[uE Z_#++;d'jUlmn-#;5I%RҨlBzvVfoFfoY#l4|*d9HFD2G(BmA)~-1x7kֲuoWHbiQydB<#)Tr{4HvR9DrGDFu։hESuDL6E60`Fu5K!~֦|[WEϹmrAQ. joJjzH5RN 19σIBh-j4YQ}]9cLmm+` Yk]yU{j254֊5+.qR==(+ϳvTt>%qp[Z8pgf2y;0t7FX[.fzYlkUK53:#*o4n10N)ovppndEm>k7:PϖLP=+TsgGk9ם<:[a+qaMt9ӐH42@Ls!_|ovxH h A6Q@>tG-N,G5[=g?z7_Mk-Z l0zT=~Sj`p]~hD<asv-gFi;0D4h:Q#Ɠd}|TJ)Aqny>,5ge}T:KjEW:$(pkP;ecw6c.^PzAagcb88:q9#YQpYPf!b1σ+.3Mck|rJEJ]bh3e urzWi:WGA'-6F5O.Bcj/SaìQ+^;lTUahoʁ-c h.E(i?m7G@,DYpnT{'8[A kN$>NkI/Vawʒuu}xrmSB;z5GdXzr^1+SI{ 4{qb2N|$$PhWzFҠ]{FAJ^t`*q7+èrvqsiUFX!L%L<Zm*A(EHI6n}>Z{3o+D>{!nl*22. >(yA0B@6$Le^¢Q}*F3;8+~fng'ΊQmY%%ApƭM'v-Lvx;ˎ WqI`{ZRmFy|EJP8Z]4v)BcIeDb<@m097rA9O.q0Yy>2g]!L!]_DX:y(~G _%[@(#ƫ)5ҧMMV`WItT:ҺZ}K*J;^kh|'J!! +zkWOAχ`rD)mM<!SxZ~]`]IZOӦϿybZʛ6G4ClG.tx{UTVMXZ4#U0!OC->2hnG}5UIE<כa_.7sb*I<H6RT;Mk'3].)8%AIׂYHaQ:izAb4ΊiAI:үˢ]PˢÞ$'IB,v|dאl }GmJoh4j(]lD2<{y#moctqBwTƾ> yp?x˄˪nTWh|m[zKX7^h xESoA;{Q93Wi+vWKegy9Z;q}Âtc2CdHps .wtIw>yX}xawfFl'<YyӸy H4haˌ0PR O_ArvdKӜ F'3^MEkƨH`: מ:dqFP''`4$w4+u((BmFJ( * I[ӥhTErUMUJ3eOtb'F3{!!v<'*.2`.=tBd6kZRZ *gZer<U)]R3 V<#1).`C,JJm/2ӪW)JoUdszpTT?S~>+on~gP7Y?gmAQ52#@kU~{3ƀ3{ $SRp_#½#@ (Uj-0*!AW0tr+RnS(f8/t+ϝ7tLQ>1yn^Q,KvBXFnxK2e 7'xtP t lr2M3zң8zLwJ5??DJ`6wS:/P0hTdҪPƩ:yc(CgOeFtz]@OCC@A..L60`as}R3G]wS91t :1*2!SFdBqo$ZuUI֙gNé|>½֚ev(C /?φQi[!ϱd~m˛ÛABXQ..>6˭֍e8cH(ʔ89G6N ?sL3T8~wnCzXJs¬VMA]`/cQ-8Ctr)Ñ/1THi#SI2m.UGƥEӲB$tqRgs/eL.[?֙-/_[8ƠMAO[DҩXγϧ~Er*FF#PjLJvixbUJ05w0,QewI+FhVj*0u{l%e#/(-AzlpMLFjgpZ[Ji;l<!}444~*RL*|4BQG]<lr CTOҵΐQQ7CcU%w.*HnkoWF2x}3wOPn+drRY+#ʄg]Jϐ>%U֑IX]3NC;T˽ vVP^ljE#P,DPu5`z27h*5p w+.HOSJʸG^@/[Go67S,PJ@:{oKr]Fc6@x[D8?ƭj x- #xBƘL)Rה0#}`'goxp,.}$KqG_E4rLf^~eAg[ZlA/ff v0hcHPjS$ID]d>=pL?JmLT>n{W|=<vq#8@^=<WƧo.(HM+zLaè1('?504kdXVv?US}A#P; $U#`UrqQN+D{F§x>cǐa1ǃ ~'=5pStWXY?]#bu .2b'I+^4{-i,*A GJCΞ<5A=XBBExmx@RKsq~idHD<F1SP^T[[A.Hu֘ OTe IXV<uƔ 3#G1#vw1XTa >Q!$ώVBBKU-z@rTο80.ϵIC''>RFBdTkGΡkjcvq4>Xw0_}BsmGrOmJ3*D6þEsg% a@|?ҋ*wN(Aiof~<R{fAfjw/.ze}j`@(<jFij{+:ʬ5g5+b0<d2ehMEtfg-ld,ʔy:Z=kK_)>(j%BLdDxQ?_PW`BƋN7xXs.3ye1Hbi(!J LU8;g2SA J[Bd`|%N,2+@Y0wZ+/pa{x@O;Nx$)( nIhPh2*RW wT.GΗa#io^$0'u qqL,2X0w(RgD/=G,]s+Z:{zu~hyU;_uSǿ;hel~cye80rz- XY[ jC[QXm[p^×f7Zz(:ˑi[(n(Oz0P?32CN]m~ZrӰ;xm .DO{T$iOt-#thq>X?T@FfRy;`/@sRQyg0K+oH-[:DC*WLbP^(1ʶVU ?p6]l<-ˮ; wp8~EFJQӶƈFUADGKd3K[gW0I6<*ǖ;CϠf)Lzd09G#BvY/SPQ%c#qʠZ33v*)QgP{47{ƂK$ b9H{W~iCW5*j~g?%T'8ym@hCj_>Ww+^o_>T[jvU>?{U>x@?y=>m.I0#m#/G|t5v|Ro(Oo,wLª5w9bˊysZtnu)O5Q)kN:D2Rx6}3FS.2o1Hg?22$)K6^7?.fsΆ'[VUB^coa9SYwQ)TFhk=Gq1jxj7%53aZmuajQ|q'k,Nvjh[#WzBK^e'8sQ<U#e+95m{qBTY%6z`;-7NY3ӯ5q|Y-^mǩxqnfBHB;mK9EoWH@E5+°1dv 9CWʱ?9VW'(e7;i'^֎Z]$.vo3pE[Vw7A6i->Hg2D0 m<!}^5MuH a]$ 'A/ !Vfc1~q0!X,wMy1@aB'#H#C>C3|oAjajYj-Kp[*Dž(AY8Q*H+|2PƂVM=}!ƷOIS-s95+m+YB*`skE2=dQ[8llZWGG#R0=ma3P$00zAK;Zu[]{KrziH[-r0þƑ4Ib~7h<2az>eQ~7qa8*w|Y#E1{ØTq;]Ql#5K=A;Jyty׆D03*>BWpsg +wL/3hV!pwqemV0%M i*IuYKJ;y-![$V-֊9J5Αx`:d(fY ʛ!?`G<Cbcrʈ@=t.}{=!{+.Ӊ<}w>z||[wpSB#ʓI҅ZMlyʆ2 ,ej)mc3dDwǠB}`+*mh|C6 z*1[ rnlSBDCIR`*:HXI?;ou)ҮfM0_R}giZZS,)9mTUW%λ%qUK)|Sq #[F}uHNP^h|L(aiVEQ} XycWׁFDnZ^:Z,NJP~G3R~˳E7x')_FsY0xL8`<{k$pR 7c/3bC[dms e':G`/|QAhkxA>S3yz7XKB1Pw!Ƥ b:%X~CZj{I$D]:!|W/>[`ǧ;|1E?X!_'RIMqt^HzGoI`iˋTlDmbo.ƛLʼELr1;Dz0uJ% -.F(cRE)I6_Ftm<A1K3xp3^6v!XEnqUƒ%;A7f)spI0DMsQ{)@R`RkKkp)H1jExַEs*_#*$uL $<zxC91*Uwd,1d'5{q S §Rf*NxOWAPs.Ijoa^Jϰ$NG'J*oX!<Y1HD*]Bӝ5..mҀ)֩ 5JΌ`abjtӪև4.L4a{#ƴeU5w7L*wNm!A/<s*M(L,*gV>L]W3%$X-uy%LtWjAǤL:,(H9/[<s|g_]:Ee`k<Xo$kR|4ox#!kKg?AA{ma/t]'¶BZYR0)?ңk_AH1S.XSrnK6W-v<'RYƫ5x'˹-wbV'wD fҏ5[drϾls_>?eL+ylRdQқsEv:92;{'iiEC26H#so4s[.kdsҪ%$I0_RӶw8SHc![eR4ˤpmUʢT1*$x'Þ%;>zQSgi6fcl[FsΠvSx.X҅H[8(ָFBsEiB^ikq~5d;?L62~::?ҝ9CY*;p7<עw#GOo$}GQe`34t?RB{x!n|BL8%qzicIK,_~.jplLrJ(H~`7O)ґB:-d!(%sno<x1u3A6vW0/wVNC[E~ҥ;(Ydz )KY'x/}M|0z^{#SBa,}HN5,^>`o}HOxRCQòdzrӁt! DhZ+>'wm ]m]xwʧ|%ˣ(>hÅ48u|U!lgQoʠn#v4ZW(hD_w}þJΟHyy}8e^pʗw4]9.@l#W?$RJ~ʴtl+yu6yWwCt#|nDH/P $]j}7jl#y I3nϫHb>3|eV/Uˊʤ)M-2CHL]1dʰ(IU@X5,2QqUB+AEmoϋ~qvyunWk^>y6pB7Xx5 W8ve2.QLW}i ip)ws|H'e2P=V(i-**ǻ2(_?UƉ`k<Z!+K=#R<u=nrp 0rhjFA12Z8o6Xe5Kl9 jמz*OeY9.җDz$Kk#!2OOFBO7s:>1!zQ>KxI^D8Y*[Jnpg>Dv,,!hGQ9B=Mz{x5H(֪z5WUmr7?=gbHID`m$ҢӦ84|ׂ@wXL$ΖkMjV/L_%OQ]O]ӫ1)u,C+Êǜ>z2bp}Qk,?fH)7+@f%C?$8ǀY#g] )IX:FQG?^u{.EB %OC2TzA0Px C9$LWez0b<Z(*#S1au K_dX-ƣƀIaǣ˞Ov_@i`WTWW֚vSF1]CQMnL|ǢאKQ/D֯t+ˬMZJ+Z5z73ZDrΉI#NI</qDF}v}FEqXzr^Lj?}8d38].Eh/}IcL^GS4lt+lE:D<EKƝ/FK:q=SÚhVbΪDžI=rRXDÃh>u?@ TEnǝ4w[M(V<>{3ttFQKuϊ]+30+Q%58ή7s!1+3=ueTl`˹J+iriz/dP!ux-iH##r¹7+zprc=sQ^uV4[xLFy{c]˕+.CenOҪ5o5W#=˔#<*au4/A9N6+shX+>sAa=6oUW!gj` C@cfÛu|˥_`,N.WAkÍ.KU©dIxbHDhRX$P KrR0E˯/ΝlǑWWBI(3H){Ika'f9ֆs1w_/)'wctLH;G>5Hb VHtID״w,OCjV*ZQt3:u-:{O`#),x^<TNafB_W0Pq3hK']r# Pk|RVBikgWKgzG?_Ɔ+CU(i _nMNr=3ҍ,iq:qfHF%Fvdd>dNð43${ΰxVǒDHFUiƧpX_uz=ƦSabGR+{SHN2HW{wU`JhZ!Ie.H7eqJW!RvPEUxTe,]p,KFCUha?B=66F'9wldsxu /D#2x0^E SaA3֩H_KsIy1+Vow,`etftV lCa6îRLb' v+%po^de ESLz#R w),LbtέChCR%a/K>~=e;>rʷD6t4wkVNJ VlRCK]4mnΐ]Os*o|'trva:nV˭3,O>L{X>BpàGaGӽ:s^A.29jE)wWKX:!LDŽ4^e_.CI03i#t.zZtpl<J)+Nr:+KB<$}R4|hD҈mm964C$37z7E-h>I2ƝRPMThth.A]A]q+M kXDo)UrG`UlvsdN(:QBLq=JΰZ]Ɗciu^Rkpdk øpÎqf*'yQbNC5=: =X'wZ*Xʼ@8 6ny,%sjt-p+o)gdEP$-]@U%U~r5YD% u(-π)5h6*y7Pd5@s6} :tS+nʸ V!7[%!($ג UHI=v~zPS?hJx/4ULsQ$yN5N/ao=}@RGPR24zvҳ4U:d҆H!Xo_458O5>yUu?mX{azw-I%a(#D:M#TSpϘ1FKA%R *dGAi9q*DCӁGcSFþd(k`A[<jJKpa`jҾDN9 @tuw@5JLyUHDhyIKK:F֍w7H%~oHj@Q#$ʷ1~pI ?VbHNB'$5lG !ULIY(V҈Ch6yӋUZpi`-7Ϛ6]sӖ*erC,q4:R7:8o5kB#>Mr$`4Hmc$n=QQ(q/e:L`X3(Qx82<+CB,H?ysuy|y~{_^g.ohCi%H% Ohl C%;bEA,l5|rcRhU`iK;#M|U82ik%16~p^7o<0XYD~CG#פ'5QBQv=uoF,ӻzA[>M<4Ͻ*>S>22((2Nl=}wH`ke4LjTׄ!w}X·UQG@Zo.%IjFY.yK8loPP xlsu@Ax:Ʒ@{f}ה_ךjX9l~ W'`v@%EY`=w%M-!ҏ6tT@B?4d`q+ .|$FJv!R>_0'uz248YhZcV}xuI^ʚe@!l *1OU.|uAi}DZBtאaqv3> ,UP7llxq¬(q5pwDֿNs|7}b΄RPz*'IB~CBsqA?VWQju$1C9]~5p;YnX7;T'5H $i2X_!B{5BRN?pʓlR#|32$|0aÜJv}2x9rk<xB)qyҮHD(q~8H=aW^,#rPUaǴ,`N@dxh<F+W'n[fLz+b]2;Iϒ0RQ:}R!1Fօk,qFRc|q$@d4yai7#pf,f(bs<PYf4*%VJQU8DOXIctOVUv~Bl_Y)P]|r4FVveCTew'InDBƍWfǥf@Tj;PtbE8})k;Wx='IqDK!p$wVzATUSz__6'qS8mu=*_F77@yaE1| | G%m$2PWXYr[Nx~9Mqkנʟ~00'd1a±)|,9:ZtIgf|wאIjTf+se*1%i}522}]b]s,f04üo5-fMWhD?%HEʊeMqyDWEӚ|@RA%DXb@Rd}EfÊցJa^`V`'</jҾ$ 58qe0s-~zH7TVӫ>>|[`TvfIfk^ujK[ I{LOkF`BYt0v[#IN#_._FvO##ǘ'R=<d9]C(K7k#[rzwWWwezzj{^ֿ.o/?_im}kKgy@]m=`%>fk8IpeʣByp~mX-j_CΧT4+v0KnxQ$L,ǹ{WOo+Ll5Ϗ1ʐs>Cp(oµj~D>?~18 h7ʡI!UG|ss?O+B1w'!63Iv@m.mdol@/2¥d1_6aAn84}~Cχc0A!=_x(R{8Yqii95cwL{AM=ʰ.G9K2qHt֔]V,4=_2@gxet57'Xi1pvB[{d6ME68 3hS{ qXև_7cWo]w^A?-ba5N6aa6Xlã v,4x;pv`< ua?˸y4cd{aU}OA<w?/J/WC(Mf6kZ`W3m֭Ft4xn>..Q5^09/XyGcc}5nfV<e?wtlǷ/Ô@8'F+nϴ/yB-xKD*T,mIA}h_5d ~%2$tƚ 1MII0`,xr98@*PMQj%qDy@sT2})4XE?9I@]x%38ˤPkndt}{0>9TsQQ]8xh/FW~FD__s˿E}ʷ+JcAl{5v:Ωbn'Epz;yqry;xf$27W (FӞ72rmB@jnp%k_1|6OKY|x] bpNX²h|y3._@5^D6ӄ5nʕGxƕAgFaӫ9MEKʓapN.FMI=VV-5CLh~Y֎gCyl:.'q0cqxVwP* fϤ6YHr?g)D6ӢXXPPh90FwlA,~hU?$`k$1ҁơl:%eäKsá$JW^v(efrchgEX'at?V)һn}@N7{{$K(hw 4P`Gc|4wcCeEP˹4'#֦)ck$RD5OqgqB<47e2gJopbesAYQ Ǐv}4qn6[zx<r|}f0EDžcy)3e|L53=y?8[x31R<EØ<m2V9~o!i9Np<ˠr=KfBG!z25~?wn6Gsyr9[sX#|p_FeXW9ʅC8q<s}V^NMD~3xr?[>^Af=*%N: ǷUcH`Ү[`|;Hx=O5`ҭ WCG!ˠr_XOcI1/KRBƱ]ub1a@eTNS1b6fsdg3RdO';$8(8Pm%,P.ZUZ*}C0oUPצIy~=OǼ=FK17ʭςc+I?[%zt'9N;[iם.GRZƖbiΏc|n51Ocol2G'O#il'Dx.#Ҵ!Veӆi/ƀ!gsIf4O:>/G2t9!.iu.a69f#}{@B0,'k1%8a/zpo3y~'3Qh>vz=O'1?h|@jSI[V9x,-C`ws|v>GIht7B##ϑ)BtO^ChS3`!(NחO)$1L:v!>` EIM@O)p{5W9GP!d0FNu/xZG/Q9#@|?NV~gAK?EkYEeZkM_H+_Ғ}UWv(ksh=KZf7Gcqht_uʇSz9?UfJ^EQ0Ǝ+w֯o<2G+- xL_MJmy>A/958N-!Vyw?ylP 4xI?c)gT<ӑUpstp3!7n0VtGփPf@ 8.l}4X#7'6RH0JvϞhf@;}0OG!Q<'%n>/Ƙƭz~U2Ax{Y~W4M^5V7sH_D'tx^cҺu|Kq2oǓ481sR68:zTüqFp l](e
~}iB-syEz3:P<bw;SY /60/+:<?X27QMGSQ|ҲeOs$x?N'c2R.^A@=.6a*kcKǗ7H˪k01)pƌuT{*Z!!Oh;Ұ`|qvc-ZmEGsQïp} @v.|¾=yEMx%_Wg(A._ϰix3,3J8`<U<rgZ6Zg>]Vzxm]tp^]8Y^+iw5^]U~DˁF0F~D'r5jFxH IZ_xfֱNGx֯!qb$ʄt,j4TG v.8t>MO'i?N=OE_oA%ҙ8ïtLj2Og%L|XNs=kEHΐrKhL֣r˛nZgryQ{/HnHc-ΝD:wtc lÁ>:%k`Ü}7O68q3vtmmW[2>N#rW+L1GzFm]_@5Rq*wk1vmg{</syYAFZJW3IҊ:ǐQ*Ҵ=g9h˶<V)lt8[[ӪK'~mxUI>j,wCA?NG#yy>JaOts#.Wn`נC@Df81Z1U-UǦ9y1N p}N'cq<KXf<mf |u+ZE?#6o6MhEN>`S[L{v(?zA5Afm_gY>Axt-$d%W¹>E W4*|K{M!<.[P$<fpeWC.p@!Ej`c2XʠH(<=gHc6=G9Ltf;k2<bCU{/ )s~+$j8meB0%ҐƴʉQ},`=AknjƜ6eLA*EXI3-9Z7ƙ#H}S5^7jUt4@.SYdt<hOOGDu@r/ψZcuY|ã|qix~:[`NDjK[Atÿ3Sdb6nOgIb-XӕX7D(?]FjXTÜ_/C0t=Ogidy5Ep~8b3Ə1[wD1UtLÃf#}^G!z<Z{9ʇIPzN0˅}.~7Yd>/Vð_gQy<.gRPl043br˅xˇYhr L?^rmcig8;;<b-O~[E|x6)u4L)|v)V/JSxbEֿH$Vln'SpjWoZdj@x[Qv?!Zoga`3 Q*ƥ2}AUH nr;GELqNva-Xl>j ?,ӯ)46]I|>cplW¥tZ5 )@Y)<z:OKQ~nNgO5ZIt[ҵl787{ek,T{AuWMV?di@`~pzEׂ(|*~[gLXʺ7 L4OmBx>,5OcQ1rL( KO(q_'Z?gIL#_L|nk%4Yslq^U A;'Ni;b2l9/pXr}-Kl>-A|Qpv9>,dj,dlh,BxmDY[)Mo[8Ϟf^æ[,/NF4[+W֞p6U˷k81YE|.ӱ4-'Er,'eHX-C=(0NXChE 5ӫ29!p~9Ct]]dzRlHY%< i}@! `*7Eh^d#^-f7[dm1(7?gERRcvQDfKF[} CW1v|s+ja`w9Bfq|v3-֝'cQz?Df6XawZj'X}^s l4/ihj.S|8OqxZek90T;O)M_0]NgqTC>7TZiHY3ZTI_VwӫTϢ53$=!y|=xh>,GeNOG VBQhbB,Lo+,$l|b]+A`wN3}Yc8v:R!p5ekқ/f0Y~7@`iˆ3ƿÑ.=2>$+gkÎ'6>?}~ynr|{~<N`qo9dE^>OE0Is#y(^rY<S˚-TgTiDIzW$VvIpRA Js~y|s1x~Ctb>Xp9,bx$Bw>: GL->RӅfH^~Wo3 i7[dh?NSX`^s?p=,,KON]:ay3y;=?=}9MGsTx^cu֞OII1Z)@WgE8[=hX`7}^J+N,Yr9Iu4SZ~<'J`*#.j#yaN#[j@ltC|^vD]7idxXjׁ<ƟSUAumjH#K[,`KL%/@3!|'PJ8Ng!xznƇWKd]uz.`:AXrt<,GEֶO`T+)%{XVqdYx~9O@m'IZ<sqhy.%vBWzjOlJ~Aw7_Rh@w4.[o[ӂpD:,9kQLj/pF0Ôʲo[{0V*(trmt+lX<{C['9)F}ҡK,O WoUp:xb:4 |up+(ʿ:/?x֒s?NJ'=.x`˭]a@s*;G3r`Vow,Ǖz3ӡ*4,<xW`o@.oCI+ g!q7!6GED_h?*u@hjHy05ii,AzuilGvh>98ZURT#8sR**.HnmBx{h%@vx@אG|]RP6F's5Y#ar1gWvZ8m6tfRPk)`[s53ed8C/1{s``lN%xǽggVhL9F{P9<}Wak'Pg]pt{eyX [Cq,MY[BQ_ sˎ'str>O#Ax~3,~?qD5,(pf[Bl'{Redk5g3Db>KaEU@ SDm U- _ jn.Y5Fa8˓Qr7L'k<MW(i_gBqi@Z-:%8XmN_o`|PBm4F?Z+1r.GeG{|XZ3(41Z[,dl>/Kqlr:%*aryΰ5KPV` a}^GMOFqR`-{+oxl.I#M$+[Qd}qtjfil:IWÇGytrR TpF,w1O3Bx?xz=Lu5Y]LLcqNΤ d {Mν$huR!%3@G@P_WUi7^Zrdsc |5c)Zgax~? 3(Ɓ#jB7)`~{6?#1R}}L#fokU3v5y/v]6V6}Yhl]`bnCb?gsTn'y'@~*X%~<`ά[?E^bw1+VDnKDOgyly%rhOe#?488GsU[[3Yr>/0%[{{W8X~r8]1]PTXp v7#Uc}wD`xaBubi¹z=fyyQ|)sM8%Y+L֩IBT<|<cOE)3F $G`f{5qr~Xm'q,gϫ<tQ e6{SmyC6P @8?BÖ.FQBkqRR~%wCm˹>^eS7Ln3<EDOm֤D1oK2?K0FjOVZҌ~@;?z5,}<a'2u3T:m0~b,0+-PqH!xïGDM*9|?%5þuHR@6b8S.ysB<F<fUm}ׇv6I^Ҍ]>0I9Ƶʭ]XBh.T=YS3?xÆ:S#vG#$#9V=c+MyYcϝvYwxVǞA>'8kjItLc*2Rvʷ+3rd:/6BҢjO|zi]+g{r'xE}׀BKr(ʠ/I('`?q?_?wâ>f.5ωaʒB{9(Ip_;%rC~Pos**m-Lӝ#v_#^W.Tf)nBBR)4%S[5U-aAYO]NASA{UV`Tu!?H7i-XP^9_;#s7Åy˿%UX+k}Z{$:b)t!?pv.֨i-Qry5N%f:$?I;AցT=*~}XTb7'}{`e˻±δǻXboNUb/ƆBB:*vBRwr+*{}Cu^vWP_G'TD=T.נ/l'Q-!sq1xg Si?qMRE+#hG)defwϷ@6rϸÉBwH6p#O=7ǕdM}gz2χErӿs|wYG1~p=U#ϸS4pcRe2B{`s=r,e8d+.V~r[K>w>mRjF=%(NL' A>0?4A? L7} qHG<Ǥdo`=~mv 3OyXVkFPOה3wcWIM:^t2y a00Bl`c(W% 7 uvKXI~K=<Mb}b~Ҿ?mp#8WKwtҤfmZb`ǥH?v{w r8XJӝBuZN>HiY,_h?YK((?9S>y^l!2~l{p%tCÐjm?,JF$IMLT D5H׳_b8~[KvPb(E{Eyez6_[@JCN|1~n.(0F3506t?rr?3>x{yoRw ~_hr={z`4=Fh 6v8v$n ~8_C[Eod]f%On|#tP)Q{A|K-[}K%skgv|fngRk7xMi?x{}wã'Y/:9>Xj<Oϛx/k%*¿[7I_ׇZ OL}T(t!~$n/WC+sEz|O?_Ap?P.h}[gR>ƕt=8_Ҍt'l,~%^p.YoCCgxja:PR[-bh1lI/dnlyI5P.ӦW}zQe8!}Ozd/y< ?i'`/·f3lcqN;wGPtR,h3:D6h0H+g?$:tI$6t?+|%H4`BEr!VKw=j{R?<;A:*Z21p2=d[21D? J`peB>,|K#-Ao coB3!~A{% vBJ6I#ql_JEk!~Ex~X/g$!sLU<?u w1>#|!)f9ka>3>ҁh/o:oe>PTzlgP!E'y{˱`e=}oc,zfX}J6e#x:=t'q9$,EʙLtGR;M_:e*^}DZ9UK_?/hZJg5MF4+'b]tniD)O7ZCM11~;vEhQ~{POHM /I/d]yxUff.gG}d=ʯ>j!?9/΄4tH'ov=/*Ư_C,s?]3W{=Ξ?M_(h53 [dhOl~d::W@4JΰvDKK6 cbv0OCGZo(Mp9<S(J(CADj<Ӷ>7lbcHFOqPvtÂs?Jd6zϿrch@ϛA/rf1m6Ms=(OsHOh,8ç%<tbC5aS>c+ҟL'Jj˶L:hodom.wO@*zpnI!aoj/dJUKg:¨ʊ|~-hk]BE}Bd)GWG~%|׀}ư+)G{4'V=L|1iH|כ/LWf'oNr.%lӗ<:Y@z)z{ ln(6%|GPVyϭ 0ʑ /Ob˂lSI?^07hFH?rpVֽ8_pA>};0>aoRf/hyYb/$q-<RӬh3Ǽr#8/s_<xbdh$}c:y~-@aY@EҎӃr/Iwүs/aYwsOQPˡje=vl¾>F(NjfˑfJ@ϛx=<N^SOgc)))C ހ"
|
|
2
|
-
export {bytes}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
const assert = require('assert')
|
|
2
|
-
const { describe, it } = require('mocha')
|
|
3
|
-
const { instantLockBytes, transactionBytes } = require('./mocks/Locks')
|
|
4
|
-
const { default: wasm } = require('pshenmic-dpp')
|
|
5
|
-
|
|
6
|
-
describe('AssetLockProof', function () {
|
|
7
|
-
describe('serialization / deserialization', function () {
|
|
8
|
-
it('should allow to get instant lock proof via constructor', () => {
|
|
9
|
-
const outpoint = new wasm.OutPointWASM('e8b43025641eea4fd21190f01bd870ef90f1a8b199d8fc3376c5b62c0b1a179d', 1)
|
|
10
|
-
const chainlock = new wasm.ChainAssetLockProofWASM(11, outpoint)
|
|
11
|
-
const instantLockProof = new wasm.InstantAssetLockProofWASM(instantLockBytes, transactionBytes, 0)
|
|
12
|
-
|
|
13
|
-
const instantAssetLock = new wasm.AssetLockProofWASM(instantLockProof)
|
|
14
|
-
const chainAssetLock = new wasm.AssetLockProofWASM(chainlock)
|
|
15
|
-
|
|
16
|
-
assert.equal(instantAssetLock.constructor.name, 'AssetLockProofWASM')
|
|
17
|
-
assert.notEqual(instantAssetLock.__wbg_ptr, 0)
|
|
18
|
-
assert.equal(chainAssetLock.constructor.name, 'AssetLockProofWASM')
|
|
19
|
-
assert.notEqual(chainAssetLock.__wbg_ptr, 0)
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
it('shouldn\'t allow to get chain lock proof via constructor', () => {
|
|
23
|
-
try {
|
|
24
|
-
// eslint-disable-next-line
|
|
25
|
-
new wasm.AssetLockProofWASM('chain')
|
|
26
|
-
} catch (e) {
|
|
27
|
-
assert.ok(true)
|
|
28
|
-
return
|
|
29
|
-
}
|
|
30
|
-
assert.ok()
|
|
31
|
-
})
|
|
32
|
-
|
|
33
|
-
it('should allow to create instant lock proof from values', () => {
|
|
34
|
-
const instantLockProof = wasm.AssetLockProofWASM.createInstantAssetLockProof(instantLockBytes, transactionBytes, 0)
|
|
35
|
-
|
|
36
|
-
assert.equal(instantLockProof.constructor.name, 'AssetLockProofWASM')
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
it('should allow to create chain lock proof from values', () => {
|
|
40
|
-
const outpoint = new wasm.OutPointWASM('e8b43025641eea4fd21190f01bd870ef90f1a8b199d8fc3376c5b62c0b1a179d', 1)
|
|
41
|
-
|
|
42
|
-
const chainLockProof = wasm.AssetLockProofWASM.createChainAssetLockProof(1, outpoint)
|
|
43
|
-
|
|
44
|
-
assert.equal(chainLockProof.constructor.name, 'AssetLockProofWASM')
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
it('should allow to serialize and deserialize asset lock in hex', () => {
|
|
48
|
-
const instantLockProof = wasm.AssetLockProofWASM.createInstantAssetLockProof(instantLockBytes, transactionBytes, 0)
|
|
49
|
-
|
|
50
|
-
const newInstantLockProof = wasm.AssetLockProofWASM.fromHex(instantLockProof.hex())
|
|
51
|
-
|
|
52
|
-
assert.equal(instantLockProof.constructor.name, 'AssetLockProofWASM')
|
|
53
|
-
assert.equal(newInstantLockProof.constructor.name, 'AssetLockProofWASM')
|
|
54
|
-
|
|
55
|
-
assert.deepEqual(newInstantLockProof.toObject(), instantLockProof.toObject())
|
|
56
|
-
})
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
describe('getters', function () {
|
|
60
|
-
it('should allow to get lock type', () => {
|
|
61
|
-
const outpoint = new wasm.OutPointWASM('e8b43025641eea4fd21190f01bd870ef90f1a8b199d8fc3376c5b62c0b1a179d', 1)
|
|
62
|
-
const instantLockProof = new wasm.InstantAssetLockProofWASM(instantLockBytes, transactionBytes, 0)
|
|
63
|
-
|
|
64
|
-
const instantAssetLockProof = new wasm.AssetLockProofWASM(instantLockProof)
|
|
65
|
-
const chainLockProof = wasm.AssetLockProofWASM.createChainAssetLockProof(1, outpoint)
|
|
66
|
-
|
|
67
|
-
assert.equal(instantAssetLockProof.getLockType(), 'Instant')
|
|
68
|
-
assert.equal(chainLockProof.getLockType(), 'Chain')
|
|
69
|
-
})
|
|
70
|
-
|
|
71
|
-
it('should allow to get lock instances', () => {
|
|
72
|
-
const outpoint = new wasm.OutPointWASM('e8b43025641eea4fd21190f01bd870ef90f1a8b199d8fc3376c5b62c0b1a179d', 1)
|
|
73
|
-
const instantLockProof = new wasm.InstantAssetLockProofWASM(instantLockBytes, transactionBytes, 0)
|
|
74
|
-
|
|
75
|
-
const chainLockProof = wasm.AssetLockProofWASM.createChainAssetLockProof(1, outpoint)
|
|
76
|
-
const instantAssetLockProof = new wasm.AssetLockProofWASM(instantLockProof)
|
|
77
|
-
|
|
78
|
-
assert.equal(chainLockProof.getChainLockProof().constructor.name, 'ChainAssetLockProofWASM')
|
|
79
|
-
assert.equal(instantAssetLockProof.getInstantLockProof().constructor.name, 'InstantAssetLockProofWASM')
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
it('should allow to return object of lock', () => {
|
|
83
|
-
const instantLockProof = new wasm.InstantAssetLockProofWASM(instantLockBytes, transactionBytes, 0)
|
|
84
|
-
|
|
85
|
-
const instantAssetLockProof = new wasm.AssetLockProofWASM(instantLockProof)
|
|
86
|
-
|
|
87
|
-
const expected = {
|
|
88
|
-
instantLock: instantLockBytes,
|
|
89
|
-
transaction: transactionBytes,
|
|
90
|
-
outputIndex: 0
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
assert.deepEqual(instantLockProof.toObject(), expected)
|
|
94
|
-
})
|
|
95
|
-
})
|
|
96
|
-
})
|