@decaf-ts/for-fabric 0.13.31-experimental.3 → 0.13.32
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/dist/for-fabric.cjs +2 -4001
- package/dist/for-fabric.cjs.map +1 -0
- package/dist/for-fabric.js +2 -4111
- package/dist/for-fabric.js.map +1 -0
- package/lib/cjs/bin/cli.cjs +2 -2
- package/lib/cjs/bin/cli.cjs.map +1 -0
- package/lib/cjs/cli-module.cjs +2 -2
- package/lib/cjs/cli-module.cjs.map +1 -0
- package/lib/cjs/cli-utils.cjs +2 -2
- package/lib/cjs/cli-utils.cjs.map +1 -0
- package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
- package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
- package/lib/cjs/client/FabricClientContext.cjs +2 -2
- package/lib/cjs/client/FabricClientContext.cjs.map +1 -0
- package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
- package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
- package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
- package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
- package/lib/cjs/client/FabricClientRepository.cjs +2 -2
- package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
- package/lib/cjs/client/FabricClientStatement.cjs +2 -2
- package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
- package/lib/cjs/client/collections/generation.cjs +2 -2
- package/lib/cjs/client/collections/generation.cjs.map +1 -0
- package/lib/cjs/client/collections/index.cjs +2 -2
- package/lib/cjs/client/collections/index.cjs.map +1 -0
- package/lib/cjs/client/constants.cjs +2 -2
- package/lib/cjs/client/constants.cjs.map +1 -0
- package/lib/cjs/client/crypto.cjs +2 -2
- package/lib/cjs/client/crypto.cjs.map +1 -0
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
- package/lib/cjs/client/erc20/index.cjs +2 -2
- package/lib/cjs/client/erc20/index.cjs.map +1 -0
- package/lib/cjs/client/fabric-fs.cjs +2 -2
- package/lib/cjs/client/fabric-fs.cjs.map +1 -0
- package/lib/cjs/client/fabric-hsm.cjs +2 -2
- package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
- package/lib/cjs/client/ids/id-extraction.cjs +2 -2
- package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
- package/lib/cjs/client/ids/index.cjs +2 -2
- package/lib/cjs/client/ids/index.cjs.map +1 -0
- package/lib/cjs/client/index.cjs +2 -2
- package/lib/cjs/client/index.cjs.map +1 -0
- package/lib/cjs/client/indexes/generation.cjs +2 -2
- package/lib/cjs/client/indexes/generation.cjs.map +1 -0
- package/lib/cjs/client/indexes/index.cjs +2 -2
- package/lib/cjs/client/indexes/index.cjs.map +1 -0
- package/lib/cjs/client/logging.cjs +2 -2
- package/lib/cjs/client/logging.cjs.map +1 -0
- package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
- package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
- package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
- package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
- package/lib/cjs/client/services/constants.cjs +2 -2
- package/lib/cjs/client/services/constants.cjs.map +1 -0
- package/lib/cjs/client/services/index.cjs +2 -2
- package/lib/cjs/client/services/index.cjs.map +1 -0
- package/lib/cjs/client/types.cjs +2 -2
- package/lib/cjs/client/types.cjs.map +1 -0
- package/lib/cjs/client/utils.cjs +2 -2
- package/lib/cjs/client/utils.cjs.map +1 -0
- package/lib/cjs/contract/Address.cjs +2 -2
- package/lib/cjs/contract/Address.cjs.map +1 -0
- package/lib/cjs/contract/AddressContract.cjs +2 -2
- package/lib/cjs/contract/AddressContract.cjs.map +1 -0
- package/lib/cjs/contract/AuditContract.cjs +2 -2
- package/lib/cjs/contract/AuditContract.cjs.map +1 -0
- package/lib/cjs/contract/BatchContract.cjs +2 -2
- package/lib/cjs/contract/BatchContract.cjs.map +1 -0
- package/lib/cjs/contract/MarketContract.cjs +2 -2
- package/lib/cjs/contract/MarketContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
- package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
- package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherLeafletContract.cjs +2 -2
- package/lib/cjs/contract/OtherLeafletContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherLeafletFileContract.cjs +2 -2
- package/lib/cjs/contract/OtherLeafletFileContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
- package/lib/cjs/contract/Product.cjs +2 -2
- package/lib/cjs/contract/Product.cjs.map +1 -0
- package/lib/cjs/contract/ProductContract.cjs +2 -2
- package/lib/cjs/contract/ProductContract.cjs.map +1 -0
- package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
- package/lib/cjs/contract/User.cjs +2 -2
- package/lib/cjs/contract/User.cjs.map +1 -0
- package/lib/cjs/contract/UserContract.cjs +2 -2
- package/lib/cjs/contract/UserContract.cjs.map +1 -0
- package/lib/cjs/contract/index.cjs +2 -2
- package/lib/cjs/contract/index.cjs.map +1 -0
- package/lib/cjs/contract/logging-context.cjs +2 -2
- package/lib/cjs/contract/logging-context.cjs.map +1 -0
- package/lib/cjs/contract/models/Audit.cjs +2 -2
- package/lib/cjs/contract/models/Audit.cjs.map +1 -0
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
- package/lib/cjs/contract/models/BaseModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
- package/lib/cjs/contract/models/Batch.cjs +2 -2
- package/lib/cjs/contract/models/Batch.cjs.map +1 -0
- package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
- package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
- package/lib/cjs/contract/models/History.cjs +2 -2
- package/lib/cjs/contract/models/History.cjs.map +1 -0
- package/lib/cjs/contract/models/Leaflet.cjs +2 -2
- package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
- package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/models/Market.cjs +2 -2
- package/lib/cjs/contract/models/Market.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
- package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
- package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
- package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
- package/lib/cjs/contract/models/Product.cjs +2 -2
- package/lib/cjs/contract/models/Product.cjs.map +1 -0
- package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
- package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
- package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
- package/lib/cjs/contract/models/constants.cjs +2 -2
- package/lib/cjs/contract/models/constants.cjs.map +1 -0
- package/lib/cjs/contract/models/decorators-private.cjs +2 -2
- package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
- package/lib/cjs/contract/models/decorators.cjs +2 -2
- package/lib/cjs/contract/models/decorators.cjs.map +1 -0
- package/lib/cjs/contract/models/gtin.cjs +2 -2
- package/lib/cjs/contract/models/gtin.cjs.map +1 -0
- package/lib/cjs/contract/models/history-dec.cjs +2 -2
- package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/History.cjs +2 -2
- package/lib/cjs/contract/trackedModels/History.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherAudit.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherAudit.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherMarket.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherMarket.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProduct.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProduct.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProductImage.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProductShared.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs.map +1 -0
- package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
- package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
- package/lib/cjs/contracts/ContractContext.cjs +2 -2
- package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
- package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
- package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
- package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
- package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
- package/lib/cjs/contracts/MigrationContract.cjs +2 -2
- package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
- package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
- package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
- package/lib/cjs/contracts/auth/decorators.cjs +2 -2
- package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
- package/lib/cjs/contracts/auth/index.cjs +2 -2
- package/lib/cjs/contracts/auth/index.cjs.map +1 -0
- package/lib/cjs/contracts/bootstrap.cjs +2 -2
- package/lib/cjs/contracts/bootstrap.cjs.map +1 -0
- package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
- package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
- package/lib/cjs/contracts/crud/index.cjs +2 -2
- package/lib/cjs/contracts/crud/index.cjs.map +1 -0
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/index.cjs +2 -2
- package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/models.cjs +2 -2
- package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
- package/lib/cjs/contracts/fabric-overrides.cjs +2 -2
- package/lib/cjs/contracts/fabric-overrides.cjs.map +1 -0
- package/lib/cjs/contracts/index.cjs +2 -2
- package/lib/cjs/contracts/index.cjs.map +1 -0
- package/lib/cjs/contracts/logging.cjs +2 -2
- package/lib/cjs/contracts/logging.cjs.map +1 -0
- package/lib/cjs/contracts/overrides.cjs +2 -2
- package/lib/cjs/contracts/overrides.cjs.map +1 -0
- package/lib/cjs/contracts/types.cjs +2 -2
- package/lib/cjs/contracts/types.cjs.map +1 -0
- package/lib/cjs/contracts/uuid.cjs +2 -2
- package/lib/cjs/contracts/uuid.cjs.map +1 -0
- package/lib/cjs/index.cjs +2 -2
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/shared/ClientSerializer.cjs +2 -2
- package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
- package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
- package/lib/cjs/shared/constants.cjs +2 -2
- package/lib/cjs/shared/constants.cjs.map +1 -0
- package/lib/cjs/shared/decorators.cjs +2 -2
- package/lib/cjs/shared/decorators.cjs.map +1 -0
- package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
- package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
- package/lib/cjs/shared/erc20/index.cjs +2 -2
- package/lib/cjs/shared/erc20/index.cjs.map +1 -0
- package/lib/cjs/shared/errors.cjs +2 -2
- package/lib/cjs/shared/errors.cjs.map +1 -0
- package/lib/cjs/shared/events.cjs +2 -2
- package/lib/cjs/shared/events.cjs.map +1 -0
- package/lib/cjs/shared/fabric-types.cjs +2 -2
- package/lib/cjs/shared/fabric-types.cjs.map +1 -0
- package/lib/cjs/shared/index.cjs +2 -2
- package/lib/cjs/shared/index.cjs.map +1 -0
- package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
- package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
- package/lib/cjs/shared/interfaces/index.cjs +2 -2
- package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
- package/lib/cjs/shared/math.cjs +2 -2
- package/lib/cjs/shared/math.cjs.map +1 -0
- package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
- package/lib/cjs/shared/model/Identity.cjs +2 -2
- package/lib/cjs/shared/model/Identity.cjs.map +1 -0
- package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
- package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
- package/lib/cjs/shared/model/index.cjs +2 -2
- package/lib/cjs/shared/model/index.cjs.map +1 -0
- package/lib/cjs/shared/overrides/Model.cjs +2 -2
- package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
- package/lib/cjs/shared/overrides/index.cjs +2 -2
- package/lib/cjs/shared/overrides/index.cjs.map +1 -0
- package/lib/cjs/shared/overrides/overrides.cjs +2 -2
- package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
- package/lib/cjs/shared/types.cjs +2 -2
- package/lib/cjs/shared/types.cjs.map +1 -0
- package/lib/cjs/version.cjs +5 -5
- package/lib/cjs/version.cjs.map +1 -0
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/bin/cli.js.map +1 -0
- package/lib/esm/cli-module.js +1 -1
- package/lib/esm/cli-module.js.map +1 -0
- package/lib/esm/cli-utils.js +1 -1
- package/lib/esm/cli-utils.js.map +1 -0
- package/lib/esm/client/FabricClientAdapter.js +1 -1
- package/lib/esm/client/FabricClientAdapter.js.map +1 -0
- package/lib/esm/client/FabricClientContext.js +1 -1
- package/lib/esm/client/FabricClientContext.js.map +1 -0
- package/lib/esm/client/FabricClientDispatch.js +1 -1
- package/lib/esm/client/FabricClientDispatch.js.map +1 -0
- package/lib/esm/client/FabricClientPaginator.js +1 -1
- package/lib/esm/client/FabricClientPaginator.js.map +1 -0
- package/lib/esm/client/FabricClientRepository.js +1 -1
- package/lib/esm/client/FabricClientRepository.js.map +1 -0
- package/lib/esm/client/FabricClientStatement.js +1 -1
- package/lib/esm/client/FabricClientStatement.js.map +1 -0
- package/lib/esm/client/collections/generation.js +1 -1
- package/lib/esm/client/collections/generation.js.map +1 -0
- package/lib/esm/client/collections/index.js +1 -1
- package/lib/esm/client/collections/index.js.map +1 -0
- package/lib/esm/client/constants.js +1 -1
- package/lib/esm/client/constants.js.map +1 -0
- package/lib/esm/client/crypto.js +1 -1
- package/lib/esm/client/crypto.js.map +1 -0
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
- package/lib/esm/client/erc20/index.js +1 -1
- package/lib/esm/client/erc20/index.js.map +1 -0
- package/lib/esm/client/fabric-fs.js +1 -1
- package/lib/esm/client/fabric-fs.js.map +1 -0
- package/lib/esm/client/fabric-hsm.js +1 -1
- package/lib/esm/client/fabric-hsm.js.map +1 -0
- package/lib/esm/client/ids/id-extraction.js +1 -1
- package/lib/esm/client/ids/id-extraction.js.map +1 -0
- package/lib/esm/client/ids/index.js +1 -1
- package/lib/esm/client/ids/index.js.map +1 -0
- package/lib/esm/client/index.js +1 -1
- package/lib/esm/client/index.js.map +1 -0
- package/lib/esm/client/indexes/generation.js +1 -1
- package/lib/esm/client/indexes/generation.js.map +1 -0
- package/lib/esm/client/indexes/index.js +1 -1
- package/lib/esm/client/indexes/index.js.map +1 -0
- package/lib/esm/client/logging.js +1 -1
- package/lib/esm/client/logging.js.map +1 -0
- package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
- package/lib/esm/client/services/FabricIdentityService.js +1 -1
- package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
- package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
- package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
- package/lib/esm/client/services/constants.js +1 -1
- package/lib/esm/client/services/constants.js.map +1 -0
- package/lib/esm/client/services/index.js +1 -1
- package/lib/esm/client/services/index.js.map +1 -0
- package/lib/esm/client/types.js +1 -1
- package/lib/esm/client/types.js.map +1 -0
- package/lib/esm/client/utils.js +1 -1
- package/lib/esm/client/utils.js.map +1 -0
- package/lib/esm/contract/Address.js +1 -1
- package/lib/esm/contract/Address.js.map +1 -0
- package/lib/esm/contract/AddressContract.js +1 -1
- package/lib/esm/contract/AddressContract.js.map +1 -0
- package/lib/esm/contract/AuditContract.js +1 -1
- package/lib/esm/contract/AuditContract.js.map +1 -0
- package/lib/esm/contract/BatchContract.js +1 -1
- package/lib/esm/contract/BatchContract.js.map +1 -0
- package/lib/esm/contract/MarketContract.js +1 -1
- package/lib/esm/contract/MarketContract.js.map +1 -0
- package/lib/esm/contract/OtherAuditContract.js +1 -1
- package/lib/esm/contract/OtherAuditContract.js.map +1 -0
- package/lib/esm/contract/OtherBatchContract.js +1 -1
- package/lib/esm/contract/OtherBatchContract.js.map +1 -0
- package/lib/esm/contract/OtherLeafletContract.js +1 -1
- package/lib/esm/contract/OtherLeafletContract.js.map +1 -0
- package/lib/esm/contract/OtherLeafletFileContract.js +1 -1
- package/lib/esm/contract/OtherLeafletFileContract.js.map +1 -0
- package/lib/esm/contract/OtherMarketContract.js +1 -1
- package/lib/esm/contract/OtherMarketContract.js.map +1 -0
- package/lib/esm/contract/OtherProductContract.js +1 -1
- package/lib/esm/contract/OtherProductContract.js.map +1 -0
- package/lib/esm/contract/OtherProductImageContract.js +1 -1
- package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
- package/lib/esm/contract/OtherProductSharedContract.js +1 -1
- package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
- package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
- package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
- package/lib/esm/contract/Product.js +1 -1
- package/lib/esm/contract/Product.js.map +1 -0
- package/lib/esm/contract/ProductContract.js +1 -1
- package/lib/esm/contract/ProductContract.js.map +1 -0
- package/lib/esm/contract/ProductStrengthContract.js +1 -1
- package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
- package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
- package/lib/esm/contract/User.js +1 -1
- package/lib/esm/contract/User.js.map +1 -0
- package/lib/esm/contract/UserContract.js +1 -1
- package/lib/esm/contract/UserContract.js.map +1 -0
- package/lib/esm/contract/index.js +1 -1
- package/lib/esm/contract/index.js.map +1 -0
- package/lib/esm/contract/logging-context.js +1 -1
- package/lib/esm/contract/logging-context.js.map +1 -0
- package/lib/esm/contract/models/Audit.js +1 -1
- package/lib/esm/contract/models/Audit.js.map +1 -0
- package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
- package/lib/esm/contract/models/BaseModel.js +1 -1
- package/lib/esm/contract/models/BaseModel.js.map +1 -0
- package/lib/esm/contract/models/Batch.js +1 -1
- package/lib/esm/contract/models/Batch.js.map +1 -0
- package/lib/esm/contract/models/GtinOwner.js +1 -1
- package/lib/esm/contract/models/GtinOwner.js.map +1 -0
- package/lib/esm/contract/models/History.js +1 -1
- package/lib/esm/contract/models/History.js.map +1 -0
- package/lib/esm/contract/models/Leaflet.js +1 -1
- package/lib/esm/contract/models/Leaflet.js.map +1 -0
- package/lib/esm/contract/models/LeafletFile.js +1 -1
- package/lib/esm/contract/models/LeafletFile.js.map +1 -0
- package/lib/esm/contract/models/Market.js +1 -1
- package/lib/esm/contract/models/Market.js.map +1 -0
- package/lib/esm/contract/models/OtherAudit.js +1 -1
- package/lib/esm/contract/models/OtherAudit.js.map +1 -0
- package/lib/esm/contract/models/OtherBatchShared.js +1 -1
- package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
- package/lib/esm/contract/models/OtherLeaflet.js +1 -1
- package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
- package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
- package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
- package/lib/esm/contract/models/OtherMarket.js +1 -1
- package/lib/esm/contract/models/OtherMarket.js.map +1 -0
- package/lib/esm/contract/models/OtherProduct.js +1 -1
- package/lib/esm/contract/models/OtherProduct.js.map +1 -0
- package/lib/esm/contract/models/OtherProductImage.js +1 -1
- package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
- package/lib/esm/contract/models/OtherProductShared.js +1 -1
- package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
- package/lib/esm/contract/models/OtherProductStrength.js +1 -1
- package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
- package/lib/esm/contract/models/Product.js +1 -1
- package/lib/esm/contract/models/Product.js.map +1 -0
- package/lib/esm/contract/models/ProductStrength.js +1 -1
- package/lib/esm/contract/models/ProductStrength.js.map +1 -0
- package/lib/esm/contract/models/SegregatedDocument.js +1 -1
- package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
- package/lib/esm/contract/models/constants.js +1 -1
- package/lib/esm/contract/models/constants.js.map +1 -0
- package/lib/esm/contract/models/decorators-private.js +1 -1
- package/lib/esm/contract/models/decorators-private.js.map +1 -0
- package/lib/esm/contract/models/decorators.js +1 -1
- package/lib/esm/contract/models/decorators.js.map +1 -0
- package/lib/esm/contract/models/gtin.js +1 -1
- package/lib/esm/contract/models/gtin.js.map +1 -0
- package/lib/esm/contract/models/history-dec.js +1 -1
- package/lib/esm/contract/models/history-dec.js.map +1 -0
- package/lib/esm/contract/trackedModels/History.js +1 -1
- package/lib/esm/contract/trackedModels/History.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherAudit.js +1 -1
- package/lib/esm/contract/trackedModels/OtherAudit.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherBatchShared.js +1 -1
- package/lib/esm/contract/trackedModels/OtherBatchShared.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherLeaflet.js +1 -1
- package/lib/esm/contract/trackedModels/OtherLeaflet.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherLeafletFile.js +1 -1
- package/lib/esm/contract/trackedModels/OtherLeafletFile.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherMarket.js +1 -1
- package/lib/esm/contract/trackedModels/OtherMarket.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProduct.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProduct.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProductImage.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProductImage.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProductShared.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProductShared.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProductStrength.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProductStrength.js.map +1 -0
- package/lib/esm/contracts/ContractAdapter.js +1 -1
- package/lib/esm/contracts/ContractAdapter.js.map +1 -0
- package/lib/esm/contracts/ContractContext.js +1 -1
- package/lib/esm/contracts/ContractContext.js.map +1 -0
- package/lib/esm/contracts/FabricContractDispatch.js +1 -1
- package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
- package/lib/esm/contracts/FabricContractPaginator.js +1 -1
- package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
- package/lib/esm/contracts/FabricContractRepository.js +1 -1
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
- package/lib/esm/contracts/FabricContractSequence.js +1 -1
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
- package/lib/esm/contracts/FabricContractStatement.js +1 -1
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
- package/lib/esm/contracts/MigrationContract.js +1 -1
- package/lib/esm/contracts/MigrationContract.js.map +1 -0
- package/lib/esm/contracts/PrivateSequence.js +1 -1
- package/lib/esm/contracts/PrivateSequence.js.map +1 -0
- package/lib/esm/contracts/auth/decorators.js +1 -1
- package/lib/esm/contracts/auth/decorators.js.map +1 -0
- package/lib/esm/contracts/auth/index.js +1 -1
- package/lib/esm/contracts/auth/index.js.map +1 -0
- package/lib/esm/contracts/bootstrap.js +1 -1
- package/lib/esm/contracts/bootstrap.js.map +1 -0
- package/lib/esm/contracts/crud/crud-contract.js +1 -1
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
- package/lib/esm/contracts/crud/index.js +1 -1
- package/lib/esm/contracts/crud/index.js.map +1 -0
- package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
- package/lib/esm/contracts/erc20/erc20contract.js +1 -1
- package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
- package/lib/esm/contracts/erc20/index.js +1 -1
- package/lib/esm/contracts/erc20/index.js.map +1 -0
- package/lib/esm/contracts/erc20/models.js +1 -1
- package/lib/esm/contracts/erc20/models.js.map +1 -0
- package/lib/esm/contracts/fabric-overrides.js +1 -1
- package/lib/esm/contracts/fabric-overrides.js.map +1 -0
- package/lib/esm/contracts/index.js +1 -1
- package/lib/esm/contracts/index.js.map +1 -0
- package/lib/esm/contracts/logging.js +1 -1
- package/lib/esm/contracts/logging.js.map +1 -0
- package/lib/esm/contracts/overrides.js +1 -1
- package/lib/esm/contracts/overrides.js.map +1 -0
- package/lib/esm/contracts/types.js +1 -1
- package/lib/esm/contracts/types.js.map +1 -0
- package/lib/esm/contracts/uuid.js +1 -1
- package/lib/esm/contracts/uuid.js.map +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/shared/ClientSerializer.js +1 -1
- package/lib/esm/shared/ClientSerializer.js.map +1 -0
- package/lib/esm/shared/DeterministicSerializer.js +1 -1
- package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
- package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
- package/lib/esm/shared/constants.js +1 -1
- package/lib/esm/shared/constants.js.map +1 -0
- package/lib/esm/shared/decorators.js +1 -1
- package/lib/esm/shared/decorators.js.map +1 -0
- package/lib/esm/shared/erc20/erc20-constants.js +1 -1
- package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
- package/lib/esm/shared/erc20/index.js +1 -1
- package/lib/esm/shared/erc20/index.js.map +1 -0
- package/lib/esm/shared/errors.js +1 -1
- package/lib/esm/shared/errors.js.map +1 -0
- package/lib/esm/shared/events.js +1 -1
- package/lib/esm/shared/events.js.map +1 -0
- package/lib/esm/shared/fabric-types.js +1 -1
- package/lib/esm/shared/fabric-types.js.map +1 -0
- package/lib/esm/shared/index.js +1 -1
- package/lib/esm/shared/index.js.map +1 -0
- package/lib/esm/shared/interfaces/Checkable.js +1 -1
- package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
- package/lib/esm/shared/interfaces/index.js +1 -1
- package/lib/esm/shared/interfaces/index.js.map +1 -0
- package/lib/esm/shared/math.js +1 -1
- package/lib/esm/shared/math.js.map +1 -0
- package/lib/esm/shared/model/FabricBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
- package/lib/esm/shared/model/Identity.js +1 -1
- package/lib/esm/shared/model/Identity.js.map +1 -0
- package/lib/esm/shared/model/IdentityCredentials.js +1 -1
- package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
- package/lib/esm/shared/model/index.js +1 -1
- package/lib/esm/shared/model/index.js.map +1 -0
- package/lib/esm/shared/overrides/Model.js +1 -1
- package/lib/esm/shared/overrides/Model.js.map +1 -0
- package/lib/esm/shared/overrides/index.js +1 -1
- package/lib/esm/shared/overrides/index.js.map +1 -0
- package/lib/esm/shared/overrides/overrides.js +1 -1
- package/lib/esm/shared/overrides/overrides.js.map +1 -0
- package/lib/esm/shared/types.js +1 -1
- package/lib/esm/shared/types.js.map +1 -0
- package/lib/esm/version.js +4 -4
- package/lib/esm/version.js.map +1 -0
- package/lib/types/version.d.cts +3 -3
- package/lib/types/version.d.mts +3 -3
- package/package.json +1 -1
|
@@ -425,5 +425,5 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
425
425
|
}
|
|
426
426
|
}
|
|
427
427
|
exports.FabricCrudContract = FabricCrudContract;
|
|
428
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmFjdHMvY3J1ZC9jcnVkLWNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUFzQjtBQUN0QiwyQ0FBZ0M7QUFDaEMsT0FBTyxFQUVMLHFCQUFxQixHQUN0QixnQ0FBMkI7QUFDNUIsT0FBTyxFQUVMLFFBQVEsRUFDUixNQUFNLElBQUksWUFBWSxHQUN2QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBRUwsa0JBQWtCLEVBUWxCLGNBQWMsRUFDZCxlQUFlLEVBRWYscUJBQXFCLEVBQ3JCLFVBQVUsR0FFWCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrREFBNkM7QUFLL0UsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixhQUFhLEVBRWIsa0JBQWtCLEdBQ25CLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUVMLGVBQWUsRUFDZixtQkFBbUIsR0FDcEIsZ0NBQTJCO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUscUNBQWdDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLDJCQUFzQjtBQUV0RCxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7QUFDSCxNQUFNLE9BQWdCLGtCQUNwQixTQUFRLFFBQVE7SUFhaEI7O09BRUc7YUFDYyxZQUFPLEdBQTBCLElBQUkscUJBQXFCLEVBQUUsQUFBckQsQ0FBc0Q7YUFFcEQsZUFBVSxHQUFHLElBQUksdUJBQXVCLEVBQUUsQUFBaEMsQ0FBaUM7SUFNckUsSUFBYyxJQUFJO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxF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QUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDekQsQ0FBQyxJQUFJLENBQUMsS0FBWSxFQUFFLEdBQUcsSUFBSSxDQUFRLEVBQ25DLFNBQVMsRUFDVCxXQUFrQixFQUNsQixXQUFXLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBS3ZELENBQUM7UUFDTixTQUFTLFVBQVUsQ0FBQyxHQUE2QjtZQUMvQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsOEJBQThCO1lBQ25ELE9BQU8sR0FBVSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxjQUFjLFlBQVksT0FBTyxDQUFDO1lBQUUsT0FBTyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUUsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCIuLi9ib290c3RyYXBcIjtcbmltcG9ydCBcIi4uLy4uL3NoYXJlZC9vdmVycmlkZXNcIjtcbmltcG9ydCB7XG4gIEZhYnJpY0NvbnRleHR1YWxpemVkQXJncyxcbiAgRmFicmljQ29udHJhY3RBZGFwdGVyLFxufSBmcm9tIFwiLi4vQ29udHJhY3RBZGFwdGVyXCI7XG5pbXBvcnQge1xuICBDb250ZXh0IGFzIEN0eCxcbiAgQ29udHJhY3QsXG4gIE9iamVjdCBhcyBGYWJyaWNPYmplY3QsXG59IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5pbXBvcnQgeyBNb2RlbCwgU2VyaWFsaXplciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIEFsbE9wZXJhdGlvbktleXMsXG4gIEF1dGhvcml6YXRpb25FcnJvcixcbiAgQ29uZGl0aW9uLFxuICBDb250ZXh0dWFsQXJncyxcbiAgRGlyZWN0aW9uTGltaXRPZmZzZXQsXG4gIEV2ZW50SWRzLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIE1ldGhvZE9yT3BlcmF0aW9uLFxuICBPYnNlcnZlcixcbiAgT3JkZXJEaXJlY3Rpb24sXG4gIFBlcnNpc3RlbmNlS2V5cyxcbiAgUGVyc2lzdGVuY2VPYnNlcnZlcixcbiAgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLFxuICBSZXBvc2l0b3J5LFxuICBTZXJpYWxpemVkUGFnZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vRmFicmljQ29udHJhY3RSZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBEZXRlcm1pbmlzdGljU2VyaWFsaXplciB9IGZyb20gXCIuLi8uLi9zaGFyZWQvRGV0ZXJtaW5pc3RpY1NlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IE1hbmdvUXVlcnkgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBDaGVja2FibGUsIGhlYWx0aGNoZWNrIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9pbnRlcmZhY2VzL0NoZWNrYWJsZVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0Q29udGV4dCB9IGZyb20gXCIuLi9Db250cmFjdENvbnRleHRcIjtcbmltcG9ydCB7XG4gIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyxcbiAgT3BlcmF0aW9uS2V5cyxcbiAgUHJpbWFyeUtleVR5cGUsXG4gIFNlcmlhbGl6YXRpb25FcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQge1xuICBGYWJyaWNGbGFncyxcbiAgRmFicmljTW9kZWxLZXlzLFxuICBNaXNzaW5nQ29udGV4dEVycm9yLFxufSBmcm9tIFwiLi4vLi4vc2hhcmVkL2luZGV4XCI7XG5pbXBvcnQgeyBleHRyYWN0TXNwSWQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IFBBQ0tBR0VfTkFNRSwgVkVSU0lPTiB9IGZyb20gXCIuLi8uLi92ZXJzaW9uXCI7XG5cbkZhYnJpY09iamVjdCgpKERhdGUpO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFzZSBjb250cmFjdCBjbGFzcyBmb3IgQ1JVRCBvcGVyYXRpb25zIGluIEZhYnJpYyBjaGFpbmNvZGVcbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIHN0YW5kYXJkIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQgZGVsZXRlIG9wZXJhdGlvbnMgZm9yIG1vZGVscyBpbiBGYWJyaWMgY2hhaW5jb2RlXG4gKiBAdGVtcGxhdGUgTSAtIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gKiBAY2xhc3MgRmFicmljQ3J1ZENvbnRyYWN0XG4gKiBAZXh0ZW5kcyB7Q29udHJhY3R9XG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gRGVmaW5lIGEgbW9kZWxcbiAqIEB0YWJsZSgnYXNzZXRzJylcbiAqIGNsYXNzIEFzc2V0IGV4dGVuZHMgTW9kZWwge1xuICogICBAaWQoKVxuICogICBpZDogc3RyaW5nO1xuICpcbiAqICAgQHByb3BlcnR5KClcbiAqICAgZGF0YTogc3RyaW5nO1xuICogfVxuICpcbiAqIC8vIENyZWF0ZSBhIGNvbnRyYWN0IHRoYXQgZXh0ZW5kcyBGYWJyaWNDcnVkQ29udHJhY3RcbiAqIGV4cG9ydCBjbGFzcyBBc3NldENvbnRyYWN0IGV4dGVuZHMgRmFicmljQ3J1ZENvbnRyYWN0PEFzc2V0PiB7XG4gKiAgIGNvbnN0cnVjdG9yKCkge1xuICogICAgIHN1cGVyKCdBc3NldENvbnRyYWN0JywgQXNzZXQpO1xuICogICB9XG4gKlxuICogICAvLyBBZGQgY3VzdG9tIG1ldGhvZHMgYXMgbmVlZGVkXG4gKiAgIGFzeW5jIGdldEFzc2V0SGlzdG9yeShjdHg6IENvbnRleHQsIGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueVtdPiB7XG4gKiAgICAgLy8gQ3VzdG9tIGltcGxlbWVudGF0aW9uXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgQ29udHJhY3RcbiAqICAgcGFydGljaXBhbnQgUmVwb3NpdG9yeVxuICogICBwYXJ0aWNpcGFudCBBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IFN0YXRlREJcbiAqXG4gKiAgIENsaWVudC0+PkNvbnRyYWN0OiBjcmVhdGUoY3R4LCBtb2RlbClcbiAqICAgQ29udHJhY3QtPj5SZXBvc2l0b3J5OiByZXBvc2l0b3J5KGN0eClcbiAqICAgQ29udHJhY3QtPj5SZXBvc2l0b3J5OiBjcmVhdGUobW9kZWwsIGN0eClcbiAqICAgUmVwb3NpdG9yeS0+PkFkYXB0ZXI6IGNyZWF0ZSh0YWJsZU5hbWUsIGlkLCByZWNvcmQsIHRyYW5zaWVudCwgY3R4KVxuICogICBBZGFwdGVyLT4+U3RhdGVEQjogcHV0U3RhdGUoaWQsIHNlcmlhbGl6ZWREYXRhKVxuICogICBTdGF0ZURCLS0+PkFkYXB0ZXI6IFN1Y2Nlc3NcbiAqICAgQWRhcHRlci0tPj5SZXBvc2l0b3J5OiByZWNvcmRcbiAqICAgUmVwb3NpdG9yeS0tPj5Db250cmFjdDogbW9kZWxcbiAqICAgQ29udHJhY3QtLT4+Q2xpZW50OiBtb2RlbFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmFicmljQ3J1ZENvbnRyYWN0PE0gZXh0ZW5kcyBNb2RlbD5cbiAgZXh0ZW5kcyBDb250cmFjdFxuICBpbXBsZW1lbnRzXG4gICAgQ2hlY2thYmxlLFxuICAgIFBlcnNpc3RlbmNlT2JzZXJ2ZXI8RmFicmljQ29udHJhY3RDb250ZXh0PixcbiAgICBPYnNlcnZlcjxcbiAgICAgIFtcbiAgICAgICAgdGFibGU6IENvbnN0cnVjdG9yPE0+IHwgc3RyaW5nLFxuICAgICAgICBldmVudDogQWxsT3BlcmF0aW9uS2V5cyxcbiAgICAgICAgaWQ6IEV2ZW50SWRzLFxuICAgICAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+LFxuICAgICAgXVxuICAgID5cbntcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTaGFyZWQgYWRhcHRlciBpbnN0YW5jZSBmb3IgYWxsIGNvbnRyYWN0IGluc3RhbmNlc1xuICAgKi9cbiAgcHJvdGVjdGVkIHN0YXRpYyBhZGFwdGVyOiBGYWJyaWNDb250cmFjdEFkYXB0ZXIgPSBuZXcgRmFicmljQ29udHJhY3RBZGFwdGVyKCk7XG5cbiAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBzZXJpYWxpemVyID0gbmV3IERldGVybWluaXN0aWNTZXJpYWxpemVyKCk7XG5cbiAgcHJvdGVjdGVkIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfcmVwbz86IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeTxNPjtcblxuICBwcm90ZWN0ZWQgZ2V0IHJlcG8oKSB7XG4gICAgaWYgKCF0aGlzLl9yZXBvKSB7XG4gICAgICB0aGlzLl9yZXBvID0gUmVwb3NpdG9yeS5mb3JNb2RlbCh0aGlzLmNsYXp6KTtcbiAgICAgIC8vIHRyeSB7XG4gICAgICAvLyAgIHRoaXMucmVwby5vYnNlcnZlKHRoaXMpO1xuICAgICAgLy8gfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICAvLyAgIGlmIChcbiAgICAgIC8vICAgICBlcnIgaW5zdGFuY2VvZiBJbnRlcm5hbEVycm9yICYmXG4gICAgICAvLyAgICAgZXJyLm1lc3NhZ2UuaW5jbHVkZXMoXCJPYnNlcnZlciBhbHJlYWR5IHJlZ2lzdGVyZWRcIilcbiAgICAgIC8vICAgKSB7XG4gICAgICAvLyAgICAgLy8gYWxyZWFkeSByZWdpc3RlcmVkIG9ic2VydmVyOyBpZ25vcmUgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiAoZHVyaW5nIHRlc3RzKVxuICAgICAgLy8gICB9IGVsc2Uge1xuICAgICAgLy8gICAgIHRocm93IGVycjtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcmVwbztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBGYWJyaWNDcnVkQ29udHJhY3QgaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBjb250cmFjdCB3aXRoIGEgbmFtZSBhbmQgbW9kZWwgY2xhc3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgY29udHJhY3RcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gY2xhenogLSBUaGUgbW9kZWwgY29uc3RydWN0b3JcbiAgICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNsYXp6OiBDb25zdHJ1Y3RvcjxNPlxuICApIHtcbiAgICBzdXBlcihuYW1lKTtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2goXG4gICAgdGFibGU6IENvbnN0cnVjdG9yPE0+IHwgc3RyaW5nLFxuICAgIGV2ZW50OiBBbGxPcGVyYXRpb25LZXlzLFxuICAgIGlkOiBFdmVudElkcyxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlZnJlc2gpO1xuICAgIGxvZy52ZXJib3NlKGBQdXNoaW5nICR7ZXZlbnR9IGV2ZW50IG9uIHRhYmxlICR7dGFibGV9LCBpZChzKSAke2lkfWApO1xuICAgIC8vIGRvIG5vdGhpbmcuIGFsbCB3ZSBuZWVkZWQgd2FzIGFuIG9ic2VydmVyIHRvIGtpY2tzdGFydCB0aGUgcHJvY2Vzc1xuICB9XG5cbiAgYXN5bmMgbGlzdEJ5KFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogc3RyaW5nIHwga2V5b2YgTSxcbiAgICBvcmRlcjogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8TVtdIHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTElTVF9CWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmxpc3RCeSk7XG4gICAgbG9nLmluZm8oXG4gICAgICBgUnVubmluZyBsaXN0Qnkga2V5ICR7a2V5IGFzIHN0cmluZ30sIG9yZGVyICR7b3JkZXJ9IGFuZCBhcmdzICR7Y3R4QXJnc31gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmxpc3RCeShcbiAgICAgIGtleSBhcyBrZXlvZiBNLFxuICAgICAgb3JkZXIgYXMgT3JkZXJEaXJlY3Rpb24sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHBhZ2luYXRlQnkoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAga2V5OiBzdHJpbmcgfCBrZXlvZiBNLFxuICAgIG9yZGVyOiBzdHJpbmcsXG4gICAgcmVmOiBPbWl0PERpcmVjdGlvbkxpbWl0T2Zmc2V0LCBcImRpcmVjdGlvblwiPiB8IHN0cmluZyA9IHtcbiAgICAgIG9mZnNldDogMSxcbiAgICAgIGxpbWl0OiAxMCxcbiAgICB9LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8U2VyaWFsaXplZFBhZ2U8TT4gfCBzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5QQUdFX0JZLCB0cnVlKVxuICAgICkuZm9yKHRoaXMucGFnaW5hdGVCeSk7XG4gICAgbG9nLmluZm8oXG4gICAgICBgUnVubmluZyBwYWdpbmF0ZUJ5IGtleSAke2tleSBhcyBzdHJpbmd9LCBvcmRlciAke29yZGVyfSB3aXRoIHNpemUgJHsocmVmIGFzIGFueSkubGltaXR9IGFuZCBhcmdzICR7Y3R4QXJnc31gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnBhZ2luYXRlQnkoXG4gICAgICBrZXkgYXMga2V5b2YgTSxcbiAgICAgIG9yZGVyIGFzIGFueSxcbiAgICAgIHJlZiBhcyBhbnksXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHBhZ2UoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBkaXJlY3Rpb246IHN0cmluZyB8IE9yZGVyRGlyZWN0aW9uID0gT3JkZXJEaXJlY3Rpb24uQVNDLFxuICAgIHJlZjogT21pdDxEaXJlY3Rpb25MaW1pdE9mZnNldCwgXCJkaXJlY3Rpb25cIj4gfCBzdHJpbmcgPSB7XG4gICAgICBvZmZzZXQ6IDEsXG4gICAgICBsaW1pdDogMTAsXG4gICAgfSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFNlcmlhbGl6ZWRQYWdlPE0+IHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnBhZ2UpO1xuICAgIGxvZy5pbmZvKFxuICAgICAgYFBhZ2luZyAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXp6KX0gYnkgZGVmYXVsdCBxdWVyeSBhdHRyaWJ1dGVzYFxuICAgICk7XG4gICAgY29uc3QgcmVmZXJlbmNlID1cbiAgICAgIHR5cGVvZiByZWYgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyAoSlNPTi5wYXJzZShyZWYpIGFzIE9taXQ8RGlyZWN0aW9uTGltaXRPZmZzZXQsIFwiZGlyZWN0aW9uXCI+KSB8fFxuICAgICAgICAgICh7fSBhcyBPbWl0PERpcmVjdGlvbkxpbWl0T2Zmc2V0LCBcImRpcmVjdGlvblwiPilcbiAgICAgICAgOiByZWY7XG4gICAgcmV0dXJuIHRoaXMucmVwby5wYWdlKFxuICAgICAgdmFsdWUsXG4gICAgICBkaXJlY3Rpb24gYXMgT3JkZXJEaXJlY3Rpb24sXG4gICAgICByZWZlcmVuY2UgYXMgT21pdDxEaXJlY3Rpb25MaW1pdE9mZnNldCwgXCJkaXJlY3Rpb25cIj4sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGZpbmRPbmVCeShcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXk6IHN0cmluZyB8IGtleW9mIE0sXG4gICAgdmFsdWU6IGFueSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE0gfCBzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX09ORV9CWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmZpbmRPbmVCeSk7XG4gICAgbG9nLmluZm8oXG4gICAgICBgUnVubmluZyBmaW5kT25lQnkga2V5ICR7a2V5IGFzIHN0cmluZ30sIHZhbHVlOiAke3ZhbHVlfSB3aXRoIGFyZ3MgJHtjdHhBcmdzfWBcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnJlcG8uZmluZE9uZUJ5KGtleSBhcyBrZXlvZiBNLCB2YWx1ZSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBzdGF0ZW1lbnQoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFBlcnNpc3RlbmNlS2V5cy5TVEFURU1FTlQsIHRydWUpXG4gICAgKS5mb3IodGhpcy5zdGF0ZW1lbnQpO1xuICAgIGxvZy5pbmZvKGBSdW5uaW5nIHN0YXRlbWVudCAke21ldGhvZH0gd2l0aCBhcmdzICR7Y3R4QXJnc31gKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnN0YXRlbWVudChtZXRob2QsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgY291bnRPZihcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXk/OiBzdHJpbmcgfCBrZXlvZiBNLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8bnVtYmVyIHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuQ09VTlRfT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jb3VudE9mKTtcbiAgICBsb2cuaW5mbyhgUnVubmluZyBjb3VudE9mJHtrZXkgPyBgIGtleSAke2tleSBhcyBzdHJpbmd9YCA6IFwiXCJ9YCk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5jb3VudE9mKGtleSBhcyBrZXlvZiBNIHwgdW5kZWZpbmVkLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIG1heE9mKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogc3RyaW5nIHwga2V5b2YgTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE1ba2V5b2YgTV0gfCBzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5NQVhfT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5tYXhPZik7XG4gICAgbG9nLmluZm8oYFJ1bm5pbmcgbWF4T2Yga2V5ICR7a2V5IGFzIHN0cmluZ31gKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLm1heE9mKGtleSBhcyBrZXlvZiBNLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIG1pbk9mKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogc3RyaW5nIHwga2V5b2YgTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE1ba2V5b2YgTV0gfCBzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5NSU5fT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5taW5PZik7XG4gICAgbG9nLmluZm8oYFJ1bm5pbmcgbWluT2Yga2V5ICR7a2V5IGFzIHN0cmluZ31gKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLm1pbk9mKGtleSBhcyBrZXlvZiBNLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGF2Z09mKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogc3RyaW5nIHwga2V5b2YgTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPG51bWJlciB8IHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkFWR19PRiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmF2Z09mKTtcbiAgICBsb2cuaW5mbyhgUnVubmluZyBhdmdPZiBrZXkgJHtrZXkgYXMgc3RyaW5nfWApO1xuICAgIHJldHVybiB0aGlzLnJlcG8uYXZnT2Yoa2V5IGFzIGtleW9mIE0sIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgc3VtT2YoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAga2V5OiBzdHJpbmcgfCBrZXlvZiBNLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8bnVtYmVyIHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuU1VNX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuc3VtT2YpO1xuICAgIGxvZy5pbmZvKGBSdW5uaW5nIHN1bU9mIGtleSAke2tleSBhcyBzdHJpbmd9YCk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5zdW1PZihrZXkgYXMga2V5b2YgTSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBkaXN0aW5jdE9mKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogc3RyaW5nIHwga2V5b2YgTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE1ba2V5b2YgTV1bXSB8IHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkRJU1RJTkNUX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZGlzdGluY3RPZik7XG4gICAgbG9nLmluZm8oYFJ1bm5pbmcgZGlzdGluY3RPZiBrZXkgJHtrZXkgYXMgc3RyaW5nfWApO1xuICAgIHJldHVybiB0aGlzLnJlcG8uZGlzdGluY3RPZihrZXkgYXMga2V5b2YgTSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBncm91cE9mKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogc3RyaW5nIHwga2V5b2YgTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIE1bXT4gfCBzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5HUk9VUF9PRiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmdyb3VwT2YpO1xuICAgIGxvZy5pbmZvKGBSdW5uaW5nIGdyb3VwT2Yga2V5ICR7a2V5IGFzIHN0cmluZ31gKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmdyb3VwT2Yoa2V5IGFzIGtleW9mIE0sIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgc2luZ2xlIG1vZGVsIGluIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyBjcmVhdGUgbWV0aG9kXG4gICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgdG8gY3JlYXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE0+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCBtb2RlbFxuICAgKi9cbiAgYXN5bmMgY3JlYXRlKFxuICAgIGNvbnRleHQ6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBtb2RlbDogc3RyaW5nIHwgTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHN0cmluZyB8IE0+IHtcbiAgICBpZiAodHlwZW9mIG1vZGVsID09PSBcInN0cmluZ1wiKSBtb2RlbCA9IHRoaXMuZGVzZXJpYWxpemU8TT4obW9kZWwpIGFzIE07XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MsIGN0eCB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoXG4gICAgICAgIFsuLi5hcmdzLCBjb250ZXh0XSxcbiAgICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICAgIHRydWVcbiAgICAgIClcbiAgICApLmZvcih0aGlzLmNyZWF0ZSk7XG4gICAgdGhpcy5lbnN1cmVNaXJyb3JXcml0ZVBlcm1pc3Npb25zKGN0eCk7XG4gICAgbG9nLmluZm8oYENPTlRSQUNUIENSRUFURSwgJHtjdHhBcmdzfWApO1xuXG4gICAgbG9nLmluZm8oYENyZWF0aW5nIG1vZGVsOiAke0pTT04uc3RyaW5naWZ5KG1vZGVsKX1gKTtcblxuICAgIGNvbnN0IHRyYW5zaWVudCA9IHRoaXMuZ2V0VHJhbnNpZW50RGF0YShjdHgpO1xuXG4gICAgbG9nLmluZm8oYE1lcmdpbmcgdHJhbnNpZW50IGRhdGEuLi5gKTtcbiAgICBtb2RlbCA9IE1vZGVsLm1lcmdlKG1vZGVsLCB0cmFuc2llbnQsIHRoaXMuY2xhenopIGFzIE07XG5cbiAgICB0cnkge1xuICAgICAgbG9nLmluZm8oXG4gICAgICAgIGBDUkVBVEUgbWF0ZXJpYWxpemVkIG1vZGVsIGZvciAke3RoaXMuY2xhenoubmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgbW9kZWxcbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgICAgbG9nLmluZm8oXG4gICAgICAgIGBDUkVBVEUgbWF0ZXJpYWxpemVkIHBrIGZvciAke3RoaXMuY2xhenoubmFtZX06ICR7U3RyaW5nKFxuICAgICAgICAgIE1vZGVsLnBrKG1vZGVsIGFzIE0sIHRydWUpXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2cud2FybihcbiAgICAgICAgYENSRUFURSBtYXRlcmlhbGl6ZWQgbW9kZWwgbG9nZ2luZyBmYWlsZWQgZm9yICR7dGhpcy5jbGF6ei5uYW1lfTogJHtlfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IHRoaXMucmVwby5jcmVhdGUobW9kZWwsIC4uLmN0eEFyZ3MpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IHRoaXMuY2xhenooTW9kZWwuc2VncmVnYXRlKGNyZWF0ZWQpLm1vZGVsKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBhIHNpbmdsZSBtb2RlbCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyByZWFkIG1ldGhvZFxuICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0ga2V5IC0gVGhlIGtleSBvZiB0aGUgbW9kZWwgdG8gcmVhZFxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCBtb2RlbFxuICAgKi9cbiAgYXN5bmMgcmVhZChcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXk6IFByaW1hcnlLZXlUeXBlIHwgc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8TSB8IHN0cmluZz4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgT3BlcmF0aW9uS2V5cy5SRUFELCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlKTtcbiAgICBsb2cuaW5mbyhgcmVhZGluZyBlbnRyeSB3aXRoIHBrICR7a2V5fSBgKTtcblxuICAgIHJldHVybiB0aGlzLnJlcG8ucmVhZChrZXksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zaWVudERhdGEoY3R4OiBGYWJyaWNDb250cmFjdENvbnRleHQpOiBhbnkge1xuICAgIGNvbnN0IHRyYW5zaWVudE1hcCA9IGN0eC5zdHViLmdldFRyYW5zaWVudCgpO1xuICAgIGxldCB0cmFuc2llbnQ6IGFueSA9IHt9O1xuXG4gICAgaWYgKHRyYW5zaWVudE1hcC5oYXModGhpcy5yZXBvW1widGFibGVOYW1lXCJdKSkge1xuICAgICAgdHJhbnNpZW50ID0gSlNPTi5wYXJzZShcbiAgICAgICAgKFxuICAgICAgICAgIHRyYW5zaWVudE1hcC5nZXQodGhpcy5yZXBvW1widGFibGVOYW1lXCJdKSBhcyB1bmtub3duIGFzIEJ1ZmZlclxuICAgICAgICApPy50b1N0cmluZyhcInV0ZjhcIikgYXMgc3RyaW5nXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0cmFuc2llbnQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVzZXJpYWxpemVCdWxrTW9kZWxzKG1vZGVsczogc3RyaW5nKTogTVtdIHtcbiAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKG1vZGVscyk7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBhcnNlZCkpXG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKFxuICAgICAgICBuZXcgRXJyb3IoXCJCdWxrIHBheWxvYWQgbXVzdCBiZSBhbiBhcnJheSBvZiBzZXJpYWxpemVkIG1vZGVsc1wiKVxuICAgICAgKTtcbiAgICBjb25zdCBoeWRyYXRlZCA9IHBhcnNlZC5tYXAoKGVudHJ5OiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB7XG4gICAgICBjb25zdCBzZXJpYWxpemVkID1cbiAgICAgICAgdHlwZW9mIGVudHJ5ID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyBlbnRyeVxuICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhlbnRyeSkuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgKFtrZXldKSA9PiBrZXkgIT09IEZhYnJpY01vZGVsS2V5cy5PVkVSUklERVNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgIHJldHVybiBuZXcgdGhpcy5jbGF6eih0aGlzLmRlc2VyaWFsaXplKHNlcmlhbGl6ZWQpKTtcbiAgICB9KSBhcyBNW107XG4gICAgcmV0dXJuIGh5ZHJhdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIGEgc2luZ2xlIG1vZGVsIGluIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyB1cGRhdGUgbWV0aG9kXG4gICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgdG8gdXBkYXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE0+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdXBkYXRlZCBtb2RlbFxuICAgKi9cbiAgYXN5bmMgdXBkYXRlKFxuICAgIGNvbnRleHQ6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBtb2RlbDogc3RyaW5nIHwgTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHN0cmluZyB8IE0+IHtcbiAgICBpZiAodHlwZW9mIG1vZGVsID09PSBcInN0cmluZ1wiKSBtb2RlbCA9IHRoaXMuZGVzZXJpYWxpemU8TT4obW9kZWwpIGFzIE07XG5cbiAgICBjb25zdCB7IGxvZywgY3R4QXJncywgY3R4IH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChcbiAgICAgICAgWy4uLmFyZ3MsIGNvbnRleHRdLFxuICAgICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKVxuICAgICkuZm9yKHRoaXMudXBkYXRlKTtcbiAgICB0aGlzLmVuc3VyZU1pcnJvcldyaXRlUGVybWlzc2lvbnMoY3R4KTtcblxuICAgIGxvZy5pbmZvKGBVcGRhdGluZyBtb2RlbDogJHtKU09OLnN0cmluZ2lmeShtb2RlbCl9YCk7XG5cbiAgICBjb25zdCB0cmFuc2llbnQgPSB0aGlzLmdldFRyYW5zaWVudERhdGEoY3R4KTtcblxuICAgIGxvZy5pbmZvKGBNZXJnaW5nIHRyYW5zaWVudCBkYXRhLi4uYCk7XG4gICAgbW9kZWwgPSBNb2RlbC5tZXJnZShtb2RlbCwgdHJhbnNpZW50LCB0aGlzLmNsYXp6KSBhcyBNO1xuICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB0aGlzLnJlcG8udXBkYXRlKG1vZGVsLCAuLi5jdHhBcmdzKTtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgdGhpcy5jbGF6eihNb2RlbC5zZWdyZWdhdGUodXBkYXRlZCkubW9kZWwpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgYSBzaW5nbGUgbW9kZWwgZnJvbSB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgZGVsZXRlIG1ldGhvZFxuICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0ga2V5IC0gVGhlIGtleSBvZiB0aGUgbW9kZWwgdG8gZGVsZXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE0+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZGVsZXRlZCBtb2RlbFxuICAgKi9cbiAgYXN5bmMgZGVsZXRlKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogUHJpbWFyeUtleVR5cGUgfCBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxNIHwgc3RyaW5nPiB7XG4gICAgY29uc3Qge1xuICAgICAgbG9nLFxuICAgICAgY3R4QXJncyxcbiAgICAgIGN0eDogZmFicmljQ3R4LFxuICAgIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIE9wZXJhdGlvbktleXMuREVMRVRFLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5kZWxldGVcbiAgICApO1xuICAgIHRoaXMuZW5zdXJlTWlycm9yV3JpdGVQZXJtaXNzaW9ucyhmYWJyaWNDdHgpO1xuICAgIGxvZy5pbmZvKGBkZWxldGluZyBlbnRyeSB3aXRoIHBrICR7a2V5fSBgKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmRlbGV0ZShTdHJpbmcoa2V5KSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgbXVsdGlwbGUgbW9kZWxzIGZyb20gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIGRlbGV0ZUFsbCBtZXRob2RcbiAgICogQHBhcmFtIHtzdHJpbmdbXSB8IG51bWJlcltdfSBrZXlzIC0gVGhlIGtleXMgb2YgdGhlIG1vZGVscyB0byBkZWxldGVcbiAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8TVtdPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgbW9kZWxzXG4gICAqL1xuICBhc3luYyBkZWxldGVBbGwoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAga2V5czogUHJpbWFyeUtleVR5cGVbXSB8IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE1bXSB8IHN0cmluZz4ge1xuICAgIGlmICh0eXBlb2Yga2V5cyA9PT0gXCJzdHJpbmdcIikga2V5cyA9IEpTT04ucGFyc2Uoa2V5cykgYXMgc3RyaW5nW107XG4gICAgY29uc3QgeyBjdHhBcmdzLCBjdHg6IGZhYnJpY0N0eCB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5ERUxFVEVfQUxMLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZGVsZXRlQWxsKTtcbiAgICB0aGlzLmVuc3VyZU1pcnJvcldyaXRlUGVybWlzc2lvbnMoZmFicmljQ3R4KTtcbiAgICBjb25zdCBkZWxldGVkID0gYXdhaXQgdGhpcy5yZXBvLmRlbGV0ZUFsbChrZXlzLCAuLi5jdHhBcmdzKTtcbiAgICBjb25zdCByZXN1bHQgPSBkZWxldGVkLm1hcCgoYykgPT4gbmV3IHRoaXMuY2xhenooTW9kZWwuc2VncmVnYXRlKGMpLm1vZGVsKSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgbXVsdGlwbGUgbW9kZWxzIGZyb20gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIHJlYWRBbGwgbWV0aG9kXG4gICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0ga2V5cyAtIFRoZSBrZXlzIG9mIHRoZSBtb2RlbHMgdG8gcmVhZFxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcmV0cmlldmVkIG1vZGVsc1xuICAgKi9cbiAgYXN5bmMgcmVhZEFsbChcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXlzOiBQcmltYXJ5S2V5VHlwZVtdIHwgc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8TVtdIHwgc3RyaW5nPiB7XG4gICAgaWYgKHR5cGVvZiBrZXlzID09PSBcInN0cmluZ1wiKSBrZXlzID0gSlNPTi5wYXJzZShrZXlzKSBhcyBzdHJpbmdbXTtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuUkVBRF9BTEwsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGUpO1xuICAgIHJldHVybiB0aGlzLnJlcG8ucmVhZEFsbChrZXlzLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBtdWx0aXBsZSBtb2RlbHMgaW4gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIHVwZGF0ZUFsbCBtZXRob2RcbiAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICogQHBhcmFtIHtNW119IG1vZGVscyAtIFRoZSBtb2RlbHMgdG8gdXBkYXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1bXT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIG1vZGVsc1xuICAgKi9cbiAgYXN5bmMgdXBkYXRlQWxsKFxuICAgIGNvbnRleHQ6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBtb2RlbHM6IHN0cmluZyB8IE1bXSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHN0cmluZyB8IE1bXT4ge1xuICAgIGlmICh0eXBlb2YgbW9kZWxzID09PSBcInN0cmluZ1wiKSBtb2RlbHMgPSB0aGlzLmRlc2VyaWFsaXplQnVsa01vZGVscyhtb2RlbHMpO1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzLCBjdHggfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFxuICAgICAgICBbLi4uYXJncywgY29udGV4dF0sXG4gICAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLFxuICAgICAgICB0cnVlXG4gICAgICApXG4gICAgKS5mb3IodGhpcy51cGRhdGVBbGwpO1xuICAgIHRoaXMuZW5zdXJlTWlycm9yV3JpdGVQZXJtaXNzaW9ucyhjdHgpO1xuXG4gICAgY29uc3QgdHJhbnNpZW50ID0gdGhpcy5nZXRUcmFuc2llbnREYXRhKGN0eCk7XG5cbiAgICBsb2cuaW5mbyhgTWVyZ2luZyB0cmFuc2llbnQgZGF0YS4uLmApO1xuICAgIG1vZGVscyA9IChtb2RlbHMgYXMgTVtdKS5tYXAoKG0sIGkpID0+IHtcbiAgICAgIGNvbnN0IHQgPSBBcnJheS5pc0FycmF5KHRyYW5zaWVudCkgPyB0cmFuc2llbnRbaV0gOiB0cmFuc2llbnQ7XG4gICAgICByZXR1cm4gTW9kZWwubWVyZ2UobSwgdCB8fCB7fSwgdGhpcy5jbGF6eikgYXMgTTtcbiAgICB9KTtcblxuICAgIGxvZy5pbmZvKGBhZGRpbmcgJHttb2RlbHMubGVuZ3RofSBlbnRyaWVzIHRvIHRoZSB0YWJsZWApO1xuXG4gICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IHRoaXMucmVwby51cGRhdGVBbGwoXG4gICAgICBtb2RlbHMgYXMgdW5rbm93biBhcyBNW10sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCByZXN1bHQgPSB1cGRhdGVkLm1hcCgoYykgPT4gbmV3IHRoaXMuY2xhenooTW9kZWwuc2VncmVnYXRlKGMpLm1vZGVsKSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSBxdWVyeSB3aXRoIHRoZSBzcGVjaWZpZWQgY29uZGl0aW9ucyBhbmQgb3B0aW9ucy5cbiAgICogQHN1bW1hcnkgUHJvdmlkZXMgYSBzaW1wbGlmaWVkIHdheSB0byBxdWVyeSB0aGUgZGF0YWJhc2Ugd2l0aCBjb21tb24gcXVlcnkgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHtDb25kaXRpb248TT59IGNvbmRpdGlvbiAtIFRoZSBjb25kaXRpb24gdG8gZmlsdGVyIHJlY29yZHMuXG4gICAqIEBwYXJhbSBvcmRlckJ5IC0gVGhlIGZpZWxkIHRvIG9yZGVyIHJlc3VsdHMgYnkuXG4gICAqIEBwYXJhbSB7T3JkZXJEaXJlY3Rpb259IFtvcmRlcj1PcmRlckRpcmVjdGlvbi5BU0NdIC0gVGhlIHNvcnQgZGlyZWN0aW9uLlxuICAgKiBAcGFyYW0ge09yZGVyRGlyZWN0aW9ufSBbb3JkZXI9T3JkZXJEaXJlY3Rpb24uQVNDXSAtIFRoZSBzb3J0IGRpcmVjdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtsaW1pdF0gLSBPcHRpb25hbCBtYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtza2lwXSAtIE9wdGlvbmFsIG51bWJlciBvZiByZXN1bHRzIHRvIHNraXAuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8TVtdPn0gVGhlIHF1ZXJ5IHJlc3VsdHMgYXMgbW9kZWwgaW5zdGFuY2VzLlxuICAgKi9cbiAgYXN5bmMgcXVlcnkoXG4gICAgY29udGV4dDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGNvbmRpdGlvbjogQ29uZGl0aW9uPE0+IHwgc3RyaW5nLFxuICAgIG9yZGVyQnk6IHN0cmluZyB8IGtleW9mIE0sXG4gICAgb3JkZXI6IE9yZGVyRGlyZWN0aW9uIHwgc3RyaW5nID0gT3JkZXJEaXJlY3Rpb24uQVNDLFxuICAgIGxpbWl0PzogbnVtYmVyLFxuICAgIHNraXA/OiBudW1iZXIsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxNW10gfCBzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjb250ZXh0XSwgUGVyc2lzdGVuY2VLZXlzLlFVRVJZLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnF1ZXJ5KFxuICAgICAgY29uZGl0aW9uIGFzIENvbmRpdGlvbjxNPixcbiAgICAgIG9yZGVyQnkgYXMga2V5b2YgTSxcbiAgICAgIG9yZGVyIGFzIE9yZGVyRGlyZWN0aW9uLFxuICAgICAgbGltaXQsXG4gICAgICBza2lwLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5IGFnYWluc3QgdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIHJhdyBtZXRob2RcbiAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICogQHBhcmFtIHthbnl9IHJhd0lucHV0IC0gVGhlIHF1ZXJ5IHRvIGV4ZWN1dGVcbiAgICogQHBhcmFtIHtib29sZWFufSBkb2NzT25seSAtIFdoZXRoZXIgdG8gcmV0dXJuIG9ubHkgZG9jdW1lbnRzXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBxdWVyeSByZXN1bHRzXG4gICAqL1xuICBhc3luYyByYXcoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAgcmF3SW5wdXQ6IE1hbmdvUXVlcnksXG4gICAgZG9jc09ubHk6IGJvb2xlYW4sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgXCJyYXdcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMucmF3XG4gICAgKTtcbiAgICByZXR1cm4gRmFicmljQ3J1ZENvbnRyYWN0LmFkYXB0ZXIucmF3KHJhd0lucHV0LCBkb2NzT25seSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VyaWFsaXplKG1vZGVsOiBNKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRmFicmljQ3J1ZENvbnRyYWN0LnNlcmlhbGl6ZXIuc2VyaWFsaXplKG1vZGVsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXNlcmlhbGl6ZTxNIGV4dGVuZHMgTW9kZWw+KHN0cjogc3RyaW5nKTogTSB7XG4gICAgcmV0dXJuIChcbiAgICAgIEZhYnJpY0NydWRDb250cmFjdC5zZXJpYWxpemVyIGFzIHVua25vd24gYXMgU2VyaWFsaXplcjxNPlxuICAgICkuZGVzZXJpYWxpemUoc3RyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBpbml0KGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFtjdHhdLCBQZXJzaXN0ZW5jZUtleXMuSU5JVElBTElaQVRJT04sIHRydWUpXG4gICAgKS5mb3IodGhpcy5pbml0KTtcbiAgICBsb2cuaW5mbyhgUnVubmluZyBjb250cmFjdCAke3RoaXMuZ2V0TmFtZSgpfSBpbml0aWFsaXphdGlvbi4uLmApO1xuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIGxvZy5pbmZvKGBDb250cmFjdCBpbml0aWFsaXphdGlvbiBjb21wbGV0ZWQuYCk7XG4gIH1cblxuICBhc3luYyBoZWFsdGhjaGVjayhcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dFxuICApOiBQcm9taXNlPHN0cmluZyB8IGhlYWx0aGNoZWNrPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbY3R4XSwgXCJoZWFsdGhjaGVja1wiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5oZWFsdGhjaGVja1xuICAgICk7XG4gICAgbG9nLmluZm8oYFJ1bm5pbmcgSGVhbHRoY2hlY2s6ICR7dGhpcy5pbml0aWFsaXplZH0uLi5gKTtcbiAgICByZXR1cm4ge1xuICAgICAgaGVhbHRoY2hlY2s6IHRoaXMuaW5pdGlhbGl6ZWQsXG4gICAgICB2ZXJzaW9uOiBWRVJTSU9OLFxuICAgICAgcGFja2FnZTogUEFDS0FHRV9OQU1FLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgbXVsdGlwbGUgbW9kZWxzIGluIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyBjcmVhdGVBbGwgbWV0aG9kXG4gICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAqIEBwYXJhbSB7TVtdfSBtb2RlbHMgLSBUaGUgbW9kZWxzIHRvIGNyZWF0ZVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCBtb2RlbHNcbiAgICovXG4gIGFzeW5jIGNyZWF0ZUFsbChcbiAgICBjb250ZXh0OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAgbW9kZWxzOiBzdHJpbmcgfCBNW10sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBNW10+IHtcbiAgICBpZiAodHlwZW9mIG1vZGVscyA9PT0gXCJzdHJpbmdcIikgbW9kZWxzID0gdGhpcy5kZXNlcmlhbGl6ZUJ1bGtNb2RlbHMobW9kZWxzKTtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncywgY3R4IH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChcbiAgICAgICAgWy4uLmFyZ3MsIGNvbnRleHRdLFxuICAgICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTCxcbiAgICAgICAgdHJ1ZVxuICAgICAgKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlQWxsKTtcbiAgICB0aGlzLmVuc3VyZU1pcnJvcldyaXRlUGVybWlzc2lvbnMoY3R4KTtcblxuICAgIGNvbnN0IHRyYW5zaWVudCA9IHRoaXMuZ2V0VHJhbnNpZW50RGF0YShjdHgpO1xuXG4gICAgbG9nLmluZm8oYE1lcmdpbmcgdHJhbnNpZW50IGRhdGEuLi5gKTtcbiAgICBtb2RlbHMgPSAobW9kZWxzIGFzIE1bXSkubWFwKChtLCBpKSA9PiB7XG4gICAgICBjb25zdCB0ID0gQXJyYXkuaXNBcnJheSh0cmFuc2llbnQpID8gdHJhbnNpZW50W2ldIDogdHJhbnNpZW50O1xuICAgICAgcmV0dXJuIE1vZGVsLm1lcmdlKG0sIHQgfHwge30sIHRoaXMuY2xhenopIGFzIE07XG4gICAgfSk7XG5cbiAgICBsb2cuaW5mbyhgYWRkaW5nICR7bW9kZWxzLmxlbmd0aH0gZW50cmllcyB0byB0aGUgdGFibGVgKTtcblxuICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCB0aGlzLnJlcG8uY3JlYXRlQWxsKFxuICAgICAgbW9kZWxzIGFzIHVua25vd24gYXMgTVtdLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgcmVzdWx0ID0gY3JlYXRlZC5tYXAoKGMpID0+IG5ldyB0aGlzLmNsYXp6KE1vZGVsLnNlZ3JlZ2F0ZShjKS5tb2RlbCkpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5zdXJlTWlycm9yV3JpdGVQZXJtaXNzaW9ucyhjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dCk6IHZvaWQge1xuICAgIGlmICghY3R4KSByZXR1cm47XG4gICAgY29uc3QgbWlycm9yTWV0YSA9IE1vZGVsLm1pcnJvcmVkQXQodGhpcy5jbGF6eik7XG4gICAgaWYgKCFtaXJyb3JNZXRhKSByZXR1cm47XG4gICAgY29uc3QgbXNwID0gZXh0cmFjdE1zcElkKGN0eC5pZGVudGl0eSk7XG4gICAgaWYgKFxuICAgICAgbXNwICYmXG4gICAgICAobXNwID09PSBtaXJyb3JNZXRhLm1zcElkIHx8XG4gICAgICAgIChtaXJyb3JNZXRhLmNvbmRpdGlvbiAmJiBtaXJyb3JNZXRhLmNvbmRpdGlvbihtc3ApKSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXG4gICAgICAgIGBPcmdhbml6YXRpb24gJHttc3B9IGlzIG5vdCBhdXRob3JpemVkIHRvIG1vZGlmeSBtaXJyb3JlZCBkYXRhYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbG9nQ3R4PFxuICAgIEFSR1MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdLFxuICAgIE1FVEhPRCBleHRlbmRzIE1ldGhvZE9yT3BlcmF0aW9uID0gTWV0aG9kT3JPcGVyYXRpb24sXG4gID4oXG4gICAgYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEZhYnJpY0NvbnRyYWN0Q29udGV4dCwgQVJHUz4sXG4gICAgb3BlcmF0aW9uOiBNRVRIT0RcbiAgKTogRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT47XG4gIHByb3RlY3RlZCBsb2dDdHg8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRCxcbiAgICBhbGxvd0NyZWF0ZTogZmFsc2VcbiAgKTogRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT47XG4gIHByb3RlY3RlZCBsb2dDdHg8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRCxcbiAgICBhbGxvd0NyZWF0ZTogdHJ1ZSxcbiAgICBvdmVycmlkZXM/OiBQYXJ0aWFsPEZhYnJpY0ZsYWdzPGFueT4+XG4gICk6IFByb21pc2U8XG4gICAgRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT5cbiAgPjtcbiAgcHJvdGVjdGVkIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiBib29sZWFuID0gZmFsc2UsXG4gICAgb3ZlcnJpZGVzPzogUGFydGlhbDxGYWJyaWNGbGFnczxhbnk+PlxuICApOlxuICAgIHwgUHJvbWlzZTxcbiAgICAgICAgRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT5cbiAgICAgID5cbiAgICB8IEZhYnJpY0NvbnRleHR1YWxpemVkQXJnczxBUkdTLCBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2U+IHtcbiAgICBjb25zdCBjdHggPSBhcmdzLnBvcCgpO1xuICAgIGlmICghY3R4IHx8ICFjdHguc3R1Yikge1xuICAgICAgdGhyb3cgbmV3IE1pc3NpbmdDb250ZXh0RXJyb3IoYE5vIHZhbGlkIGNvbnRleHQgcHJvdmlkZWQuLi5gKTtcbiAgICB9XG4gICAgY29uc3QgY29udGV4dHVhbGl6ZWQgPSBGYWJyaWNDcnVkQ29udHJhY3QuYWRhcHRlcltcImxvZ0N0eFwiXShcbiAgICAgIFt0aGlzLmNsYXp6IGFzIGFueSwgLi4uYXJnc10gYXMgYW55LFxuICAgICAgb3BlcmF0aW9uLFxuICAgICAgYWxsb3dDcmVhdGUgYXMgYW55LFxuICAgICAgYWxsb3dDcmVhdGUgJiYgb3ZlcnJpZGVzID8gY3R4LmFjY3VtdWxhdGUob3ZlcnJpZGVzKSA6IGN0eFxuICAgICkgYXNcbiAgICAgIHwgRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT5cbiAgICAgIHwgUHJvbWlzZTxcbiAgICAgICAgICBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPlxuICAgICAgICA+O1xuICAgIGZ1bmN0aW9uIHNxdWFzaEFyZ3MoY3R4OiBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3MpIHtcbiAgICAgIGN0eC5jdHhBcmdzLnNoaWZ0KCk7IC8vIHJlbW92ZXMgYWRkZWQgbW9kZWwgdG8gYXJnc1xuICAgICAgcmV0dXJuIGN0eCBhcyBhbnk7XG4gICAgfVxuXG4gICAgaWYgKCEoY29udGV4dHVhbGl6ZWQgaW5zdGFuY2VvZiBQcm9taXNlKSkgcmV0dXJuIHNxdWFzaEFyZ3MoY29udGV4dHVhbGl6ZWQpO1xuICAgIHJldHVybiBjb250ZXh0dWFsaXplZC50aGVuKHNxdWFzaEFyZ3MpO1xuICB9XG59XG4iXX0=
|
|
429
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNydWQtY29udHJhY3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTJCO0FBQzNCLDZDQUEyQztBQUMzQyxnRUFBaUU7QUFDakUsNkRBQXdFO0FBQ3hFLHlFQUF1RDtBQUN2RCx5Q0FBeUg7QUFDekgsMEZBQW9GO0FBQ3BGLDJEQUFvRztBQUNwRyxzREFBZ0Y7QUFDaEYsZ0VBQTREO0FBQzVELG1EQUEyRDtBQUMzRCxJQUFBLDRCQUFZLEdBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7QUFDSCxNQUFhLGtCQUFtQixTQUFRLDhCQUFRO0lBQzVDOztPQUVHO0lBQ0gsU0FBUyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksMENBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEQsU0FBUyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksb0RBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsSUFBSSxJQUFJO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsaUJBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLFFBQVE7WUFDUiw2QkFBNkI7WUFDN0IsMkJBQTJCO1lBQzNCLFNBQVM7WUFDVCxzQ0FBc0M7WUFDdEMsMERBQTBEO1lBQzFELFFBQVE7WUFDUixtRkFBbUY7WUFDbkYsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixNQUFNO1lBQ04sSUFBSTtRQUNSLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0gsWUFBWSxJQUFJLEVBQUUsS0FBSztRQUNuQixLQUFLLENBQUMsSUFBSSxDQUFD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UyxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSw2QkFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0gsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLEdBQUcsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0Q7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUk7UUFDOUIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQ3hCLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUscUNBQXFCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwSSxJQUFJLENBQUMsNEJBQTRCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUM1RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FB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QWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNKO0FBMVdELGdEQTBXQztBQUNELHMzd0RBQXMzd0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCIuLy4uL2Jvb3RzdHJhcC5qc1wiO1xuaW1wb3J0IFwiLi8uLi8uLi9zaGFyZWQvb3ZlcnJpZGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdEFkYXB0ZXIsIH0gZnJvbSBcIi4vLi4vQ29udHJhY3RBZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyBDb250cmFjdCwgT2JqZWN0IGFzIEZhYnJpY09iamVjdCwgfSBmcm9tIFwiZmFicmljLWNvbnRyYWN0LWFwaVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBBdXRob3JpemF0aW9uRXJyb3IsIE9yZGVyRGlyZWN0aW9uLCBQZXJzaXN0ZW5jZUtleXMsIFByZXBhcmVkU3RhdGVtZW50S2V5cywgUmVwb3NpdG9yeSwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IERldGVybWluaXN0aWNTZXJpYWxpemVyIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL0RldGVybWluaXN0aWNTZXJpYWxpemVyLmpzXCI7XG5pbXBvcnQgeyBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsIE9wZXJhdGlvbktleXMsIFNlcmlhbGl6YXRpb25FcnJvciwgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IEZhYnJpY01vZGVsS2V5cywgTWlzc2luZ0NvbnRleHRFcnJvciwgfSBmcm9tIFwiLi8uLi8uLi9zaGFyZWQvaW5kZXguanNcIjtcbmltcG9ydCB7IGV4dHJhY3RNc3BJZCB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzLmpzXCI7XG5pbXBvcnQgeyBQQUNLQUdFX05BTUUsIFZFUlNJT04gfSBmcm9tIFwiLi8uLi8uLi92ZXJzaW9uLmpzXCI7XG5GYWJyaWNPYmplY3QoKShEYXRlKTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEJhc2UgY29udHJhY3QgY2xhc3MgZm9yIENSVUQgb3BlcmF0aW9ucyBpbiBGYWJyaWMgY2hhaW5jb2RlXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBzdGFuZGFyZCBjcmVhdGUsIHJlYWQsIHVwZGF0ZSwgYW5kIGRlbGV0ZSBvcGVyYXRpb25zIGZvciBtb2RlbHMgaW4gRmFicmljIGNoYWluY29kZVxuICogQHRlbXBsYXRlIE0gLSBUeXBlIGV4dGVuZGluZyBNb2RlbFxuICogQGNsYXNzIEZhYnJpY0NydWRDb250cmFjdFxuICogQGV4dGVuZHMge0NvbnRyYWN0fVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIERlZmluZSBhIG1vZGVsXG4gKiBAdGFibGUoJ2Fzc2V0cycpXG4gKiBjbGFzcyBBc3NldCBleHRlbmRzIE1vZGVsIHtcbiAqICAgQGlkKClcbiAqICAgaWQ6IHN0cmluZztcbiAqXG4gKiAgIEBwcm9wZXJ0eSgpXG4gKiAgIGRhdGE6IHN0cmluZztcbiAqIH1cbiAqXG4gKiAvLyBDcmVhdGUgYSBjb250cmFjdCB0aGF0IGV4dGVuZHMgRmFicmljQ3J1ZENvbnRyYWN0XG4gKiBleHBvcnQgY2xhc3MgQXNzZXRDb250cmFjdCBleHRlbmRzIEZhYnJpY0NydWRDb250cmFjdDxBc3NldD4ge1xuICogICBjb25zdHJ1Y3RvcigpIHtcbiAqICAgICBzdXBlcignQXNzZXRDb250cmFjdCcsIEFzc2V0KTtcbiAqICAgfVxuICpcbiAqICAgLy8gQWRkIGN1c3RvbSBtZXRob2RzIGFzIG5lZWRlZFxuICogICBhc3luYyBnZXRBc3NldEhpc3RvcnkoY3R4OiBDb250ZXh0LCBpZDogc3RyaW5nKTogUHJvbWlzZTxhbnlbXT4ge1xuICogICAgIC8vIEN1c3RvbSBpbXBsZW1lbnRhdGlvblxuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gKiAgIHBhcnRpY2lwYW50IFJlcG9zaXRvcnlcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlclxuICogICBwYXJ0aWNpcGFudCBTdGF0ZURCXG4gKlxuICogICBDbGllbnQtPj5Db250cmFjdDogY3JlYXRlKGN0eCwgbW9kZWwpXG4gKiAgIENvbnRyYWN0LT4+UmVwb3NpdG9yeTogcmVwb3NpdG9yeShjdHgpXG4gKiAgIENvbnRyYWN0LT4+UmVwb3NpdG9yeTogY3JlYXRlKG1vZGVsLCBjdHgpXG4gKiAgIFJlcG9zaXRvcnktPj5BZGFwdGVyOiBjcmVhdGUodGFibGVOYW1lLCBpZCwgcmVjb3JkLCB0cmFuc2llbnQsIGN0eClcbiAqICAgQWRhcHRlci0+PlN0YXRlREI6IHB1dFN0YXRlKGlkLCBzZXJpYWxpemVkRGF0YSlcbiAqICAgU3RhdGVEQi0tPj5BZGFwdGVyOiBTdWNjZXNzXG4gKiAgIEFkYXB0ZXItLT4+UmVwb3NpdG9yeTogcmVjb3JkXG4gKiAgIFJlcG9zaXRvcnktLT4+Q29udHJhY3Q6IG1vZGVsXG4gKiAgIENvbnRyYWN0LS0+PkNsaWVudDogbW9kZWxcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NydWRDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU2hhcmVkIGFkYXB0ZXIgaW5zdGFuY2UgZm9yIGFsbCBjb250cmFjdCBpbnN0YW5jZXNcbiAgICAgKi9cbiAgICBzdGF0aWMgeyB0aGlzLmFkYXB0ZXIgPSBuZXcgRmFicmljQ29udHJhY3RBZGFwdGVyKCk7IH1cbiAgICBzdGF0aWMgeyB0aGlzLnNlcmlhbGl6ZXIgPSBuZXcgRGV0ZXJtaW5pc3RpY1NlcmlhbGl6ZXIoKTsgfVxuICAgIGdldCByZXBvKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3JlcG8pIHtcbiAgICAgICAgICAgIHRoaXMuX3JlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsKHRoaXMuY2xhenopO1xuICAgICAgICAgICAgLy8gdHJ5IHtcbiAgICAgICAgICAgIC8vICAgdGhpcy5yZXBvLm9ic2VydmUodGhpcyk7XG4gICAgICAgICAgICAvLyB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgICAgICAgIC8vICAgaWYgKFxuICAgICAgICAgICAgLy8gICAgIGVyciBpbnN0YW5jZW9mIEludGVybmFsRXJyb3IgJiZcbiAgICAgICAgICAgIC8vICAgICBlcnIubWVzc2FnZS5pbmNsdWRlcyhcIk9ic2VydmVyIGFscmVhZHkgcmVnaXN0ZXJlZFwiKVxuICAgICAgICAgICAgLy8gICApIHtcbiAgICAgICAgICAgIC8vICAgICAvLyBhbHJlYWR5IHJlZ2lzdGVyZWQgb2JzZXJ2ZXI7IGlnbm9yZSBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIChkdXJpbmcgdGVzdHMpXG4gICAgICAgICAgICAvLyAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgLy8gICB9XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcG87XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IEZhYnJpY0NydWRDb250cmFjdCBpbnN0YW5jZVxuICAgICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgY29udHJhY3Qgd2l0aCBhIG5hbWUgYW5kIG1vZGVsIGNsYXNzXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgY29udHJhY3RcbiAgICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBjbGF6eiAtIFRoZSBtb2RlbCBjb25zdHJ1Y3RvclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNsYXp6KSB7XG4gICAgICAgIHN1cGVyKG5hbWUpO1xuICAgICAgICB0aGlzLmNsYXp6ID0gY2xheno7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgYXN5bmMgcmVmcmVzaCh0YWJsZSwgZXZlbnQsIGlkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlZnJlc2gpO1xuICAgICAgICBsb2cudmVyYm9zZShgUHVzaGluZyAke2V2ZW50fSBldmVudCBvbiB0YWJsZSAke3RhYmxlfSwgaWQocykgJHtpZH1gKTtcbiAgICAgICAgLy8gZG8gbm90aGluZy4gYWxsIHdlIG5lZWRlZCB3YXMgYW4gb2JzZXJ2ZXIgdG8ga2lja3N0YXJ0IHRoZSBwcm9jZXNzXG4gICAgfVxuICAgIGFzeW5jIGxpc3RCeShjdHgsIGtleSwgb3JkZXIsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkxJU1RfQlksIHRydWUpKS5mb3IodGhpcy5saXN0QnkpO1xuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBsaXN0Qnkga2V5ICR7a2V5fSwgb3JkZXIgJHtvcmRlcn0gYW5kIGFyZ3MgJHtjdHhBcmdzfWApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLmxpc3RCeShrZXksIG9yZGVyLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcGFnaW5hdGVCeShjdHgsIGtleSwgb3JkZXIsIHJlZiA9IHtcbiAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICBsaW1pdDogMTAsXG4gICAgfSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRV9CWSwgdHJ1ZSkpLmZvcih0aGlzLnBhZ2luYXRlQnkpO1xuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBwYWdpbmF0ZUJ5IGtleSAke2tleX0sIG9yZGVyICR7b3JkZXJ9IHdpdGggc2l6ZSAke3JlZi5saW1pdH0gYW5kIGFyZ3MgJHtjdHhBcmdzfWApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLnBhZ2luYXRlQnkoa2V5LCBvcmRlciwgcmVmLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcGFnZShjdHgsIHZhbHVlLCBkaXJlY3Rpb24gPSBPcmRlckRpcmVjdGlvbi5BU0MsIHJlZiA9IHtcbiAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICBsaW1pdDogMTAsXG4gICAgfSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRSwgdHJ1ZSkpLmZvcih0aGlzLnBhZ2UpO1xuICAgICAgICBsb2cuaW5mbyhgUGFnaW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhenopfSBieSBkZWZhdWx0IHF1ZXJ5IGF0dHJpYnV0ZXNgKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gdHlwZW9mIHJlZiA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBKU09OLnBhcnNlKHJlZikgfHxcbiAgICAgICAgICAgICAgICB7fVxuICAgICAgICAgICAgOiByZWY7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8ucGFnZSh2YWx1ZSwgZGlyZWN0aW9uLCByZWZlcmVuY2UsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBmaW5kT25lQnkoY3R4LCBrZXksIHZhbHVlLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX09ORV9CWSwgdHJ1ZSkpLmZvcih0aGlzLmZpbmRPbmVCeSk7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIGZpbmRPbmVCeSBrZXkgJHtrZXl9LCB2YWx1ZTogJHt2YWx1ZX0gd2l0aCBhcmdzICR7Y3R4QXJnc31gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5maW5kT25lQnkoa2V5LCB2YWx1ZSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHN0YXRlbWVudChjdHgsIG1ldGhvZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQZXJzaXN0ZW5jZUtleXMuU1RBVEVNRU5ULCB0cnVlKSkuZm9yKHRoaXMuc3RhdGVtZW50KTtcbiAgICAgICAgbG9nLmluZm8oYFJ1bm5pbmcgc3RhdGVtZW50ICR7bWV0aG9kfSB3aXRoIGFyZ3MgJHtjdHhBcmdzfWApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLnN0YXRlbWVudChtZXRob2QsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBjb3VudE9mKGN0eCwga2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5DT1VOVF9PRiwgdHJ1ZSkpLmZvcih0aGlzLmNvdW50T2YpO1xuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBjb3VudE9mJHtrZXkgPyBgIGtleSAke2tleX1gIDogXCJcIn1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5jb3VudE9mKGtleSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIG1heE9mKGN0eCwga2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5NQVhfT0YsIHRydWUpKS5mb3IodGhpcy5tYXhPZik7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIG1heE9mIGtleSAke2tleX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5tYXhPZihrZXksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBtaW5PZihjdHgsIGtleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTUlOX09GLCB0cnVlKSkuZm9yKHRoaXMubWluT2YpO1xuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBtaW5PZiBrZXkgJHtrZXl9YCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8ubWluT2Yoa2V5LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgYXZnT2YoY3R4LCBrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkFWR19PRiwgdHJ1ZSkpLmZvcih0aGlzLmF2Z09mKTtcbiAgICAgICAgbG9nLmluZm8oYFJ1bm5pbmcgYXZnT2Yga2V5ICR7a2V5fWApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLmF2Z09mKGtleSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHN1bU9mKGN0eCwga2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5TVU1fT0YsIHRydWUpKS5mb3IodGhpcy5zdW1PZik7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIHN1bU9mIGtleSAke2tleX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5zdW1PZihrZXksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBkaXN0aW5jdE9mKGN0eCwga2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5ESVNUSU5DVF9PRiwgdHJ1ZSkpLmZvcih0aGlzLmRpc3RpbmN0T2YpO1xuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBkaXN0aW5jdE9mIGtleSAke2tleX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5kaXN0aW5jdE9mKGtleSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGdyb3VwT2YoY3R4LCBrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkdST1VQX09GLCB0cnVlKSkuZm9yKHRoaXMuZ3JvdXBPZik7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIGdyb3VwT2Yga2V5ICR7a2V5fWApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLmdyb3VwT2Yoa2V5LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBzaW5nbGUgbW9kZWwgaW4gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgY3JlYXRlIG1ldGhvZFxuICAgICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAgICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCB0byBjcmVhdGVcbiAgICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPE0+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCBtb2RlbFxuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZShjb250ZXh0LCBtb2RlbCwgLi4uYXJncykge1xuICAgICAgICBpZiAodHlwZW9mIG1vZGVsID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAgbW9kZWwgPSB0aGlzLmRlc2VyaWFsaXplKG1vZGVsKTtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MsIGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjb250ZXh0XSwgT3BlcmF0aW9uS2V5cy5DUkVBVEUsIHRydWUpKS5mb3IodGhpcy5jcmVhdGUpO1xuICAgICAgICB0aGlzLmVuc3VyZU1pcnJvcldyaXRlUGVybWlzc2lvbnMoY3R4KTtcbiAgICAgICAgbG9nLmluZm8oYENPTlRSQUNUIENSRUFURSwgJHtjdHhBcmdzfWApO1xuICAgICAgICBsb2cuaW5mbyhgQ3JlYXRpbmcgbW9kZWw6ICR7SlNPTi5zdHJpbmdpZnkobW9kZWwpfWApO1xuICAgICAgICBjb25zdCB0cmFuc2llbnQgPSB0aGlzLmdldFRyYW5zaWVudERhdGEoY3R4KTtcbiAgICAgICAgbG9nLmluZm8oYE1lcmdpbmcgdHJhbnNpZW50IGRhdGEuLi5gKTtcbiAgICAgICAgbW9kZWwgPSBNb2RlbC5tZXJnZShtb2RlbCwgdHJhbnNpZW50LCB0aGlzLmNsYXp6KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxvZy5pbmZvKGBDUkVBVEUgbWF0ZXJpYWxpemVkIG1vZGVsIGZvciAke3RoaXMuY2xhenoubmFtZX06ICR7SlNPTi5zdHJpbmdpZnkobW9kZWwpfWApO1xuICAgICAgICAgICAgbG9nLmluZm8oYENSRUFURSBtYXRlcmlhbGl6ZWQgcGsgZm9yICR7dGhpcy5jbGF6ei5uYW1lfTogJHtTdHJpbmcoTW9kZWwucGsobW9kZWwsIHRydWUpKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgbG9nLndhcm4oYENSRUFURSBtYXRlcmlhbGl6ZWQgbW9kZWwgbG9nZ2luZyBmYWlsZWQgZm9yICR7dGhpcy5jbGF6ei5uYW1lfTogJHtlfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCB0aGlzLnJlcG8uY3JlYXRlKG1vZGVsLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IHRoaXMuY2xhenooTW9kZWwuc2VncmVnYXRlKGNyZWF0ZWQpLm1vZGVsKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlYWRzIGEgc2luZ2xlIG1vZGVsIGZyb20gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgcmVhZCBtZXRob2RcbiAgICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBtb2RlbCB0byByZWFkXG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCBtb2RlbFxuICAgICAqL1xuICAgIGFzeW5jIHJlYWQoY3R4LCBrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgT3BlcmF0aW9uS2V5cy5SRUFELCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlKTtcbiAgICAgICAgbG9nLmluZm8oYHJlYWRpbmcgZW50cnkgd2l0aCBwayAke2tleX0gYCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8ucmVhZChrZXksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBnZXRUcmFuc2llbnREYXRhKGN0eCkge1xuICAgICAgICBjb25zdCB0cmFuc2llbnRNYXAgPSBjdHguc3R1Yi5nZXRUcmFuc2llbnQoKTtcbiAgICAgICAgbGV0IHRyYW5zaWVudCA9IHt9O1xuICAgICAgICBpZiAodHJhbnNpZW50TWFwLmhhcyh0aGlzLnJlcG9bXCJ0YWJsZU5hbWVcIl0pKSB7XG4gICAgICAgICAgICB0cmFuc2llbnQgPSBKU09OLnBhcnNlKHRyYW5zaWVudE1hcC5nZXQodGhpcy5yZXBvW1widGFibGVOYW1lXCJdKT8udG9TdHJpbmcoXCJ1dGY4XCIpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJhbnNpZW50O1xuICAgIH1cbiAgICBkZXNlcmlhbGl6ZUJ1bGtNb2RlbHMobW9kZWxzKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UobW9kZWxzKTtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHBhcnNlZCkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKG5ldyBFcnJvcihcIkJ1bGsgcGF5bG9hZCBtdXN0IGJlIGFuIGFycmF5IG9mIHNlcmlhbGl6ZWQgbW9kZWxzXCIpKTtcbiAgICAgICAgY29uc3QgaHlkcmF0ZWQgPSBwYXJzZWQubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHR5cGVvZiBlbnRyeSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgID8gZW50cnlcbiAgICAgICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhlbnRyeSkuZmlsdGVyKChba2V5XSkgPT4ga2V5ICE9PSBGYWJyaWNNb2RlbEtleXMuT1ZFUlJJREVTKSkpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyB0aGlzLmNsYXp6KHRoaXMuZGVzZXJpYWxpemUoc2VyaWFsaXplZCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGh5ZHJhdGVkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBhIHNpbmdsZSBtb2RlbCBpbiB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyB1cGRhdGUgbWV0aG9kXG4gICAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICAgKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIHRvIHVwZGF0ZVxuICAgICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8TT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIG1vZGVsXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlKGNvbnRleHQsIG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbW9kZWwgPT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICBtb2RlbCA9IHRoaXMuZGVzZXJpYWxpemUobW9kZWwpO1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncywgY3R4IH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGNvbnRleHRdLCBPcGVyYXRpb25LZXlzLlVQREFURSwgdHJ1ZSkpLmZvcih0aGlzLnVwZGF0ZSk7XG4gICAgICAgIHRoaXMuZW5zdXJlTWlycm9yV3JpdGVQZXJtaXNzaW9ucyhjdHgpO1xuICAgICAgICBsb2cuaW5mbyhgVXBkYXRpbmcgbW9kZWw6ICR7SlNPTi5zdHJpbmdpZnkobW9kZWwpfWApO1xuICAgICAgICBjb25zdCB0cmFuc2llbnQgPSB0aGlzLmdldFRyYW5zaWVudERhdGEoY3R4KTtcbiAgICAgICAgbG9nLmluZm8oYE1lcmdpbmcgdHJhbnNpZW50IGRhdGEuLi5gKTtcbiAgICAgICAgbW9kZWwgPSBNb2RlbC5tZXJnZShtb2RlbCwgdHJhbnNpZW50LCB0aGlzLmNsYXp6KTtcbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IHRoaXMucmVwby51cGRhdGUobW9kZWwsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgdGhpcy5jbGF6eihNb2RlbC5zZWdyZWdhdGUodXBkYXRlZCkubW9kZWwpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhIHNpbmdsZSBtb2RlbCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIGRlbGV0ZSBtZXRob2RcbiAgICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBtb2RlbCB0byBkZWxldGVcbiAgICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPE0+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZGVsZXRlZCBtb2RlbFxuICAgICAqL1xuICAgIGFzeW5jIGRlbGV0ZShjdHgsIGtleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncywgY3R4OiBmYWJyaWNDdHgsIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIE9wZXJhdGlvbktleXMuREVMRVRFLCB0cnVlKSkuZm9yKHRoaXMuZGVsZXRlKTtcbiAgICAgICAgdGhpcy5lbnN1cmVNaXJyb3JXcml0ZVBlcm1pc3Npb25zKGZhYnJpY0N0eCk7XG4gICAgICAgIGxvZy5pbmZvKGBkZWxldGluZyBlbnRyeSB3aXRoIHBrICR7a2V5fSBgKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5kZWxldGUoU3RyaW5nKGtleSksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBtdWx0aXBsZSBtb2RlbHMgZnJvbSB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyBkZWxldGVBbGwgbWV0aG9kXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXSB8IG51bWJlcltdfSBrZXlzIC0gVGhlIGtleXMgb2YgdGhlIG1vZGVscyB0byBkZWxldGVcbiAgICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8TVtdPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgbW9kZWxzXG4gICAgICovXG4gICAgYXN5bmMgZGVsZXRlQWxsKGN0eCwga2V5cywgLi4uYXJncykge1xuICAgICAgICBpZiAodHlwZW9mIGtleXMgPT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICBrZXlzID0gSlNPTi5wYXJzZShrZXlzKTtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzLCBjdHg6IGZhYnJpY0N0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTCwgdHJ1ZSkpLmZvcih0aGlzLmRlbGV0ZUFsbCk7XG4gICAgICAgIHRoaXMuZW5zdXJlTWlycm9yV3JpdGVQZXJtaXNzaW9ucyhmYWJyaWNDdHgpO1xuICAgICAgICBjb25zdCBkZWxldGVkID0gYXdhaXQgdGhpcy5yZXBvLmRlbGV0ZUFsbChrZXlzLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZGVsZXRlZC5tYXAoKGMpID0+IG5ldyB0aGlzLmNsYXp6KE1vZGVsLnNlZ3JlZ2F0ZShjKS5tb2RlbCkpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgbXVsdGlwbGUgbW9kZWxzIGZyb20gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgcmVhZEFsbCBtZXRob2RcbiAgICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0ga2V5cyAtIFRoZSBrZXlzIG9mIHRoZSBtb2RlbHMgdG8gcmVhZFxuICAgICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8TVtdPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCBtb2RlbHNcbiAgICAgKi9cbiAgICBhc3luYyByZWFkQWxsKGN0eCwga2V5cywgLi4uYXJncykge1xuICAgICAgICBpZiAodHlwZW9mIGtleXMgPT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICBrZXlzID0gSlNPTi5wYXJzZShrZXlzKTtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5SRUFEX0FMTCwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZSk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8ucmVhZEFsbChrZXlzLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgbXVsdGlwbGUgbW9kZWxzIGluIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIHVwZGF0ZUFsbCBtZXRob2RcbiAgICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgICAqIEBwYXJhbSB7TVtdfSBtb2RlbHMgLSBUaGUgbW9kZWxzIHRvIHVwZGF0ZVxuICAgICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8TVtdPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgbW9kZWxzXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlQWxsKGNvbnRleHQsIG1vZGVscywgLi4uYXJncykge1xuICAgICAgICBpZiAodHlwZW9mIG1vZGVscyA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgIG1vZGVscyA9IHRoaXMuZGVzZXJpYWxpemVCdWxrTW9kZWxzKG1vZGVscyk7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzLCBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY29udGV4dF0sIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLCB0cnVlKSkuZm9yKHRoaXMudXBkYXRlQWxsKTtcbiAgICAgICAgdGhpcy5lbnN1cmVNaXJyb3JXcml0ZVBlcm1pc3Npb25zKGN0eCk7XG4gICAgICAgIGNvbnN0IHRyYW5zaWVudCA9IHRoaXMuZ2V0VHJhbnNpZW50RGF0YShjdHgpO1xuICAgICAgICBsb2cuaW5mbyhgTWVyZ2luZyB0cmFuc2llbnQgZGF0YS4uLmApO1xuICAgICAgICBtb2RlbHMgPSBtb2RlbHMubWFwKChtLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ID0gQXJyYXkuaXNBcnJheSh0cmFuc2llbnQpID8gdHJhbnNpZW50W2ldIDogdHJhbnNpZW50O1xuICAgICAgICAgICAgcmV0dXJuIE1vZGVsLm1lcmdlKG0sIHQgfHwge30sIHRoaXMuY2xhenopO1xuICAgICAgICB9KTtcbiAgICAgICAgbG9nLmluZm8oYGFkZGluZyAke21vZGVscy5sZW5ndGh9IGVudHJpZXMgdG8gdGhlIHRhYmxlYCk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB0aGlzLnJlcG8udXBkYXRlQWxsKG1vZGVscywgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHVwZGF0ZWQubWFwKChjKSA9PiBuZXcgdGhpcy5jbGF6eihNb2RlbC5zZWdyZWdhdGUoYykubW9kZWwpKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcXVlcnkgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmRpdGlvbnMgYW5kIG9wdGlvbnMuXG4gICAgICogQHN1bW1hcnkgUHJvdmlkZXMgYSBzaW1wbGlmaWVkIHdheSB0byBxdWVyeSB0aGUgZGF0YWJhc2Ugd2l0aCBjb21tb24gcXVlcnkgcGFyYW1ldGVycy5cbiAgICAgKiBAcGFyYW0ge0NvbmRpdGlvbjxNPn0gY29uZGl0aW9uIC0gVGhlIGNvbmRpdGlvbiB0byBmaWx0ZXIgcmVjb3Jkcy5cbiAgICAgKiBAcGFyYW0gb3JkZXJCeSAtIFRoZSBmaWVsZCB0byBvcmRlciByZXN1bHRzIGJ5LlxuICAgICAqIEBwYXJhbSB7T3JkZXJEaXJlY3Rpb259IFtvcmRlcj1PcmRlckRpcmVjdGlvbi5BU0NdIC0gVGhlIHNvcnQgZGlyZWN0aW9uLlxuICAgICAqIEBwYXJhbSB7T3JkZXJEaXJlY3Rpb259IFtvcmRlcj1PcmRlckRpcmVjdGlvbi5BU0NdIC0gVGhlIHNvcnQgZGlyZWN0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGltaXRdIC0gT3B0aW9uYWwgbWF4aW11bSBudW1iZXIgb2YgcmVzdWx0cyB0byByZXR1cm4uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtza2lwXSAtIE9wdGlvbmFsIG51bWJlciBvZiByZXN1bHRzIHRvIHNraXAuXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBUaGUgcXVlcnkgcmVzdWx0cyBhcyBtb2RlbCBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgYXN5bmMgcXVlcnkoY29udGV4dCwgY29uZGl0aW9uLCBvcmRlckJ5LCBvcmRlciA9IE9yZGVyRGlyZWN0aW9uLkFTQywgbGltaXQsIHNraXAsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGNvbnRleHRdLCBQZXJzaXN0ZW5jZUtleXMuUVVFUlksIHRydWUpKS5mb3IodGhpcy5jcmVhdGUpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLnF1ZXJ5KGNvbmRpdGlvbiwgb3JkZXJCeSwgb3JkZXIsIGxpbWl0LCBza2lwLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5IGFnYWluc3QgdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgcmF3IG1ldGhvZFxuICAgICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAgICogQHBhcmFtIHthbnl9IHJhd0lucHV0IC0gVGhlIHF1ZXJ5IHRvIGV4ZWN1dGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGRvY3NPbmx5IC0gV2hldGhlciB0byByZXR1cm4gb25seSBkb2N1bWVudHNcbiAgICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBxdWVyeSByZXN1bHRzXG4gICAgICovXG4gICAgYXN5bmMgcmF3KGN0eCwgcmF3SW5wdXQsIGRvY3NPbmx5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBcInJhd1wiLCB0cnVlKSkuZm9yKHRoaXMucmF3KTtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NydWRDb250cmFjdC5hZGFwdGVyLnJhdyhyYXdJbnB1dCwgZG9jc09ubHksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBzZXJpYWxpemUobW9kZWwpIHtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NydWRDb250cmFjdC5zZXJpYWxpemVyLnNlcmlhbGl6ZShtb2RlbCk7XG4gICAgfVxuICAgIGRlc2VyaWFsaXplKHN0cikge1xuICAgICAgICByZXR1cm4gRmFicmljQ3J1ZENvbnRyYWN0LnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoc3RyKTtcbiAgICB9XG4gICAgYXN5bmMgaW5pdChjdHgpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbY3R4XSwgUGVyc2lzdGVuY2VLZXlzLklOSVRJQUxJWkFUSU9OLCB0cnVlKSkuZm9yKHRoaXMuaW5pdCk7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIGNvbnRyYWN0ICR7dGhpcy5nZXROYW1lKCl9IGluaXRpYWxpemF0aW9uLi4uYCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICBsb2cuaW5mbyhgQ29udHJhY3QgaW5pdGlhbGl6YXRpb24gY29tcGxldGVkLmApO1xuICAgIH1cbiAgICBhc3luYyBoZWFsdGhjaGVjayhjdHgpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbY3R4XSwgXCJoZWFsdGhjaGVja1wiLCB0cnVlKSkuZm9yKHRoaXMuaGVhbHRoY2hlY2spO1xuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBIZWFsdGhjaGVjazogJHt0aGlzLmluaXRpYWxpemVkfS4uLmApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhbHRoY2hlY2s6IHRoaXMuaW5pdGlhbGl6ZWQsXG4gICAgICAgICAgICB2ZXJzaW9uOiBWRVJTSU9OLFxuICAgICAgICAgICAgcGFja2FnZTogUEFDS0FHRV9OQU1FLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBtdWx0aXBsZSBtb2RlbHMgaW4gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgY3JlYXRlQWxsIG1ldGhvZFxuICAgICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAgICogQHBhcmFtIHtNW119IG1vZGVscyAtIFRoZSBtb2RlbHMgdG8gY3JlYXRlXG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCBtb2RlbHNcbiAgICAgKi9cbiAgICBhc3luYyBjcmVhdGVBbGwoY29udGV4dCwgbW9kZWxzLCAuLi5hcmdzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbW9kZWxzID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAgbW9kZWxzID0gdGhpcy5kZXNlcmlhbGl6ZUJ1bGtNb2RlbHMobW9kZWxzKTtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MsIGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjb250ZXh0XSwgQnVsa0NydWRPcGVyYXRpb25LZXlzLkNSRUFURV9BTEwsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVBbGwpO1xuICAgICAgICB0aGlzLmVuc3VyZU1pcnJvcldyaXRlUGVybWlzc2lvbnMoY3R4KTtcbiAgICAgICAgY29uc3QgdHJhbnNpZW50ID0gdGhpcy5nZXRUcmFuc2llbnREYXRhKGN0eCk7XG4gICAgICAgIGxvZy5pbmZvKGBNZXJnaW5nIHRyYW5zaWVudCBkYXRhLi4uYCk7XG4gICAgICAgIG1vZGVscyA9IG1vZGVscy5tYXAoKG0sIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHQgPSBBcnJheS5pc0FycmF5KHRyYW5zaWVudCkgPyB0cmFuc2llbnRbaV0gOiB0cmFuc2llbnQ7XG4gICAgICAgICAgICByZXR1cm4gTW9kZWwubWVyZ2UobSwgdCB8fCB7fSwgdGhpcy5jbGF6eik7XG4gICAgICAgIH0pO1xuICAgICAgICBsb2cuaW5mbyhgYWRkaW5nICR7bW9kZWxzLmxlbmd0aH0gZW50cmllcyB0byB0aGUgdGFibGVgKTtcbiAgICAgICAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IHRoaXMucmVwby5jcmVhdGVBbGwobW9kZWxzLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY3JlYXRlZC5tYXAoKGMpID0+IG5ldyB0aGlzLmNsYXp6KE1vZGVsLnNlZ3JlZ2F0ZShjKS5tb2RlbCkpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBlbnN1cmVNaXJyb3JXcml0ZVBlcm1pc3Npb25zKGN0eCkge1xuICAgICAgICBpZiAoIWN0eClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbWlycm9yTWV0YSA9IE1vZGVsLm1pcnJvcmVkQXQodGhpcy5jbGF6eik7XG4gICAgICAgIGlmICghbWlycm9yTWV0YSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbXNwID0gZXh0cmFjdE1zcElkKGN0eC5pZGVudGl0eSk7XG4gICAgICAgIGlmIChtc3AgJiZcbiAgICAgICAgICAgIChtc3AgPT09IG1pcnJvck1ldGEubXNwSWQgfHxcbiAgICAgICAgICAgICAgICAobWlycm9yTWV0YS5jb25kaXRpb24gJiYgbWlycm9yTWV0YS5jb25kaXRpb24obXNwKSkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKGBPcmdhbml6YXRpb24gJHttc3B9IGlzIG5vdCBhdXRob3JpemVkIHRvIG1vZGlmeSBtaXJyb3JlZCBkYXRhYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9nQ3R4KGFyZ3MsIG9wZXJhdGlvbiwgYWxsb3dDcmVhdGUgPSBmYWxzZSwgb3ZlcnJpZGVzKSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IGFyZ3MucG9wKCk7XG4gICAgICAgIGlmICghY3R4IHx8ICFjdHguc3R1Yikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdDb250ZXh0RXJyb3IoYE5vIHZhbGlkIGNvbnRleHQgcHJvdmlkZWQuLi5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250ZXh0dWFsaXplZCA9IEZhYnJpY0NydWRDb250cmFjdC5hZGFwdGVyW1wibG9nQ3R4XCJdKFt0aGlzLmNsYXp6LCAuLi5hcmdzXSwgb3BlcmF0aW9uLCBhbGxvd0NyZWF0ZSwgYWxsb3dDcmVhdGUgJiYgb3ZlcnJpZGVzID8gY3R4LmFjY3VtdWxhdGUob3ZlcnJpZGVzKSA6IGN0eCk7XG4gICAgICAgIGZ1bmN0aW9uIHNxdWFzaEFyZ3MoY3R4KSB7XG4gICAgICAgICAgICBjdHguY3R4QXJncy5zaGlmdCgpOyAvLyByZW1vdmVzIGFkZGVkIG1vZGVsIHRvIGFyZ3NcbiAgICAgICAgICAgIHJldHVybiBjdHg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEoY29udGV4dHVhbGl6ZWQgaW5zdGFuY2VvZiBQcm9taXNlKSlcbiAgICAgICAgICAgIHJldHVybiBzcXVhc2hBcmdzKGNvbnRleHR1YWxpemVkKTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHR1YWxpemVkLnRoZW4oc3F1YXNoQXJncyk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWTNKMVpDMWpiMjUwY21GamRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlqYjI1MGNtRmpkSE12WTNKMVpDOWpjblZrTFdOdmJuUnlZV04wTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMREpDUVVGelFqdEJRVU4wUWl3eVEwRkJaME03UVVGRGFFTXNUMEZCVHl4RlFVVk1MSEZDUVVGeFFpeEhRVU4wUWl4blEwRkJNa0k3UVVGRE5VSXNUMEZCVHl4RlFVVk1MRkZCUVZFc1JVRkRVaXhOUVVGTkxFbEJRVWtzV1VGQldTeEhRVU4yUWl4TlFVRk5MSEZDUVVGeFFpeERRVUZETzBGQlF6ZENMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRV01zVFVGQlRTeG5RMEZCWjBNc1EwRkJRenRCUVVOdVJTeFBRVUZQTEVWQlJVd3NhMEpCUVd0Q0xFVkJVV3hDTEdOQlFXTXNSVUZEWkN4bFFVRmxMRVZCUldZc2NVSkJRWEZDTEVWQlEzSkNMRlZCUVZVc1IwRkZXQ3hOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUlhoQ0xFOUJRVThzUlVGQlJTeDFRa0ZCZFVJc1JVRkJSU3hyUkVGQk5rTTdRVUZMTDBVc1QwRkJUeXhGUVVOTUxIRkNRVUZ4UWl4RlFVTnlRaXhoUVVGaExFVkJSV0lzYTBKQlFXdENMRWRCUTI1Q0xFMUJRVTBzZVVKQlFYbENMRU5CUVVNN1FVRkRha01zVDBGQlR5eEZRVVZNTEdWQlFXVXNSVUZEWml4dFFrRkJiVUlzUjBGRGNFSXNaME5CUVRKQ08wRkJRelZDTEU5QlFVOHNSVUZCUlN4WlFVRlpMRVZCUVVVc2NVTkJRV2RETzBGQlEzWkVMRTlCUVU4c1JVRkJSU3haUVVGWkxFVkJRVVVzVDBGQlR5eEZRVUZGTERKQ1FVRnpRanRCUVVWMFJDeFpRVUZaTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVOeVFqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSMEVyUTBjN1FVRkRTQ3hOUVVGTkxFOUJRV2RDTEd0Q1FVTndRaXhUUVVGUkxGRkJRVkU3U1VGaGFFSTdPMDlCUlVjN1lVRkRZeXhaUVVGUExFZEJRVEJDTEVsQlFVa3NjVUpCUVhGQ0xFVkJRVVVzUVVGQmNrUXNRMEZCYzBRN1lVRkZjRVFzWlVGQlZTeEhRVUZITEVsQlFVa3NkVUpCUVhWQ0xFVkJRVVVzUVVGQmFFTXNRMEZCYVVNN1NVRk5ja1VzU1VGQll5eEpRVUZKTzFGQlEyaENMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEYUVJc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eFZRVUZWTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU0zUXl4UlFVRlJPMWxCUTFJc05rSkJRVFpDTzFsQlF6ZENMREpDUVVFeVFqdFpRVU16UWl4VFFVRlRPMWxCUTFRc2MwTkJRWE5ETzFsQlEzUkRMREJFUVVFd1JEdFpRVU14UkN4UlFVRlJPMWxCUTFJc2JVWkJRVzFHTzFsQlEyNUdMR0ZCUVdFN1dVRkRZaXhwUWtGQmFVSTdXVUZEYWtJc1RVRkJUVHRaUVVOT0xFbEJRVWs3VVVGRFRpeERRVUZETzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRM0JDTEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTklMRmxCUTBVc1NVRkJXU3hGUVVOUExFdEJRWEZDTzFGQlJYaERMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVVpQTEZWQlFVc3NSMEZCVEN4TFFVRkxMRU5CUVdkQ08xRkJMMEpvUXl4blFrRkJWeXhIUVVGWkxFdEJRVXNzUTBGQlF6dEpRV3REZGtNc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlExZ3NTMEZCT0VJc1JVRkRPVUlzUzBGQmRVSXNSVUZEZGtJc1JVRkJXU3hGUVVOYUxFZEJRVWNzU1VGQk1rTTdVVUZGT1VNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTm9SQ3hIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEZkQlFWY3NTMEZCU3l4dFFrRkJiVUlzUzBGQlN5eFhRVUZYTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRja1VzY1VWQlFYRkZPMGxCUTNaRkxFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVTldMRWRCUVdkRExFVkJRMmhETEVkQlFYRkNMRVZCUTNKQ0xFdEJRV0VzUlVGRFlpeEhRVUZITEVsQlFWYzdVVUZGWkN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxIRkNRVUZ4UWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGRrVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlEyNUNMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRMDRzYzBKQlFYTkNMRWRCUVdFc1YwRkJWeXhMUVVGTExHRkJRV0VzVDBGQlR5eEZRVUZGTEVOQlF6RkZMRU5CUVVNN1VVRkRSaXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVTnlRaXhIUVVGakxFVkJRMlFzUzBGQmRVSXNSVUZEZGtJc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVOa0xFZEJRV2RETEVWQlEyaERMRWRCUVhGQ0xFVkJRM0pDTEV0QlFXRXNSVUZEWWl4TlFVRjNSRHRSUVVOMFJDeE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTlVMRXRCUVVzc1JVRkJSU3hGUVVGRk8wdEJRMVlzUlVGRFJDeEhRVUZITEVsQlFWYzdVVUZGWkN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxIRkNRVUZ4UWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGRrVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlEzWkNMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRMDRzTUVKQlFUQkNMRWRCUVdFc1YwRkJWeXhMUVVGTExHTkJRV1VzUjBGQlZ5eERRVUZETEV0QlFVc3NZVUZCWVN4UFFVRlBMRVZCUVVVc1EwRkRPVWNzUTBGQlF6dFJRVU5HTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRM3BDTEVkQlFXTXNSVUZEWkN4TFFVRlpMRVZCUTFvc1IwRkJWU3hGUVVOV0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGRFVpeEhRVUZuUXl4RlFVTm9ReXhMUVVGaExFVkJRMklzV1VGQmNVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1JVRkRka1FzVFVGQmQwUTdVVUZEZEVRc1RVRkJUU3hGUVVGRkxFTkJRVU03VVVGRFZDeExRVUZMTEVWQlFVVXNSVUZCUlR0TFFVTldMRVZCUTBRc1IwRkJSeXhKUVVGWE8xRkJSV1FzVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVOMlFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUTNCRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOcVFpeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVTk9MRlZCUVZVc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRGhDUVVFNFFpeERRVU53UlN4RFFVRkRPMUZCUTBZc1RVRkJUU3hUUVVGVExFZEJRMklzVDBGQlR5eEhRVUZITEV0QlFVc3NVVUZCVVR0WlFVTnlRaXhEUVVGRExFTkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVRaRE8yZENRVU16UkN4RlFVRTRRenRaUVVOcVJDeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRPMUZCUTFZc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZEYmtJc1MwRkJTeXhGUVVOTUxGTkJRVEpDTEVWQlF6TkNMRk5CUVc5RUxFVkJRM0JFTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZEWWl4SFFVRm5ReXhGUVVOb1F5eEhRVUZ4UWl4RlFVTnlRaXhMUVVGVkxFVkJRMVlzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVU4yUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3h4UWtGQmNVSXNRMEZCUXl4WFFVRlhMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRek5GTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU4wUWl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVOT0xIbENRVUY1UWl4SFFVRmhMRmxCUVZrc1MwRkJTeXhqUVVGakxFOUJRVThzUlVGQlJTeERRVU12UlN4RFFVRkRPMUZCUTBZc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRmpMRVZCUVVVc1MwRkJTeXhGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEYUVVc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlEySXNSMEZCWjBNc1JVRkRhRU1zVFVGQll5eEZRVU5rTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZEZGtJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzWlVGQlpTeERRVUZETEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRia1VzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRM1JDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEUxQlFVMHNZMEZCWXl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRemRFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRha1FzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUTFnc1IwRkJaME1zUlVGRGFFTXNSMEZCYzBJc1JVRkRkRUlzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVU4yUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3h4UWtGQmNVSXNRMEZCUXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRM2hGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UWl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUjBGQllTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGFrVXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUV3UWl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGJrVXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRMVFzUjBGQlowTXNSVUZEYUVNc1IwRkJjVUlzUlVGRGNrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVTjJRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeHhRa0ZCY1VJc1EwRkJReXhOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlEzUkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnNRaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF5OURMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCWXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNrUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRMVFzUjBGQlowTXNSVUZEYUVNc1IwRkJjVUlzUlVGRGNrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVTjJRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeHhRa0ZCY1VJc1EwRkJReXhOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlEzUkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnNRaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF5OURMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCWXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNrUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRMVFzUjBGQlowTXNSVUZEYUVNc1IwRkJjVUlzUlVGRGNrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVTjJRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeHhRa0ZCY1VJc1EwRkJReXhOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlEzUkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnNRaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF5OURMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCWXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNrUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRMVFzUjBGQlowTXNSVUZEYUVNc1IwRkJjVUlzUlVGRGNrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVTjJRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeHhRa0ZCY1VJc1EwRkJReXhOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlEzUkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnNRaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF5OURMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCWXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNrUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRMlFzUjBGQlowTXNSVUZEYUVNc1IwRkJjVUlzUlVGRGNrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVTjJRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeHhRa0ZCY1VJc1EwRkJReXhYUVVGWExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6TkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETERCQ1FVRXdRaXhIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzQkVMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNSMEZCWXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRE1VUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRMWdzUjBGQlowTXNSVUZEYUVNc1IwRkJjVUlzUlVGRGNrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVTjJRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeHhRa0ZCY1VJc1EwRkJReXhSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlEzaEZMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndRaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEycEVMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCWXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGRrUXNRMEZCUXp0SlFVVkVPenM3T3pzN08wOUJUMGM3U1VGRFNDeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVTldMRTlCUVc5RExFVkJRM0JETEV0QlFXbENMRVZCUTJwQ0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEVsQlFVa3NUMEZCVHl4TFFVRkxMRXRCUVVzc1VVRkJVVHRaUVVGRkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkpMRXRCUVVzc1EwRkJUU3hEUVVGRE8xRkJRM1pGTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlF6VkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGRFppeERRVUZETEVkQlFVY3NTVUZCU1N4RlFVRkZMRTlCUVU4c1EwRkJReXhGUVVOc1FpeGhRVUZoTEVOQlFVTXNUVUZCVFN4RlFVTndRaXhKUVVGSkxFTkJRMHdzUTBGRFJpeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRGJrSXNTVUZCU1N4RFFVRkRMRFJDUVVFMFFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNaRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFOUJRVThzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZGZUVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkZja1FzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUlRkRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU1zUTBGQlF6dFJRVU4wUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVWQlFVVXNVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVTBzUTBGQlF6dFJRVVYyUkN4SlFVRkpMRU5CUVVNN1dVRkRTQ3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVU5PTEdsRFFVRnBReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NTMEZCU3l4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVOcVJTeExRVUZMTEVOQlEwNHNSVUZCUlN4RFFVTktMRU5CUVVNN1dVRkRSaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVU5PTERoQ1FVRTRRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NTMEZCU3l4TlFVRk5MRU5CUTNSRUxFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCVlN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNelFpeEZRVUZGTEVOQlEwb3NRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlExZ3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkRUaXhuUkVGQlowUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlEzaEZMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJSVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVVeFJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU01UkN4UFFVRlBMRTFCUVUwc1EwRkJRenRKUVVOb1FpeERRVUZETzBsQlJVUTdPenM3T3pzN1QwRlBSenRKUVVOSUxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlExSXNSMEZCWjBNc1JVRkRhRU1zUjBGQk5FSXNSVUZETlVJc1IwRkJSeXhKUVVGWE8xRkJSV1FzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOMlFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4aFFVRmhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU0xUkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZEYmtJc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eDVRa0ZCZVVJc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVV4UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM3BETEVOQlFVTTdTVUZGVXl4blFrRkJaMElzUTBGQlF5eEhRVUV3UWp0UlFVTnVSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8xRkJRemRETEVsQlFVa3NVMEZCVXl4SFFVRlJMRVZCUVVVc1EwRkJRenRSUVVWNFFpeEpRVUZKTEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkROME1zVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUld4Q0xGbEJRVmtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGRGVFTXNSVUZCUlN4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGWExFTkJRemxDTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUlVRc1QwRkJUeXhUUVVGVExFTkJRVU03U1VGRGJrSXNRMEZCUXp0SlFVVlRMSEZDUVVGeFFpeERRVUZETEUxQlFXTTdVVUZETlVNc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOc1F5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU03V1VGRGVFSXNUVUZCVFN4SlFVRkpMR3RDUVVGclFpeERRVU14UWl4SlFVRkpMRXRCUVVzc1EwRkJReXh2UkVGQmIwUXNRMEZCUXl4RFFVTm9SU3hEUVVGRE8xRkJRMG9zVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFdEJRVzFETEVWQlFVVXNSVUZCUlR0WlFVTnNSU3hOUVVGTkxGVkJRVlVzUjBGRFpDeFBRVUZQTEV0QlFVc3NTMEZCU3l4UlFVRlJPMmRDUVVOMlFpeERRVUZETEVOQlFVTXNTMEZCU3p0blFrRkRVQ3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZEV2l4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVOb1FpeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGRE1VSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEV0QlFVc3NaVUZCWlN4RFFVRkRMRk5CUVZNc1EwRkROME1zUTBGRFNpeERRVU5HTEVOQlFVTTdXVUZEVGl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRFUXNRMEZCUXl4RFFVRlJMRU5CUVVNN1VVRkRWaXhQUVVGUExGRkJRVkVzUTBGQlF6dEpRVU5zUWl4RFFVRkRPMGxCUlVRN096czdPenM3VDBGUFJ6dEpRVU5JTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUTFZc1QwRkJiME1zUlVGRGNFTXNTMEZCYVVJc1JVRkRha0lzUjBGQlJ5eEpRVUZYTzFGQlJXUXNTVUZCU1N4UFFVRlBMRXRCUVVzc1MwRkJTeXhSUVVGUk8xbEJRVVVzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVrc1MwRkJTeXhEUVVGTkxFTkJRVU03VVVGRmRrVXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZETlVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVU5tTEVOQlFVTXNSMEZCUnl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFVkJRMnhDTEdGQlFXRXNRMEZCUXl4TlFVRk5MRVZCUTNCQ0xFbEJRVWtzUTBGRFRDeERRVU5HTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU51UWl4SlFVRkpMRU5CUVVNc05FSkJRVFJDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZka01zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRmNrUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSVGRETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc01rSkJRVEpDTEVOQlFVTXNRMEZCUXp0UlFVTjBReXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVMHNRMEZCUXp0UlFVTjJSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUXpGRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRemxFTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03U1VGRlJEczdPenM3T3p0UFFVOUhPMGxCUTBnc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGRFZpeEhRVUZuUXl4RlFVTm9ReXhIUVVFMFFpeEZRVU0xUWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFVkJRMG9zUjBGQlJ5eEZRVU5JTEU5QlFVOHNSVUZEVUN4SFFVRkhMRVZCUVVVc1UwRkJVeXhIUVVObUxFZEJRVWNzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4aFFVRmhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVTnlSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVU5hTEVOQlFVTTdVVUZEUml4SlFVRkpMRU5CUVVNc05FSkJRVFJDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkROME1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl3d1FrRkJNRUlzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTXpReXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTI1RUxFTkJRVU03U1VGRlJEczdPenM3T3p0UFFVOUhPMGxCUTBnc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGRFlpeEhRVUZuUXl4RlFVTm9ReXhKUVVFclFpeEZRVU12UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hKUVVGSkxFOUJRVThzU1VGQlNTeExRVUZMTEZGQlFWRTdXVUZCUlN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFXRXNRMEZCUXp0UlFVTnNSU3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVOc1F5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVOMFFpeEpRVUZKTEVOQlFVTXNORUpCUVRSQ0xFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZETjBNc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTTFSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRelZGTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03U1VGRlJEczdPenM3T3p0UFFVOUhPMGxCUTBnc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGRFdDeEhRVUZuUXl4RlFVTm9ReXhKUVVFclFpeEZRVU12UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hKUVVGSkxFOUJRVThzU1VGQlNTeExRVUZMTEZGQlFWRTdXVUZCUlN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFXRXNRMEZCUXp0UlFVTnNSU3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzY1VKQlFYRkNMRU5CUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU40UlN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZEYmtJc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU0zUXl4RFFVRkRPMGxCUlVRN096czdPenM3VDBGUFJ6dEpRVU5JTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUTJJc1QwRkJiME1zUlVGRGNFTXNUVUZCYjBJc1JVRkRjRUlzUjBGQlJ5eEpRVUZYTzFGQlJXUXNTVUZCU1N4UFFVRlBMRTFCUVUwc1MwRkJTeXhSUVVGUk8xbEJRVVVzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTTFSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVNMVFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUTJZc1EwRkJReXhIUVVGSExFbEJRVWtzUlVGQlJTeFBRVUZQTEVOQlFVTXNSVUZEYkVJc2NVSkJRWEZDTEVOQlFVTXNWVUZCVlN4RlFVTm9ReXhKUVVGSkxFTkJRMHdzUTBGRFJpeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGRFSXNTVUZCU1N4RFFVRkRMRFJDUVVFMFFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUlhaRExFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVTNReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETERKQ1FVRXlRaXhEUVVGRExFTkJRVU03VVVGRGRFTXNUVUZCVFN4SFFVRkpMRTFCUVdNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRjRU1zVFVGQlRTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTTdXVUZET1VRc1QwRkJUeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVMHNRMEZCUXp0UlFVTnNSQ3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVZJTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hOUVVGTkxFTkJRVU1zVFVGQlRTeDFRa0ZCZFVJc1EwRkJReXhEUVVGRE8xRkJSWHBFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlEzWkRMRTFCUVhkQ0xFVkJRM2hDTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRelZGTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03U1VGRlJEczdPenM3T3pzN096dFBRVlZITzBsQlEwZ3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkRWQ3hQUVVGdlF5eEZRVU53UXl4VFFVRm5ReXhGUVVOb1F5eFBRVUY1UWl4RlFVTjZRaXhSUVVGcFF5eGpRVUZqTEVOQlFVTXNSMEZCUnl4RlFVTnVSQ3hMUVVGakxFVkJRMlFzU1VGQllTeEZRVU5pTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1JVRkJSU3hsUVVGbExFTkJRVU1zUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTnVSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRia0lzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkRjRUlzVTBGQmVVSXNSVUZEZWtJc1QwRkJhMElzUlVGRGJFSXNTMEZCZFVJc1JVRkRka0lzUzBGQlN5eEZRVU5NTEVsQlFVa3NSVUZEU2l4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFT3pzN096czdPenRQUVZGSE8wbEJRMGdzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZEVUN4SFFVRm5ReXhGUVVOb1F5eFJRVUZ2UWl4RlFVTndRaXhSUVVGcFFpeEZRVU5xUWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUTNSRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlExUXNRMEZCUXp0UlFVTkdMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRlRVVzUTBGQlF6dEpRVVZUTEZOQlFWTXNRMEZCUXl4TFFVRlJPMUZCUXpGQ0xFOUJRVThzYTBKQlFXdENMRU5CUVVNc1ZVRkJWU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTjRSQ3hEUVVGRE8wbEJSVk1zVjBGQlZ5eERRVUZyUWl4SFFVRlhPMUZCUTJoRUxFOUJRMFVzYTBKQlFXdENMRU5CUVVNc1ZVRkRjRUlzUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRja0lzUTBGQlF6dEpRVVZUTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJaME03VVVGRGJrUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRMlFzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzWlVGQlpTeERRVUZETEdOQlFXTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRMMFFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMnBDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc2IwSkJRVzlDTEVOQlFVTXNRMEZCUXp0UlFVTnFSU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVTjRRaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEc5RFFVRnZReXhEUVVGRExFTkJRVU03U1VGRGFrUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRMllzUjBGQlowTTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVU5xUlN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVOcVFpeERRVUZETzFGQlEwWXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXgzUWtGQmQwSXNTVUZCU1N4RFFVRkRMRmRCUVZjc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVFUXNUMEZCVHp0WlFVTk1MRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU1zVjBGQlZ6dFpRVU0zUWl4UFFVRlBMRVZCUVVVc1QwRkJUenRaUVVOb1FpeFBRVUZQTEVWQlFVVXNXVUZCV1R0VFFVTjBRaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFT3pzN096czdPMDlCVDBjN1NVRkRTQ3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVU5pTEU5QlFXOURMRVZCUTNCRExFMUJRVzlDTEVWQlEzQkNMRWRCUVVjc1NVRkJWenRSUVVWa0xFbEJRVWtzVDBGQlR5eE5RVUZOTEV0QlFVc3NVVUZCVVR0WlFVRkZMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRE5VVXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZETlVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVU5tTEVOQlFVTXNSMEZCUnl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFVkJRMnhDTEhGQ1FVRnhRaXhEUVVGRExGVkJRVlVzUlVGRGFFTXNTVUZCU1N4RFFVTk1MRU5CUTBZc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUTNSQ0xFbEJRVWtzUTBGQlF5dzBRa0ZCTkVJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVYyUXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRk4wTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4RFFVRkRPMUZCUTNSRExFMUJRVTBzUjBGQlNTeE5RVUZqTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzQkRMRTFCUVUwc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRE8xbEJRemxFTEU5QlFVOHNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGTkxFTkJRVU03VVVGRGJFUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNUVUZCVFN4RFFVRkRMRTFCUVUwc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXp0UlFVVjZSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVOMlF5eE5RVUYzUWl4RlFVTjRRaXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlEwWXNUVUZCVFN4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTTFSU3hQUVVGUExFMUJRVTBzUTBGQlF6dEpRVU5vUWl4RFFVRkRPMGxCUlZNc05FSkJRVFJDTEVOQlFVTXNSMEZCTUVJN1VVRkRMMFFzU1VGQlNTeERRVUZETEVkQlFVYzdXVUZCUlN4UFFVRlBPMUZCUTJwQ0xFMUJRVTBzVlVGQlZTeEhRVUZITEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEyaEVMRWxCUVVrc1EwRkJReXhWUVVGVk8xbEJRVVVzVDBGQlR6dFJRVU40UWl4TlFVRk5MRWRCUVVjc1IwRkJSeXhaUVVGWkxFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUTNaRExFbEJRMFVzUjBGQlJ6dFpRVU5JTEVOQlFVTXNSMEZCUnl4TFFVRkxMRlZCUVZVc1EwRkJReXhMUVVGTE8yZENRVU4yUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFbEJRVWtzVlVGQlZTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRM1JFTEVOQlFVTTdXVUZEUkN4TlFVRk5MRWxCUVVrc2EwSkJRV3RDTEVOQlF6RkNMR2RDUVVGblFpeEhRVUZITERSRFFVRTBReXhEUVVOb1JTeERRVUZETzFGQlEwb3NRMEZCUXp0SlFVTklMRU5CUVVNN1NVRTBRbE1zVFVGQlRTeERRVWxrTEVsQlFYRkVMRVZCUTNKRUxGTkJRV2xDTEVWQlEycENMR05CUVhWQ0xFdEJRVXNzUlVGRE5VSXNVMEZCY1VNN1VVRk5ja01zVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRM1pDTEVsQlFVa3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZEZEVJc1RVRkJUU3hKUVVGSkxHMUNRVUZ0UWl4RFFVRkRMRGhDUVVFNFFpeERRVUZETEVOQlFVTTdVVUZEYUVVc1EwRkJRenRSUVVORUxFMUJRVTBzWTBGQll5eEhRVUZITEd0Q1FVRnJRaXhEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZEZWtRc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQldTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRlJMRVZCUTI1RExGTkJRVk1zUlVGRFZDeFhRVUZyUWl4RlFVTnNRaXhYUVVGWExFbEJRVWtzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUzNaRUxFTkJRVU03VVVGRFRpeFRRVUZUTEZWQlFWVXNRMEZCUXl4SFFVRTJRanRaUVVNdlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zT0VKQlFUaENPMWxCUTI1RUxFOUJRVThzUjBGQlZTeERRVUZETzFGQlEzQkNMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFTkJRVU1zUTBGQlF5eGpRVUZqTEZsQlFWa3NUMEZCVHl4RFFVRkRPMWxCUVVVc1QwRkJUeXhWUVVGVkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdVVUZETlVVc1QwRkJUeXhqUVVGakxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMGxCUTNwRExFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnWENJdUxpOWliMjkwYzNSeVlYQmNJanRjYm1sdGNHOXlkQ0JjSWk0dUx5NHVMM05vWVhKbFpDOXZkbVZ5Y21sa1pYTmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFWmhZbkpwWTBOdmJuUmxlSFIxWVd4cGVtVmtRWEpuY3l4Y2JpQWdSbUZpY21salEyOXVkSEpoWTNSQlpHRndkR1Z5TEZ4dWZTQm1jbTl0SUZ3aUxpNHZRMjl1ZEhKaFkzUkJaR0Z3ZEdWeVhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCRGIyNTBaWGgwSUdGeklFTjBlQ3hjYmlBZ1EyOXVkSEpoWTNRc1hHNGdJRTlpYW1WamRDQmhjeUJHWVdKeWFXTlBZbXBsWTNRc1hHNTlJR1p5YjIwZ1hDSm1ZV0p5YVdNdFkyOXVkSEpoWTNRdFlYQnBYQ0k3WEc1cGJYQnZjblFnZXlCTmIyUmxiQ3dnVTJWeWFXRnNhWHBsY2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEc5eUxYWmhiR2xrWVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFRnNiRTl3WlhKaGRHbHZia3RsZVhNc1hHNGdJRUYxZEdodmNtbDZZWFJwYjI1RmNuSnZjaXhjYmlBZ1EyOXVaR2wwYVc5dUxGeHVJQ0JEYjI1MFpYaDBkV0ZzUVhKbmN5eGNiaUFnUkdseVpXTjBhVzl1VEdsdGFYUlBabVp6WlhRc1hHNGdJRVYyWlc1MFNXUnpMRnh1SUNCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jc1hHNGdJRTFsZEdodlpFOXlUM0JsY21GMGFXOXVMRnh1SUNCUFluTmxjblpsY2l4Y2JpQWdUM0prWlhKRWFYSmxZM1JwYjI0c1hHNGdJRkJsY25OcGMzUmxibU5sUzJWNWN5eGNiaUFnVUdWeWMybHpkR1Z1WTJWUFluTmxjblpsY2l4Y2JpQWdVSEpsY0dGeVpXUlRkR0YwWlcxbGJuUkxaWGx6TEZ4dUlDQlNaWEJ2YzJsMGIzSjVMRnh1SUNCVFpYSnBZV3hwZW1Wa1VHRm5aU3hjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCR1lXSnlhV05EYjI1MGNtRmpkRkpsY0c5emFYUnZjbmtnZlNCbWNtOXRJRndpTGk0dlJtRmljbWxqUTI5dWRISmhZM1JTWlhCdmMybDBiM0o1WENJN1hHNXBiWEJ2Y25RZ2V5QkVaWFJsY20xcGJtbHpkR2xqVTJWeWFXRnNhWHBsY2lCOUlHWnliMjBnWENJdUxpOHVMaTl6YUdGeVpXUXZSR1YwWlhKdGFXNXBjM1JwWTFObGNtbGhiR2w2WlhKY0lqdGNibWx0Y0c5eWRDQjdJRTFoYm1kdlVYVmxjbmtnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJadmNpMWpiM1ZqYUdSaVhDSTdYRzVwYlhCdmNuUWdleUJEYUdWamEyRmliR1VzSUdobFlXeDBhR05vWldOcklIMGdabkp2YlNCY0lpNHVMeTR1TDNOb1lYSmxaQzlwYm5SbGNtWmhZMlZ6TDBOb1pXTnJZV0pzWlZ3aU8xeHVhVzF3YjNKMElIc2dRMjl1YzNSeWRXTjBiM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJwYjI1Y0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZENCOUlHWnliMjBnWENJdUxpOURiMjUwY21GamRFTnZiblJsZUhSY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVKMWJHdERjblZrVDNCbGNtRjBhVzl1UzJWNWN5eGNiaUFnVDNCbGNtRjBhVzl1UzJWNWN5eGNiaUFnVUhKcGJXRnllVXRsZVZSNWNHVXNYRzRnSUZObGNtbGhiR2w2WVhScGIyNUZjbkp2Y2l4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JHWVdKeWFXTkdiR0ZuY3l4Y2JpQWdSbUZpY21salRXOWtaV3hMWlhsekxGeHVJQ0JOYVhOemFXNW5RMjl1ZEdWNGRFVnljbTl5TEZ4dWZTQm1jbTl0SUZ3aUxpNHZMaTR2YzJoaGNtVmtMMmx1WkdWNFhDSTdYRzVwYlhCdmNuUWdleUJsZUhSeVlXTjBUWE53U1dRZ2ZTQm1jbTl0SUZ3aUxpNHZMaTR2YzJoaGNtVmtMMlJsWTI5eVlYUnZjbk5jSWp0Y2JtbHRjRzl5ZENCN0lGQkJRMHRCUjBWZlRrRk5SU3dnVmtWU1UwbFBUaUI5SUdaeWIyMGdYQ0l1TGk4dUxpOTJaWEp6YVc5dVhDSTdYRzVjYmtaaFluSnBZMDlpYW1WamRDZ3BLRVJoZEdVcE8xeHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnUW1GelpTQmpiMjUwY21GamRDQmpiR0Z6Y3lCbWIzSWdRMUpWUkNCdmNHVnlZWFJwYjI1eklHbHVJRVpoWW5KcFl5QmphR0ZwYm1OdlpHVmNiaUFxSUVCemRXMXRZWEo1SUZCeWIzWnBaR1Z6SUhOMFlXNWtZWEprSUdOeVpXRjBaU3dnY21WaFpDd2dkWEJrWVhSbExDQmhibVFnWkdWc1pYUmxJRzl3WlhKaGRHbHZibk1nWm05eUlHMXZaR1ZzY3lCcGJpQkdZV0p5YVdNZ1kyaGhhVzVqYjJSbFhHNGdLaUJBZEdWdGNHeGhkR1VnVFNBdElGUjVjR1VnWlhoMFpXNWthVzVuSUUxdlpHVnNYRzRnS2lCQVkyeGhjM01nUm1GaWNtbGpRM0oxWkVOdmJuUnlZV04wWEc0Z0tpQkFaWGgwWlc1a2N5QjdRMjl1ZEhKaFkzUjlYRzRnS2lCQVpYaGhiWEJzWlZ4dUlDb2dZR0JnZEhsd1pYTmpjbWx3ZEZ4dUlDb2dMeThnUkdWbWFXNWxJR0VnYlc5a1pXeGNiaUFxSUVCMFlXSnNaU2duWVhOelpYUnpKeWxjYmlBcUlHTnNZWE56SUVGemMyVjBJR1Y0ZEdWdVpITWdUVzlrWld3Z2UxeHVJQ29nSUNCQWFXUW9LVnh1SUNvZ0lDQnBaRG9nYzNSeWFXNW5PMXh1SUNwY2JpQXFJQ0FnUUhCeWIzQmxjblI1S0NsY2JpQXFJQ0FnWkdGMFlUb2djM1J5YVc1bk8xeHVJQ29nZlZ4dUlDcGNiaUFxSUM4dklFTnlaV0YwWlNCaElHTnZiblJ5WVdOMElIUm9ZWFFnWlhoMFpXNWtjeUJHWVdKeWFXTkRjblZrUTI5dWRISmhZM1JjYmlBcUlHVjRjRzl5ZENCamJHRnpjeUJCYzNObGRFTnZiblJ5WVdOMElHVjRkR1Z1WkhNZ1JtRmljbWxqUTNKMVpFTnZiblJ5WVdOMFBFRnpjMlYwUGlCN1hHNGdLaUFnSUdOdmJuTjBjblZqZEc5eUtDa2dlMXh1SUNvZ0lDQWdJSE4xY0dWeUtDZEJjM05sZEVOdmJuUnlZV04wSnl3Z1FYTnpaWFFwTzF4dUlDb2dJQ0I5WEc0Z0tseHVJQ29nSUNBdkx5QkJaR1FnWTNWemRHOXRJRzFsZEdodlpITWdZWE1nYm1WbFpHVmtYRzRnS2lBZ0lHRnplVzVqSUdkbGRFRnpjMlYwU0dsemRHOXllU2hqZEhnNklFTnZiblJsZUhRc0lHbGtPaUJ6ZEhKcGJtY3BPaUJRY205dGFYTmxQR0Z1ZVZ0ZFBpQjdYRzRnS2lBZ0lDQWdMeThnUTNWemRHOXRJR2x0Y0d4bGJXVnVkR0YwYVc5dVhHNGdLaUFnSUgxY2JpQXFJSDFjYmlBcUlHQmdZRnh1SUNvZ1FHMWxjbTFoYVdSY2JpQXFJSE5sY1hWbGJtTmxSR2xoWjNKaGJWeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkRiR2xsYm5SY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1EyOXVkSEpoWTNSY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1VtVndiM05wZEc5eWVWeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkJaR0Z3ZEdWeVhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElGTjBZWFJsUkVKY2JpQXFYRzRnS2lBZ0lFTnNhV1Z1ZEMwK1BrTnZiblJ5WVdOME9pQmpjbVZoZEdVb1kzUjRMQ0J0YjJSbGJDbGNiaUFxSUNBZ1EyOXVkSEpoWTNRdFBqNVNaWEJ2YzJsMGIzSjVPaUJ5WlhCdmMybDBiM0o1S0dOMGVDbGNiaUFxSUNBZ1EyOXVkSEpoWTNRdFBqNVNaWEJ2YzJsMGIzSjVPaUJqY21WaGRHVW9iVzlrWld3c0lHTjBlQ2xjYmlBcUlDQWdVbVZ3YjNOcGRHOXllUzArUGtGa1lYQjBaWEk2SUdOeVpXRjBaU2gwWVdKc1pVNWhiV1VzSUdsa0xDQnlaV052Y21Rc0lIUnlZVzV6YVdWdWRDd2dZM1I0S1Z4dUlDb2dJQ0JCWkdGd2RHVnlMVDQrVTNSaGRHVkVRam9nY0hWMFUzUmhkR1VvYVdRc0lITmxjbWxoYkdsNlpXUkVZWFJoS1Z4dUlDb2dJQ0JUZEdGMFpVUkNMUzArUGtGa1lYQjBaWEk2SUZOMVkyTmxjM05jYmlBcUlDQWdRV1JoY0hSbGNpMHRQajVTWlhCdmMybDBiM0o1T2lCeVpXTnZjbVJjYmlBcUlDQWdVbVZ3YjNOcGRHOXllUzB0UGo1RGIyNTBjbUZqZERvZ2JXOWtaV3hjYmlBcUlDQWdRMjl1ZEhKaFkzUXRMVDQrUTJ4cFpXNTBPaUJ0YjJSbGJGeHVJQ292WEc1bGVIQnZjblFnWVdKemRISmhZM1FnWTJ4aGMzTWdSbUZpY21salEzSjFaRU52Ym5SeVlXTjBQRTBnWlhoMFpXNWtjeUJOYjJSbGJENWNiaUFnWlhoMFpXNWtjeUJEYjI1MGNtRmpkRnh1SUNCcGJYQnNaVzFsYm5SelhHNGdJQ0FnUTJobFkydGhZbXhsTEZ4dUlDQWdJRkJsY25OcGMzUmxibU5sVDJKelpYSjJaWEk4Um1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMFBpeGNiaUFnSUNCUFluTmxjblpsY2p4Y2JpQWdJQ0FnSUZ0Y2JpQWdJQ0FnSUNBZ2RHRmliR1U2SUVOdmJuTjBjblZqZEc5eVBFMCtJSHdnYzNSeWFXNW5MRnh1SUNBZ0lDQWdJQ0JsZG1WdWREb2dRV3hzVDNCbGNtRjBhVzl1UzJWNWN5eGNiaUFnSUNBZ0lDQWdhV1E2SUVWMlpXNTBTV1J6TEZ4dUlDQWdJQ0FnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRK0xGeHVJQ0FnSUNBZ1hWeHVJQ0FnSUQ1Y2JudGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlRhR0Z5WldRZ1lXUmhjSFJsY2lCcGJuTjBZVzVqWlNCbWIzSWdZV3hzSUdOdmJuUnlZV04wSUdsdWMzUmhibU5sYzF4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lITjBZWFJwWXlCaFpHRndkR1Z5T2lCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSWdQU0J1WlhjZ1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlLQ2s3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJSE4wWVhScFl5QnlaV0ZrYjI1c2VTQnpaWEpwWVd4cGVtVnlJRDBnYm1WM0lFUmxkR1Z5YldsdWFYTjBhV05UWlhKcFlXeHBlbVZ5S0NrN1hHNWNiaUFnY0hKdmRHVmpkR1ZrSUdsdWFYUnBZV3hwZW1Wa09pQmliMjlzWldGdUlEMGdabUZzYzJVN1hHNWNiaUFnY0hKcGRtRjBaU0JmY21Wd2J6ODZJRVpoWW5KcFkwTnZiblJ5WVdOMFVtVndiM05wZEc5eWVUeE5QanRjYmx4dUlDQndjbTkwWldOMFpXUWdaMlYwSUhKbGNHOG9LU0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbDl5WlhCdktTQjdYRzRnSUNBZ0lDQjBhR2x6TGw5eVpYQnZJRDBnVW1Wd2IzTnBkRzl5ZVM1bWIzSk5iMlJsYkNoMGFHbHpMbU5zWVhwNktUdGNiaUFnSUNBZ0lDOHZJSFJ5ZVNCN1hHNGdJQ0FnSUNBdkx5QWdJSFJvYVhNdWNtVndieTV2WW5ObGNuWmxLSFJvYVhNcE8xeHVJQ0FnSUNBZ0x5OGdmU0JqWVhSamFDQW9aWEp5T2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnSUNBdkx5QWdJR2xtSUNoY2JpQWdJQ0FnSUM4dklDQWdJQ0JsY25JZ2FXNXpkR0Z1WTJWdlppQkpiblJsY201aGJFVnljbTl5SUNZbVhHNGdJQ0FnSUNBdkx5QWdJQ0FnWlhKeUxtMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSlBZbk5sY25abGNpQmhiSEpsWVdSNUlISmxaMmx6ZEdWeVpXUmNJaWxjYmlBZ0lDQWdJQzh2SUNBZ0tTQjdYRzRnSUNBZ0lDQXZMeUFnSUNBZ0x5OGdZV3h5WldGa2VTQnlaV2RwYzNSbGNtVmtJRzlpYzJWeWRtVnlPeUJwWjI1dmNtVWdaSFZ3YkdsallYUmxJSEpsWjJsemRISmhkR2x2YmlBb1pIVnlhVzVuSUhSbGMzUnpLVnh1SUNBZ0lDQWdMeThnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnTHk4Z0lDQWdJSFJvY205M0lHVnljanRjYmlBZ0lDQWdJQzh2SUNBZ2ZWeHVJQ0FnSUNBZ0x5OGdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWZjbVZ3Ynp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTNKbFlYUmxjeUJoSUc1bGR5QkdZV0p5YVdORGNuVmtRMjl1ZEhKaFkzUWdhVzV6ZEdGdVkyVmNiaUFnSUNvZ1FITjFiVzFoY25rZ1NXNXBkR2xoYkdsNlpYTWdZU0JqYjI1MGNtRmpkQ0IzYVhSb0lHRWdibUZ0WlNCaGJtUWdiVzlrWld3Z1kyeGhjM05jYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHNWhiV1VnTFNCVWFHVWdibUZ0WlNCdlppQjBhR1VnWTI5dWRISmhZM1JjYmlBZ0lDb2dRSEJoY21GdElIdERiMjV6ZEhKMVkzUnZjanhOUG4wZ1kyeGhlbm9nTFNCVWFHVWdiVzlrWld3Z1kyOXVjM1J5ZFdOMGIzSmNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JqYjI1emRISjFZM1J2Y2loY2JpQWdJQ0J1WVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnY0hKdmRHVmpkR1ZrSUhKbFlXUnZibXg1SUdOc1lYcDZPaUJEYjI1emRISjFZM1J2Y2p4TlBseHVJQ0FwSUh0Y2JpQWdJQ0J6ZFhCbGNpaHVZVzFsS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUhKbFpuSmxjMmdvWEc0Z0lDQWdkR0ZpYkdVNklFTnZibk4wY25WamRHOXlQRTArSUh3Z2MzUnlhVzVuTEZ4dUlDQWdJR1YyWlc1ME9pQkJiR3hQY0dWeVlYUnBiMjVMWlhsekxGeHVJQ0FnSUdsa09pQkZkbVZ1ZEVsa2N5eGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5JSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCMGFHbHpMbkpsWm5KbGMyZ3BPMXh1SUNBZ0lHeHZaeTUyWlhKaWIzTmxLR0JRZFhOb2FXNW5JQ1I3WlhabGJuUjlJR1YyWlc1MElHOXVJSFJoWW14bElDUjdkR0ZpYkdWOUxDQnBaQ2h6S1NBa2UybGtmV0FwTzF4dUlDQWdJQzh2SUdSdklHNXZkR2hwYm1jdUlHRnNiQ0IzWlNCdVpXVmtaV1FnZDJGeklHRnVJRzlpYzJWeWRtVnlJSFJ2SUd0cFkydHpkR0Z5ZENCMGFHVWdjSEp2WTJWemMxeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2JHbHpkRUo1S0Z4dUlDQWdJR04wZURvZ1EzUjRJSHdnUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExGeHVJQ0FnSUd0bGVUb2djM1J5YVc1bklId2dhMlY1YjJZZ1RTeGNiaUFnSUNCdmNtUmxjam9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThUVnRkSUh3Z2MzUnlhVzVuUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpMQ0JzYjJjZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLRnN1TGk1aGNtZHpMQ0JqZEhoZExDQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRFdGxlWE11VEVsVFZGOUNXU3dnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxteHBjM1JDZVNrN1hHNGdJQ0FnYkc5bkxtbHVabThvWEc0Z0lDQWdJQ0JnVW5WdWJtbHVaeUJzYVhOMFFua2dhMlY1SUNSN2EyVjVJR0Z6SUhOMGNtbHVaMzBzSUc5eVpHVnlJQ1I3YjNKa1pYSjlJR0Z1WkNCaGNtZHpJQ1I3WTNSNFFYSm5jMzFnWEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV5WlhCdkxteHBjM1JDZVNoY2JpQWdJQ0FnSUd0bGVTQmhjeUJyWlhsdlppQk5MRnh1SUNBZ0lDQWdiM0prWlhJZ1lYTWdUM0prWlhKRWFYSmxZM1JwYjI0c1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUhCaFoybHVZWFJsUW5rb1hHNGdJQ0FnWTNSNE9pQkRkSGdnZkNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNYRzRnSUNBZ2EyVjVPaUJ6ZEhKcGJtY2dmQ0JyWlhsdlppQk5MRnh1SUNBZ0lHOXlaR1Z5T2lCemRISnBibWNzWEc0Z0lDQWdjbVZtT2lCUGJXbDBQRVJwY21WamRHbHZia3hwYldsMFQyWm1jMlYwTENCY0ltUnBjbVZqZEdsdmJsd2lQaUI4SUhOMGNtbHVaeUE5SUh0Y2JpQWdJQ0FnSUc5bVpuTmxkRG9nTVN4Y2JpQWdJQ0FnSUd4cGJXbDBPaUF4TUN4Y2JpQWdJQ0I5TEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4VTJWeWFXRnNhWHBsWkZCaFoyVThUVDRnZkNCemRISnBibWMrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTXNJR3h2WnlCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29XeTR1TG1GeVozTXNJR04wZUYwc0lGQnlaWEJoY21Wa1UzUmhkR1Z0Wlc1MFMyVjVjeTVRUVVkRlgwSlpMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdWNHRm5hVzVoZEdWQ2VTazdYRzRnSUNBZ2JHOW5MbWx1Wm04b1hHNGdJQ0FnSUNCZ1VuVnVibWx1WnlCd1lXZHBibUYwWlVKNUlHdGxlU0FrZTJ0bGVTQmhjeUJ6ZEhKcGJtZDlMQ0J2Y21SbGNpQWtlMjl5WkdWeWZTQjNhWFJvSUhOcGVtVWdKSHNvY21WbUlHRnpJR0Z1ZVNrdWJHbHRhWFI5SUdGdVpDQmhjbWR6SUNSN1kzUjRRWEpuYzMxZ1hHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1eVpYQnZMbkJoWjJsdVlYUmxRbmtvWEc0Z0lDQWdJQ0JyWlhrZ1lYTWdhMlY1YjJZZ1RTeGNiaUFnSUNBZ0lHOXlaR1Z5SUdGeklHRnVlU3hjYmlBZ0lDQWdJSEpsWmlCaGN5QmhibmtzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJSEJoWjJVb1hHNGdJQ0FnWTNSNE9pQkRkSGdnZkNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNYRzRnSUNBZ2RtRnNkV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQmthWEpsWTNScGIyNDZJSE4wY21sdVp5QjhJRTl5WkdWeVJHbHlaV04wYVc5dUlEMGdUM0prWlhKRWFYSmxZM1JwYjI0dVFWTkRMRnh1SUNBZ0lISmxaam9nVDIxcGREeEVhWEpsWTNScGIyNU1hVzFwZEU5bVpuTmxkQ3dnWENKa2FYSmxZM1JwYjI1Y0lqNGdmQ0J6ZEhKcGJtY2dQU0I3WEc0Z0lDQWdJQ0J2Wm1aelpYUTZJREVzWEc0Z0lDQWdJQ0JzYVcxcGREb2dNVEFzWEc0Z0lDQWdmU3hjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRk5sY21saGJHbDZaV1JRWVdkbFBFMCtJSHdnYzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21kekxDQnNiMmNnZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGc3VMaTVoY21kekxDQmpkSGhkTENCUWNtVndZWEpsWkZOMFlYUmxiV1Z1ZEV0bGVYTXVVRUZIUlN3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbkJoWjJVcE8xeHVJQ0FnSUd4dlp5NXBibVp2S0Z4dUlDQWdJQ0FnWUZCaFoybHVaeUFrZTAxdlpHVnNMblJoWW14bFRtRnRaU2gwYUdsekxtTnNZWHA2S1gwZ1lua2daR1ZtWVhWc2RDQnhkV1Z5ZVNCaGRIUnlhV0oxZEdWellGeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdjbVZtWlhKbGJtTmxJRDFjYmlBZ0lDQWdJSFI1Y0dWdlppQnlaV1lnUFQwOUlGd2ljM1J5YVc1blhDSmNiaUFnSUNBZ0lDQWdQeUFvU2xOUFRpNXdZWEp6WlNoeVpXWXBJR0Z6SUU5dGFYUThSR2x5WldOMGFXOXVUR2x0YVhSUFptWnpaWFFzSUZ3aVpHbHlaV04wYVc5dVhDSStLU0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDaDdmU0JoY3lCUGJXbDBQRVJwY21WamRHbHZia3hwYldsMFQyWm1jMlYwTENCY0ltUnBjbVZqZEdsdmJsd2lQaWxjYmlBZ0lDQWdJQ0FnT2lCeVpXWTdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjbVZ3Ynk1d1lXZGxLRnh1SUNBZ0lDQWdkbUZzZFdVc1hHNGdJQ0FnSUNCa2FYSmxZM1JwYjI0Z1lYTWdUM0prWlhKRWFYSmxZM1JwYjI0c1hHNGdJQ0FnSUNCeVpXWmxjbVZ1WTJVZ1lYTWdUMjFwZER4RWFYSmxZM1JwYjI1TWFXMXBkRTltWm5ObGRDd2dYQ0prYVhKbFkzUnBiMjVjSWo0c1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdacGJtUlBibVZDZVNoY2JpQWdJQ0JqZEhnNklFTjBlQ0I4SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDeGNiaUFnSUNCclpYazZJSE4wY21sdVp5QjhJR3RsZVc5bUlFMHNYRzRnSUNBZ2RtRnNkV1U2SUdGdWVTeGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBFMGdmQ0J6ZEhKcGJtYytJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNc0lHeHZaeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1d5NHVMbUZ5WjNNc0lHTjBlRjBzSUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NUdTVTVFWDA5T1JWOUNXU3dnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtWnBibVJQYm1WQ2VTazdYRzRnSUNBZ2JHOW5MbWx1Wm04b1hHNGdJQ0FnSUNCZ1VuVnVibWx1WnlCbWFXNWtUMjVsUW5rZ2EyVjVJQ1I3YTJWNUlHRnpJSE4wY21sdVozMHNJSFpoYkhWbE9pQWtlM1poYkhWbGZTQjNhWFJvSUdGeVozTWdKSHRqZEhoQmNtZHpmV0JjYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkpsY0c4dVptbHVaRTl1WlVKNUtHdGxlU0JoY3lCclpYbHZaaUJOTENCMllXeDFaU3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCemRHRjBaVzFsYm5Rb1hHNGdJQ0FnWTNSNE9pQkRkSGdnZkNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNYRzRnSUNBZ2JXVjBhRzlrT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhoYm5rK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01zSUd4dlp5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvV3k0dUxtRnlaM01zSUdOMGVGMHNJRkJsY25OcGMzUmxibU5sUzJWNWN5NVRWRUZVUlUxRlRsUXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1emRHRjBaVzFsYm5RcE8xeHVJQ0FnSUd4dlp5NXBibVp2S0dCU2RXNXVhVzVuSUhOMFlYUmxiV1Z1ZENBa2UyMWxkR2h2WkgwZ2QybDBhQ0JoY21keklDUjdZM1I0UVhKbmMzMWdLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV5WlhCdkxuTjBZWFJsYldWdWRDaHRaWFJvYjJRc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdZMjkxYm5SUFppaGNiaUFnSUNCamRIZzZJRU4wZUNCOElFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ3hjYmlBZ0lDQnJaWGsvT2lCemRISnBibWNnZkNCclpYbHZaaUJOTEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4Ym5WdFltVnlJSHdnYzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21kekxDQnNiMmNnZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGc3VMaTVoY21kekxDQmpkSGhkTENCUWNtVndZWEpsWkZOMFlYUmxiV1Z1ZEV0bGVYTXVRMDlWVGxSZlQwWXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amIzVnVkRTltS1R0Y2JpQWdJQ0JzYjJjdWFXNW1ieWhnVW5WdWJtbHVaeUJqYjNWdWRFOW1KSHRyWlhrZ1B5QmdJR3RsZVNBa2UydGxlU0JoY3lCemRISnBibWQ5WUNBNklGd2lYQ0o5WUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNtVndieTVqYjNWdWRFOW1LR3RsZVNCaGN5QnJaWGx2WmlCTklId2dkVzVrWldacGJtVmtMQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUcxaGVFOW1LRnh1SUNBZ0lHTjBlRG9nUTNSNElId2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTEZ4dUlDQWdJR3RsZVRvZ2MzUnlhVzVuSUh3Z2EyVjViMllnVFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEUxYmEyVjViMllnVFYwZ2ZDQnpkSEpwYm1jK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01zSUd4dlp5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvV3k0dUxtRnlaM01zSUdOMGVGMHNJRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBTMlY1Y3k1TlFWaGZUMFlzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXRZWGhQWmlrN1hHNGdJQ0FnYkc5bkxtbHVabThvWUZKMWJtNXBibWNnYldGNFQyWWdhMlY1SUNSN2EyVjVJR0Z6SUhOMGNtbHVaMzFnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1eVpYQnZMbTFoZUU5bUtHdGxlU0JoY3lCclpYbHZaaUJOTENBdUxpNWpkSGhCY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHMXBiazltS0Z4dUlDQWdJR04wZURvZ1EzUjRJSHdnUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExGeHVJQ0FnSUd0bGVUb2djM1J5YVc1bklId2dhMlY1YjJZZ1RTeGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBFMWJhMlY1YjJZZ1RWMGdmQ0J6ZEhKcGJtYytJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNc0lHeHZaeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1d5NHVMbUZ5WjNNc0lHTjBlRjBzSUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NU5TVTVmVDBZc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTV0YVc1UFppazdYRzRnSUNBZ2JHOW5MbWx1Wm04b1lGSjFibTVwYm1jZ2JXbHVUMllnYTJWNUlDUjdhMlY1SUdGeklITjBjbWx1WjMxZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlaWEJ2TG0xcGJrOW1LR3RsZVNCaGN5QnJaWGx2WmlCTkxDQXVMaTVqZEhoQmNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR0YyWjA5bUtGeHVJQ0FnSUdOMGVEb2dRM1I0SUh3Z1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBMRnh1SUNBZ0lHdGxlVG9nYzNSeWFXNW5JSHdnYTJWNWIyWWdUU3hjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRzUxYldKbGNpQjhJSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3l3Z2JHOW5JSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYkxpNHVZWEpuY3l3Z1kzUjRYU3dnVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrRldSMTlQUml3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbUYyWjA5bUtUdGNiaUFnSUNCc2IyY3VhVzVtYnloZ1VuVnVibWx1WnlCaGRtZFBaaUJyWlhrZ0pIdHJaWGtnWVhNZ2MzUnlhVzVuZldBcE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuSmxjRzh1WVhablQyWW9hMlY1SUdGeklHdGxlVzltSUUwc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdjM1Z0VDJZb1hHNGdJQ0FnWTNSNE9pQkRkSGdnZkNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNYRzRnSUNBZ2EyVjVPaUJ6ZEhKcGJtY2dmQ0JyWlhsdlppQk5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThiblZ0WW1WeUlId2djM1J5YVc1blBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6TENCc2IyY2dmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0ZzdUxpNWhjbWR6TENCamRIaGRMQ0JRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVUxVk5YMDlHTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVjM1Z0VDJZcE8xeHVJQ0FnSUd4dlp5NXBibVp2S0dCU2RXNXVhVzVuSUhOMWJVOW1JR3RsZVNBa2UydGxlU0JoY3lCemRISnBibWQ5WUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNtVndieTV6ZFcxUFppaHJaWGtnWVhNZ2EyVjViMllnVFN3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmthWE4wYVc1amRFOW1LRnh1SUNBZ0lHTjBlRG9nUTNSNElId2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTEZ4dUlDQWdJR3RsZVRvZ2MzUnlhVzVuSUh3Z2EyVjViMllnVFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEUxYmEyVjViMllnVFYxYlhTQjhJSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3l3Z2JHOW5JSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYkxpNHVZWEpuY3l3Z1kzUjRYU3dnVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrUkpVMVJKVGtOVVgwOUdMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVpHbHpkR2x1WTNSUFppazdYRzRnSUNBZ2JHOW5MbWx1Wm04b1lGSjFibTVwYm1jZ1pHbHpkR2x1WTNSUFppQnJaWGtnSkh0clpYa2dZWE1nYzNSeWFXNW5mV0FwTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5KbGNHOHVaR2x6ZEdsdVkzUlBaaWhyWlhrZ1lYTWdhMlY1YjJZZ1RTd2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJuY205MWNFOW1LRnh1SUNBZ0lHTjBlRG9nUTNSNElId2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTEZ4dUlDQWdJR3RsZVRvZ2MzUnlhVzVuSUh3Z2EyVjViMllnVFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEZKbFkyOXlaRHh6ZEhKcGJtY3NJRTFiWFQ0Z2ZDQnpkSEpwYm1jK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01zSUd4dlp5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvV3k0dUxtRnlaM01zSUdOMGVGMHNJRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBTMlY1Y3k1SFVrOVZVRjlQUml3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbWR5YjNWd1QyWXBPMXh1SUNBZ0lHeHZaeTVwYm1adktHQlNkVzV1YVc1bklHZHliM1Z3VDJZZ2EyVjVJQ1I3YTJWNUlHRnpJSE4wY21sdVozMWdLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV5WlhCdkxtZHliM1Z3VDJZb2EyVjVJR0Z6SUd0bGVXOW1JRTBzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRGNtVmhkR1Z6SUdFZ2MybHVaMnhsSUcxdlpHVnNJR2x1SUhSb1pTQnpkR0YwWlNCa1lYUmhZbUZ6WlZ4dUlDQWdLaUJBYzNWdGJXRnllU0JFWld4bFoyRjBaWE1nZEc4Z2RHaGxJSEpsY0c5emFYUnZjbmtuY3lCamNtVmhkR1VnYldWMGFHOWtYRzRnSUNBcUlFQndZWEpoYlNCN1EzUjRmU0JqZEhnZ0xTQlVhR1VnUm1GaWNtbGpJR05vWVdsdVkyOWtaU0JqYjI1MFpYaDBYRzRnSUNBcUlFQndZWEpoYlNCN1RYMGdiVzlrWld3Z0xTQlVhR1VnYlc5a1pXd2dkRzhnWTNKbFlYUmxYRzRnSUNBcUlFQndZWEpoYlNCN0xpNHVZVzU1VzExOUlHRnlaM01nTFNCQlpHUnBkR2x2Ym1Gc0lHRnlaM1Z0Wlc1MGMxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEUwK2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ1kzSmxZWFJsWkNCdGIyUmxiRnh1SUNBZ0tpOWNiaUFnWVhONWJtTWdZM0psWVhSbEtGeHVJQ0FnSUdOdmJuUmxlSFE2SUVOMGVDQjhJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEN4Y2JpQWdJQ0J0YjJSbGJEb2djM1J5YVc1bklId2dUU3hjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQSE4wY21sdVp5QjhJRTArSUh0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUcxdlpHVnNJRDA5UFNCY0luTjBjbWx1WjF3aUtTQnRiMlJsYkNBOUlIUm9hWE11WkdWelpYSnBZV3hwZW1VOFRUNG9iVzlrWld3cElHRnpJRTA3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVFRnlaM01zSUdOMGVDQjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWEc0Z0lDQWdJQ0FnSUZzdUxpNWhjbWR6TENCamIyNTBaWGgwWFN4Y2JpQWdJQ0FnSUNBZ1QzQmxjbUYwYVc5dVMyVjVjeTVEVWtWQlZFVXNYRzRnSUNBZ0lDQWdJSFJ5ZFdWY2JpQWdJQ0FnSUNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1OeVpXRjBaU2s3WEc0Z0lDQWdkR2hwY3k1bGJuTjFjbVZOYVhKeWIzSlhjbWwwWlZCbGNtMXBjM05wYjI1ektHTjBlQ2s3WEc0Z0lDQWdiRzluTG1sdVptOG9ZRU5QVGxSU1FVTlVJRU5TUlVGVVJTd2dKSHRqZEhoQmNtZHpmV0FwTzF4dVhHNGdJQ0FnYkc5bkxtbHVabThvWUVOeVpXRjBhVzVuSUcxdlpHVnNPaUFrZTBwVFQwNHVjM1J5YVc1bmFXWjVLRzF2WkdWc0tYMWdLVHRjYmx4dUlDQWdJR052Ym5OMElIUnlZVzV6YVdWdWRDQTlJSFJvYVhNdVoyVjBWSEpoYm5OcFpXNTBSR0YwWVNoamRIZ3BPMXh1WEc0Z0lDQWdiRzluTG1sdVptOG9ZRTFsY21kcGJtY2dkSEpoYm5OcFpXNTBJR1JoZEdFdUxpNWdLVHRjYmlBZ0lDQnRiMlJsYkNBOUlFMXZaR1ZzTG0xbGNtZGxLRzF2WkdWc0xDQjBjbUZ1YzJsbGJuUXNJSFJvYVhNdVkyeGhlbm9wSUdGeklFMDdYRzVjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnYkc5bkxtbHVabThvWEc0Z0lDQWdJQ0FnSUdCRFVrVkJWRVVnYldGMFpYSnBZV3hwZW1Wa0lHMXZaR1ZzSUdadmNpQWtlM1JvYVhNdVkyeGhlbm91Ym1GdFpYMDZJQ1I3U2xOUFRpNXpkSEpwYm1kcFpua29YRzRnSUNBZ0lDQWdJQ0FnYlc5a1pXeGNiaUFnSUNBZ0lDQWdLWDFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnYkc5bkxtbHVabThvWEc0Z0lDQWdJQ0FnSUdCRFVrVkJWRVVnYldGMFpYSnBZV3hwZW1Wa0lIQnJJR1p2Y2lBa2UzUm9hWE11WTJ4aGVub3VibUZ0WlgwNklDUjdVM1J5YVc1bktGeHVJQ0FnSUNBZ0lDQWdJRTF2WkdWc0xuQnJLRzF2WkdWc0lHRnpJRTBzSUhSeWRXVXBYRzRnSUNBZ0lDQWdJQ2w5WUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsS1NCN1hHNGdJQ0FnSUNCc2IyY3VkMkZ5YmloY2JpQWdJQ0FnSUNBZ1lFTlNSVUZVUlNCdFlYUmxjbWxoYkdsNlpXUWdiVzlrWld3Z2JHOW5aMmx1WnlCbVlXbHNaV1FnWm05eUlDUjdkR2hwY3k1amJHRjZlaTV1WVcxbGZUb2dKSHRsZldCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdZM0psWVhSbFpDQTlJR0YzWVdsMElIUm9hWE11Y21Wd2J5NWpjbVZoZEdVb2JXOWtaV3dzSUM0dUxtTjBlRUZ5WjNNcE8xeHVYRzRnSUNBZ1kyOXVjM1FnY21WemRXeDBJRDBnYm1WM0lIUm9hWE11WTJ4aGVub29UVzlrWld3dWMyVm5jbVZuWVhSbEtHTnlaV0YwWldRcExtMXZaR1ZzS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCU1pXRmtjeUJoSUhOcGJtZHNaU0J0YjJSbGJDQm1jbTl0SUhSb1pTQnpkR0YwWlNCa1lYUmhZbUZ6WlZ4dUlDQWdLaUJBYzNWdGJXRnllU0JFWld4bFoyRjBaWE1nZEc4Z2RHaGxJSEpsY0c5emFYUnZjbmtuY3lCeVpXRmtJRzFsZEdodlpGeHVJQ0FnS2lCQWNHRnlZVzBnZTBOMGVIMGdZM1I0SUMwZ1ZHaGxJRVpoWW5KcFl5QmphR0ZwYm1OdlpHVWdZMjl1ZEdWNGRGeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJXSmxjbjBnYTJWNUlDMGdWR2hsSUd0bGVTQnZaaUIwYUdVZ2JXOWtaV3dnZEc4Z2NtVmhaRnh1SUNBZ0tpQkFjR0Z5WVcwZ2V5NHVMbUZ1ZVZ0ZGZTQmhjbWR6SUMwZ1FXUmthWFJwYjI1aGJDQmhjbWQxYldWdWRITmNiaUFnSUNvZ1FISmxkSFZ5YmlCN1VISnZiV2x6WlR4TlBuMGdVSEp2YldselpTQnlaWE52YkhacGJtY2dkRzhnZEdobElISmxkSEpwWlhabFpDQnRiMlJsYkZ4dUlDQWdLaTljYmlBZ1lYTjVibU1nY21WaFpDaGNiaUFnSUNCamRIZzZJRU4wZUNCOElFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ3hjYmlBZ0lDQnJaWGs2SUZCeWFXMWhjbmxMWlhsVWVYQmxJSHdnYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThUU0I4SUhOMGNtbHVaejRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGJMaTR1WVhKbmN5d2dZM1I0WFN3Z1QzQmxjbUYwYVc5dVMyVjVjeTVTUlVGRUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WTNKbFlYUmxLVHRjYmlBZ0lDQnNiMmN1YVc1bWJ5aGdjbVZoWkdsdVp5QmxiblJ5ZVNCM2FYUm9JSEJySUNSN2EyVjVmU0JnS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuSmxjRzh1Y21WaFpDaHJaWGtzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR2RsZEZSeVlXNXphV1Z1ZEVSaGRHRW9ZM1I0T2lCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXBPaUJoYm5rZ2UxeHVJQ0FnSUdOdmJuTjBJSFJ5WVc1emFXVnVkRTFoY0NBOUlHTjBlQzV6ZEhWaUxtZGxkRlJ5WVc1emFXVnVkQ2dwTzF4dUlDQWdJR3hsZENCMGNtRnVjMmxsYm5RNklHRnVlU0E5SUh0OU8xeHVYRzRnSUNBZ2FXWWdLSFJ5WVc1emFXVnVkRTFoY0M1b1lYTW9kR2hwY3k1eVpYQnZXMXdpZEdGaWJHVk9ZVzFsWENKZEtTa2dlMXh1SUNBZ0lDQWdkSEpoYm5OcFpXNTBJRDBnU2xOUFRpNXdZWEp6WlNoY2JpQWdJQ0FnSUNBZ0tGeHVJQ0FnSUNBZ0lDQWdJSFJ5WVc1emFXVnVkRTFoY0M1blpYUW9kR2hwY3k1eVpYQnZXMXdpZEdGaWJHVk9ZVzFsWENKZEtTQmhjeUIxYm10dWIzZHVJR0Z6SUVKMVptWmxjbHh1SUNBZ0lDQWdJQ0FwUHk1MGIxTjBjbWx1WnloY0luVjBaamhjSWlrZ1lYTWdjM1J5YVc1blhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUIwY21GdWMybGxiblE3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ1pHVnpaWEpwWVd4cGVtVkNkV3hyVFc5a1pXeHpLRzF2WkdWc2N6b2djM1J5YVc1bktUb2dUVnRkSUh0Y2JpQWdJQ0JqYjI1emRDQndZWEp6WldRZ1BTQktVMDlPTG5CaGNuTmxLRzF2WkdWc2N5azdYRzRnSUNBZ2FXWWdLQ0ZCY25KaGVTNXBjMEZ5Y21GNUtIQmhjbk5sWkNrcFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1UyVnlhV0ZzYVhwaGRHbHZia1Z5Y205eUtGeHVJQ0FnSUNBZ0lDQnVaWGNnUlhKeWIzSW9YQ0pDZFd4cklIQmhlV3h2WVdRZ2JYVnpkQ0JpWlNCaGJpQmhjbkpoZVNCdlppQnpaWEpwWVd4cGVtVmtJRzF2WkdWc2Mxd2lLVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCb2VXUnlZWFJsWkNBOUlIQmhjbk5sWkM1dFlYQW9LR1Z1ZEhKNU9pQnpkSEpwYm1jZ2ZDQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0J6WlhKcFlXeHBlbVZrSUQxY2JpQWdJQ0FnSUNBZ2RIbHdaVzltSUdWdWRISjVJRDA5UFNCY0luTjBjbWx1WjF3aVhHNGdJQ0FnSUNBZ0lDQWdQeUJsYm5SeWVWeHVJQ0FnSUNBZ0lDQWdJRG9nU2xOUFRpNXpkSEpwYm1kcFpua29YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lFOWlhbVZqZEM1bWNtOXRSVzUwY21sbGN5aGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQlBZbXBsWTNRdVpXNTBjbWxsY3lobGJuUnllU2t1Wm1sc2RHVnlLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS0Z0clpYbGRLU0E5UGlCclpYa2dJVDA5SUVaaFluSnBZMDF2WkdWc1MyVjVjeTVQVmtWU1VrbEVSVk5jYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ2RHaHBjeTVqYkdGNmVpaDBhR2x6TG1SbGMyVnlhV0ZzYVhwbEtITmxjbWxoYkdsNlpXUXBLVHRjYmlBZ0lDQjlLU0JoY3lCTlcxMDdYRzRnSUNBZ2NtVjBkWEp1SUdoNVpISmhkR1ZrTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJWY0dSaGRHVnpJR0VnYzJsdVoyeGxJRzF2WkdWc0lHbHVJSFJvWlNCemRHRjBaU0JrWVhSaFltRnpaVnh1SUNBZ0tpQkFjM1Z0YldGeWVTQkVaV3hsWjJGMFpYTWdkRzhnZEdobElISmxjRzl6YVhSdmNua25jeUIxY0dSaGRHVWdiV1YwYUc5a1hHNGdJQ0FxSUVCd1lYSmhiU0I3UTNSNGZTQmpkSGdnTFNCVWFHVWdSbUZpY21saklHTm9ZV2x1WTI5a1pTQmpiMjUwWlhoMFhHNGdJQ0FxSUVCd1lYSmhiU0I3VFgwZ2JXOWtaV3dnTFNCVWFHVWdiVzlrWld3Z2RHOGdkWEJrWVhSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3TGk0dVlXNTVXMTE5SUdGeVozTWdMU0JCWkdScGRHbHZibUZzSUdGeVozVnRaVzUwYzF4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRTArZlNCUWNtOXRhWE5sSUhKbGMyOXNkbWx1WnlCMGJ5QjBhR1VnZFhCa1lYUmxaQ0J0YjJSbGJGeHVJQ0FnS2k5Y2JpQWdZWE41Ym1NZ2RYQmtZWFJsS0Z4dUlDQWdJR052Ym5SbGVIUTZJRU4wZUNCOElFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ3hjYmlBZ0lDQnRiMlJsYkRvZ2MzUnlhVzVuSUh3Z1RTeGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBITjBjbWx1WnlCOElFMCtJSHRjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JRzF2WkdWc0lEMDlQU0JjSW5OMGNtbHVaMXdpS1NCdGIyUmxiQ0E5SUhSb2FYTXVaR1Z6WlhKcFlXeHBlbVU4VFQ0b2JXOWtaV3dwSUdGeklFMDdYRzVjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeXdnWTNSNFFYSm5jeXdnWTNSNElIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hjYmlBZ0lDQWdJQ0FnV3k0dUxtRnlaM01zSUdOdmJuUmxlSFJkTEZ4dUlDQWdJQ0FnSUNCUGNHVnlZWFJwYjI1TFpYbHpMbFZRUkVGVVJTeGNiaUFnSUNBZ0lDQWdkSEoxWlZ4dUlDQWdJQ0FnS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11ZFhCa1lYUmxLVHRjYmlBZ0lDQjBhR2x6TG1WdWMzVnlaVTFwY25KdmNsZHlhWFJsVUdWeWJXbHpjMmx2Ym5Nb1kzUjRLVHRjYmx4dUlDQWdJR3h2Wnk1cGJtWnZLR0JWY0dSaGRHbHVaeUJ0YjJSbGJEb2dKSHRLVTA5T0xuTjBjbWx1WjJsbWVTaHRiMlJsYkNsOVlDazdYRzVjYmlBZ0lDQmpiMjV6ZENCMGNtRnVjMmxsYm5RZ1BTQjBhR2x6TG1kbGRGUnlZVzV6YVdWdWRFUmhkR0VvWTNSNEtUdGNibHh1SUNBZ0lHeHZaeTVwYm1adktHQk5aWEpuYVc1bklIUnlZVzV6YVdWdWRDQmtZWFJoTGk0dVlDazdYRzRnSUNBZ2JXOWtaV3dnUFNCTmIyUmxiQzV0WlhKblpTaHRiMlJsYkN3Z2RISmhibk5wWlc1MExDQjBhR2x6TG1Oc1lYcDZLU0JoY3lCTk8xeHVJQ0FnSUdOdmJuTjBJSFZ3WkdGMFpXUWdQU0JoZDJGcGRDQjBhR2x6TG5KbGNHOHVkWEJrWVhSbEtHMXZaR1ZzTENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCamIyNXpkQ0J5WlhOMWJIUWdQU0J1WlhjZ2RHaHBjeTVqYkdGNmVpaE5iMlJsYkM1elpXZHlaV2RoZEdVb2RYQmtZWFJsWkNrdWJXOWtaV3dwTzF4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVSbGJHVjBaWE1nWVNCemFXNW5iR1VnYlc5a1pXd2dabkp2YlNCMGFHVWdjM1JoZEdVZ1pHRjBZV0poYzJWY2JpQWdJQ29nUUhOMWJXMWhjbmtnUkdWc1pXZGhkR1Z6SUhSdklIUm9aU0J5WlhCdmMybDBiM0o1SjNNZ1pHVnNaWFJsSUcxbGRHaHZaRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwTjBlSDBnWTNSNElDMGdWR2hsSUVaaFluSnBZeUJqYUdGcGJtTnZaR1VnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WnlCOElHNTFiV0psY24wZ2EyVjVJQzBnVkdobElHdGxlU0J2WmlCMGFHVWdiVzlrWld3Z2RHOGdaR1ZzWlhSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3TGk0dVlXNTVXMTE5SUdGeVozTWdMU0JCWkdScGRHbHZibUZzSUdGeVozVnRaVzUwYzF4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRTArZlNCUWNtOXRhWE5sSUhKbGMyOXNkbWx1WnlCMGJ5QjBhR1VnWkdWc1pYUmxaQ0J0YjJSbGJGeHVJQ0FnS2k5Y2JpQWdZWE41Ym1NZ1pHVnNaWFJsS0Z4dUlDQWdJR04wZURvZ1EzUjRJSHdnUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExGeHVJQ0FnSUd0bGVUb2dVSEpwYldGeWVVdGxlVlI1Y0dVZ2ZDQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4TklId2djM1J5YVc1blBpQjdYRzRnSUNBZ1kyOXVjM1FnZTF4dUlDQWdJQ0FnYkc5bkxGeHVJQ0FnSUNBZ1kzUjRRWEpuY3l4Y2JpQWdJQ0FnSUdOMGVEb2dabUZpY21salEzUjRMRnh1SUNBZ0lIMGdQU0FvWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvV3k0dUxtRnlaM01zSUdOMGVGMHNJRTl3WlhKaGRHbHZia3RsZVhNdVJFVk1SVlJGTENCMGNuVmxLU2t1Wm05eUtGeHVJQ0FnSUNBZ2RHaHBjeTVrWld4bGRHVmNiaUFnSUNBcE8xeHVJQ0FnSUhSb2FYTXVaVzV6ZFhKbFRXbHljbTl5VjNKcGRHVlFaWEp0YVhOemFXOXVjeWhtWVdKeWFXTkRkSGdwTzF4dUlDQWdJR3h2Wnk1cGJtWnZLR0JrWld4bGRHbHVaeUJsYm5SeWVTQjNhWFJvSUhCcklDUjdhMlY1ZlNCZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlaWEJ2TG1SbGJHVjBaU2hUZEhKcGJtY29hMlY1S1N3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFUmxiR1YwWlhNZ2JYVnNkR2x3YkdVZ2JXOWtaV3h6SUdaeWIyMGdkR2hsSUhOMFlYUmxJR1JoZEdGaVlYTmxYRzRnSUNBcUlFQnpkVzF0WVhKNUlFUmxiR1ZuWVhSbGN5QjBieUIwYUdVZ2NtVndiM05wZEc5eWVTZHpJR1JsYkdWMFpVRnNiQ0J0WlhSb2IyUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWRiWFNCOElHNTFiV0psY2x0ZGZTQnJaWGx6SUMwZ1ZHaGxJR3RsZVhNZ2IyWWdkR2hsSUcxdlpHVnNjeUIwYnlCa1pXeGxkR1ZjYmlBZ0lDb2dRSEJoY21GdElIdERkSGg5SUdOMGVDQXRJRlJvWlNCR1lXSnlhV01nWTJoaGFXNWpiMlJsSUdOdmJuUmxlSFJjYmlBZ0lDb2dRSEJoY21GdElIc3VMaTVoYm5sYlhYMGdZWEpuY3lBdElFRmtaR2wwYVc5dVlXd2dZWEpuZFcxbGJuUnpYRzRnSUNBcUlFQnlaWFIxY200Z2UxQnliMjFwYzJVOFRWdGRQbjBnVUhKdmJXbHpaU0J5WlhOdmJIWnBibWNnZEc4Z2RHaGxJR1JsYkdWMFpXUWdiVzlrWld4elhHNGdJQ0FxTDF4dUlDQmhjM2x1WXlCa1pXeGxkR1ZCYkd3b1hHNGdJQ0FnWTNSNE9pQkRkSGdnZkNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNYRzRnSUNBZ2EyVjVjem9nVUhKcGJXRnllVXRsZVZSNWNHVmJYU0I4SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRTFiWFNCOElITjBjbWx1Wno0Z2UxeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2EyVjVjeUE5UFQwZ1hDSnpkSEpwYm1kY0lpa2dhMlY1Y3lBOUlFcFRUMDR1Y0dGeWMyVW9hMlY1Y3lrZ1lYTWdjM1J5YVc1blcxMDdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6TENCamRIZzZJR1poWW5KcFkwTjBlQ0I5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1d5NHVMbUZ5WjNNc0lHTjBlRjBzSUVKMWJHdERjblZrVDNCbGNtRjBhVzl1UzJWNWN5NUVSVXhGVkVWZlFVeE1MQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVpHVnNaWFJsUVd4c0tUdGNiaUFnSUNCMGFHbHpMbVZ1YzNWeVpVMXBjbkp2Y2xkeWFYUmxVR1Z5YldsemMybHZibk1vWm1GaWNtbGpRM1I0S1R0Y2JpQWdJQ0JqYjI1emRDQmtaV3hsZEdWa0lEMGdZWGRoYVhRZ2RHaHBjeTV5WlhCdkxtUmxiR1YwWlVGc2JDaHJaWGx6TENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCamIyNXpkQ0J5WlhOMWJIUWdQU0JrWld4bGRHVmtMbTFoY0Nnb1l5a2dQVDRnYm1WM0lIUm9hWE11WTJ4aGVub29UVzlrWld3dWMyVm5jbVZuWVhSbEtHTXBMbTF2WkdWc0tTazdYRzRnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVbVZoWkhNZ2JYVnNkR2x3YkdVZ2JXOWtaV3h6SUdaeWIyMGdkR2hsSUhOMFlYUmxJR1JoZEdGaVlYTmxYRzRnSUNBcUlFQnpkVzF0WVhKNUlFUmxiR1ZuWVhSbGN5QjBieUIwYUdVZ2NtVndiM05wZEc5eWVTZHpJSEpsWVdSQmJHd2diV1YwYUc5a1hHNGdJQ0FxSUVCd1lYSmhiU0I3UTNSNGZTQmpkSGdnTFNCVWFHVWdSbUZpY21saklHTm9ZV2x1WTI5a1pTQmpiMjUwWlhoMFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5XMTBnZkNCdWRXMWlaWEpiWFgwZ2EyVjVjeUF0SUZSb1pTQnJaWGx6SUc5bUlIUm9aU0J0YjJSbGJITWdkRzhnY21WaFpGeHVJQ0FnS2lCQWNHRnlZVzBnZXk0dUxtRnVlVnRkZlNCaGNtZHpJQzBnUVdSa2FYUnBiMjVoYkNCaGNtZDFiV1Z1ZEhOY2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhOVzEwK2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ2NtVjBjbWxsZG1Wa0lHMXZaR1ZzYzF4dUlDQWdLaTljYmlBZ1lYTjVibU1nY21WaFpFRnNiQ2hjYmlBZ0lDQmpkSGc2SUVOMGVDQjhJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEN4Y2JpQWdJQ0JyWlhsek9pQlFjbWx0WVhKNVMyVjVWSGx3WlZ0ZElId2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFRWdGRJSHdnYzNSeWFXNW5QaUI3WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJyWlhseklEMDlQU0JjSW5OMGNtbHVaMXdpS1NCclpYbHpJRDBnU2xOUFRpNXdZWEp6WlNoclpYbHpLU0JoY3lCemRISnBibWRiWFR0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0ZzdUxpNWhjbWR6TENCamRIaGRMQ0JDZFd4clEzSjFaRTl3WlhKaGRHbHZia3RsZVhNdVVrVkJSRjlCVEV3c0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVqY21WaGRHVXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkpsY0c4dWNtVmhaRUZzYkNoclpYbHpMQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVlhCa1lYUmxjeUJ0ZFd4MGFYQnNaU0J0YjJSbGJITWdhVzRnZEdobElITjBZWFJsSUdSaGRHRmlZWE5sWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRVJsYkdWbllYUmxjeUIwYnlCMGFHVWdjbVZ3YjNOcGRHOXllU2R6SUhWd1pHRjBaVUZzYkNCdFpYUm9iMlJjYmlBZ0lDb2dRSEJoY21GdElIdERkSGg5SUdOMGVDQXRJRlJvWlNCR1lXSnlhV01nWTJoaGFXNWpiMlJsSUdOdmJuUmxlSFJjYmlBZ0lDb2dRSEJoY21GdElIdE5XMTE5SUcxdlpHVnNjeUF0SUZSb1pTQnRiMlJsYkhNZ2RHOGdkWEJrWVhSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3TGk0dVlXNTVXMTE5SUdGeVozTWdMU0JCWkdScGRHbHZibUZzSUdGeVozVnRaVzUwYzF4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRTFiWFQ1OUlGQnliMjFwYzJVZ2NtVnpiMngyYVc1bklIUnZJSFJvWlNCMWNHUmhkR1ZrSUcxdlpHVnNjMXh1SUNBZ0tpOWNiaUFnWVhONWJtTWdkWEJrWVhSbFFXeHNLRnh1SUNBZ0lHTnZiblJsZUhRNklFTjBlQ0I4SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDeGNiaUFnSUNCdGIyUmxiSE02SUhOMGNtbHVaeUI4SUUxYlhTeGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBITjBjbWx1WnlCOElFMWJYVDRnZTF4dUlDQWdJR2xtSUNoMGVYQmxiMllnYlc5a1pXeHpJRDA5UFNCY0luTjBjbWx1WjF3aUtTQnRiMlJsYkhNZ1BTQjBhR2x6TG1SbGMyVnlhV0ZzYVhwbFFuVnNhMDF2WkdWc2N5aHRiMlJsYkhNcE8xeHVJQ0FnSUdOdmJuTjBJSHNnYkc5bkxDQmpkSGhCY21kekxDQmpkSGdnZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGeHVJQ0FnSUNBZ0lDQmJMaTR1WVhKbmN5d2dZMjl1ZEdWNGRGMHNYRzRnSUNBZ0lDQWdJRUoxYkd0RGNuVmtUM0JsY21GMGFXOXVTMlY1Y3k1VlVFUkJWRVZmUVV4TUxGeHVJQ0FnSUNBZ0lDQjBjblZsWEc0Z0lDQWdJQ0FwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTUxY0dSaGRHVkJiR3dwTzF4dUlDQWdJSFJvYVhNdVpXNXpkWEpsVFdseWNtOXlWM0pwZEdWUVpYSnRhWE56YVc5dWN5aGpkSGdwTzF4dVhHNGdJQ0FnWTI5dWMzUWdkSEpoYm5OcFpXNTBJRDBnZEdocGN5NW5aWFJVY21GdWMybGxiblJFWVhSaEtHTjBlQ2s3WEc1Y2JpQWdJQ0JzYjJjdWFXNW1ieWhnVFdWeVoybHVaeUIwY21GdWMybGxiblFnWkdGMFlTNHVMbUFwTzF4dUlDQWdJRzF2WkdWc2N5QTlJQ2h0YjJSbGJITWdZWE1nVFZ0ZEtTNXRZWEFvS0cwc0lHa3BJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSFFnUFNCQmNuSmhlUzVwYzBGeWNtRjVLSFJ5WVc1emFXVnVkQ2tnUHlCMGNtRnVjMmxsYm5SYmFWMGdPaUIwY21GdWMybGxiblE3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdUVzlrWld3dWJXVnlaMlVvYlN3Z2RDQjhmQ0I3ZlN3Z2RHaHBjeTVqYkdGNmVpa2dZWE1nVFR0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUd4dlp5NXBibVp2S0dCaFpHUnBibWNnSkh0dGIyUmxiSE11YkdWdVozUm9mU0JsYm5SeWFXVnpJSFJ2SUhSb1pTQjBZV0pzWldBcE8xeHVYRzRnSUNBZ1kyOXVjM1FnZFhCa1lYUmxaQ0E5SUdGM1lXbDBJSFJvYVhNdWNtVndieTUxY0dSaGRHVkJiR3dvWEc0Z0lDQWdJQ0J0YjJSbGJITWdZWE1nZFc1cmJtOTNiaUJoY3lCTlcxMHNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0J5WlhOMWJIUWdQU0IxY0dSaGRHVmtMbTFoY0Nnb1l5a2dQVDRnYm1WM0lIUm9hWE11WTJ4aGVub29UVzlrWld3dWMyVm5jbVZuWVhSbEtHTXBMbTF2WkdWc0tTazdYRzRnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSWGhsWTNWMFpYTWdZU0J4ZFdWeWVTQjNhWFJvSUhSb1pTQnpjR1ZqYVdacFpXUWdZMjl1WkdsMGFXOXVjeUJoYm1RZ2IzQjBhVzl1Y3k1Y2JpQWdJQ29nUUhOMWJXMWhjbmtnVUhKdmRtbGtaWE1nWVNCemFXMXdiR2xtYVdWa0lIZGhlU0IwYnlCeGRXVnllU0IwYUdVZ1pHRjBZV0poYzJVZ2QybDBhQ0JqYjIxdGIyNGdjWFZsY25rZ2NHRnlZVzFsZEdWeWN5NWNiaUFnSUNvZ1FIQmhjbUZ0SUh0RGIyNWthWFJwYjI0OFRUNTlJR052Ym1ScGRHbHZiaUF0SUZSb1pTQmpiMjVrYVhScGIyNGdkRzhnWm1sc2RHVnlJSEpsWTI5eVpITXVYRzRnSUNBcUlFQndZWEpoYlNCdmNtUmxja0o1SUMwZ1ZHaGxJR1pwWld4a0lIUnZJRzl5WkdWeUlISmxjM1ZzZEhNZ1lua3VYRzRnSUNBcUlFQndZWEpoYlNCN1QzSmtaWEpFYVhKbFkzUnBiMjU5SUZ0dmNtUmxjajFQY21SbGNrUnBjbVZqZEdsdmJpNUJVME5kSUMwZ1ZHaGxJSE52Y25RZ1pHbHlaV04wYVc5dUxseHVJQ0FnS2lCQWNHRnlZVzBnZTA5eVpHVnlSR2x5WldOMGFXOXVmU0JiYjNKa1pYSTlUM0prWlhKRWFYSmxZM1JwYjI0dVFWTkRYU0F0SUZSb1pTQnpiM0owSUdScGNtVmpkR2x2Ymk1Y2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnRzYVcxcGRGMGdMU0JQY0hScGIyNWhiQ0J0WVhocGJYVnRJRzUxYldKbGNpQnZaaUJ5WlhOMWJIUnpJSFJ2SUhKbGRIVnliaTVjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdHphMmx3WFNBdElFOXdkR2x2Ym1Gc0lHNTFiV0psY2lCdlppQnlaWE4xYkhSeklIUnZJSE5yYVhBdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTFCeWIyMXBjMlU4VFZ0ZFBuMGdWR2hsSUhGMVpYSjVJSEpsYzNWc2RITWdZWE1nYlc5a1pXd2dhVzV6ZEdGdVkyVnpMbHh1SUNBZ0tpOWNiaUFnWVhONWJtTWdjWFZsY25rb1hHNGdJQ0FnWTI5dWRHVjRkRG9nUTNSNElId2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTEZ4dUlDQWdJR052Ym1ScGRHbHZiam9nUTI5dVpHbDBhVzl1UEUwK0lId2djM1J5YVc1bkxGeHVJQ0FnSUc5eVpHVnlRbms2SUhOMGNtbHVaeUI4SUd0bGVXOW1JRTBzWEc0Z0lDQWdiM0prWlhJNklFOXlaR1Z5UkdseVpXTjBhVzl1SUh3Z2MzUnlhVzVuSUQwZ1QzSmtaWEpFYVhKbFkzUnBiMjR1UVZORExGeHVJQ0FnSUd4cGJXbDBQem9nYm5WdFltVnlMRnh1SUNBZ0lITnJhWEEvT2lCdWRXMWlaWElzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhOVzEwZ2ZDQnpkSEpwYm1jK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGc3VMaTVoY21kekxDQmpiMjUwWlhoMFhTd2dVR1Z5YzJsemRHVnVZMlZMWlhsekxsRlZSVkpaTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVZM0psWVhSbEtUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlaWEJ2TG5GMVpYSjVLRnh1SUNBZ0lDQWdZMjl1WkdsMGFXOXVJR0Z6SUVOdmJtUnBkR2x2Ymp4TlBpeGNiaUFnSUNBZ0lHOXlaR1Z5UW5rZ1lYTWdhMlY1YjJZZ1RTeGNiaUFnSUNBZ0lHOXlaR1Z5SUdGeklFOXlaR1Z5UkdseVpXTjBhVzl1TEZ4dUlDQWdJQ0FnYkdsdGFYUXNYRzRnSUNBZ0lDQnphMmx3TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRVY0WldOMWRHVnpJR0VnY21GM0lIRjFaWEo1SUdGbllXbHVjM1FnZEdobElITjBZWFJsSUdSaGRHRmlZWE5sWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRVJsYkdWbllYUmxjeUIwYnlCMGFHVWdjbVZ3YjNOcGRHOXllU2R6SUhKaGR5QnRaWFJvYjJSY2JpQWdJQ29nUUhCaGNtRnRJSHREZEhoOUlHTjBlQ0F0SUZSb1pTQkdZV0p5YVdNZ1kyaGhhVzVqYjJSbElHTnZiblJsZUhSY2JpQWdJQ29nUUhCaGNtRnRJSHRoYm5sOUlISmhkMGx1Y0hWMElDMGdWR2hsSUhGMVpYSjVJSFJ2SUdWNFpXTjFkR1ZjYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmtiMk56VDI1c2VTQXRJRmRvWlhSb1pYSWdkRzhnY21WMGRYSnVJRzl1YkhrZ1pHOWpkVzFsYm5SelhHNGdJQ0FxSUVCd1lYSmhiU0I3TGk0dVlXNTVXMTE5SUdGeVozTWdMU0JCWkdScGRHbHZibUZzSUdGeVozVnRaVzUwYzF4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQR0Z1ZVQ1OUlGQnliMjFwYzJVZ2NtVnpiMngyYVc1bklIUnZJSFJvWlNCeGRXVnllU0J5WlhOMWJIUnpYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5QnlZWGNvWEc0Z0lDQWdZM1I0T2lCRGRIZ2dmQ0JHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRc1hHNGdJQ0FnY21GM1NXNXdkWFE2SUUxaGJtZHZVWFZsY25rc1hHNGdJQ0FnWkc5amMwOXViSGs2SUdKdmIyeGxZVzRzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhoYm5rK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGJMaTR1WVhKbmN5d2dZM1I0WFN3Z1hDSnlZWGRjSWl3Z2RISjFaU2twTG1admNpaGNiaUFnSUNBZ0lIUm9hWE11Y21GM1hHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdSbUZpY21salEzSjFaRU52Ym5SeVlXTjBMbUZrWVhCMFpYSXVjbUYzS0hKaGQwbHVjSFYwTENCa2IyTnpUMjVzZVN3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnYzJWeWFXRnNhWHBsS0cxdlpHVnNPaUJOS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdSbUZpY21salEzSjFaRU52Ym5SeVlXTjBMbk5sY21saGJHbDZaWEl1YzJWeWFXRnNhWHBsS0cxdlpHVnNLVHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCa1pYTmxjbWxoYkdsNlpUeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tITjBjam9nYzNSeWFXNW5LVG9nVFNCN1hHNGdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJRVpoWW5KcFkwTnlkV1JEYjI1MGNtRmpkQzV6WlhKcFlXeHBlbVZ5SUdGeklIVnVhMjV2ZDI0Z1lYTWdVMlZ5YVdGc2FYcGxjanhOUGx4dUlDQWdJQ2t1WkdWelpYSnBZV3hwZW1Vb2MzUnlLVHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCaGMzbHVZeUJwYm1sMEtHTjBlRG9nUTNSNElId2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNnZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGdGpkSGhkTENCUVpYSnphWE4wWlc1alpVdGxlWE11U1U1SlZFbEJURWxhUVZSSlQwNHNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1cGJtbDBLVHRjYmlBZ0lDQnNiMmN1YVc1bWJ5aGdVblZ1Ym1sdVp5QmpiMjUwY21GamRDQWtlM1JvYVhNdVoyVjBUbUZ0WlNncGZTQnBibWwwYVdGc2FYcGhkR2x2Ymk0dUxtQXBPMXh1SUNBZ0lIUm9hWE11YVc1cGRHbGhiR2w2WldRZ1BTQjBjblZsTzF4dUlDQWdJR3h2Wnk1cGJtWnZLR0JEYjI1MGNtRmpkQ0JwYm1sMGFXRnNhWHBoZEdsdmJpQmpiMjF3YkdWMFpXUXVZQ2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJvWldGc2RHaGphR1ZqYXloY2JpQWdJQ0JqZEhnNklFTjBlQ0I4SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRGeHVJQ0FwT2lCUWNtOXRhWE5sUEhOMGNtbHVaeUI4SUdobFlXeDBhR05vWldOclBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY2dmU0E5SUNoaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYlkzUjRYU3dnWENKb1pXRnNkR2hqYUdWamExd2lMQ0IwY25WbEtTa3VabTl5S0Z4dUlDQWdJQ0FnZEdocGN5NW9aV0ZzZEdoamFHVmphMXh1SUNBZ0lDazdYRzRnSUNBZ2JHOW5MbWx1Wm04b1lGSjFibTVwYm1jZ1NHVmhiSFJvWTJobFkyczZJQ1I3ZEdocGN5NXBibWwwYVdGc2FYcGxaSDB1TGk1Z0tUdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnYUdWaGJIUm9ZMmhsWTJzNklIUm9hWE11YVc1cGRHbGhiR2w2WldRc1hHNGdJQ0FnSUNCMlpYSnphVzl1T2lCV1JWSlRTVTlPTEZ4dUlDQWdJQ0FnY0dGamEyRm5aVG9nVUVGRFMwRkhSVjlPUVUxRkxGeHVJQ0FnSUgwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVOeVpXRjBaWE1nYlhWc2RHbHdiR1VnYlc5a1pXeHpJR2x1SUhSb1pTQnpkR0YwWlNCa1lYUmhZbUZ6WlZ4dUlDQWdLaUJBYzNWdGJXRnllU0JFWld4bFoyRjBaWE1nZEc4Z2RHaGxJSEpsY0c5emFYUnZjbmtuY3lCamNtVmhkR1ZCYkd3Z2JXVjBhRzlrWEc0Z0lDQXFJRUJ3WVhKaGJTQjdRM1I0ZlNCamRIZ2dMU0JVYUdVZ1JtRmljbWxqSUdOb1lXbHVZMjlrWlNCamIyNTBaWGgwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdUVnRkZlNCdGIyUmxiSE1nTFNCVWFHVWdiVzlrWld4eklIUnZJR055WldGMFpWeHVJQ0FnS2lCQWNHRnlZVzBnZXk0dUxtRnVlVnRkZlNCaGNtZHpJQzBnUVdSa2FYUnBiMjVoYkNCaGNtZDFiV1Z1ZEhOY2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhOVzEwK2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ1kzSmxZWFJsWkNCdGIyUmxiSE5jYmlBZ0lDb3ZYRzRnSUdGemVXNWpJR055WldGMFpVRnNiQ2hjYmlBZ0lDQmpiMjUwWlhoME9pQkRkSGdnZkNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNYRzRnSUNBZ2JXOWtaV3h6T2lCemRISnBibWNnZkNCTlcxMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeHpkSEpwYm1jZ2ZDQk5XMTArSUh0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUcxdlpHVnNjeUE5UFQwZ1hDSnpkSEpwYm1kY0lpa2diVzlrWld4eklEMGdkR2hwY3k1a1pYTmxjbWxoYkdsNlpVSjFiR3ROYjJSbGJITW9iVzlrWld4ektUdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0UVhKbmN5d2dZM1I0SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGNiaUFnSUNBZ0lDQWdXeTR1TG1GeVozTXNJR052Ym5SbGVIUmRMRnh1SUNBZ0lDQWdJQ0JDZFd4clEzSjFaRTl3WlhKaGRHbHZia3RsZVhNdVExSkZRVlJGWDBGTVRDeGNiaUFnSUNBZ0lDQWdkSEoxWlZ4dUlDQWdJQ0FnS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WTNKbFlYUmxRV3hzS1R0Y2JpQWdJQ0IwYUdsekxtVnVjM1Z5WlUxcGNuSnZjbGR5YVhSbFVHVnliV2x6YzJsdmJuTW9ZM1I0S1R0Y2JseHVJQ0FnSUdOdmJuTjBJSFJ5WVc1emFXVnVkQ0E5SUhSb2FYTXVaMlYwVkhKaGJuTnBaVzUwUkdGMFlTaGpkSGdwTzF4dVhHNGdJQ0FnYkc5bkxtbHVabThvWUUxbGNtZHBibWNnZEhKaGJuTnBaVzUwSUdSaGRHRXVMaTVnS1R0Y2JpQWdJQ0J0YjJSbGJITWdQU0FvYlc5a1pXeHpJR0Z6SUUxYlhTa3ViV0Z3S0NodExDQnBLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0IwSUQwZ1FYSnlZWGt1YVhOQmNuSmhlU2gwY21GdWMybGxiblFwSUQ4Z2RISmhibk5wWlc1MFcybGRJRG9nZEhKaGJuTnBaVzUwTzF4dUlDQWdJQ0FnY21WMGRYSnVJRTF2WkdWc0xtMWxjbWRsS0cwc0lIUWdmSHdnZTMwc0lIUm9hWE11WTJ4aGVub3BJR0Z6SUUwN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCc2IyY3VhVzVtYnloZ1lXUmthVzVuSUNSN2JXOWtaV3h6TG14bGJtZDBhSDBnWlc1MGNtbGxjeUIwYnlCMGFHVWdkR0ZpYkdWZ0tUdGNibHh1SUNBZ0lHTnZibk4wSUdOeVpXRjBaV1FnUFNCaGQyRnBkQ0IwYUdsekxuSmxjRzh1WTNKbFlYUmxRV3hzS0Z4dUlDQWdJQ0FnYlc5a1pXeHpJR0Z6SUhWdWEyNXZkMjRnWVhNZ1RWdGRMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnY21WemRXeDBJRDBnWTNKbFlYUmxaQzV0WVhBb0tHTXBJRDArSUc1bGR5QjBhR2x6TG1Oc1lYcDZLRTF2WkdWc0xuTmxaM0psWjJGMFpTaGpLUzV0YjJSbGJDa3BPMXh1SUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ1pXNXpkWEpsVFdseWNtOXlWM0pwZEdWUVpYSnRhWE56YVc5dWN5aGpkSGc2SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDazZJSFp2YVdRZ2UxeHVJQ0FnSUdsbUlDZ2hZM1I0S1NCeVpYUjFjbTQ3WEc0Z0lDQWdZMjl1YzNRZ2JXbHljbTl5VFdWMFlTQTlJRTF2WkdWc0xtMXBjbkp2Y21Wa1FYUW9kR2hwY3k1amJHRjZlaWs3WEc0Z0lDQWdhV1lnS0NGdGFYSnliM0pOWlhSaEtTQnlaWFIxY200N1hHNGdJQ0FnWTI5dWMzUWdiWE53SUQwZ1pYaDBjbUZqZEUxemNFbGtLR04wZUM1cFpHVnVkR2wwZVNrN1hHNGdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ2JYTndJQ1ltWEc0Z0lDQWdJQ0FvYlhOd0lEMDlQU0J0YVhKeWIzSk5aWFJoTG0xemNFbGtJSHg4WEc0Z0lDQWdJQ0FnSUNodGFYSnliM0pOWlhSaExtTnZibVJwZEdsdmJpQW1KaUJ0YVhKeWIzSk5aWFJoTG1OdmJtUnBkR2x2YmlodGMzQXBLU2xjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJCZFhSb2IzSnBlbUYwYVc5dVJYSnliM0lvWEc0Z0lDQWdJQ0FnSUdCUGNtZGhibWw2WVhScGIyNGdKSHR0YzNCOUlHbHpJRzV2ZENCaGRYUm9iM0pwZW1Wa0lIUnZJRzF2WkdsbWVTQnRhWEp5YjNKbFpDQmtZWFJoWUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ2JHOW5RM1I0UEZ4dUlDQWdJRUZTUjFNZ1pYaDBaVzVrY3lCaGJubGJYU0E5SUdGdWVWdGRMRnh1SUNBZ0lFMUZWRWhQUkNCbGVIUmxibVJ6SUUxbGRHaHZaRTl5VDNCbGNtRjBhVzl1SUQwZ1RXVjBhRzlrVDNKUGNHVnlZWFJwYjI0c1hHNGdJRDRvWEc0Z0lDQWdZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ3dnUVZKSFV6NHNYRzRnSUNBZ2IzQmxjbUYwYVc5dU9pQk5SVlJJVDBSY2JpQWdLVG9nUm1GaWNtbGpRMjl1ZEdWNGRIVmhiR2w2WldSQmNtZHpQRUZTUjFNc0lFMUZWRWhQUkNCbGVIUmxibVJ6SUhOMGNtbHVaeUEvSUhSeWRXVWdPaUJtWVd4elpUNDdYRzRnSUhCeWIzUmxZM1JsWkNCc2IyZERkSGc4WEc0Z0lDQWdRVkpIVXlCbGVIUmxibVJ6SUdGdWVWdGRJRDBnWVc1NVcxMHNYRzRnSUNBZ1RVVlVTRTlFSUdWNGRHVnVaSE1nVFdWMGFHOWtUM0pQY0dWeVlYUnBiMjRnUFNCTlpYUm9iMlJQY2s5d1pYSmhkR2x2Yml4Y2JpQWdQaWhjYmlBZ0lDQmhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFJtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBMQ0JCVWtkVFBpeGNiaUFnSUNCdmNHVnlZWFJwYjI0NklFMUZWRWhQUkN4Y2JpQWdJQ0JoYkd4dmQwTnlaV0YwWlRvZ1ptRnNjMlZjYmlBZ0tUb2dSbUZpY21salEyOXVkR1Y0ZEhWaGJHbDZaV1JCY21kelBFRlNSMU1zSUUxRlZFaFBSQ0JsZUhSbGJtUnpJSE4wY21sdVp5QS9JSFJ5ZFdVZ09pQm1ZV3h6WlQ0N1hHNGdJSEJ5YjNSbFkzUmxaQ0JzYjJkRGRIZzhYRzRnSUNBZ1FWSkhVeUJsZUhSbGJtUnpJR0Z1ZVZ0ZElEMGdZVzU1VzEwc1hHNGdJQ0FnVFVWVVNFOUVJR1Y0ZEdWdVpITWdUV1YwYUc5a1QzSlBjR1Z5WVhScGIyNGdQU0JOWlhSb2IyUlBjazl3WlhKaGRHbHZiaXhjYmlBZ1BpaGNiaUFnSUNCaGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4Um1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExDQkJVa2RUUGl4Y2JpQWdJQ0J2Y0dWeVlYUnBiMjQ2SUUxRlZFaFBSQ3hjYmlBZ0lDQmhiR3h2ZDBOeVpXRjBaVG9nZEhKMVpTeGNiaUFnSUNCdmRtVnljbWxrWlhNL09pQlFZWEowYVdGc1BFWmhZbkpwWTBac1lXZHpQR0Z1ZVQ0K1hHNGdJQ2s2SUZCeWIyMXBjMlU4WEc0Z0lDQWdSbUZpY21salEyOXVkR1Y0ZEhWaGJHbDZaV1JCY21kelBFRlNSMU1zSUUxRlZFaFBSQ0JsZUhSbGJtUnpJSE4wY21sdVp5QS9JSFJ5ZFdVZ09pQm1ZV3h6WlQ1Y2JpQWdQanRjYmlBZ2NISnZkR1ZqZEdWa0lHeHZaME4wZUR4Y2JpQWdJQ0JCVWtkVElHVjRkR1Z1WkhNZ1lXNTVXMTBnUFNCaGJubGJYU3hjYmlBZ0lDQk5SVlJJVDBRZ1pYaDBaVzVrY3lCTlpYUm9iMlJQY2s5d1pYSmhkR2x2YmlBOUlFMWxkR2h2WkU5eVQzQmxjbUYwYVc5dUxGeHVJQ0ErS0Z4dUlDQWdJR0Z5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFzSUVGU1IxTStMRnh1SUNBZ0lHOXdaWEpoZEdsdmJqb2dUVVZVU0U5RUxGeHVJQ0FnSUdGc2JHOTNRM0psWVhSbE9pQmliMjlzWldGdUlEMGdabUZzYzJVc1hHNGdJQ0FnYjNabGNuSnBaR1Z6UHpvZ1VHRnlkR2xoYkR4R1lXSnlhV05HYkdGbmN6eGhibmsrUGx4dUlDQXBPbHh1SUNBZ0lId2dVSEp2YldselpUeGNiaUFnSUNBZ0lDQWdSbUZpY21salEyOXVkR1Y0ZEhWaGJHbDZaV1JCY21kelBFRlNSMU1zSUUxRlZFaFBSQ0JsZUhSbGJtUnpJSE4wY21sdVp5QS9JSFJ5ZFdVZ09pQm1ZV3h6WlQ1Y2JpQWdJQ0FnSUQ1Y2JpQWdJQ0I4SUVaaFluSnBZME52Ym5SbGVIUjFZV3hwZW1Wa1FYSm5jenhCVWtkVExDQk5SVlJJVDBRZ1pYaDBaVzVrY3lCemRISnBibWNnUHlCMGNuVmxJRG9nWm1Gc2MyVStJSHRjYmlBZ0lDQmpiMjV6ZENCamRIZ2dQU0JoY21kekxuQnZjQ2dwTzF4dUlDQWdJR2xtSUNnaFkzUjRJSHg4SUNGamRIZ3VjM1IxWWlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFMXBjM05wYm1kRGIyNTBaWGgwUlhKeWIzSW9ZRTV2SUhaaGJHbGtJR052Ym5SbGVIUWdjSEp2ZG1sa1pXUXVMaTVnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ1kyOXVkR1Y0ZEhWaGJHbDZaV1FnUFNCR1lXSnlhV05EY25Wa1EyOXVkSEpoWTNRdVlXUmhjSFJsY2x0Y0lteHZaME4wZUZ3aVhTaGNiaUFnSUNBZ0lGdDBhR2x6TG1Oc1lYcDZJR0Z6SUdGdWVTd2dMaTR1WVhKbmMxMGdZWE1nWVc1NUxGeHVJQ0FnSUNBZ2IzQmxjbUYwYVc5dUxGeHVJQ0FnSUNBZ1lXeHNiM2REY21WaGRHVWdZWE1nWVc1NUxGeHVJQ0FnSUNBZ1lXeHNiM2REY21WaGRHVWdKaVlnYjNabGNuSnBaR1Z6SUQ4Z1kzUjRMbUZqWTNWdGRXeGhkR1VvYjNabGNuSnBaR1Z6S1NBNklHTjBlRnh1SUNBZ0lDa2dZWE5jYmlBZ0lDQWdJSHdnUm1GaWNtbGpRMjl1ZEdWNGRIVmhiR2w2WldSQmNtZHpQRUZTUjFNc0lFMUZWRWhQUkNCbGVIUmxibVJ6SUhOMGNtbHVaeUEvSUhSeWRXVWdPaUJtWVd4elpUNWNiaUFnSUNBZ0lId2dVSEp2YldselpUeGNiaUFnSUNBZ0lDQWdJQ0JHWVdKeWFXTkRiMjUwWlhoMGRXRnNhWHBsWkVGeVozTThRVkpIVXl3Z1RVVlVTRTlFSUdWNGRHVnVaSE1nYzNSeWFXNW5JRDhnZEhKMVpTQTZJR1poYkhObFBseHVJQ0FnSUNBZ0lDQStPMXh1SUNBZ0lHWjFibU4wYVc5dUlITnhkV0Z6YUVGeVozTW9ZM1I0T2lCR1lXSnlhV05EYjI1MFpYaDBkV0ZzYVhwbFpFRnlaM01wSUh0Y2JpQWdJQ0FnSUdOMGVDNWpkSGhCY21kekxuTm9hV1owS0NrN0lDOHZJSEpsYlc5MlpYTWdZV1JrWldRZ2JXOWtaV3dnZEc4Z1lYSm5jMXh1SUNBZ0lDQWdjbVYwZFhKdUlHTjBlQ0JoY3lCaGJuazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLQ0VvWTI5dWRHVjRkSFZoYkdsNlpXUWdhVzV6ZEdGdVkyVnZaaUJRY205dGFYTmxLU2tnY21WMGRYSnVJSE54ZFdGemFFRnlaM01vWTI5dWRHVjRkSFZoYkdsNlpXUXBPMXh1SUNBZ0lISmxkSFZ5YmlCamIyNTBaWGgwZFdGc2FYcGxaQzUwYUdWdUtITnhkV0Z6YUVGeVozTXBPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
|
|
428
|
+
//# sourceMappingURL=crud-contract.js.map
|
|
429
|
+
//# sourceMappingURL=crud-contract.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts/crud/crud-contract.cjs","sourceRoot":"","sources":["contracts/crud/crud-contract.js"],"names":[],"mappings":"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"}
|
|
@@ -16,5 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./crud-contract.cjs"), exports);
|
|
18
18
|
__exportStar(require("./serialized-crud-contract.cjs"), exports);
|
|
19
|
-
//# sourceMappingURL=
|
|
20
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
20
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts/crud/index.cjs","sourceRoot":"","sources":["contracts/crud/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,gEAA8C;AAC9C,iCAAiC"}
|