@decaf-ts/for-fabric 0.13.30 → 0.13.31-experimental.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/for-fabric.cjs +4001 -2
- package/dist/for-fabric.js +4111 -2
- package/lib/cjs/bin/cli.cjs +2 -2
- package/lib/cjs/cli-module.cjs +2 -2
- package/lib/cjs/cli-utils.cjs +2 -2
- package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
- package/lib/cjs/client/FabricClientContext.cjs +2 -2
- package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
- package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
- package/lib/cjs/client/FabricClientRepository.cjs +2 -2
- package/lib/cjs/client/FabricClientStatement.cjs +2 -2
- package/lib/cjs/client/collections/generation.cjs +2 -2
- package/lib/cjs/client/collections/index.cjs +2 -2
- package/lib/cjs/client/constants.cjs +2 -2
- package/lib/cjs/client/crypto.cjs +2 -2
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
- package/lib/cjs/client/erc20/index.cjs +2 -2
- package/lib/cjs/client/fabric-fs.cjs +4 -4
- package/lib/cjs/client/fabric-hsm.cjs +2 -2
- package/lib/cjs/client/ids/id-extraction.cjs +2 -2
- package/lib/cjs/client/ids/index.cjs +2 -2
- package/lib/cjs/client/index.cjs +2 -2
- package/lib/cjs/client/indexes/generation.cjs +2 -2
- package/lib/cjs/client/indexes/index.cjs +2 -2
- package/lib/cjs/client/logging.cjs +2 -2
- package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
- package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
- package/lib/cjs/client/services/constants.cjs +2 -2
- package/lib/cjs/client/services/index.cjs +2 -2
- package/lib/cjs/client/types.cjs +2 -2
- package/lib/cjs/client/utils.cjs +2 -2
- package/lib/cjs/contract/Address.cjs +2 -2
- package/lib/cjs/contract/AddressContract.cjs +2 -2
- package/lib/cjs/contract/AuditContract.cjs +2 -2
- package/lib/cjs/contract/BatchContract.cjs +2 -2
- package/lib/cjs/contract/MarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
- package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
- package/lib/cjs/contract/OtherLeafletContract.cjs +2 -2
- package/lib/cjs/contract/OtherLeafletFileContract.cjs +2 -2
- package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/Product.cjs +2 -2
- package/lib/cjs/contract/ProductContract.cjs +2 -2
- package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
- package/lib/cjs/contract/User.cjs +2 -2
- package/lib/cjs/contract/UserContract.cjs +2 -2
- package/lib/cjs/contract/index.cjs +2 -2
- package/lib/cjs/contract/logging-context.cjs +2 -2
- package/lib/cjs/contract/models/Audit.cjs +2 -2
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseModel.cjs +2 -2
- package/lib/cjs/contract/models/Batch.cjs +2 -2
- package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
- package/lib/cjs/contract/models/History.cjs +2 -2
- package/lib/cjs/contract/models/Leaflet.cjs +2 -2
- package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/Market.cjs +2 -2
- package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
- package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
- package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/Product.cjs +2 -2
- package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
- package/lib/cjs/contract/models/constants.cjs +2 -2
- package/lib/cjs/contract/models/decorators-private.cjs +2 -2
- package/lib/cjs/contract/models/decorators.cjs +2 -2
- package/lib/cjs/contract/models/gtin.cjs +2 -2
- package/lib/cjs/contract/models/history-dec.cjs +2 -2
- package/lib/cjs/contract/trackedModels/History.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherAudit.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherMarket.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProduct.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +2 -2
- package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
- package/lib/cjs/contracts/ContractContext.cjs +2 -2
- package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
- package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
- package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
- package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
- package/lib/cjs/contracts/MigrationContract.cjs +4 -3
- package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
- package/lib/cjs/contracts/auth/decorators.cjs +2 -2
- package/lib/cjs/contracts/auth/index.cjs +2 -2
- package/lib/cjs/contracts/bootstrap.cjs +2 -2
- package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
- package/lib/cjs/contracts/crud/index.cjs +2 -2
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/index.cjs +2 -2
- package/lib/cjs/contracts/erc20/models.cjs +2 -2
- package/lib/cjs/contracts/fabric-overrides.cjs +2 -2
- package/lib/cjs/contracts/index.cjs +2 -2
- package/lib/cjs/contracts/logging.cjs +2 -2
- package/lib/cjs/contracts/overrides.cjs +2 -2
- package/lib/cjs/contracts/types.cjs +2 -2
- package/lib/cjs/contracts/uuid.cjs +2 -2
- package/lib/cjs/index.cjs +2 -2
- package/lib/cjs/shared/ClientSerializer.cjs +2 -2
- package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/constants.cjs +2 -2
- package/lib/cjs/shared/decorators.cjs +2 -2
- package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
- package/lib/cjs/shared/erc20/index.cjs +2 -2
- package/lib/cjs/shared/errors.cjs +2 -2
- package/lib/cjs/shared/events.cjs +2 -2
- package/lib/cjs/shared/fabric-types.cjs +2 -2
- package/lib/cjs/shared/index.cjs +2 -2
- package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
- package/lib/cjs/shared/interfaces/index.cjs +2 -2
- package/lib/cjs/shared/math.cjs +2 -2
- package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/Identity.cjs +2 -2
- package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
- package/lib/cjs/shared/model/index.cjs +2 -2
- package/lib/cjs/shared/overrides/Model.cjs +2 -2
- package/lib/cjs/shared/overrides/index.cjs +2 -2
- package/lib/cjs/shared/overrides/overrides.cjs +2 -2
- package/lib/cjs/shared/types.cjs +2 -2
- package/lib/cjs/version.cjs +5 -5
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/cli-module.js +1 -1
- package/lib/esm/cli-utils.js +1 -1
- package/lib/esm/client/FabricClientAdapter.js +1 -1
- package/lib/esm/client/FabricClientContext.js +1 -1
- package/lib/esm/client/FabricClientDispatch.js +1 -1
- package/lib/esm/client/FabricClientPaginator.js +1 -1
- package/lib/esm/client/FabricClientRepository.js +1 -1
- package/lib/esm/client/FabricClientStatement.js +1 -1
- package/lib/esm/client/collections/generation.js +1 -1
- package/lib/esm/client/collections/index.js +1 -1
- package/lib/esm/client/constants.js +1 -1
- package/lib/esm/client/crypto.js +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
- package/lib/esm/client/erc20/index.js +1 -1
- package/lib/esm/client/fabric-fs.js +3 -3
- package/lib/esm/client/fabric-hsm.js +1 -1
- package/lib/esm/client/ids/id-extraction.js +1 -1
- package/lib/esm/client/ids/index.js +1 -1
- package/lib/esm/client/index.js +1 -1
- package/lib/esm/client/indexes/generation.js +1 -1
- package/lib/esm/client/indexes/index.js +1 -1
- package/lib/esm/client/logging.js +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
- package/lib/esm/client/services/FabricIdentityService.js +1 -1
- package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
- package/lib/esm/client/services/constants.js +1 -1
- package/lib/esm/client/services/index.js +1 -1
- package/lib/esm/client/types.js +1 -1
- package/lib/esm/client/utils.js +1 -1
- package/lib/esm/contract/Address.js +1 -1
- package/lib/esm/contract/AddressContract.js +1 -1
- package/lib/esm/contract/AuditContract.js +1 -1
- package/lib/esm/contract/BatchContract.js +1 -1
- package/lib/esm/contract/MarketContract.js +1 -1
- package/lib/esm/contract/OtherAuditContract.js +1 -1
- package/lib/esm/contract/OtherBatchContract.js +1 -1
- package/lib/esm/contract/OtherLeafletContract.js +1 -1
- package/lib/esm/contract/OtherLeafletFileContract.js +1 -1
- package/lib/esm/contract/OtherMarketContract.js +1 -1
- package/lib/esm/contract/OtherProductContract.js +1 -1
- package/lib/esm/contract/OtherProductImageContract.js +1 -1
- package/lib/esm/contract/OtherProductSharedContract.js +1 -1
- package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
- package/lib/esm/contract/Product.js +1 -1
- package/lib/esm/contract/ProductContract.js +1 -1
- package/lib/esm/contract/ProductStrengthContract.js +1 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
- package/lib/esm/contract/User.js +1 -1
- package/lib/esm/contract/UserContract.js +1 -1
- package/lib/esm/contract/index.js +1 -1
- package/lib/esm/contract/logging-context.js +1 -1
- package/lib/esm/contract/models/Audit.js +1 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
- package/lib/esm/contract/models/BaseModel.js +1 -1
- package/lib/esm/contract/models/Batch.js +1 -1
- package/lib/esm/contract/models/GtinOwner.js +1 -1
- package/lib/esm/contract/models/History.js +1 -1
- package/lib/esm/contract/models/Leaflet.js +1 -1
- package/lib/esm/contract/models/LeafletFile.js +1 -1
- package/lib/esm/contract/models/Market.js +1 -1
- package/lib/esm/contract/models/OtherAudit.js +1 -1
- package/lib/esm/contract/models/OtherBatchShared.js +1 -1
- package/lib/esm/contract/models/OtherLeaflet.js +1 -1
- package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
- package/lib/esm/contract/models/OtherMarket.js +1 -1
- package/lib/esm/contract/models/OtherProduct.js +1 -1
- package/lib/esm/contract/models/OtherProductImage.js +1 -1
- package/lib/esm/contract/models/OtherProductShared.js +1 -1
- package/lib/esm/contract/models/OtherProductStrength.js +1 -1
- package/lib/esm/contract/models/Product.js +1 -1
- package/lib/esm/contract/models/ProductStrength.js +1 -1
- package/lib/esm/contract/models/SegregatedDocument.js +1 -1
- package/lib/esm/contract/models/constants.js +1 -1
- package/lib/esm/contract/models/decorators-private.js +1 -1
- package/lib/esm/contract/models/decorators.js +1 -1
- package/lib/esm/contract/models/gtin.js +1 -1
- package/lib/esm/contract/models/history-dec.js +1 -1
- package/lib/esm/contract/trackedModels/History.js +1 -1
- package/lib/esm/contract/trackedModels/OtherAudit.js +1 -1
- package/lib/esm/contract/trackedModels/OtherBatchShared.js +1 -1
- package/lib/esm/contract/trackedModels/OtherLeaflet.js +1 -1
- package/lib/esm/contract/trackedModels/OtherLeafletFile.js +1 -1
- package/lib/esm/contract/trackedModels/OtherMarket.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProduct.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProductImage.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProductShared.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProductStrength.js +1 -1
- package/lib/esm/contracts/ContractAdapter.js +1 -1
- package/lib/esm/contracts/ContractContext.js +1 -1
- package/lib/esm/contracts/FabricContractDispatch.js +1 -1
- package/lib/esm/contracts/FabricContractPaginator.js +1 -1
- package/lib/esm/contracts/FabricContractRepository.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractSequence.js +1 -1
- package/lib/esm/contracts/FabricContractStatement.js +1 -1
- package/lib/esm/contracts/MigrationContract.js +3 -2
- package/lib/esm/contracts/PrivateSequence.js +1 -1
- package/lib/esm/contracts/auth/decorators.js +1 -1
- package/lib/esm/contracts/auth/index.js +1 -1
- package/lib/esm/contracts/bootstrap.js +1 -1
- package/lib/esm/contracts/crud/crud-contract.js +1 -1
- package/lib/esm/contracts/crud/index.js +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
- package/lib/esm/contracts/erc20/erc20contract.js +1 -1
- package/lib/esm/contracts/erc20/index.js +1 -1
- package/lib/esm/contracts/erc20/models.js +1 -1
- package/lib/esm/contracts/fabric-overrides.js +1 -1
- package/lib/esm/contracts/index.js +1 -1
- package/lib/esm/contracts/logging.js +1 -1
- package/lib/esm/contracts/overrides.js +1 -1
- package/lib/esm/contracts/types.js +1 -1
- package/lib/esm/contracts/uuid.js +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/shared/ClientSerializer.js +1 -1
- package/lib/esm/shared/DeterministicSerializer.js +1 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
- package/lib/esm/shared/constants.js +1 -1
- package/lib/esm/shared/decorators.js +1 -1
- package/lib/esm/shared/erc20/erc20-constants.js +1 -1
- package/lib/esm/shared/erc20/index.js +1 -1
- package/lib/esm/shared/errors.js +1 -1
- package/lib/esm/shared/events.js +1 -1
- package/lib/esm/shared/fabric-types.js +1 -1
- package/lib/esm/shared/index.js +1 -1
- package/lib/esm/shared/interfaces/Checkable.js +1 -1
- package/lib/esm/shared/interfaces/index.js +1 -1
- package/lib/esm/shared/math.js +1 -1
- package/lib/esm/shared/model/FabricBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
- package/lib/esm/shared/model/Identity.js +1 -1
- package/lib/esm/shared/model/IdentityCredentials.js +1 -1
- package/lib/esm/shared/model/index.js +1 -1
- package/lib/esm/shared/overrides/Model.js +1 -1
- package/lib/esm/shared/overrides/index.js +1 -1
- package/lib/esm/shared/overrides/overrides.js +1 -1
- package/lib/esm/shared/types.js +1 -1
- package/lib/esm/version.js +4 -4
- package/lib/types/version.d.cts +3 -3
- package/lib/types/version.d.mts +3 -3
- package/package.json +1 -1
- package/dist/for-fabric.cjs.map +0 -1
- package/dist/for-fabric.js.map +0 -1
- package/lib/cjs/bin/cli.cjs.map +0 -1
- package/lib/cjs/cli-module.cjs.map +0 -1
- package/lib/cjs/cli-utils.cjs.map +0 -1
- package/lib/cjs/client/FabricClientAdapter.cjs.map +0 -1
- package/lib/cjs/client/FabricClientContext.cjs.map +0 -1
- package/lib/cjs/client/FabricClientDispatch.cjs.map +0 -1
- package/lib/cjs/client/FabricClientPaginator.cjs.map +0 -1
- package/lib/cjs/client/FabricClientRepository.cjs.map +0 -1
- package/lib/cjs/client/FabricClientStatement.cjs.map +0 -1
- package/lib/cjs/client/collections/generation.cjs.map +0 -1
- package/lib/cjs/client/collections/index.cjs.map +0 -1
- package/lib/cjs/client/constants.cjs.map +0 -1
- package/lib/cjs/client/crypto.cjs.map +0 -1
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +0 -1
- package/lib/cjs/client/erc20/index.cjs.map +0 -1
- package/lib/cjs/client/fabric-fs.cjs.map +0 -1
- package/lib/cjs/client/fabric-hsm.cjs.map +0 -1
- package/lib/cjs/client/ids/id-extraction.cjs.map +0 -1
- package/lib/cjs/client/ids/index.cjs.map +0 -1
- package/lib/cjs/client/index.cjs.map +0 -1
- package/lib/cjs/client/indexes/generation.cjs.map +0 -1
- package/lib/cjs/client/indexes/index.cjs.map +0 -1
- package/lib/cjs/client/logging.cjs.map +0 -1
- package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +0 -1
- package/lib/cjs/client/services/FabricIdentityService.cjs.map +0 -1
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +0 -1
- package/lib/cjs/client/services/constants.cjs.map +0 -1
- package/lib/cjs/client/services/index.cjs.map +0 -1
- package/lib/cjs/client/types.cjs.map +0 -1
- package/lib/cjs/client/utils.cjs.map +0 -1
- package/lib/cjs/contract/Address.cjs.map +0 -1
- package/lib/cjs/contract/AddressContract.cjs.map +0 -1
- package/lib/cjs/contract/AuditContract.cjs.map +0 -1
- package/lib/cjs/contract/BatchContract.cjs.map +0 -1
- package/lib/cjs/contract/MarketContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherAuditContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherBatchContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherLeafletContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherLeafletFileContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherMarketContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductImageContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductSharedContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +0 -1
- package/lib/cjs/contract/Product.cjs.map +0 -1
- package/lib/cjs/contract/ProductContract.cjs.map +0 -1
- package/lib/cjs/contract/ProductStrengthContract.cjs.map +0 -1
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +0 -1
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +0 -1
- package/lib/cjs/contract/User.cjs.map +0 -1
- package/lib/cjs/contract/UserContract.cjs.map +0 -1
- package/lib/cjs/contract/index.cjs.map +0 -1
- package/lib/cjs/contract/logging-context.cjs.map +0 -1
- package/lib/cjs/contract/models/Audit.cjs.map +0 -1
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +0 -1
- package/lib/cjs/contract/models/BaseModel.cjs.map +0 -1
- package/lib/cjs/contract/models/Batch.cjs.map +0 -1
- package/lib/cjs/contract/models/GtinOwner.cjs.map +0 -1
- package/lib/cjs/contract/models/History.cjs.map +0 -1
- package/lib/cjs/contract/models/Leaflet.cjs.map +0 -1
- package/lib/cjs/contract/models/LeafletFile.cjs.map +0 -1
- package/lib/cjs/contract/models/Market.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherAudit.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherBatchShared.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherLeaflet.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherMarket.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProduct.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductImage.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductShared.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductStrength.cjs.map +0 -1
- package/lib/cjs/contract/models/Product.cjs.map +0 -1
- package/lib/cjs/contract/models/ProductStrength.cjs.map +0 -1
- package/lib/cjs/contract/models/SegregatedDocument.cjs.map +0 -1
- package/lib/cjs/contract/models/constants.cjs.map +0 -1
- package/lib/cjs/contract/models/decorators-private.cjs.map +0 -1
- package/lib/cjs/contract/models/decorators.cjs.map +0 -1
- package/lib/cjs/contract/models/gtin.cjs.map +0 -1
- package/lib/cjs/contract/models/history-dec.cjs.map +0 -1
- package/lib/cjs/contract/trackedModels/History.cjs.map +0 -1
- package/lib/cjs/contract/trackedModels/OtherAudit.cjs.map +0 -1
- package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs.map +0 -1
- package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs.map +0 -1
- package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs.map +0 -1
- package/lib/cjs/contract/trackedModels/OtherMarket.cjs.map +0 -1
- package/lib/cjs/contract/trackedModels/OtherProduct.cjs.map +0 -1
- package/lib/cjs/contract/trackedModels/OtherProductImage.cjs.map +0 -1
- package/lib/cjs/contract/trackedModels/OtherProductShared.cjs.map +0 -1
- package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs.map +0 -1
- package/lib/cjs/contracts/ContractAdapter.cjs.map +0 -1
- package/lib/cjs/contracts/ContractContext.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractDispatch.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractPaginator.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractRepository.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractSequence.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractStatement.cjs.map +0 -1
- package/lib/cjs/contracts/MigrationContract.cjs.map +0 -1
- package/lib/cjs/contracts/PrivateSequence.cjs.map +0 -1
- package/lib/cjs/contracts/auth/decorators.cjs.map +0 -1
- package/lib/cjs/contracts/auth/index.cjs.map +0 -1
- package/lib/cjs/contracts/bootstrap.cjs.map +0 -1
- package/lib/cjs/contracts/crud/crud-contract.cjs.map +0 -1
- package/lib/cjs/contracts/crud/index.cjs.map +0 -1
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/erc20contract.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/index.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/models.cjs.map +0 -1
- package/lib/cjs/contracts/fabric-overrides.cjs.map +0 -1
- package/lib/cjs/contracts/index.cjs.map +0 -1
- package/lib/cjs/contracts/logging.cjs.map +0 -1
- package/lib/cjs/contracts/overrides.cjs.map +0 -1
- package/lib/cjs/contracts/types.cjs.map +0 -1
- package/lib/cjs/contracts/uuid.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/shared/ClientSerializer.cjs.map +0 -1
- package/lib/cjs/shared/DeterministicSerializer.cjs.map +0 -1
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +0 -1
- package/lib/cjs/shared/constants.cjs.map +0 -1
- package/lib/cjs/shared/decorators.cjs.map +0 -1
- package/lib/cjs/shared/erc20/erc20-constants.cjs.map +0 -1
- package/lib/cjs/shared/erc20/index.cjs.map +0 -1
- package/lib/cjs/shared/errors.cjs.map +0 -1
- package/lib/cjs/shared/events.cjs.map +0 -1
- package/lib/cjs/shared/fabric-types.cjs.map +0 -1
- package/lib/cjs/shared/index.cjs.map +0 -1
- package/lib/cjs/shared/interfaces/Checkable.cjs.map +0 -1
- package/lib/cjs/shared/interfaces/index.cjs.map +0 -1
- package/lib/cjs/shared/math.cjs.map +0 -1
- package/lib/cjs/shared/model/FabricBaseModel.cjs.map +0 -1
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +0 -1
- package/lib/cjs/shared/model/Identity.cjs.map +0 -1
- package/lib/cjs/shared/model/IdentityCredentials.cjs.map +0 -1
- package/lib/cjs/shared/model/index.cjs.map +0 -1
- package/lib/cjs/shared/overrides/Model.cjs.map +0 -1
- package/lib/cjs/shared/overrides/index.cjs.map +0 -1
- package/lib/cjs/shared/overrides/overrides.cjs.map +0 -1
- package/lib/cjs/shared/types.cjs.map +0 -1
- package/lib/cjs/version.cjs.map +0 -1
- package/lib/esm/bin/cli.js.map +0 -1
- package/lib/esm/cli-module.js.map +0 -1
- package/lib/esm/cli-utils.js.map +0 -1
- package/lib/esm/client/FabricClientAdapter.js.map +0 -1
- package/lib/esm/client/FabricClientContext.js.map +0 -1
- package/lib/esm/client/FabricClientDispatch.js.map +0 -1
- package/lib/esm/client/FabricClientPaginator.js.map +0 -1
- package/lib/esm/client/FabricClientRepository.js.map +0 -1
- package/lib/esm/client/FabricClientStatement.js.map +0 -1
- package/lib/esm/client/collections/generation.js.map +0 -1
- package/lib/esm/client/collections/index.js.map +0 -1
- package/lib/esm/client/constants.js.map +0 -1
- package/lib/esm/client/crypto.js.map +0 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +0 -1
- package/lib/esm/client/erc20/index.js.map +0 -1
- package/lib/esm/client/fabric-fs.js.map +0 -1
- package/lib/esm/client/fabric-hsm.js.map +0 -1
- package/lib/esm/client/ids/id-extraction.js.map +0 -1
- package/lib/esm/client/ids/index.js.map +0 -1
- package/lib/esm/client/index.js.map +0 -1
- package/lib/esm/client/indexes/generation.js.map +0 -1
- package/lib/esm/client/indexes/index.js.map +0 -1
- package/lib/esm/client/logging.js.map +0 -1
- package/lib/esm/client/services/FabricEnrollmentService.js.map +0 -1
- package/lib/esm/client/services/FabricIdentityService.js.map +0 -1
- package/lib/esm/client/services/RegistrationRequestBuilder.js.map +0 -1
- package/lib/esm/client/services/constants.js.map +0 -1
- package/lib/esm/client/services/index.js.map +0 -1
- package/lib/esm/client/types.js.map +0 -1
- package/lib/esm/client/utils.js.map +0 -1
- package/lib/esm/contract/Address.js.map +0 -1
- package/lib/esm/contract/AddressContract.js.map +0 -1
- package/lib/esm/contract/AuditContract.js.map +0 -1
- package/lib/esm/contract/BatchContract.js.map +0 -1
- package/lib/esm/contract/MarketContract.js.map +0 -1
- package/lib/esm/contract/OtherAuditContract.js.map +0 -1
- package/lib/esm/contract/OtherBatchContract.js.map +0 -1
- package/lib/esm/contract/OtherLeafletContract.js.map +0 -1
- package/lib/esm/contract/OtherLeafletFileContract.js.map +0 -1
- package/lib/esm/contract/OtherMarketContract.js.map +0 -1
- package/lib/esm/contract/OtherProductContract.js.map +0 -1
- package/lib/esm/contract/OtherProductImageContract.js.map +0 -1
- package/lib/esm/contract/OtherProductSharedContract.js.map +0 -1
- package/lib/esm/contract/OtherProductStrengthContract.js.map +0 -1
- package/lib/esm/contract/Product.js.map +0 -1
- package/lib/esm/contract/ProductContract.js.map +0 -1
- package/lib/esm/contract/ProductStrengthContract.js.map +0 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +0 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +0 -1
- package/lib/esm/contract/User.js.map +0 -1
- package/lib/esm/contract/UserContract.js.map +0 -1
- package/lib/esm/contract/index.js.map +0 -1
- package/lib/esm/contract/logging-context.js.map +0 -1
- package/lib/esm/contract/models/Audit.js.map +0 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js.map +0 -1
- package/lib/esm/contract/models/BaseModel.js.map +0 -1
- package/lib/esm/contract/models/Batch.js.map +0 -1
- package/lib/esm/contract/models/GtinOwner.js.map +0 -1
- package/lib/esm/contract/models/History.js.map +0 -1
- package/lib/esm/contract/models/Leaflet.js.map +0 -1
- package/lib/esm/contract/models/LeafletFile.js.map +0 -1
- package/lib/esm/contract/models/Market.js.map +0 -1
- package/lib/esm/contract/models/OtherAudit.js.map +0 -1
- package/lib/esm/contract/models/OtherBatchShared.js.map +0 -1
- package/lib/esm/contract/models/OtherLeaflet.js.map +0 -1
- package/lib/esm/contract/models/OtherLeafletFile.js.map +0 -1
- package/lib/esm/contract/models/OtherMarket.js.map +0 -1
- package/lib/esm/contract/models/OtherProduct.js.map +0 -1
- package/lib/esm/contract/models/OtherProductImage.js.map +0 -1
- package/lib/esm/contract/models/OtherProductShared.js.map +0 -1
- package/lib/esm/contract/models/OtherProductStrength.js.map +0 -1
- package/lib/esm/contract/models/Product.js.map +0 -1
- package/lib/esm/contract/models/ProductStrength.js.map +0 -1
- package/lib/esm/contract/models/SegregatedDocument.js.map +0 -1
- package/lib/esm/contract/models/constants.js.map +0 -1
- package/lib/esm/contract/models/decorators-private.js.map +0 -1
- package/lib/esm/contract/models/decorators.js.map +0 -1
- package/lib/esm/contract/models/gtin.js.map +0 -1
- package/lib/esm/contract/models/history-dec.js.map +0 -1
- package/lib/esm/contract/trackedModels/History.js.map +0 -1
- package/lib/esm/contract/trackedModels/OtherAudit.js.map +0 -1
- package/lib/esm/contract/trackedModels/OtherBatchShared.js.map +0 -1
- package/lib/esm/contract/trackedModels/OtherLeaflet.js.map +0 -1
- package/lib/esm/contract/trackedModels/OtherLeafletFile.js.map +0 -1
- package/lib/esm/contract/trackedModels/OtherMarket.js.map +0 -1
- package/lib/esm/contract/trackedModels/OtherProduct.js.map +0 -1
- package/lib/esm/contract/trackedModels/OtherProductImage.js.map +0 -1
- package/lib/esm/contract/trackedModels/OtherProductShared.js.map +0 -1
- package/lib/esm/contract/trackedModels/OtherProductStrength.js.map +0 -1
- package/lib/esm/contracts/ContractAdapter.js.map +0 -1
- package/lib/esm/contracts/ContractContext.js.map +0 -1
- package/lib/esm/contracts/FabricContractDispatch.js.map +0 -1
- package/lib/esm/contracts/FabricContractPaginator.js.map +0 -1
- package/lib/esm/contracts/FabricContractRepository.js.map +0 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
- package/lib/esm/contracts/FabricContractSequence.js.map +0 -1
- package/lib/esm/contracts/FabricContractStatement.js.map +0 -1
- package/lib/esm/contracts/MigrationContract.js.map +0 -1
- package/lib/esm/contracts/PrivateSequence.js.map +0 -1
- package/lib/esm/contracts/auth/decorators.js.map +0 -1
- package/lib/esm/contracts/auth/index.js.map +0 -1
- package/lib/esm/contracts/bootstrap.js.map +0 -1
- package/lib/esm/contracts/crud/crud-contract.js.map +0 -1
- package/lib/esm/contracts/crud/index.js.map +0 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +0 -1
- package/lib/esm/contracts/erc20/erc20contract.js.map +0 -1
- package/lib/esm/contracts/erc20/index.js.map +0 -1
- package/lib/esm/contracts/erc20/models.js.map +0 -1
- package/lib/esm/contracts/fabric-overrides.js.map +0 -1
- package/lib/esm/contracts/index.js.map +0 -1
- package/lib/esm/contracts/logging.js.map +0 -1
- package/lib/esm/contracts/overrides.js.map +0 -1
- package/lib/esm/contracts/types.js.map +0 -1
- package/lib/esm/contracts/uuid.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/shared/ClientSerializer.js.map +0 -1
- package/lib/esm/shared/DeterministicSerializer.js.map +0 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js.map +0 -1
- package/lib/esm/shared/constants.js.map +0 -1
- package/lib/esm/shared/decorators.js.map +0 -1
- package/lib/esm/shared/erc20/erc20-constants.js.map +0 -1
- package/lib/esm/shared/erc20/index.js.map +0 -1
- package/lib/esm/shared/errors.js.map +0 -1
- package/lib/esm/shared/events.js.map +0 -1
- package/lib/esm/shared/fabric-types.js.map +0 -1
- package/lib/esm/shared/index.js.map +0 -1
- package/lib/esm/shared/interfaces/Checkable.js.map +0 -1
- package/lib/esm/shared/interfaces/index.js.map +0 -1
- package/lib/esm/shared/math.js.map +0 -1
- package/lib/esm/shared/model/FabricBaseModel.js.map +0 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
- package/lib/esm/shared/model/Identity.js.map +0 -1
- package/lib/esm/shared/model/IdentityCredentials.js.map +0 -1
- package/lib/esm/shared/model/index.js.map +0 -1
- package/lib/esm/shared/overrides/Model.js.map +0 -1
- package/lib/esm/shared/overrides/index.js.map +0 -1
- package/lib/esm/shared/overrides/overrides.js.map +0 -1
- package/lib/esm/shared/types.js.map +0 -1
- package/lib/esm/version.js.map +0 -1
|
@@ -26,5 +26,5 @@ class FabricClientContext extends core_1.Context {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
exports.FabricClientContext = FabricClientContext;
|
|
29
|
-
//# sourceMappingURL=
|
|
30
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50Q29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50Q29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsTUFBTSxvQkFBb0IsR0FBZ0M7SUFDeEQseUJBQXlCO0NBQzFCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLG1CQUFvQixTQUFRLE9BQTBCO0lBQ2pFLFlBQVksR0FBZ0M7UUFDMUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVRLFdBQVc7UUFDbEIsTUFBTSxTQUFTLEdBQStCLEVBQUUsQ0FBQztRQUNqRCxLQUFLLE1BQU0sR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUNqQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBYyxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50RmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5jb25zdCBDTElFTlRfT1ZFUlJJREVfS0VZUzogKGtleW9mIEZhYnJpY0NsaWVudEZsYWdzKVtdID0gW1xuICBcImFsbG93R2VuZXJhdGlvbk92ZXJyaWRlXCIsXG5dO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBGYWJyaWMgY2xpZW50IGNvbnRleHQgd2l0aCBhIGNvbnN0cmFpbmVkIG92ZXJyaWRlIHN1cmZhY2VcbiAqIEBzdW1tYXJ5IFJlc3RyaWN0cyB3aGljaCBjYWNoZWQgdmFsdWVzIGFyZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGNvbnRleHRzIG9yIHNlbnRcbiAqIGJhY2sgYXMgb3ZlcnJpZGVzIHNvIG9ubHkgaW50ZW50aW9uYWwgY2xpZW50IGZsYWdzIGFyZSBmb3J3YXJkZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDbGllbnRDb250ZXh0IGV4dGVuZHMgQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4ge1xuICBjb25zdHJ1Y3RvcihjdHg/OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPikge1xuICAgIHN1cGVyKGN0eCk7XG4gIH1cblxuICBvdmVycmlkZSB0b092ZXJyaWRlcygpOiBQYXJ0aWFsPEZhYnJpY0NsaWVudEZsYWdzPiB7XG4gICAgY29uc3Qgb3ZlcnJpZGVzOiBQYXJ0aWFsPEZhYnJpY0NsaWVudEZsYWdzPiA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIENMSUVOVF9PVkVSUklERV9LRVlTKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0T3JVbmRlZmluZWQoa2V5KTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgb3ZlcnJpZGVzW2tleV0gPSB2YWx1ZSBhcyBuZXZlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG92ZXJyaWRlcztcbiAgfVxufVxuIl19
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50Q29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkZhYnJpY0NsaWVudENvbnRleHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXlDO0FBQ3pDLE1BQU0sb0JBQW9CLEdBQUc7SUFDekIseUJBQXlCO0NBQzVCLENBQUM7QUFDRjs7OztHQUlHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxjQUFPO0lBQzVDLFlBQVksR0FBRztRQUNYLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFDRCxXQUFXO1FBQ1AsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLEtBQUssTUFBTSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztZQUNyQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQy9CLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDM0IsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0NBQ0o7QUFkRCxrREFjQztBQUNELDhrRUFBOGtFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuY29uc3QgQ0xJRU5UX09WRVJSSURFX0tFWVMgPSBbXG4gICAgXCJhbGxvd0dlbmVyYXRpb25PdmVycmlkZVwiLFxuXTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEZhYnJpYyBjbGllbnQgY29udGV4dCB3aXRoIGEgY29uc3RyYWluZWQgb3ZlcnJpZGUgc3VyZmFjZVxuICogQHN1bW1hcnkgUmVzdHJpY3RzIHdoaWNoIGNhY2hlZCB2YWx1ZXMgYXJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgY29udGV4dHMgb3Igc2VudFxuICogYmFjayBhcyBvdmVycmlkZXMgc28gb25seSBpbnRlbnRpb25hbCBjbGllbnQgZmxhZ3MgYXJlIGZvcndhcmRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudENvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcbiAgICBjb25zdHJ1Y3RvcihjdHgpIHtcbiAgICAgICAgc3VwZXIoY3R4KTtcbiAgICB9XG4gICAgdG9PdmVycmlkZXMoKSB7XG4gICAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBDTElFTlRfT1ZFUlJJREVfS0VZUykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldE9yVW5kZWZpbmVkKGtleSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgb3ZlcnJpZGVzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3ZlcnJpZGVzO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDNOeVl5OWpiR2xsYm5RdlJtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRDNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVVVc1QwRkJUeXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkhla01zVFVGQlRTeHZRa0ZCYjBJc1IwRkJaME03U1VGRGVFUXNlVUpCUVhsQ08wTkJRekZDTEVOQlFVTTdRVUZGUmpzN096dEhRVWxITzBGQlEwZ3NUVUZCVFN4UFFVRlBMRzFDUVVGdlFpeFRRVUZSTEU5QlFUQkNPMGxCUTJwRkxGbEJRVmtzUjBGQlowTTdVVUZETVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEySXNRMEZCUXp0SlFVVlJMRmRCUVZjN1VVRkRiRUlzVFVGQlRTeFRRVUZUTEVkQlFTdENMRVZCUVVVc1EwRkJRenRSUVVOcVJDeExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRzlDUVVGdlFpeEZRVUZGTEVOQlFVTTdXVUZEZGtNc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOMlF5eEpRVUZKTEU5QlFVOHNTMEZCU3l4TFFVRkxMRmRCUVZjc1JVRkJSU3hEUVVGRE8yZENRVU5xUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUzBGQll5eERRVUZETzFsQlEyeERMRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJRMFFzVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenREUVVOR0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dRMjl1ZEdWNGRDQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIc2dSbUZpY21salEyeHBaVzUwUm14aFozTWdmU0JtY205dElGd2lMaTkwZVhCbGMxd2lPMXh1WEc1amIyNXpkQ0JEVEVsRlRsUmZUMVpGVWxKSlJFVmZTMFZaVXpvZ0tHdGxlVzltSUVaaFluSnBZME5zYVdWdWRFWnNZV2R6S1Z0ZElEMGdXMXh1SUNCY0ltRnNiRzkzUjJWdVpYSmhkR2x2Yms5MlpYSnlhV1JsWENJc1hHNWRPMXh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQkdZV0p5YVdNZ1kyeHBaVzUwSUdOdmJuUmxlSFFnZDJsMGFDQmhJR052Ym5OMGNtRnBibVZrSUc5MlpYSnlhV1JsSUhOMWNtWmhZMlZjYmlBcUlFQnpkVzF0WVhKNUlGSmxjM1J5YVdOMGN5QjNhR2xqYUNCallXTm9aV1FnZG1Gc2RXVnpJR0Z5WlNCd2NtOXdZV2RoZEdWa0lIUnZJR05vYVd4a0lHTnZiblJsZUhSeklHOXlJSE5sYm5SY2JpQXFJR0poWTJzZ1lYTWdiM1psY25KcFpHVnpJSE52SUc5dWJIa2dhVzUwWlc1MGFXOXVZV3dnWTJ4cFpXNTBJR1pzWVdkeklHRnlaU0JtYjNKM1lYSmtaV1F1WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCR1lXSnlhV05EYkdsbGJuUkRiMjUwWlhoMElHVjRkR1Z1WkhNZ1EyOXVkR1Y0ZER4R1lXSnlhV05EYkdsbGJuUkdiR0ZuY3o0Z2UxeHVJQ0JqYjI1emRISjFZM1J2Y2loamRIZy9PaUJEYjI1MFpYaDBQRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpQaWtnZTF4dUlDQWdJSE4xY0dWeUtHTjBlQ2s3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCMGIwOTJaWEp5YVdSbGN5Z3BPaUJRWVhKMGFXRnNQRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpQaUI3WEc0Z0lDQWdZMjl1YzNRZ2IzWmxjbkpwWkdWek9pQlFZWEowYVdGc1BFWmhZbkpwWTBOc2FXVnVkRVpzWVdkelBpQTlJSHQ5TzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYTJWNUlHOW1JRU5NU1VWT1ZGOVBWa1ZTVWtsRVJWOUxSVmxUS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IyWVd4MVpTQTlJSFJvYVhNdVoyVjBUM0pWYm1SbFptbHVaV1FvYTJWNUtUdGNiaUFnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdkbUZzZFdVZ0lUMDlJRndpZFc1a1pXWnBibVZrWENJcElIdGNiaUFnSUNBZ0lDQWdiM1psY25KcFpHVnpXMnRsZVYwZ1BTQjJZV3gxWlNCaGN5QnVaWFpsY2p0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHOTJaWEp5YVdSbGN6dGNiaUFnZlZ4dWZWeHVJbDE5Il19
|
|
@@ -287,5 +287,5 @@ class FabricClientDispatch extends core_1.Dispatch {
|
|
|
287
287
|
exports.FabricClientDispatch = FabricClientDispatch;
|
|
288
288
|
if (FabricClientAdapter_js_1.FabricClientAdapter)
|
|
289
289
|
FabricClientAdapter_js_1.FabricClientAdapter["_baseDispatch"] = FabricClientDispatch;
|
|
290
|
-
//# sourceMappingURL=FabricClientDispatch.js.map
|
|
291
|
-
//# sourceMappingURL=FabricClientDispatch.js.map
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50RGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L0ZhYnJpY0NsaWVudERpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsUUFBUSxFQUVSLGdCQUFnQixFQUNoQixlQUFlLEdBQ2hCLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlDQUE4QjtBQUU1RCxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUtqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLDhCQUF5QjtBQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFFBQTZCO0lBV3JFOzs7O09BSUc7SUFDSCxZQUFzQixNQUFjO1FBQ2xDLEtBQUssRUFBRSxDQUFDO1FBRFksV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVZwQzs7V0FFRztRQUNLLFlBQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQVMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNNLEtBQUssQ0FBQyxLQUFLLENBQ2xCLEdBQUcsT0FBNEM7UUFFL0MsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FDbkMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUMzRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUFDLE9BQU8sQ0FBVSxFQUFFLENBQUM7WUFDcEIsR0FBRyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsRUFBRSxDQUFVLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDO2dCQUNILE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQyxDQUFDO1lBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztnQkFDcEIsR0FBRyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsRUFBRSxDQUFVLENBQUMsQ0FBQztZQUNqRSxDQUFDO29CQUFTLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxZQUFZLENBQUMsU0FBcUI7UUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNNLE9BQU8sQ0FBQyxRQUFxQztRQUNwRCxJQUFJLENBQUMsQ0FBQyxRQUFRLFlBQVksbUJBQW1CLENBQUM7WUFDNUMsTUFBTSxJQUFJLGdCQUFnQixDQUN4QixzREFBc0QsQ0FDdkQsQ0FBQztRQUNKLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBK0IsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNNLEtBQUssQ0FBQyxlQUFlLENBQzVCLEtBQWdDLEVBQ2hDLEtBQXFELEVBQ3JELEVBQVksRUFDWixHQUFHLElBQXlDO1FBRTVDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDckMsSUFBSSxDQUFDLGVBQWUsRUFDcEIsS0FBSyxFQUNMLEtBQUssRUFDTCxHQUFHLElBQUksQ0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixHQUFHLENBQUMsT0FBTyxDQUNULGtFQUFrRSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FDeEksQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxhQUFhLENBQUMsK0JBQStCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FvQkc7SUFDTyxLQUFLLENBQUMsWUFBWSxDQUMxQixNQUE0QjtRQUU1QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFDdEIsTUFBTSxJQUFJLGFBQWEsQ0FDckIsdUdBQXVHLENBQ3hHLENBQUM7UUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUN2QyxNQUFNLElBQUksYUFBYSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFFcEUsTUFBTSxHQUFHLEdBQ1AsTUFBTTtZQUNOLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDekIsYUFBYSxDQUFDLElBQUksRUFDbEI7Z0JBQ0UsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWE7YUFDakQsRUFDRCxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFLLEtBQWdDLENBQ3JFLENBQUMsQ0FBQztRQUNMLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU1QyxHQUFHLENBQUMsSUFBSSxDQUNOLCtDQUErQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLGlCQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLE1BQU0sQ0FDbkksQ0FBQztRQUVGLElBQUksQ0FBQztZQUNILElBQUksS0FBSyxFQUFFLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDOUQsSUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxZQUFZO29CQUNqQyxLQUFLO29CQUNMLEtBQUssS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLO29CQUVwQyxTQUFTO2dCQUNYLE1BQU0sT0FBTyxHQUFpQyxJQUFJLENBQUMsWUFBWSxDQUM3RCxHQUFHLENBQUMsT0FBTyxDQUNaLENBQUM7Z0JBQ0YsSUFBSSxDQUFDO29CQUNILE1BQU0sV0FBVyxHQUFHLEtBQUs7d0JBQ3ZCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQzt3QkFDbEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbkMsTUFBTSxRQUFRLEdBQUcsV0FBVyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ2hFLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDcEUsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUN4QixRQUFnQyxFQUNoQyxLQUFLLEVBQ0wsT0FBTyxDQUFDLEVBQVksRUFDcEIsR0FBSSxZQUFvQyxDQUN6QyxDQUFDO2dCQUNKLENBQUM7Z0JBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztvQkFDcEIsR0FBRyxDQUFDLEtBQUssQ0FDUCx1Q0FBdUMsS0FBSyxVQUFVLEtBQUssUUFBUSxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUN0RixDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsR0FBRyxDQUFDLEtBQUssQ0FDUCx1Q0FBdUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxpQkFBaUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUM5SCxDQUFDO1lBQ0YsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ2dCLEtBQUssQ0FBQyxVQUFVO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNmLE1BQU0sSUFBSSxhQUFhLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUV4RSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLEtBQUssS0FBSyxDQUFDO1FBRXRFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixrRUFBa0U7WUFDbEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDeEMsVUFBVSxFQUNWO2dCQUNFLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhO2FBQ2pELEVBQ0QsS0FBWSxDQUNiLENBQUM7WUFDRixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4RCxNQUFNLE9BQU8sR0FBRyxNQUFNLG1CQUFtQixDQUFDLFVBQVUsQ0FDbEQsR0FBRyxFQUNILElBQUksQ0FBQyxPQUFPLENBQUMsTUFBb0IsRUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FDWixDQUFDO1lBQ0YsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQ2YsTUFBTSxJQUFJLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FDbEMsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELHNCQUFzQjtRQUN0Qix1RkFBdUY7UUFDdkYsa0ZBQWtGO1FBQ2xGLHFEQUFxRDtRQUVuRDtZQUNFLGFBQWEsQ0FBQyxNQUFNO1lBQ3BCLGFBQWEsQ0FBQyxNQUFNO1lBQ3BCLGFBQWEsQ0FBQyxNQUFNO1lBQ3BCLHFCQUFxQixDQUFDLFVBQVU7WUFDaEMscUJBQXFCLENBQUMsVUFBVTtZQUNoQyxxQkFBcUIsQ0FBQyxVQUFVO1NBRW5DLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUNmLE1BQU0sSUFBSSxhQUFhLENBQ3JCLGlFQUFpRSxDQUNsRSxDQUFDO1lBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO2dCQUN2QixNQUFNLElBQUksYUFBYSxDQUNyQixVQUFVLE1BQU0saUJBQWlCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyx1Q0FBdUMsQ0FDM0YsQ0FBQztZQUVKLElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZFLElBQUksS0FBSyxHQUFRLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDOUIsT0FBTyxDQUFDLFVBQVUsSUFBSSxLQUFLLEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqRCxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckMsVUFBVSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUVELElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUNaLHlCQUF5QixNQUFNLCtCQUErQixDQUMvRCxDQUFDO2dCQUNGLE9BQU87WUFDVCxDQUFDO1lBQ0QsU0FBUyxZQUFZLENBQUMsTUFBYztnQkFDbEMsUUFBUSxNQUFNLEVBQUUsQ0FBQztvQkFDZixLQUFLLHFCQUFxQixDQUFDLFVBQVU7d0JBQ25DLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQztvQkFDOUIsS0FBSyxxQkFBcUIsQ0FBQyxVQUFVO3dCQUNuQyxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUM7b0JBQzlCLEtBQUsscUJBQXFCLENBQUMsVUFBVTt3QkFDbkMsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDO29CQUM5Qjt3QkFDRSxPQUFPLE1BQU0sQ0FBQztnQkFDbEIsQ0FBQztZQUNILENBQUM7WUFFRCwwREFBMEQ7WUFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNyRCxLQUFLLEVBQUUsS0FBSyxFQUNWLE1BQVcsRUFDWCxPQUE0QixFQUM1QixRQUFlLEVBQ2YsRUFBRTtvQkFDRixtRUFBbUU7b0JBQ25FLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBRXJELE1BQU0sS0FBSyxHQUFxQixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzVDLHNFQUFzRTtvQkFDdEUseURBQXlEO29CQUN6RCwwRUFBMEU7b0JBQzFFLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQzt3QkFBRSxPQUFPLE1BQU0sQ0FBQztvQkFFakUsaURBQWlEO29CQUNqRCxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQzdDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFDbkMsTUFBTSxDQUNQLENBQUM7b0JBQ0YsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN4QixNQUFNLFVBQVUsR0FBVSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBRTdELElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7d0JBQzVDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzFCLENBQUM7b0JBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FDbEIsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUNiLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDYixVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQ2IsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUN0QixHQUFJLE9BQStDLENBQ3BELENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FDckIsR0FBRyxDQUFDLEtBQUssQ0FDUCwyQ0FBMkMsTUFBTSxPQUFPLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FDL0YsQ0FDRixDQUFDO29CQUNGLE9BQU8sTUFBTSxDQUFDO2dCQUNoQixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxJQUFJLG1CQUFtQjtJQUNyQixtQkFBbUIsQ0FBQyxlQUFlLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFkYXB0ZXIsXG4gIENvbnRleHR1YWxBcmdzLFxuICBEaXNwYXRjaCxcbiAgRXZlbnRJZHMsXG4gIFVuc3VwcG9ydGVkRXJyb3IsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBQZWVyQ29uZmlnIH0gZnJvbSBcIi4uL3NoYXJlZC90eXBlc1wiO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSBcIkBncnBjL2dycGMtanNcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRDb250ZXh0IH0gZnJvbSBcIi4vRmFicmljQ2xpZW50Q29udGV4dFwiO1xuaW1wb3J0IHtcbiAgQnVsa0NydWRPcGVyYXRpb25LZXlzLFxuICBJbnRlcm5hbEVycm9yLFxuICBPcGVyYXRpb25LZXlzLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7XG4gIENoYWluY29kZUV2ZW50LFxuICBDbG9zZWFibGVBc3luY0l0ZXJhYmxlLFxufSBmcm9tIFwiQGh5cGVybGVkZ2VyL2ZhYnJpYy1nYXRld2F5XCI7XG5pbXBvcnQgeyBwYXJzZUV2ZW50TmFtZSB9IGZyb20gXCIuLi9zaGFyZWQvZXZlbnRzXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEV2ZW50IGRpc3BhdGNoZXIgZm9yIEh5cGVybGVkZ2VyIEZhYnJpYyBjaGFpbmNvZGUgZXZlbnRzXG4gKiBAc3VtbWFyeSBMaXN0ZW5zIGZvciBhbmQgcHJvY2Vzc2VzIGV2ZW50cyBlbWl0dGVkIGJ5IEZhYnJpYyBjaGFpbmNvZGUsIGRpc3BhdGNoaW5nIHRoZW0gdG8gcmVnaXN0ZXJlZCBvYnNlcnZlcnNcbiAqIEB0ZW1wbGF0ZSBQZWVyQ29uZmlnIC0gQ29uZmlndXJhdGlvbiB0eXBlIGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAqIEBwYXJhbSBjbGllbnQgLSBnUlBDIGNsaWVudCBmb3IgY29ubmVjdGluZyB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAqIEBjbGFzcyBGYWJyaWNDbGllbnREaXNwYXRjaFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhIG5ldyBGYWJyaWNEaXNwYXRjaCBpbnN0YW5jZVxuICogY29uc3QgY2xpZW50ID0gYXdhaXQgRmFicmljQWRhcHRlci5nZXRDbGllbnQocGVlckNvbmZpZyk7XG4gKiBjb25zdCBkaXNwYXRjaCA9IG5ldyBGYWJyaWNEaXNwYXRjaChjbGllbnQpO1xuICpcbiAqIC8vIENvbmZpZ3VyZSB0aGUgZGlzcGF0Y2ggd2l0aCBwZWVyIGNvbmZpZ3VyYXRpb25cbiAqIGRpc3BhdGNoLmNvbmZpZ3VyZShwZWVyQ29uZmlnKTtcbiAqXG4gKiAvLyBSZWdpc3RlciBhbiBvYnNlcnZlciBmb3IgYSBzcGVjaWZpYyB0YWJsZSBhbmQgZXZlbnRcbiAqIGRpc3BhdGNoLm9ic2VydmUoJ3VzZXJzJywgJ2NyZWF0ZScsIChpZCkgPT4ge1xuICogICBjb25zb2xlLmxvZyhgVXNlciBjcmVhdGVkOiAke2lkfWApO1xuICogfSk7XG4gKlxuICogLy8gU3RhcnQgbGlzdGVuaW5nIGZvciBldmVudHNcbiAqIGF3YWl0IGRpc3BhdGNoLnN0YXJ0KCk7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IEZhYnJpY0Rpc3BhdGNoXG4gKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAqICAgcGFydGljaXBhbnQgTmV0d29ya1xuICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAqXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBuZXcgRmFicmljRGlzcGF0Y2goY2xpZW50KVxuICogICBDbGllbnQtPj5GYWJyaWNEaXNwYXRjaDogY29uZmlndXJlKHBlZXJDb25maWcpXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBvYnNlcnZlKHRhYmxlLCBldmVudCwgY2FsbGJhY2spXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBzdGFydCgpXG4gKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IGluaXRpYWxpemUoKVxuICogICBGYWJyaWNEaXNwYXRjaC0+PkdhdGV3YXk6IGdldEdhdGV3YXkoY29uZmlnLCBjbGllbnQpXG4gKiAgIEdhdGV3YXktPj5OZXR3b3JrOiBnZXROZXR3b3JrKGNoYW5uZWwpXG4gKiAgIE5ldHdvcmstPj5OZXR3b3JrOiBnZXRDaGFpbmNvZGVFdmVudHMoY2hhaW5jb2RlTmFtZSlcbiAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaGFuZGxlRXZlbnRzKClcbiAqICAgbG9vcCBGb3IgZWFjaCBldmVudFxuICogICAgIENoYWluY29kZS0tPj5GYWJyaWNEaXNwYXRjaDogQ2hhaW5jb2RlRXZlbnRcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZUV2ZW50TmFtZShldmVudE5hbWUpXG4gKiAgICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogcGFyc2VQYXlsb2FkKHBheWxvYWQpXG4gKiAgICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogdXBkYXRlT2JzZXJ2ZXJzKHRhYmxlLCBldmVudCwgaWQpXG4gKiAgICAgRmFicmljRGlzcGF0Y2gtLT4+Q2xpZW50OiBjYWxsYmFjayhpZClcbiAqICAgZW5kXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDbGllbnREaXNwYXRjaCBleHRlbmRzIERpc3BhdGNoPEZhYnJpY0NsaWVudEFkYXB0ZXI+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFdmVudCBsaXN0ZW5pbmcgc3RhY2sgZm9yIGNoYWluY29kZSBldmVudHNcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuaW5nU3RhY2s/OiBDbG9zZWFibGVBc3luY0l0ZXJhYmxlPENoYWluY29kZUV2ZW50PjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRleHQgZGVjb2RlciBmb3IgY29udmVydGluZyBldmVudCBwYXlsb2FkcyBmcm9tIGJ5dGVzIHRvIHN0cmluZ3NcbiAgICovXG4gIHByaXZhdGUgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcihcInV0ZjhcIik7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IEZhYnJpY0Rpc3BhdGNoIGluc3RhbmNlXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgZGlzcGF0Y2hlciBmb3IgRmFicmljIGNoYWluY29kZSBldmVudHNcbiAgICogQHBhcmFtIHtDbGllbnR9IGNsaWVudCAtIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNsaWVudDogQ2xpZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2xvc2VzIHRoZSBldmVudCBsaXN0ZW5pbmcgY29ubmVjdGlvblxuICAgKiBAc3VtbWFyeSBTdG9wcyBsaXN0ZW5pbmcgZm9yIGNoYWluY29kZSBldmVudHMgYW5kIHJlbGVhc2VzIHJlc291cmNlc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWRcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIGNsb3NlKFxuICAgIC4uLmN0eEFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NsaWVudENvbnRleHQ+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzOiBsb2dnZWRBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChjdHhBcmdzLCBQZXJzaXN0ZW5jZUtleXMuU0hVVERPV04sIHRydWUpXG4gICAgKS5mb3IodGhpcy5jbG9zZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHN1cGVyLmNsb3NlKC4uLmxvZ2dlZEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNsb3NlIEZhYnJpYyBwcm94aWVzIGV2ZW50IGxpc3RlbmVyYCwgZSBhcyBFcnJvcik7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpc3RlbmluZ1N0YWNrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLmxpc3RlbmluZ1N0YWNrLmNsb3NlKCk7XG4gICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNsb3NlIEZhYnJpYyBldmVudCBsaXN0ZW5lcmAsIGUgYXMgRXJyb3IpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5saXN0ZW5pbmdTdGFjayA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBldmVudCBwYXlsb2FkIGZyb20gYmluYXJ5IGZvcm1hdFxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBhIFVpbnQ4QXJyYXkgY29udGFpbmluZyBKU09OIHRvIGFuIG9iamVjdCB3aXRoIGFuIGlkIHByb3BlcnR5XG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ganNvbkJ5dGVzIC0gVGhlIGJpbmFyeSBwYXlsb2FkIGZyb20gdGhlIGNoYWluY29kZSBldmVudFxuICAgKiBAcmV0dXJuIHt7IGlkOiBzdHJpbmcgfX0gVGhlIHBhcnNlZCBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHJlY29yZCBJRFxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZVBheWxvYWQoanNvbkJ5dGVzOiBVaW50OEFycmF5KTogeyBpZDogc3RyaW5nOyByZXN1bHQ/OiBhbnkgfSB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuZGVjb2Rlci5kZWNvZGUoanNvbkJ5dGVzKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3RhcnRzIG9ic2VydmluZyBhbiBhZGFwdGVyXG4gICAqIEBzdW1tYXJ5IENvbm5lY3RzIHRoaXMgZGlzcGF0Y2ggdG8gYW4gYWRhcHRlciB0byBtb25pdG9yIGl0cyBvcGVyYXRpb25zXG4gICAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIGFueSwgYW55LCBhbnk+fSBvYnNlcnZlciAtIFRoZSBhZGFwdGVyIHRvIG9ic2VydmVcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIG92ZXJyaWRlIG9ic2VydmUob2JzZXJ2ZXI6IEFkYXB0ZXI8YW55LCBhbnksIGFueSwgYW55Pik6ICgpID0+IHZvaWQge1xuICAgIGlmICghKG9ic2VydmVyIGluc3RhbmNlb2YgRmFicmljQ2xpZW50QWRhcHRlcikpXG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgICAgXCJPbmx5IEZhYnJpY0NsaWVudEFkYXB0ZXIgY2FuIGJlIG9ic2VydmVkIGJ5IGRpc3BhdGNoXCJcbiAgICAgICk7XG4gICAgc3VwZXIub2JzZXJ2ZShvYnNlcnZlciBhcyBGYWJyaWNDbGllbnRBZGFwdGVyKTtcbiAgICByZXR1cm4gKCkgPT4gdGhpcy51bk9ic2VydmUob2JzZXJ2ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIG9ic2VydmVycyBhYm91dCBhIGRhdGFiYXNlIGV2ZW50XG4gICAqIEBzdW1tYXJ5IE5vdGlmaWVzIG9ic2VydmVycyBhYm91dCBhIGNoYW5nZSBpbiB0aGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHdoZXJlIHRoZSBjaGFuZ2Ugb2NjdXJyZWRcbiAgICogQHBhcmFtIHtPcGVyYXRpb25LZXlzfEJ1bGtDcnVkT3BlcmF0aW9uS2V5c3xzdHJpbmd9IGV2ZW50IC0gVGhlIHR5cGUgb2Ygb3BlcmF0aW9uIHRoYXQgb2NjdXJyZWRcbiAgICogQHBhcmFtIHthbnl9IHBheWxvYWQgLSBUaGUgZXZlbnQgcGF5bG9hZFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBvYnNlcnZlcnMgaGF2ZSBiZWVuIG5vdGlmaWVkXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyB1cGRhdGVPYnNlcnZlcnMoXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPGFueT4gfCBzdHJpbmcsXG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gICAgaWQ6IEV2ZW50SWRzLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NsaWVudENvbnRleHQ+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSBBZGFwdGVyLmxvZ0N0eDxGYWJyaWNDbGllbnRDb250ZXh0PihcbiAgICAgIHRoaXMudXBkYXRlT2JzZXJ2ZXJzLFxuICAgICAgZXZlbnQsXG4gICAgICBmYWxzZSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICBsb2cudmVyYm9zZShcbiAgICAgICAgYE5vIGFkYXB0ZXIgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoOyBza2lwcGluZyBvYnNlcnZlciB1cGRhdGUgZm9yICR7dHlwZW9mIG1vZGVsID09PSBcInN0cmluZ1wiID8gbW9kZWwgOiBNb2RlbC50YWJsZU5hbWUobW9kZWwpfToke2V2ZW50fWBcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIucmVmcmVzaChtb2RlbCwgZXZlbnQsIGlkLCAuLi5jdHhBcmdzKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIHJlZnJlc2ggZGlzcGF0Y2g6ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByb2Nlc3NlcyBpbmNvbWluZyBjaGFpbmNvZGUgZXZlbnRzXG4gICAqIEBzdW1tYXJ5IExpc3RlbnMgZm9yIGV2ZW50cyBmcm9tIHRoZSBjaGFpbmNvZGUgYW5kIGRpc3BhdGNoZXMgdGhlbSB0byByZWdpc3RlcmVkIG9ic2VydmVyc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBldmVudCBoYW5kbGluZyBzdG9wc1xuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNEaXNwYXRjaFxuICAgKiAgIHBhcnRpY2lwYW50IEV2ZW50U3RhY2tcbiAgICogICBwYXJ0aWNpcGFudCBFdmVudFBhcnNlclxuICAgKiAgIHBhcnRpY2lwYW50IE9ic2VydmVyc1xuICAgKlxuICAgKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IGhhbmRsZUV2ZW50cygpXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5FdmVudFN0YWNrOiBmb3IgYXdhaXQgKGNvbnN0IGV2dCBvZiBsaXN0ZW5pbmdTdGFjaylcbiAgICogICBFdmVudFN0YWNrLS0+PkZhYnJpY0Rpc3BhdGNoOiBDaGFpbmNvZGVFdmVudFxuICAgKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RXZlbnRQYXJzZXI6IHBhcnNlRXZlbnROYW1lKGV2dC5ldmVudE5hbWUpXG4gICAqICAgRXZlbnRQYXJzZXItLT4+RmFicmljRGlzcGF0Y2g6IHsgdGFibGUsIGV2ZW50LCBvd25lciB9XG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogQ2hlY2sgaWYgZXZlbnQgaXMgZm9yIHRoaXMgTVNQXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogcGFyc2VQYXlsb2FkKGV2dC5wYXlsb2FkKVxuICAgKiAgIEZhYnJpY0Rpc3BhdGNoLT4+T2JzZXJ2ZXJzOiB1cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBwYXlsb2FkLmlkKVxuICAgKiAgIE9ic2VydmVycy0tPj5GYWJyaWNEaXNwYXRjaDogQ2FsbGJhY2tzIGV4ZWN1dGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlRXZlbnRzKFxuICAgIGN0eEFyZz86IEZhYnJpY0NsaWVudENvbnRleHRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmxpc3RlbmluZ1N0YWNrKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBFdmVudCBzdGFjayBub3QgaW5pdGlhbGl6ZWQuIEVuc3VyZSB0aGF0IFwic3RhcnRMaXN0ZW5pbmdcIiBpcyBjYWxsZWQgYmVmb3JlIGF0dGVtcHRpbmcgdGhpcyBvcGVyYXRpb24uYFxuICAgICAgKTtcblxuICAgIGlmICghdGhpcy5hZGFwdGVyIHx8ICF0aGlzLmFkYXB0ZXIuY29uZmlnKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIGFkYXB0ZXIgZm91bmQuIHNob3VsZCBiZSBpbXBvc3NpYmxlYCk7XG5cbiAgICBjb25zdCBjdHggPVxuICAgICAgY3R4QXJnIHx8XG4gICAgICAoYXdhaXQgdGhpcy5hZGFwdGVyLmNvbnRleHQoXG4gICAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgICAge1xuICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHRoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgKHRoaXMubW9kZWxzICYmIHRoaXMubW9kZWxzWzBdKSB8fCAoTW9kZWwgYXMgdW5rbm93biBhcyBDb25zdHJ1Y3RvcilcbiAgICAgICkpO1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmhhbmRsZUV2ZW50cyk7XG5cbiAgICBsb2cuaW5mbyhcbiAgICAgIGBMaXN0ZW5pbmcgZm9yIGluY29taW5nIGV2ZW50cyBvbiBjaGFpbmNvZGUgXCIke3RoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZX1cIiBvbiBjaGFubmVsIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYW5uZWx9XCIuLi5gXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGV2dCBvZiB0aGlzLmxpc3RlbmluZ1N0YWNrKSB7XG4gICAgICAgIGNvbnN0IHsgdGFibGUsIGV2ZW50LCBvd25lciB9ID0gcGFyc2VFdmVudE5hbWUoZXZ0LmV2ZW50TmFtZSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BFdmVudE9ubHkgJiZcbiAgICAgICAgICBvd25lciAmJlxuICAgICAgICAgIG93bmVyICE9PSB0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BJZFxuICAgICAgICApXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IHsgaWQ6IHN0cmluZzsgcmVzdWx0PzogYW55IH0gPSB0aGlzLnBhcnNlUGF5bG9hZChcbiAgICAgICAgICBldnQucGF5bG9hZFxuICAgICAgICApO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHRhcmdldE1vZGVsID0gdGFibGVcbiAgICAgICAgICAgID8gTW9kZWwuZ2V0KHRhYmxlKVxuICAgICAgICAgICAgOiBNb2RlbC5nZXQodGhpcy5tb2RlbHNbMF0ubmFtZSk7XG4gICAgICAgICAgY29uc3QgbW9kZWxSZWYgPSB0YXJnZXRNb2RlbCA/PyAodGFibGUgfHwgdGhpcy5tb2RlbHNbMF0/Lm5hbWUpO1xuICAgICAgICAgIGNvbnN0IG9ic2VydmVyQXJncyA9IHBheWxvYWQucmVzdWx0ID8gW3BheWxvYWQucmVzdWx0LCBjdHhdIDogW2N0eF07XG4gICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVPYnNlcnZlcnMoXG4gICAgICAgICAgICBtb2RlbFJlZiBhcyBDb25zdHJ1Y3RvciB8IHN0cmluZyxcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgcGF5bG9hZC5pZCBhcyBzdHJpbmcsXG4gICAgICAgICAgICAuLi4ob2JzZXJ2ZXJBcmdzIGFzIENvbnRleHR1YWxBcmdzPGFueT4pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIGxvZy5lcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdXBkYXRlIG9ic2VydmFibGVzIGZvciB0YWJsZSAke3RhYmxlfSBldmVudCAke2V2ZW50fSBpZDogJHtwYXlsb2FkLmlkfTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBsb2cuZXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gcmVhZCBldmVudCBmb3IgY2hhaW5jb2RlIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWV9XCIgb24gY2hhbm5lbCBcIiR7dGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFubmVsfVwiOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2xvc2UoY3R4KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBldmVudCBsaXN0ZW5lclxuICAgKiBAc3VtbWFyeSBTZXRzIHVwIGV2ZW50IGRpc3BhdGNoaW5nIGZvciB0aGUgb2JzZXJ2ZWQgYWRhcHRlci4gV2hlblxuICAgKiBgc3ludGhldGljRXZlbnRzYCBpcyB0cnVlICh0aGUgZGVmYXVsdCkgbm8gZ2F0ZXdheSBjb25uZWN0aW9uIGlzIG9wZW5lZDtcbiAgICogaW5zdGVhZCBldmVyeSBDUlVEIG9wZXJhdGlvbiBpcyB3cmFwcGVkIHdpdGggYSBQcm94eSB0aGF0IGZpcmVzXG4gICAqIGB1cGRhdGVPYnNlcnZlcnNgIGZvciAqKmFsbCoqIG1vZGVscy4gV2hlbiBgc3ludGhldGljRXZlbnRzYCBpcyBmYWxzZSB0aGVcbiAgICogZXhpc3RpbmcgZ2F0ZXdheS1iYXNlZCBjaGFpbmNvZGUtZXZlbnQgc3Vic2NyaXB0aW9uIGlzIGVzdGFibGlzaGVkIGFuZCB0aGVcbiAgICogbG9jYWwgUHJveHkgZmFsbGJhY2sgaXMgbGltaXRlZCB0byBmdWxseS1zZWdyZWdhdGVkICh0cmFuc2llbnQpIG1vZGVscyBvbmx5LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBpbml0aWFsaXphdGlvbiBpcyBjb21wbGV0ZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvciBjb25maWcgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoYCk7XG5cbiAgICBjb25zdCBzeW50aGV0aWNFdmVudHMgPSB0aGlzLmFkYXB0ZXIuY29uZmlnLnN5bnRoZXRpY0V2ZW50cyAhPT0gZmFsc2U7XG5cbiAgICBpZiAoIXN5bnRoZXRpY0V2ZW50cykge1xuICAgICAgLy8gR2F0ZXdheS1iYXNlZCBjaGFpbmNvZGUtZXZlbnQgc3Vic2NyaXB0aW9uIChub24tc3ludGhldGljIHBhdGgpXG4gICAgICBjb25zdCBjb250ZXh0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLmNvbnRleHQoXG4gICAgICAgIFwiZGlzcGF0Y2hcIixcbiAgICAgICAge1xuICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHRoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgTW9kZWwgYXMgYW55XG4gICAgICApO1xuICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5pbml0aWFsaXplKTtcbiAgICAgIGNvbnN0IGdhdGV3YXkgPSBhd2FpdCBGYWJyaWNDbGllbnRBZGFwdGVyLmdldEdhdGV3YXkoXG4gICAgICAgIGN0eCxcbiAgICAgICAgdGhpcy5hZGFwdGVyLmNvbmZpZyBhcyBQZWVyQ29uZmlnLFxuICAgICAgICB0aGlzLmNsaWVudFxuICAgICAgKTtcbiAgICAgIGNvbnN0IG5ldHdvcmsgPSBnYXRld2F5LmdldE5ldHdvcmsodGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFubmVsKTtcbiAgICAgIGlmICghdGhpcy5hZGFwdGVyKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvYnNlcnZlZCBmb3IgZGlzcGF0Y2hgKTtcbiAgICAgIHRoaXMubGlzdGVuaW5nU3RhY2sgPSBhd2FpdCBuZXR3b3JrLmdldENoYWluY29kZUV2ZW50cyhcbiAgICAgICAgdGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFpbmNvZGVOYW1lXG4gICAgICApO1xuICAgICAgdGhpcy5oYW5kbGVFdmVudHMoY3R4KTtcbiAgICB9XG5cbiAgICAvLyBQcm94eSBDUlVEIG1ldGhvZHMuXG4gICAgLy8g4oCiIHN5bnRoZXRpY0V2ZW50cyA9IHRydWUgIOKGkiBub3RpZnkgZm9yIEFMTCBtb2RlbHMgKHJlcGxhY2VzIGdhdGV3YXkgZXZlbnRzIGVudGlyZWx5KVxuICAgIC8vIOKAoiBzeW50aGV0aWNFdmVudHMgPSBmYWxzZSDihpIgbm90aWZ5IG9ubHkgZm9yIGZ1bGx5LXNlZ3JlZ2F0ZWQgKHRyYW5zaWVudCkgbW9kZWxzXG4gICAgLy8gICAodGhlIGdhdGV3YXkgc3Vic2NyaXB0aW9uIGhhbmRsZXMgcHVibGljIG1vZGVscylcbiAgICAoXG4gICAgICBbXG4gICAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMLFxuICAgICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTCxcbiAgICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsXG4gICAgICBdIGFzIChrZXlvZiBBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT4pW11cbiAgICApLmZvckVhY2goKHRvV3JhcCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIGBObyBhZGFwdGVyIHByb3ZpZGVkIGZvciB0aGUgZmFsbGJhY2sgb2YgZnVsbHkgc2VncmVnYXRlZCBtb2RlbHNgXG4gICAgICAgICk7XG4gICAgICBpZiAoIXRoaXMuYWRhcHRlclt0b1dyYXBdKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBgTWV0aG9kICR7dG9XcmFwfSBub3QgZm91bmQgaW4gJHt0aGlzLmFkYXB0ZXIuYWxpYXN9IGFkYXB0ZXIgdG8gYmluZCBPYnNlcnZhYmxlcyBEaXNwYXRjaGBcbiAgICAgICAgKTtcblxuICAgICAgbGV0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMuYWRhcHRlciwgdG9XcmFwKTtcbiAgICAgIGxldCBwcm90bzogYW55ID0gdGhpcy5hZGFwdGVyO1xuICAgICAgd2hpbGUgKCFkZXNjcmlwdG9yICYmIHByb3RvICE9PSBPYmplY3QucHJvdG90eXBlKSB7XG4gICAgICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgICAgICAgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocHJvdG8sIHRvV3JhcCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghZGVzY3JpcHRvciB8fCAhZGVzY3JpcHRvci53cml0YWJsZSkge1xuICAgICAgICB0aGlzLmxvZy5lcnJvcihcbiAgICAgICAgICBgQ291bGQgbm90IGZpbmQgbWV0aG9kICR7dG9XcmFwfSB0byBiaW5kIE9ic2VydmFibGVzIERpc3BhdGNoYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBidWxrVG9TaW5nbGUobWV0aG9kOiBzdHJpbmcpIHtcbiAgICAgICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgICAgICBjYXNlIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMOlxuICAgICAgICAgICAgcmV0dXJuIE9wZXJhdGlvbktleXMuQ1JFQVRFO1xuICAgICAgICAgIGNhc2UgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEw6XG4gICAgICAgICAgICByZXR1cm4gT3BlcmF0aW9uS2V5cy5VUERBVEU7XG4gICAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTDpcbiAgICAgICAgICAgIHJldHVybiBPcGVyYXRpb25LZXlzLkRFTEVURTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG1ldGhvZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGJlY2F1c2UgdGhlcmUgYXJlIHJlYWQgb25seSBwcm9wZXJ0aWVzXG4gICAgICB0aGlzLmFkYXB0ZXJbdG9XcmFwXSA9IG5ldyBQcm94eSh0aGlzLmFkYXB0ZXJbdG9XcmFwXSwge1xuICAgICAgICBhcHBseTogYXN5bmMgKFxuICAgICAgICAgIHRhcmdldDogYW55LFxuICAgICAgICAgIHRoaXNBcmc6IEZhYnJpY0NsaWVudEFkYXB0ZXIsXG4gICAgICAgICAgYXJnQXJyYXk6IGFueVtdXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIC8vIFJ1biB0aGUgb3JpZ2luYWwgbWV0aG9kIHVuY2hhbmdlZCBzbyB0cmFuc2llbnQgZGF0YSBpcyBwcmVzZXJ2ZWRcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0YXJnZXQuYXBwbHkodGhpc0FyZywgYXJnQXJyYXkpO1xuXG4gICAgICAgICAgY29uc3QgY2xheno6IENvbnN0cnVjdG9yPGFueT4gPSBhcmdBcnJheVswXTtcbiAgICAgICAgICAvLyBXaGVuIHN5bnRoZXRpY0V2ZW50cyBpcyBmYWxzZSwgcHVibGljIG1vZGVscyBlbWl0IGEgY2hhaW5jb2RlIGV2ZW50XG4gICAgICAgICAgLy8gb24gdGhlIGNvbnRyYWN0IHNpZGU7IHNraXAgdGhlIGxvY2FsIGZhbGxiYWNrIHRvIGF2b2lkXG4gICAgICAgICAgLy8gZG91YmxlLW5vdGlmaWNhdGlvbi4gV2hlbiBzeW50aGV0aWNFdmVudHMgaXMgdHJ1ZSB3ZSBoYW5kbGUgYWxsIG1vZGVscy5cbiAgICAgICAgICBpZiAoIXN5bnRoZXRpY0V2ZW50cyAmJiAhTW9kZWwuaXNUcmFuc2llbnQoY2xhenopKSByZXR1cm4gcmVzdWx0O1xuXG4gICAgICAgICAgLy8gQ29udGV4dCBpcyBhbHdheXMgdGhlIGxhc3QgZWxlbWVudCBvZiBhcmdBcnJheVxuICAgICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzLCBjdHggfSA9IHRoaXNBcmdbXCJsb2dDdHhcIl0oXG4gICAgICAgICAgICBhcmdBcnJheS5zbGljZShhcmdBcnJheS5sZW5ndGggLSAxKSxcbiAgICAgICAgICAgIHRhcmdldFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgaWRzID0gYXJnQXJyYXlbMV07XG4gICAgICAgICAgY29uc3QgcmVzdWx0QXJnczogYW55W10gPSBbY2xhenosIGJ1bGtUb1NpbmdsZSh0b1dyYXApLCBpZHNdO1xuXG4gICAgICAgICAgaWYgKGN0eC5nZXRPclVuZGVmaW5lZChcIm9ic2VydmVGdWxsUmVzdWx0XCIpKSB7XG4gICAgICAgICAgICByZXN1bHRBcmdzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy51cGRhdGVPYnNlcnZlcnMoXG4gICAgICAgICAgICByZXN1bHRBcmdzWzBdLFxuICAgICAgICAgICAgcmVzdWx0QXJnc1sxXSxcbiAgICAgICAgICAgIHJlc3VsdEFyZ3NbMl0sXG4gICAgICAgICAgICAuLi5yZXN1bHRBcmdzLnNsaWNlKDMpLFxuICAgICAgICAgICAgLi4uKGN0eEFyZ3MgYXMgQ29udGV4dHVhbEFyZ3M8RmFicmljQ2xpZW50Q29udGV4dD4pXG4gICAgICAgICAgKS5jYXRjaCgoZTogdW5rbm93bikgPT5cbiAgICAgICAgICAgIGxvZy5lcnJvcihcbiAgICAgICAgICAgICAgYEZhaWxlZCB0byBkaXNwYXRjaCBvYnNlcnZlciByZWZyZXNoIGZvciAke3RvV3JhcH0gb24gJHtjbGF6ei5uYW1lIHx8IGNsYXp6fSBmb3IgJHtpZHN9OiAke2V9YFxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG5cbmlmIChGYWJyaWNDbGllbnRBZGFwdGVyKVxuICBGYWJyaWNDbGllbnRBZGFwdGVyW1wiX2Jhc2VEaXNwYXRjaFwiXSA9IEZhYnJpY0NsaWVudERpc3BhdGNoO1xuIl19
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50RGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJGYWJyaWNDbGllbnREaXNwYXRjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBdUY7QUFDdkYscUVBQStEO0FBQy9ELDJEQUErRjtBQUMvRixxREFBdUQ7QUFDdkQseUVBQXVEO0FBQ3ZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsZUFBUTtJQUM5Qzs7OztPQUlHO0lBQ0gsWUFBWSxNQUFNO1FBQ2QsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQjs7V0FFRztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTztRQUNsQixNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsc0JBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQztZQUNELE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1AsR0FBRyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDO2dCQUNELE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxL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QyxDQUFDLENBQUM7b0JBQzlOLE9BQU8sTUFBTSxDQUFDO2dCQUNsQixDQUFDO2FBQ0osQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUFyT0Qsb0RBcU9DO0FBQ0QsSUFBSSw0Q0FBbUI7SUFDbkIsNENBQW1CLENBQUMsZUFBZSxDQUFDLEdBQUcsb0JBQW9CLENBQUM7QUFDaEUsay82QkFBay82QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkYXB0ZXIsIERpc3BhdGNoLCBVbnN1cHBvcnRlZEVycm9yLCBQZXJzaXN0ZW5jZUtleXMsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRBZGFwdGVyIH0gZnJvbSBcIi4vRmFicmljQ2xpZW50QWRhcHRlci5qc1wiO1xuaW1wb3J0IHsgQnVsa0NydWRPcGVyYXRpb25LZXlzLCBJbnRlcm5hbEVycm9yLCBPcGVyYXRpb25LZXlzLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgcGFyc2VFdmVudE5hbWUgfSBmcm9tIFwiLi8uLi9zaGFyZWQvZXZlbnRzLmpzXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEV2ZW50IGRpc3BhdGNoZXIgZm9yIEh5cGVybGVkZ2VyIEZhYnJpYyBjaGFpbmNvZGUgZXZlbnRzXG4gKiBAc3VtbWFyeSBMaXN0ZW5zIGZvciBhbmQgcHJvY2Vzc2VzIGV2ZW50cyBlbWl0dGVkIGJ5IEZhYnJpYyBjaGFpbmNvZGUsIGRpc3BhdGNoaW5nIHRoZW0gdG8gcmVnaXN0ZXJlZCBvYnNlcnZlcnNcbiAqIEB0ZW1wbGF0ZSBQZWVyQ29uZmlnIC0gQ29uZmlndXJhdGlvbiB0eXBlIGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAqIEBwYXJhbSBjbGllbnQgLSBnUlBDIGNsaWVudCBmb3IgY29ubmVjdGluZyB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAqIEBjbGFzcyBGYWJyaWNDbGllbnREaXNwYXRjaFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhIG5ldyBGYWJyaWNEaXNwYXRjaCBpbnN0YW5jZVxuICogY29uc3QgY2xpZW50ID0gYXdhaXQgRmFicmljQWRhcHRlci5nZXRDbGllbnQocGVlckNvbmZpZyk7XG4gKiBjb25zdCBkaXNwYXRjaCA9IG5ldyBGYWJyaWNEaXNwYXRjaChjbGllbnQpO1xuICpcbiAqIC8vIENvbmZpZ3VyZSB0aGUgZGlzcGF0Y2ggd2l0aCBwZWVyIGNvbmZpZ3VyYXRpb25cbiAqIGRpc3BhdGNoLmNvbmZpZ3VyZShwZWVyQ29uZmlnKTtcbiAqXG4gKiAvLyBSZWdpc3RlciBhbiBvYnNlcnZlciBmb3IgYSBzcGVjaWZpYyB0YWJsZSBhbmQgZXZlbnRcbiAqIGRpc3BhdGNoLm9ic2VydmUoJ3VzZXJzJywgJ2NyZWF0ZScsIChpZCkgPT4ge1xuICogICBjb25zb2xlLmxvZyhgVXNlciBjcmVhdGVkOiAke2lkfWApO1xuICogfSk7XG4gKlxuICogLy8gU3RhcnQgbGlzdGVuaW5nIGZvciBldmVudHNcbiAqIGF3YWl0IGRpc3BhdGNoLnN0YXJ0KCk7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IEZhYnJpY0Rpc3BhdGNoXG4gKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAqICAgcGFydGljaXBhbnQgTmV0d29ya1xuICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAqXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBuZXcgRmFicmljRGlzcGF0Y2goY2xpZW50KVxuICogICBDbGllbnQtPj5GYWJyaWNEaXNwYXRjaDogY29uZmlndXJlKHBlZXJDb25maWcpXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBvYnNlcnZlKHRhYmxlLCBldmVudCwgY2FsbGJhY2spXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBzdGFydCgpXG4gKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IGluaXRpYWxpemUoKVxuICogICBGYWJyaWNEaXNwYXRjaC0+PkdhdGV3YXk6IGdldEdhdGV3YXkoY29uZmlnLCBjbGllbnQpXG4gKiAgIEdhdGV3YXktPj5OZXR3b3JrOiBnZXROZXR3b3JrKGNoYW5uZWwpXG4gKiAgIE5ldHdvcmstPj5OZXR3b3JrOiBnZXRDaGFpbmNvZGVFdmVudHMoY2hhaW5jb2RlTmFtZSlcbiAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaGFuZGxlRXZlbnRzKClcbiAqICAgbG9vcCBGb3IgZWFjaCBldmVudFxuICogICAgIENoYWluY29kZS0tPj5GYWJyaWNEaXNwYXRjaDogQ2hhaW5jb2RlRXZlbnRcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZUV2ZW50TmFtZShldmVudE5hbWUpXG4gKiAgICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogcGFyc2VQYXlsb2FkKHBheWxvYWQpXG4gKiAgICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogdXBkYXRlT2JzZXJ2ZXJzKHRhYmxlLCBldmVudCwgaWQpXG4gKiAgICAgRmFicmljRGlzcGF0Y2gtLT4+Q2xpZW50OiBjYWxsYmFjayhpZClcbiAqICAgZW5kXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDbGllbnREaXNwYXRjaCBleHRlbmRzIERpc3BhdGNoIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBGYWJyaWNEaXNwYXRjaCBpbnN0YW5jZVxuICAgICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgZGlzcGF0Y2hlciBmb3IgRmFicmljIGNoYWluY29kZSBldmVudHNcbiAgICAgKiBAcGFyYW0ge0NsaWVudH0gY2xpZW50IC0gZ1JQQyBjbGllbnQgZm9yIGNvbm5lY3RpbmcgdG8gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoY2xpZW50KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY2xpZW50ID0gY2xpZW50O1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRleHQgZGVjb2RlciBmb3IgY29udmVydGluZyBldmVudCBwYXlsb2FkcyBmcm9tIGJ5dGVzIHRvIHN0cmluZ3NcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcihcInV0ZjhcIik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbG9zZXMgdGhlIGV2ZW50IGxpc3RlbmluZyBjb25uZWN0aW9uXG4gICAgICogQHN1bW1hcnkgU3RvcHMgbGlzdGVuaW5nIGZvciBjaGFpbmNvZGUgZXZlbnRzIGFuZCByZWxlYXNlcyByZXNvdXJjZXNcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWRcbiAgICAgKi9cbiAgICBhc3luYyBjbG9zZSguLi5jdHhBcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzOiBsb2dnZWRBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoY3R4QXJncywgUGVyc2lzdGVuY2VLZXlzLlNIVVRET1dOLCB0cnVlKSkuZm9yKHRoaXMuY2xvc2UpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgc3VwZXIuY2xvc2UoLi4ubG9nZ2VkQXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNsb3NlIEZhYnJpYyBwcm94aWVzIGV2ZW50IGxpc3RlbmVyYCwgZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGlzdGVuaW5nU3RhY2spIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5saXN0ZW5pbmdTdGFjay5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IoYEZhaWxlZCB0byBjbG9zZSBGYWJyaWMgZXZlbnQgbGlzdGVuZXJgLCBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdGVuaW5nU3RhY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBldmVudCBwYXlsb2FkIGZyb20gYmluYXJ5IGZvcm1hdFxuICAgICAqIEBzdW1tYXJ5IENvbnZlcnRzIGEgVWludDhBcnJheSBjb250YWluaW5nIEpTT04gdG8gYW4gb2JqZWN0IHdpdGggYW4gaWQgcHJvcGVydHlcbiAgICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGpzb25CeXRlcyAtIFRoZSBiaW5hcnkgcGF5bG9hZCBmcm9tIHRoZSBjaGFpbmNvZGUgZXZlbnRcbiAgICAgKiBAcmV0dXJuIHt7IGlkOiBzdHJpbmcgfX0gVGhlIHBhcnNlZCBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHJlY29yZCBJRFxuICAgICAqL1xuICAgIHBhcnNlUGF5bG9hZChqc29uQnl0ZXMpIHtcbiAgICAgICAgY29uc3QganNvbiA9IHRoaXMuZGVjb2Rlci5kZWNvZGUoanNvbkJ5dGVzKTtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoanNvbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTdGFydHMgb2JzZXJ2aW5nIGFuIGFkYXB0ZXJcbiAgICAgKiBAc3VtbWFyeSBDb25uZWN0cyB0aGlzIGRpc3BhdGNoIHRvIGFuIGFkYXB0ZXIgdG8gbW9uaXRvciBpdHMgb3BlcmF0aW9uc1xuICAgICAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIGFueSwgYW55LCBhbnk+fSBvYnNlcnZlciAtIFRoZSBhZGFwdGVyIHRvIG9ic2VydmVcbiAgICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgICAqL1xuICAgIG9ic2VydmUob2JzZXJ2ZXIpIHtcbiAgICAgICAgaWYgKCEob2JzZXJ2ZXIgaW5zdGFuY2VvZiBGYWJyaWNDbGllbnRBZGFwdGVyKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFwiT25seSBGYWJyaWNDbGllbnRBZGFwdGVyIGNhbiBiZSBvYnNlcnZlZCBieSBkaXNwYXRjaFwiKTtcbiAgICAgICAgc3VwZXIub2JzZXJ2ZShvYnNlcnZlcik7XG4gICAgICAgIHJldHVybiAoKSA9PiB0aGlzLnVuT2JzZXJ2ZShvYnNlcnZlcik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIG9ic2VydmVycyBhYm91dCBhIGRhdGFiYXNlIGV2ZW50XG4gICAgICogQHN1bW1hcnkgTm90aWZpZXMgb2JzZXJ2ZXJzIGFib3V0IGEgY2hhbmdlIGluIHRoZSBkYXRhYmFzZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSB3aGVyZSB0aGUgY2hhbmdlIG9jY3VycmVkXG4gICAgICogQHBhcmFtIHtPcGVyYXRpb25LZXlzfEJ1bGtDcnVkT3BlcmF0aW9uS2V5c3xzdHJpbmd9IGV2ZW50IC0gVGhlIHR5cGUgb2Ygb3BlcmF0aW9uIHRoYXQgb2NjdXJyZWRcbiAgICAgKiBAcGFyYW0ge2FueX0gcGF5bG9hZCAtIFRoZSBldmVudCBwYXlsb2FkXG4gICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgb2JzZXJ2ZXJzIGhhdmUgYmVlbiBub3RpZmllZFxuICAgICAqL1xuICAgIGFzeW5jIHVwZGF0ZU9ic2VydmVycyhtb2RlbCwgZXZlbnQsIGlkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSBBZGFwdGVyLmxvZ0N0eCh0aGlzLnVwZGF0ZU9ic2VydmVycywgZXZlbnQsIGZhbHNlLCAuLi5hcmdzKTtcbiAgICAgICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgICAgICAgIGxvZy52ZXJib3NlKGBObyBhZGFwdGVyIG9ic2VydmVkIGZvciBkaXNwYXRjaDsgc2tpcHBpbmcgb2JzZXJ2ZXIgdXBkYXRlIGZvciAke3R5cGVvZiBtb2RlbCA9PT0gXCJzdHJpbmdcIiA/IG1vZGVsIDogTW9kZWwudGFibGVOYW1lKG1vZGVsKX06JHtldmVudH1gKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5hZGFwdGVyLnJlZnJlc2gobW9kZWwsIGV2ZW50LCBpZCwgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gcmVmcmVzaCBkaXNwYXRjaDogJHtlfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQcm9jZXNzZXMgaW5jb21pbmcgY2hhaW5jb2RlIGV2ZW50c1xuICAgICAqIEBzdW1tYXJ5IExpc3RlbnMgZm9yIGV2ZW50cyBmcm9tIHRoZSBjaGFpbmNvZGUgYW5kIGRpc3BhdGNoZXMgdGhlbSB0byByZWdpc3RlcmVkIG9ic2VydmVyc1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGV2ZW50IGhhbmRsaW5nIHN0b3BzXG4gICAgICogQG1lcm1haWRcbiAgICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0Rpc3BhdGNoXG4gICAgICogICBwYXJ0aWNpcGFudCBFdmVudFN0YWNrXG4gICAgICogICBwYXJ0aWNpcGFudCBFdmVudFBhcnNlclxuICAgICAqICAgcGFydGljaXBhbnQgT2JzZXJ2ZXJzXG4gICAgICpcbiAgICAgKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IGhhbmRsZUV2ZW50cygpXG4gICAgICogICBGYWJyaWNEaXNwYXRjaC0+PkV2ZW50U3RhY2s6IGZvciBhd2FpdCAoY29uc3QgZXZ0IG9mIGxpc3RlbmluZ1N0YWNrKVxuICAgICAqICAgRXZlbnRTdGFjay0tPj5GYWJyaWNEaXNwYXRjaDogQ2hhaW5jb2RlRXZlbnRcbiAgICAgKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RXZlbnRQYXJzZXI6IHBhcnNlRXZlbnROYW1lKGV2dC5ldmVudE5hbWUpXG4gICAgICogICBFdmVudFBhcnNlci0tPj5GYWJyaWNEaXNwYXRjaDogeyB0YWJsZSwgZXZlbnQsIG93bmVyIH1cbiAgICAgKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IENoZWNrIGlmIGV2ZW50IGlzIGZvciB0aGlzIE1TUFxuICAgICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogcGFyc2VQYXlsb2FkKGV2dC5wYXlsb2FkKVxuICAgICAqICAgRmFicmljRGlzcGF0Y2gtPj5PYnNlcnZlcnM6IHVwZGF0ZU9ic2VydmVycyh0YWJsZSwgZXZlbnQsIHBheWxvYWQuaWQpXG4gICAgICogICBPYnNlcnZlcnMtLT4+RmFicmljRGlzcGF0Y2g6IENhbGxiYWNrcyBleGVjdXRlZFxuICAgICAqL1xuICAgIGFzeW5jIGhhbmRsZUV2ZW50cyhjdHhBcmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxpc3RlbmluZ1N0YWNrKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEV2ZW50IHN0YWNrIG5vdCBpbml0aWFsaXplZC4gRW5zdXJlIHRoYXQgXCJzdGFydExpc3RlbmluZ1wiIGlzIGNhbGxlZCBiZWZvcmUgYXR0ZW1wdGluZyB0aGlzIG9wZXJhdGlvbi5gKTtcbiAgICAgICAgaWYgKCF0aGlzLmFkYXB0ZXIgfHwgIXRoaXMuYWRhcHRlci5jb25maWcpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBmb3VuZC4gc2hvdWxkIGJlIGltcG9zc2libGVgKTtcbiAgICAgICAgY29uc3QgY3R4ID0gY3R4QXJnIHx8XG4gICAgICAgICAgICAoYXdhaXQgdGhpcy5hZGFwdGVyLmNvbnRleHQoT3BlcmF0aW9uS2V5cy5SRUFELCB7XG4gICAgICAgICAgICAgICAgY29ycmVsYXRpb25JZDogdGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFpbmNvZGVOYW1lLFxuICAgICAgICAgICAgfSwgKHRoaXMubW9kZWxzICYmIHRoaXMubW9kZWxzWzBdKSB8fCBNb2RlbCkpO1xuICAgICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5oYW5kbGVFdmVudHMpO1xuICAgICAgICBsb2cuaW5mbyhgTGlzdGVuaW5nIGZvciBpbmNvbWluZyBldmVudHMgb24gY2hhaW5jb2RlIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWV9XCIgb24gY2hhbm5lbCBcIiR7dGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFubmVsfVwiLi4uYCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGV2dCBvZiB0aGlzLmxpc3RlbmluZ1N0YWNrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB0YWJsZSwgZXZlbnQsIG93bmVyIH0gPSBwYXJzZUV2ZW50TmFtZShldnQuZXZlbnROYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hZGFwdGVyLmNvbmZpZz8ubXNwRXZlbnRPbmx5ICYmXG4gICAgICAgICAgICAgICAgICAgIG93bmVyICYmXG4gICAgICAgICAgICAgICAgICAgIG93bmVyICE9PSB0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BJZClcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHRoaXMucGFyc2VQYXlsb2FkKGV2dC5wYXlsb2FkKTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRNb2RlbCA9IHRhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IE1vZGVsLmdldCh0YWJsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogTW9kZWwuZ2V0KHRoaXMubW9kZWxzWzBdLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlbFJlZiA9IHRhcmdldE1vZGVsID8/ICh0YWJsZSB8fCB0aGlzLm1vZGVsc1swXT8ubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyQXJncyA9IHBheWxvYWQucmVzdWx0ID8gW3BheWxvYWQucmVzdWx0LCBjdHhdIDogW2N0eF07XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlT2JzZXJ2ZXJzKG1vZGVsUmVmLCBldmVudCwgcGF5bG9hZC5pZCwgLi4ub2JzZXJ2ZXJBcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKGBGYWlsZWQgdXBkYXRlIG9ic2VydmFibGVzIGZvciB0YWJsZSAke3RhYmxlfSBldmVudCAke2V2ZW50fSBpZDogJHtwYXlsb2FkLmlkfTogJHtlfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKGBGYWlsZWQgdG8gcmVhZCBldmVudCBmb3IgY2hhaW5jb2RlIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWV9XCIgb24gY2hhbm5lbCBcIiR7dGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFubmVsfVwiOiAke2V9YCk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNsb3NlKGN0eCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBldmVudCBsaXN0ZW5lclxuICAgICAqIEBzdW1tYXJ5IFNldHMgdXAgZXZlbnQgZGlzcGF0Y2hpbmcgZm9yIHRoZSBvYnNlcnZlZCBhZGFwdGVyLiBXaGVuXG4gICAgICogYHN5bnRoZXRpY0V2ZW50c2AgaXMgdHJ1ZSAodGhlIGRlZmF1bHQpIG5vIGdhdGV3YXkgY29ubmVjdGlvbiBpcyBvcGVuZWQ7XG4gICAgICogaW5zdGVhZCBldmVyeSBDUlVEIG9wZXJhdGlvbiBpcyB3cmFwcGVkIHdpdGggYSBQcm94eSB0aGF0IGZpcmVzXG4gICAgICogYHVwZGF0ZU9ic2VydmVyc2AgZm9yICoqYWxsKiogbW9kZWxzLiBXaGVuIGBzeW50aGV0aWNFdmVudHNgIGlzIGZhbHNlIHRoZVxuICAgICAqIGV4aXN0aW5nIGdhdGV3YXktYmFzZWQgY2hhaW5jb2RlLWV2ZW50IHN1YnNjcmlwdGlvbiBpcyBlc3RhYmxpc2hlZCBhbmQgdGhlXG4gICAgICogbG9jYWwgUHJveHkgZmFsbGJhY2sgaXMgbGltaXRlZCB0byBmdWxseS1zZWdyZWdhdGVkICh0cmFuc2llbnQpIG1vZGVscyBvbmx5LlxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGluaXRpYWxpemF0aW9uIGlzIGNvbXBsZXRlXG4gICAgICovXG4gICAgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvciBjb25maWcgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoYCk7XG4gICAgICAgIGNvbnN0IHN5bnRoZXRpY0V2ZW50cyA9IHRoaXMuYWRhcHRlci5jb25maWcuc3ludGhldGljRXZlbnRzICE9PSBmYWxzZTtcbiAgICAgICAgaWYgKCFzeW50aGV0aWNFdmVudHMpIHtcbiAgICAgICAgICAgIC8vIEdhdGV3YXktYmFzZWQgY2hhaW5jb2RlLWV2ZW50IHN1YnNjcmlwdGlvbiAobm9uLXN5bnRoZXRpYyBwYXRoKVxuICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IGF3YWl0IHRoaXMuYWRhcHRlci5jb250ZXh0KFwiZGlzcGF0Y2hcIiwge1xuICAgICAgICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHRoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZSxcbiAgICAgICAgICAgIH0sIE1vZGVsKTtcbiAgICAgICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgICAgICAgICBjb25zdCBnYXRld2F5ID0gYXdhaXQgRmFicmljQ2xpZW50QWRhcHRlci5nZXRHYXRld2F5KGN0eCwgdGhpcy5hZGFwdGVyLmNvbmZpZywgdGhpcy5jbGllbnQpO1xuICAgICAgICAgICAgY29uc3QgbmV0d29yayA9IGdhdGV3YXkuZ2V0TmV0d29yayh0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYW5uZWwpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIGFkYXB0ZXIgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoYCk7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbmluZ1N0YWNrID0gYXdhaXQgbmV0d29yay5nZXRDaGFpbmNvZGVFdmVudHModGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFpbmNvZGVOYW1lKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXZlbnRzKGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJveHkgQ1JVRCBtZXRob2RzLlxuICAgICAgICAvLyDigKIgc3ludGhldGljRXZlbnRzID0gdHJ1ZSAg4oaSIG5vdGlmeSBmb3IgQUxMIG1vZGVscyAocmVwbGFjZXMgZ2F0ZXdheSBldmVudHMgZW50aXJlbHkpXG4gICAgICAgIC8vIOKAoiBzeW50aGV0aWNFdmVudHMgPSBmYWxzZSDihpIgbm90aWZ5IG9ubHkgZm9yIGZ1bGx5LXNlZ3JlZ2F0ZWQgKHRyYW5zaWVudCkgbW9kZWxzXG4gICAgICAgIC8vICAgKHRoZSBnYXRld2F5IHN1YnNjcmlwdGlvbiBoYW5kbGVzIHB1YmxpYyBtb2RlbHMpXG4gICAgICAgIFtcbiAgICAgICAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgICAgICAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gICAgICAgICAgICBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICAgICAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMLFxuICAgICAgICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEwsXG4gICAgICAgICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTCxcbiAgICAgICAgXS5mb3JFYWNoKCh0b1dyYXApID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hZGFwdGVyKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBhZGFwdGVyIHByb3ZpZGVkIGZvciB0aGUgZmFsbGJhY2sgb2YgZnVsbHkgc2VncmVnYXRlZCBtb2RlbHNgKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5hZGFwdGVyW3RvV3JhcF0pXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE1ldGhvZCAke3RvV3JhcH0gbm90IGZvdW5kIGluICR7dGhpcy5hZGFwdGVyLmFsaWFzfSBhZGFwdGVyIHRvIGJpbmQgT2JzZXJ2YWJsZXMgRGlzcGF0Y2hgKTtcbiAgICAgICAgICAgIGxldCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLmFkYXB0ZXIsIHRvV3JhcCk7XG4gICAgICAgICAgICBsZXQgcHJvdG8gPSB0aGlzLmFkYXB0ZXI7XG4gICAgICAgICAgICB3aGlsZSAoIWRlc2NyaXB0b3IgJiYgcHJvdG8gIT09IE9iamVjdC5wcm90b3R5cGUpIHtcbiAgICAgICAgICAgICAgICBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90byk7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocHJvdG8sIHRvV3JhcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWRlc2NyaXB0b3IgfHwgIWRlc2NyaXB0b3Iud3JpdGFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZy5lcnJvcihgQ291bGQgbm90IGZpbmQgbWV0aG9kICR7dG9XcmFwfSB0byBiaW5kIE9ic2VydmFibGVzIERpc3BhdGNoYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gYnVsa1RvU2luZ2xlKG1ldGhvZCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQnVsa0NydWRPcGVyYXRpb25LZXlzLkNSRUFURV9BTEw6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT3BlcmF0aW9uS2V5cy5DUkVBVEU7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEw6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT3BlcmF0aW9uS2V5cy5VUERBVEU7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEw6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT3BlcmF0aW9uS2V5cy5ERUxFVEU7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWV0aG9kO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgYmVjYXVzZSB0aGVyZSBhcmUgcmVhZCBvbmx5IHByb3BlcnRpZXNcbiAgICAgICAgICAgIHRoaXMuYWRhcHRlclt0b1dyYXBdID0gbmV3IFByb3h5KHRoaXMuYWRhcHRlclt0b1dyYXBdLCB7XG4gICAgICAgICAgICAgICAgYXBwbHk6IGFzeW5jICh0YXJnZXQsIHRoaXNBcmcsIGFyZ0FycmF5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJ1biB0aGUgb3JpZ2luYWwgbWV0aG9kIHVuY2hhbmdlZCBzbyB0cmFuc2llbnQgZGF0YSBpcyBwcmVzZXJ2ZWRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGFyZ2V0LmFwcGx5KHRoaXNBcmcsIGFyZ0FycmF5KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xhenogPSBhcmdBcnJheVswXTtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiBzeW50aGV0aWNFdmVudHMgaXMgZmFsc2UsIHB1YmxpYyBtb2RlbHMgZW1pdCBhIGNoYWluY29kZSBldmVudFxuICAgICAgICAgICAgICAgICAgICAvLyBvbiB0aGUgY29udHJhY3Qgc2lkZTsgc2tpcCB0aGUgbG9jYWwgZmFsbGJhY2sgdG8gYXZvaWRcbiAgICAgICAgICAgICAgICAgICAgLy8gZG91YmxlLW5vdGlmaWNhdGlvbi4gV2hlbiBzeW50aGV0aWNFdmVudHMgaXMgdHJ1ZSB3ZSBoYW5kbGUgYWxsIG1vZGVscy5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzeW50aGV0aWNFdmVudHMgJiYgIU1vZGVsLmlzVHJhbnNpZW50KGNsYXp6KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIC8vIENvbnRleHQgaXMgYWx3YXlzIHRoZSBsYXN0IGVsZW1lbnQgb2YgYXJnQXJyYXlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MsIGN0eCB9ID0gdGhpc0FyZ1tcImxvZ0N0eFwiXShhcmdBcnJheS5zbGljZShhcmdBcnJheS5sZW5ndGggLSAxKSwgdGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWRzID0gYXJnQXJyYXlbMV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdEFyZ3MgPSBbY2xhenosIGJ1bGtUb1NpbmdsZSh0b1dyYXApLCBpZHNdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3R4LmdldE9yVW5kZWZpbmVkKFwib2JzZXJ2ZUZ1bGxSZXN1bHRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdEFyZ3MucHVzaChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlT2JzZXJ2ZXJzKHJlc3VsdEFyZ3NbMF0sIHJlc3VsdEFyZ3NbMV0sIHJlc3VsdEFyZ3NbMl0sIC4uLnJlc3VsdEFyZ3Muc2xpY2UoMyksIC4uLmN0eEFyZ3MpLmNhdGNoKChlKSA9PiBsb2cuZXJyb3IoYEZhaWxlZCB0byBkaXNwYXRjaCBvYnNlcnZlciByZWZyZXNoIGZvciAke3RvV3JhcH0gb24gJHtjbGF6ei5uYW1lIHx8IGNsYXp6fSBmb3IgJHtpZHN9OiAke2V9YCkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuaWYgKEZhYnJpY0NsaWVudEFkYXB0ZXIpXG4gICAgRmFicmljQ2xpZW50QWRhcHRlcltcIl9iYXNlRGlzcGF0Y2hcIl0gPSBGYWJyaWNDbGllbnREaXNwYXRjaDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJtRmljbWxqUTJ4cFpXNTBSR2x6Y0dGMFkyZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk5emNtTXZZMnhwWlc1MEwwWmhZbkpwWTBOc2FXVnVkRVJwYzNCaGRHTm9MblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGRFRDeFBRVUZQTEVWQlJWQXNVVUZCVVN4RlFVVlNMR2RDUVVGblFpeEZRVU5vUWl4bFFVRmxMRWRCUTJoQ0xFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkhlRUlzVDBGQlR5eEZRVUZGTEcxQ1FVRnRRaXhGUVVGRkxHbERRVUU0UWp0QlFVVTFSQ3hQUVVGUExFVkJRMHdzY1VKQlFYRkNMRVZCUTNKQ0xHRkJRV0VzUlVGRFlpeGhRVUZoTEVkQlEyUXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVXRxUXl4UFFVRlBMRVZCUVVVc1kwRkJZeXhGUVVGRkxEaENRVUY1UWp0QlFVTnNSQ3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGSGRrUTdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMGRCSzBOSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEc5Q1FVRnhRaXhUUVVGUkxGRkJRVFpDTzBsQlYzSkZPenM3TzA5QlNVYzdTVUZEU0N4WlFVRnpRaXhOUVVGak8xRkJRMnhETEV0QlFVc3NSVUZCUlN4RFFVRkRPMUZCUkZrc1YwRkJUU3hIUVVGT0xFMUJRVTBzUTBGQlVUdFJRVlp3UXpzN1YwRkZSenRSUVVOTExGbEJRVThzUjBGQlJ5eEpRVUZKTEZkQlFWY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVZNeFF5eERRVUZETzBsQlJVUTdPenM3VDBGSlJ6dEpRVU5OTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUTJ4Q0xFZEJRVWNzVDBGQk5FTTdVVUZGTDBNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNWVUZCVlN4RlFVRkZMRWRCUVVjc1EwRkRia01zVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c1JVRkJSU3hsUVVGbExFTkJRVU1zVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTXpSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRiRUlzU1VGQlNTeERRVUZETzFsQlEwZ3NUVUZCVFN4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEYmtNc1EwRkJRenRSUVVGRExFOUJRVThzUTBGQlZTeEZRVUZGTEVOQlFVTTdXVUZEY0VJc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5d3JRMEZCSzBNc1JVRkJSU3hEUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU42UlN4RFFVRkRPMUZCUTBRc1NVRkJTU3hKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdXVUZEZUVJc1NVRkJTU3hEUVVGRE8yZENRVU5JTEUxQlFVMHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dFpRVU53UXl4RFFVRkRPMWxCUVVNc1QwRkJUeXhEUVVGVkxFVkJRVVVzUTBGQlF6dG5Ra0ZEY0VJc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eDFRMEZCZFVNc1JVRkJSU3hEUVVGVkxFTkJRVU1zUTBGQlF6dFpRVU5xUlN4RFFVRkRPMjlDUVVGVExFTkJRVU03WjBKQlExUXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhUUVVGVExFTkJRVU03V1VGRGJFTXNRMEZCUXp0UlFVTklMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wbEJSVVE3T3pzN08wOUJTMGM3U1VGRFN5eFpRVUZaTEVOQlFVTXNVMEZCY1VJN1VVRkRlRU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZETlVNc1QwRkJUeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpGQ0xFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVU5OTEU5QlFVOHNRMEZCUXl4UlFVRnhRenRSUVVOd1JDeEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRmxCUVZrc2JVSkJRVzFDTEVOQlFVTTdXVUZETlVNc1RVRkJUU3hKUVVGSkxHZENRVUZuUWl4RFFVTjRRaXh6UkVGQmMwUXNRMEZEZGtRc1EwRkJRenRSUVVOS0xFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNVVUZCSzBJc1EwRkJReXhEUVVGRE8xRkJReTlETEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0SlFVTjRReXhEUVVGRE8wbEJSVVE3T3pzN096czdUMEZQUnp0SlFVTk5MRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRelZDTEV0QlFXZERMRVZCUTJoRExFdEJRWEZFTEVWQlEzSkVMRVZCUVZrc1JVRkRXaXhIUVVGSExFbEJRWGxETzFGQlJUVkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkRja01zU1VGQlNTeERRVUZETEdWQlFXVXNSVUZEY0VJc1MwRkJTeXhGUVVOTUxFdEJRVXNzUlVGRFRDeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMUZCUTBZc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0WlFVTnNRaXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVU5VTEd0RlFVRnJSU3hQUVVGUExFdEJRVXNzUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hMUVVGTExFVkJRVVVzUTBGRGVFa3NRMEZCUXp0WlFVTkdMRTlCUVU4N1VVRkRWQ3hEUVVGRE8xRkJRMFFzU1VGQlNTeERRVUZETzFsQlEwZ3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlF6TkVMRU5CUVVNN1VVRkJReXhQUVVGUExFTkJRVlVzUlVGQlJTeERRVUZETzFsQlEzQkNMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zSzBKQlFTdENMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRE9VUXNRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenM3T3pzN096czdPenM3VDBGdlFrYzdTVUZEVHl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVNeFFpeE5RVUUwUWp0UlFVVTFRaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTTdXVUZEZEVJc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNkVWRCUVhWSExFTkJRM2hITEVOQlFVTTdVVUZGU2l4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUVHRaUVVOMlF5eE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMSGREUVVGM1F5eERRVUZETEVOQlFVTTdVVUZGY0VVc1RVRkJUU3hIUVVGSExFZEJRMUFzVFVGQlRUdFpRVU5PTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGRGVrSXNZVUZCWVN4RFFVRkRMRWxCUVVrc1JVRkRiRUk3WjBKQlEwVXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEdGQlFXRTdZVUZEYWtRc1JVRkRSQ3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZMTEV0QlFXZERMRU5CUTNKRkxFTkJRVU1zUTBGQlF6dFJRVU5NTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVVMVF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVTk9MQ3REUVVFclF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhoUVVGaExHbENRVUZwUWl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEUxQlFVMHNRMEZEYmtrc1EwRkJRenRSUVVWR0xFbEJRVWtzUTBGQlF6dFpRVU5JTEVsQlFVa3NTMEZCU3l4RlFVRkZMRTFCUVUwc1IwRkJSeXhKUVVGSkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0blFrRkROVU1zVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFZEJRVWNzWTBGQll5eERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRE9VUXNTVUZEUlN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeFpRVUZaTzI5Q1FVTnFReXhMUVVGTE8yOUNRVU5NTEV0QlFVc3NTMEZCU3l4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeExRVUZMTzI5Q1FVVndReXhUUVVGVE8yZENRVU5ZTEUxQlFVMHNUMEZCVHl4SFFVRnBReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVU0zUkN4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVOYUxFTkJRVU03WjBKQlEwWXNTVUZCU1N4RFFVRkRPMjlDUVVOSUxFMUJRVTBzVjBGQlZ5eEhRVUZITEV0QlFVczdkMEpCUTNaQ0xFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJRenQzUWtGRGJFSXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dHZRa0ZEYmtNc1RVRkJUU3hSUVVGUkxFZEJRVWNzVjBGQlZ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN2IwSkJRMmhGTEUxQlFVMHNXVUZCV1N4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenR2UWtGRGNFVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVONFFpeFJRVUZuUXl4RlFVTm9ReXhMUVVGTExFVkJRMHdzVDBGQlR5eERRVUZETEVWQlFWa3NSVUZEY0VJc1IwRkJTU3haUVVGdlF5eERRVU42UXl4RFFVRkRPMmRDUVVOS0xFTkJRVU03WjBKQlFVTXNUMEZCVHl4RFFVRlZMRVZCUVVVc1EwRkJRenR2UWtGRGNFSXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3gxUTBGQmRVTXNTMEZCU3l4VlFVRlZMRXRCUVVzc1VVRkJVU3hQUVVGUExFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVTjBSaXhEUVVGRE8yZENRVU5LTEVOQlFVTTdXVUZEU0N4RFFVRkRPMUZCUTBnc1EwRkJRenRSUVVGRExFOUJRVThzUTBGQlRTeEZRVUZGTEVOQlFVTTdXVUZEYUVJc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGRFVDeDFRMEZCZFVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNZVUZCWVN4cFFrRkJhVUlzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVU01U0N4RFFVRkRPMWxCUTBZc1RVRkJUU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNoQ0xFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVUTdPenM3T3pzN096dFBRVk5ITzBsQlEyZENMRXRCUVVzc1EwRkJReXhWUVVGVk8xRkJRMnBETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUenRaUVVObUxFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNORU5CUVRSRExFTkJRVU1zUTBGQlF6dFJRVVY0UlN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4bFFVRmxMRXRCUVVzc1MwRkJTeXhEUVVGRE8xRkJSWFJGTEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRaUVVOeVFpeHJSVUZCYTBVN1dVRkRiRVVzVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGRGVFTXNWVUZCVlN4RlFVTldPMmRDUVVORkxHRkJRV0VzUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhoUVVGaE8yRkJRMnBFTEVWQlEwUXNTMEZCV1N4RFFVTmlMRU5CUVVNN1dVRkRSaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRaUVVONFJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRzFDUVVGdFFpeERRVUZETEZWQlFWVXNRMEZEYkVRc1IwRkJSeXhGUVVOSUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCYjBJc1JVRkRha01zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZEV2l4RFFVRkRPMWxCUTBZc1RVRkJUU3hQUVVGUExFZEJRVWNzVDBGQlR5eERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVTm9SU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVODdaMEpCUTJZc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5eHJRMEZCYTBNc1EwRkJReXhEUVVGRE8xbEJRemxFTEVsQlFVa3NRMEZCUXl4alFVRmpMRWRCUVVjc1RVRkJUU3hQUVVGUExFTkJRVU1zYTBKQlFXdENMRU5CUTNCRUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkRiRU1zUTBGQlF6dFpRVU5HTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGVrSXNRMEZCUXp0UlFVVkVMSE5DUVVGelFqdFJRVU4wUWl4MVJrRkJkVVk3VVVGRGRrWXNhMFpCUVd0R08xRkJRMnhHTEhGRVFVRnhSRHRSUVVWdVJEdFpRVU5GTEdGQlFXRXNRMEZCUXl4TlFVRk5PMWxCUTNCQ0xHRkJRV0VzUTBGQlF5eE5RVUZOTzFsQlEzQkNMR0ZCUVdFc1EwRkJReXhOUVVGTk8xbEJRM0JDTEhGQ1FVRnhRaXhEUVVGRExGVkJRVlU3V1VGRGFFTXNjVUpCUVhGQ0xFTkJRVU1zVlVGQlZUdFpRVU5vUXl4eFFrRkJjVUlzUTBGQlF5eFZRVUZWTzFOQlJXNURMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVTdXVUZEYmtJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTzJkQ1FVTm1MRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRM0pDTEdsRlFVRnBSU3hEUVVOc1JTeERRVUZETzFsQlEwb3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETzJkQ1FVTjJRaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVU55UWl4VlFVRlZMRTFCUVUwc2FVSkJRV2xDTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXgxUTBGQmRVTXNRMEZETTBZc1EwRkJRenRaUVVWS0xFbEJRVWtzVlVGQlZTeEhRVUZITEUxQlFVMHNRMEZCUXl4M1FrRkJkMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRM1pGTEVsQlFVa3NTMEZCU3l4SFFVRlJMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU03V1VGRE9VSXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hMUVVGTExFdEJRVXNzVFVGQlRTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMmRDUVVOcVJDeExRVUZMTEVkQlFVY3NUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dG5Ra0ZEY2tNc1ZVRkJWU3hIUVVGSExFMUJRVTBzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhMUVVGTExFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdXVUZET1VRc1EwRkJRenRaUVVWRUxFbEJRVWtzUTBGQlF5eFZRVUZWTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU03WjBKQlEzaERMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5hTEhsQ1FVRjVRaXhOUVVGTkxDdENRVUVyUWl4RFFVTXZSQ3hEUVVGRE8yZENRVU5HTEU5QlFVODdXVUZEVkN4RFFVRkRPMWxCUTBRc1UwRkJVeXhaUVVGWkxFTkJRVU1zVFVGQll6dG5Ra0ZEYkVNc1VVRkJVU3hOUVVGTkxFVkJRVVVzUTBGQlF6dHZRa0ZEWml4TFFVRkxMSEZDUVVGeFFpeERRVUZETEZWQlFWVTdkMEpCUTI1RExFOUJRVThzWVVGQllTeERRVUZETEUxQlFVMHNRMEZCUXp0dlFrRkRPVUlzUzBGQlN5eHhRa0ZCY1VJc1EwRkJReXhWUVVGVk8zZENRVU51UXl4UFFVRlBMR0ZCUVdFc1EwRkJReXhOUVVGTkxFTkJRVU03YjBKQlF6bENMRXRCUVVzc2NVSkJRWEZDTEVOQlFVTXNWVUZCVlR0M1FrRkRia01zVDBGQlR5eGhRVUZoTEVOQlFVTXNUVUZCVFN4RFFVRkRPMjlDUVVNNVFqdDNRa0ZEUlN4UFFVRlBMRTFCUVUwc1EwRkJRenRuUWtGRGJFSXNRMEZCUXp0WlFVTklMRU5CUVVNN1dVRkZSQ3d3UkVGQk1FUTdXVUZETVVRc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZPMmRDUVVOeVJDeExRVUZMTEVWQlFVVXNTMEZCU3l4RlFVTldMRTFCUVZjc1JVRkRXQ3hQUVVFMFFpeEZRVU0xUWl4UlFVRmxMRVZCUTJZc1JVRkJSVHR2UWtGRFJpeHRSVUZCYlVVN2IwSkJRMjVGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNN2IwSkJSWEpFTEUxQlFVMHNTMEZCU3l4SFFVRnhRaXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUXpWRExITkZRVUZ6UlR0dlFrRkRkRVVzZVVSQlFYbEVPMjlDUVVONlJDd3dSVUZCTUVVN2IwSkJRekZGTEVsQlFVa3NRMEZCUXl4bFFVRmxMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXp0M1FrRkJSU3hQUVVGUExFMUJRVTBzUTBGQlF6dHZRa0ZGYWtVc2FVUkJRV2xFTzI5Q1FVTnFSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlF6ZERMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkRia01zVFVGQlRTeERRVU5RTEVOQlFVTTdiMEpCUTBZc1RVRkJUU3hIUVVGSExFZEJRVWNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVONFFpeE5RVUZOTEZWQlFWVXNSMEZCVlN4RFFVRkRMRXRCUVVzc1JVRkJSU3haUVVGWkxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN2IwSkJSVGRFTEVsQlFVa3NSMEZCUnl4RFFVRkRMR05CUVdNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RlFVRkZMRU5CUVVNN2QwSkJRelZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03YjBKQlF6RkNMRU5CUVVNN2IwSkJRMFFzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZEYkVJc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVU5pTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkRZaXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlEySXNSMEZCUnl4VlFVRlZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVU4wUWl4SFFVRkpMRTlCUVN0RExFTkJRM0JFTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJWU3hGUVVGRkxFVkJRVVVzUTBGRGNrSXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3d5UTBGQk1rTXNUVUZCVFN4UFFVRlBMRXRCUVVzc1EwRkJReXhKUVVGSkxFbEJRVWtzUzBGQlN5eFJRVUZSTEVkQlFVY3NTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkRMMFlzUTBGRFJpeERRVUZETzI5Q1FVTkdMRTlCUVU4c1RVRkJUU3hEUVVGRE8yZENRVU5vUWl4RFFVRkRPMkZCUTBZc1EwRkJReXhEUVVGRE8xRkJRMHdzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEVEN4RFFVRkRPME5CUTBZN1FVRkZSQ3hKUVVGSkxHMUNRVUZ0UWp0SlFVTnlRaXh0UWtGQmJVSXNRMEZCUXl4bFFVRmxMRU5CUVVNc1IwRkJSeXh2UWtGQmIwSXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1hHNGdJRUZrWVhCMFpYSXNYRzRnSUVOdmJuUmxlSFIxWVd4QmNtZHpMRnh1SUNCRWFYTndZWFJqYUN4Y2JpQWdSWFpsYm5SSlpITXNYRzRnSUZWdWMzVndjRzl5ZEdWa1JYSnliM0lzWEc0Z0lGQmxjbk5wYzNSbGJtTmxTMlY1Y3l4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QlFaV1Z5UTI5dVptbG5JSDBnWm5KdmJTQmNJaTR1TDNOb1lYSmxaQzkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHNnUTJ4cFpXNTBJSDBnWm5KdmJTQmNJa0JuY25CakwyZHljR010YW5OY0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWElnZlNCbWNtOXRJRndpTGk5R1lXSnlhV05EYkdsbGJuUkJaR0Z3ZEdWeVhDSTdYRzVwYlhCdmNuUWdleUJHWVdKeWFXTkRiR2xsYm5SRGIyNTBaWGgwSUgwZ1puSnZiU0JjSWk0dlJtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRGd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1FuVnNhME55ZFdSUGNHVnlZWFJwYjI1TFpYbHpMRnh1SUNCSmJuUmxjbTVoYkVWeWNtOXlMRnh1SUNCUGNHVnlZWFJwYjI1TFpYbHpMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFTm9ZV2x1WTI5a1pVVjJaVzUwTEZ4dUlDQkRiRzl6WldGaWJHVkJjM2x1WTBsMFpYSmhZbXhsTEZ4dWZTQm1jbTl0SUZ3aVFHaDVjR1Z5YkdWa1oyVnlMMlpoWW5KcFl5MW5ZWFJsZDJGNVhDSTdYRzVwYlhCdmNuUWdleUJ3WVhKelpVVjJaVzUwVG1GdFpTQjlJR1p5YjIwZ1hDSXVMaTl6YUdGeVpXUXZaWFpsYm5SelhDSTdYRzVwYlhCdmNuUWdleUJOYjJSbGJDQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHOXlMWFpoYkdsa1lYUnBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lFTnZibk4wY25WamRHOXlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBhVzl1WENJN1hHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVWMlpXNTBJR1JwYzNCaGRHTm9aWElnWm05eUlFaDVjR1Z5YkdWa1oyVnlJRVpoWW5KcFl5QmphR0ZwYm1OdlpHVWdaWFpsYm5SelhHNGdLaUJBYzNWdGJXRnllU0JNYVhOMFpXNXpJR1p2Y2lCaGJtUWdjSEp2WTJWemMyVnpJR1YyWlc1MGN5QmxiV2wwZEdWa0lHSjVJRVpoWW5KcFl5QmphR0ZwYm1OdlpHVXNJR1JwYzNCaGRHTm9hVzVuSUhSb1pXMGdkRzhnY21WbmFYTjBaWEpsWkNCdlluTmxjblpsY25OY2JpQXFJRUIwWlcxd2JHRjBaU0JRWldWeVEyOXVabWxuSUMwZ1EyOXVabWxuZFhKaGRHbHZiaUIwZVhCbElHWnZjaUJqYjI1dVpXTjBhVzVuSUhSdklHRWdSbUZpY21saklIQmxaWEpjYmlBcUlFQndZWEpoYlNCamJHbGxiblFnTFNCblVsQkRJR05zYVdWdWRDQm1iM0lnWTI5dWJtVmpkR2x1WnlCMGJ5QjBhR1VnUm1GaWNtbGpJRzVsZEhkdmNtdGNiaUFxSUVCamJHRnpjeUJHWVdKeWFXTkRiR2xsYm5SRWFYTndZWFJqYUZ4dUlDb2dRR1Y0WVcxd2JHVmNiaUFxSUdCZ1lIUjVjR1Z6WTNKcGNIUmNiaUFxSUM4dklFTnlaV0YwWlNCaElHNWxkeUJHWVdKeWFXTkVhWE53WVhSamFDQnBibk4wWVc1alpWeHVJQ29nWTI5dWMzUWdZMnhwWlc1MElEMGdZWGRoYVhRZ1JtRmljbWxqUVdSaGNIUmxjaTVuWlhSRGJHbGxiblFvY0dWbGNrTnZibVpwWnlrN1hHNGdLaUJqYjI1emRDQmthWE53WVhSamFDQTlJRzVsZHlCR1lXSnlhV05FYVhOd1lYUmphQ2hqYkdsbGJuUXBPMXh1SUNwY2JpQXFJQzh2SUVOdmJtWnBaM1Z5WlNCMGFHVWdaR2x6Y0dGMFkyZ2dkMmwwYUNCd1pXVnlJR052Ym1acFozVnlZWFJwYjI1Y2JpQXFJR1JwYzNCaGRHTm9MbU52Ym1acFozVnlaU2h3WldWeVEyOXVabWxuS1R0Y2JpQXFYRzRnS2lBdkx5QlNaV2RwYzNSbGNpQmhiaUJ2WW5ObGNuWmxjaUJtYjNJZ1lTQnpjR1ZqYVdacFl5QjBZV0pzWlNCaGJtUWdaWFpsYm5SY2JpQXFJR1JwYzNCaGRHTm9MbTlpYzJWeWRtVW9KM1Z6WlhKekp5d2dKMk55WldGMFpTY3NJQ2hwWkNrZ1BUNGdlMXh1SUNvZ0lDQmpiMjV6YjJ4bExteHZaeWhnVlhObGNpQmpjbVZoZEdWa09pQWtlMmxrZldBcE8xeHVJQ29nZlNrN1hHNGdLbHh1SUNvZ0x5OGdVM1JoY25RZ2JHbHpkR1Z1YVc1bklHWnZjaUJsZG1WdWRITmNiaUFxSUdGM1lXbDBJR1JwYzNCaGRHTm9Mbk4wWVhKMEtDazdYRzRnS2lCZ1lHQmNiaUFxSUVCdFpYSnRZV2xrWEc0Z0tpQnpaWEYxWlc1alpVUnBZV2R5WVcxY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1EyeHBaVzUwWEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUVaaFluSnBZMFJwYzNCaGRHTm9YRzRnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRWRoZEdWM1lYbGNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdUbVYwZDI5eWExeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkRhR0ZwYm1OdlpHVmNiaUFxWEc0Z0tpQWdJRU5zYVdWdWRDMCtQa1poWW5KcFkwUnBjM0JoZEdOb09pQnVaWGNnUm1GaWNtbGpSR2x6Y0dGMFkyZ29ZMnhwWlc1MEtWeHVJQ29nSUNCRGJHbGxiblF0UGo1R1lXSnlhV05FYVhOd1lYUmphRG9nWTI5dVptbG5kWEpsS0hCbFpYSkRiMjVtYVdjcFhHNGdLaUFnSUVOc2FXVnVkQzArUGtaaFluSnBZMFJwYzNCaGRHTm9PaUJ2WW5ObGNuWmxLSFJoWW14bExDQmxkbVZ1ZEN3Z1kyRnNiR0poWTJzcFhHNGdLaUFnSUVOc2FXVnVkQzArUGtaaFluSnBZMFJwYzNCaGRHTm9PaUJ6ZEdGeWRDZ3BYRzRnS2lBZ0lFWmhZbkpwWTBScGMzQmhkR05vTFQ0K1JtRmljbWxqUkdsemNHRjBZMmc2SUdsdWFYUnBZV3hwZW1Vb0tWeHVJQ29nSUNCR1lXSnlhV05FYVhOd1lYUmphQzArUGtkaGRHVjNZWGs2SUdkbGRFZGhkR1YzWVhrb1kyOXVabWxuTENCamJHbGxiblFwWEc0Z0tpQWdJRWRoZEdWM1lYa3RQajVPWlhSM2IzSnJPaUJuWlhST1pYUjNiM0pyS0dOb1lXNXVaV3dwWEc0Z0tpQWdJRTVsZEhkdmNtc3RQajVPWlhSM2IzSnJPaUJuWlhSRGFHRnBibU52WkdWRmRtVnVkSE1vWTJoaGFXNWpiMlJsVG1GdFpTbGNiaUFxSUNBZ1JtRmljbWxqUkdsemNHRjBZMmd0UGo1R1lXSnlhV05FYVhOd1lYUmphRG9nYUdGdVpHeGxSWFpsYm5SektDbGNiaUFxSUNBZ2JHOXZjQ0JHYjNJZ1pXRmphQ0JsZG1WdWRGeHVJQ29nSUNBZ0lFTm9ZV2x1WTI5a1pTMHRQajVHWVdKeWFXTkVhWE53WVhSamFEb2dRMmhoYVc1amIyUmxSWFpsYm5SY2JpQXFJQ0FnSUNCR1lXSnlhV05FYVhOd1lYUmphQzArUGtaaFluSnBZMFJwYzNCaGRHTm9PaUJ3WVhKelpVVjJaVzUwVG1GdFpTaGxkbVZ1ZEU1aGJXVXBYRzRnS2lBZ0lDQWdSbUZpY21salJHbHpjR0YwWTJndFBqNUdZV0p5YVdORWFYTndZWFJqYURvZ2NHRnljMlZRWVhsc2IyRmtLSEJoZVd4dllXUXBYRzRnS2lBZ0lDQWdSbUZpY21salJHbHpjR0YwWTJndFBqNUdZV0p5YVdORWFYTndZWFJqYURvZ2RYQmtZWFJsVDJKelpYSjJaWEp6S0hSaFlteGxMQ0JsZG1WdWRDd2dhV1FwWEc0Z0tpQWdJQ0FnUm1GaWNtbGpSR2x6Y0dGMFkyZ3RMVDQrUTJ4cFpXNTBPaUJqWVd4c1ltRmpheWhwWkNsY2JpQXFJQ0FnWlc1a1hHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5QkdZV0p5YVdORGJHbGxiblJFYVhOd1lYUmphQ0JsZUhSbGJtUnpJRVJwYzNCaGRHTm9QRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWEkrSUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRmRtVnVkQ0JzYVhOMFpXNXBibWNnYzNSaFkyc2dabTl5SUdOb1lXbHVZMjlrWlNCbGRtVnVkSE5jYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnYkdsemRHVnVhVzVuVTNSaFkycy9PaUJEYkc5elpXRmliR1ZCYzNsdVkwbDBaWEpoWW14bFBFTm9ZV2x1WTI5a1pVVjJaVzUwUGp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGUmxlSFFnWkdWamIyUmxjaUJtYjNJZ1kyOXVkbVZ5ZEdsdVp5QmxkbVZ1ZENCd1lYbHNiMkZrY3lCbWNtOXRJR0o1ZEdWeklIUnZJSE4wY21sdVozTmNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdaR1ZqYjJSbGNpQTlJRzVsZHlCVVpYaDBSR1ZqYjJSbGNpaGNJblYwWmpoY0lpazdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJEY21WaGRHVnpJR0VnYm1WM0lFWmhZbkpwWTBScGMzQmhkR05vSUdsdWMzUmhibU5sWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRWx1YVhScFlXeHBlbVZ6SUdFZ1pHbHpjR0YwWTJobGNpQm1iM0lnUm1GaWNtbGpJR05vWVdsdVkyOWtaU0JsZG1WdWRITmNiaUFnSUNvZ1FIQmhjbUZ0SUh0RGJHbGxiblI5SUdOc2FXVnVkQ0F0SUdkU1VFTWdZMnhwWlc1MElHWnZjaUJqYjI1dVpXTjBhVzVuSUhSdklIUm9aU0JHWVdKeWFXTWdibVYwZDI5eWExeHVJQ0FnS2k5Y2JpQWdZMjl1YzNSeWRXTjBiM0lvY0hKdmRHVmpkR1ZrSUdOc2FXVnVkRG9nUTJ4cFpXNTBLU0I3WEc0Z0lDQWdjM1Z3WlhJb0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1EyeHZjMlZ6SUhSb1pTQmxkbVZ1ZENCc2FYTjBaVzVwYm1jZ1kyOXVibVZqZEdsdmJseHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCVGRHOXdjeUJzYVhOMFpXNXBibWNnWm05eUlHTm9ZV2x1WTI5a1pTQmxkbVZ1ZEhNZ1lXNWtJSEpsYkdWaGMyVnpJSEpsYzI5MWNtTmxjMXh1SUNBZ0tpQkFjbVYwZFhKdUlIdFFjbTl0YVhObFBIWnZhV1ErZlNCUWNtOXRhWE5sSUhSb1lYUWdjbVZ6YjJ4MlpYTWdkMmhsYmlCMGFHVWdZMjl1Ym1WamRHbHZiaUJwY3lCamJHOXpaV1JjYmlBZ0lDb3ZYRzRnSUc5MlpYSnlhV1JsSUdGemVXNWpJR05zYjNObEtGeHVJQ0FnSUM0dUxtTjBlRUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEVaaFluSnBZME5zYVdWdWRFTnZiblJsZUhRK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhoQmNtZHpPaUJzYjJkblpXUkJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGpkSGhCY21kekxDQlFaWEp6YVhOMFpXNWpaVXRsZVhNdVUwaFZWRVJQVjA0c0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVqYkc5elpTazdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJR0YzWVdsMElITjFjR1Z5TG1Oc2IzTmxLQzR1TG14dloyZGxaRUZ5WjNNcE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dVNklIVnVhMjV2ZDI0cElIdGNiaUFnSUNBZ0lHeHZaeTVsY25KdmNpaGdSbUZwYkdWa0lIUnZJR05zYjNObElFWmhZbkpwWXlCd2NtOTRhV1Z6SUdWMlpXNTBJR3hwYzNSbGJtVnlZQ3dnWlNCaGN5QkZjbkp2Y2lrN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoMGFHbHpMbXhwYzNSbGJtbHVaMU4wWVdOcktTQjdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHBjM1JsYm1sdVoxTjBZV05yTG1Oc2IzTmxLQ2s3WEc0Z0lDQWdJQ0I5SUdOaGRHTm9JQ2hsT2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnSUNBZ0lHeHZaeTVsY25KdmNpaGdSbUZwYkdWa0lIUnZJR05zYjNObElFWmhZbkpwWXlCbGRtVnVkQ0JzYVhOMFpXNWxjbUFzSUdVZ1lYTWdSWEp5YjNJcE8xeHVJQ0FnSUNBZ2ZTQm1hVzVoYkd4NUlIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1c2FYTjBaVzVwYm1kVGRHRmpheUE5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRkJoY25ObGN5QmxkbVZ1ZENCd1lYbHNiMkZrSUdaeWIyMGdZbWx1WVhKNUlHWnZjbTFoZEZ4dUlDQWdLaUJBYzNWdGJXRnllU0JEYjI1MlpYSjBjeUJoSUZWcGJuUTRRWEp5WVhrZ1kyOXVkR0ZwYm1sdVp5QktVMDlPSUhSdklHRnVJRzlpYW1WamRDQjNhWFJvSUdGdUlHbGtJSEJ5YjNCbGNuUjVYRzRnSUNBcUlFQndZWEpoYlNCN1ZXbHVkRGhCY25KaGVYMGdhbk52YmtKNWRHVnpJQzBnVkdobElHSnBibUZ5ZVNCd1lYbHNiMkZrSUdaeWIyMGdkR2hsSUdOb1lXbHVZMjlrWlNCbGRtVnVkRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdDdJR2xrT2lCemRISnBibWNnZlgwZ1ZHaGxJSEJoY25ObFpDQndZWGxzYjJGa0lHTnZiblJoYVc1cGJtY2dkR2hsSUhKbFkyOXlaQ0JKUkZ4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCd1lYSnpaVkJoZVd4dllXUW9hbk52YmtKNWRHVnpPaUJWYVc1ME9FRnljbUY1S1RvZ2V5QnBaRG9nYzNSeWFXNW5PeUJ5WlhOMWJIUS9PaUJoYm5rZ2ZTQjdYRzRnSUNBZ1kyOXVjM1FnYW5OdmJpQTlJSFJvYVhNdVpHVmpiMlJsY2k1a1pXTnZaR1VvYW5OdmJrSjVkR1Z6S1R0Y2JpQWdJQ0J5WlhSMWNtNGdTbE5QVGk1d1lYSnpaU2hxYzI5dUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1UzUmhjblJ6SUc5aWMyVnlkbWx1WnlCaGJpQmhaR0Z3ZEdWeVhHNGdJQ0FxSUVCemRXMXRZWEo1SUVOdmJtNWxZM1J6SUhSb2FYTWdaR2x6Y0dGMFkyZ2dkRzhnWVc0Z1lXUmhjSFJsY2lCMGJ5QnRiMjVwZEc5eUlHbDBjeUJ2Y0dWeVlYUnBiMjV6WEc0Z0lDQXFJRUJ3WVhKaGJTQjdRV1JoY0hSbGNqeGhibmtzSUdGdWVTd2dZVzU1TENCaGJuaytmU0J2WW5ObGNuWmxjaUF0SUZSb1pTQmhaR0Z3ZEdWeUlIUnZJRzlpYzJWeWRtVmNiaUFnSUNvZ1FISmxkSFZ5YmlCN2RtOXBaSDFjYmlBZ0lDb3ZYRzRnSUc5MlpYSnlhV1JsSUc5aWMyVnlkbVVvYjJKelpYSjJaWEk2SUVGa1lYQjBaWEk4WVc1NUxDQmhibmtzSUdGdWVTd2dZVzU1UGlrNklDZ3BJRDArSUhadmFXUWdlMXh1SUNBZ0lHbG1JQ2doS0c5aWMyVnlkbVZ5SUdsdWMzUmhibU5sYjJZZ1JtRmljbWxqUTJ4cFpXNTBRV1JoY0hSbGNpa3BYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dWVzV6ZFhCd2IzSjBaV1JGY25KdmNpaGNiaUFnSUNBZ0lDQWdYQ0pQYm14NUlFWmhZbkpwWTBOc2FXVnVkRUZrWVhCMFpYSWdZMkZ1SUdKbElHOWljMlZ5ZG1Wa0lHSjVJR1JwYzNCaGRHTm9YQ0pjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdjM1Z3WlhJdWIySnpaWEoyWlNodlluTmxjblpsY2lCaGN5QkdZV0p5YVdORGJHbGxiblJCWkdGd2RHVnlLVHRjYmlBZ0lDQnlaWFIxY200Z0tDa2dQVDRnZEdocGN5NTFiazlpYzJWeWRtVW9iMkp6WlhKMlpYSXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlZjR1JoZEdWeklHOWljMlZ5ZG1WeWN5QmhZbTkxZENCaElHUmhkR0ZpWVhObElHVjJaVzUwWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRTV2ZEdsbWFXVnpJRzlpYzJWeWRtVnljeUJoWW05MWRDQmhJR05vWVc1blpTQnBiaUIwYUdVZ1pHRjBZV0poYzJWY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFJoWW14bElDMGdWR2hsSUc1aGJXVWdiMllnZEdobElIUmhZbXhsSUhkb1pYSmxJSFJvWlNCamFHRnVaMlVnYjJOamRYSnlaV1JjYmlBZ0lDb2dRSEJoY21GdElIdFBjR1Z5WVhScGIyNUxaWGx6ZkVKMWJHdERjblZrVDNCbGNtRjBhVzl1UzJWNWMzeHpkSEpwYm1kOUlHVjJaVzUwSUMwZ1ZHaGxJSFI1Y0dVZ2IyWWdiM0JsY21GMGFXOXVJSFJvWVhRZ2IyTmpkWEp5WldSY2JpQWdJQ29nUUhCaGNtRnRJSHRoYm5sOUlIQmhlV3h2WVdRZ0xTQlVhR1VnWlhabGJuUWdjR0Y1Ykc5aFpGeHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEhadmFXUStmU0JCSUhCeWIyMXBjMlVnZEdoaGRDQnlaWE52YkhabGN5QjNhR1Z1SUdGc2JDQnZZbk5sY25abGNuTWdhR0YyWlNCaVpXVnVJRzV2ZEdsbWFXVmtYRzRnSUNBcUwxeHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QjFjR1JoZEdWUFluTmxjblpsY25Nb1hHNGdJQ0FnYlc5a1pXdzZJRU52Ym5OMGNuVmpkRzl5UEdGdWVUNGdmQ0J6ZEhKcGJtY3NYRzRnSUNBZ1pYWmxiblE2SUU5d1pYSmhkR2x2Ymt0bGVYTWdmQ0JDZFd4clEzSjFaRTl3WlhKaGRHbHZia3RsZVhNZ2ZDQnpkSEpwYm1jc1hHNGdJQ0FnYVdRNklFVjJaVzUwU1dSekxGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQRVpoWW5KcFkwTnNhV1Z1ZEVOdmJuUmxlSFErWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkc5bkxDQmpkSGhCY21keklIMGdQU0JCWkdGd2RHVnlMbXh2WjBOMGVEeEdZV0p5YVdORGJHbGxiblJEYjI1MFpYaDBQaWhjYmlBZ0lDQWdJSFJvYVhNdWRYQmtZWFJsVDJKelpYSjJaWEp6TEZ4dUlDQWdJQ0FnWlhabGJuUXNYRzRnSUNBZ0lDQm1ZV3h6WlN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2doZEdocGN5NWhaR0Z3ZEdWeUtTQjdYRzRnSUNBZ0lDQnNiMmN1ZG1WeVltOXpaU2hjYmlBZ0lDQWdJQ0FnWUU1dklHRmtZWEIwWlhJZ2IySnpaWEoyWldRZ1ptOXlJR1JwYzNCaGRHTm9PeUJ6YTJsd2NHbHVaeUJ2WW5ObGNuWmxjaUIxY0dSaGRHVWdabTl5SUNSN2RIbHdaVzltSUcxdlpHVnNJRDA5UFNCY0luTjBjbWx1WjF3aUlEOGdiVzlrWld3Z09pQk5iMlJsYkM1MFlXSnNaVTVoYldVb2JXOWtaV3dwZlRva2UyVjJaVzUwZldCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG1Ga1lYQjBaWEl1Y21WbWNtVnphQ2h0YjJSbGJDd2daWFpsYm5Rc0lHbGtMQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsT2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhnUm1GcGJHVmtJSFJ2SUhKbFpuSmxjMmdnWkdsemNHRjBZMmc2SUNSN1pYMWdLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGQnliMk5sYzNObGN5QnBibU52YldsdVp5QmphR0ZwYm1OdlpHVWdaWFpsYm5SelhHNGdJQ0FxSUVCemRXMXRZWEo1SUV4cGMzUmxibk1nWm05eUlHVjJaVzUwY3lCbWNtOXRJSFJvWlNCamFHRnBibU52WkdVZ1lXNWtJR1JwYzNCaGRHTm9aWE1nZEdobGJTQjBieUJ5WldkcGMzUmxjbVZrSUc5aWMyVnlkbVZ5YzF4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQSFp2YVdRK2ZTQlFjbTl0YVhObElIUm9ZWFFnY21WemIyeDJaWE1nZDJobGJpQmxkbVZ1ZENCb1lXNWtiR2x1WnlCemRHOXdjMXh1SUNBZ0tpQkFiV1Z5YldGcFpGeHVJQ0FnS2lCelpYRjFaVzVqWlVScFlXZHlZVzFjYmlBZ0lDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCR1lXSnlhV05FYVhOd1lYUmphRnh1SUNBZ0tpQWdJSEJoY25ScFkybHdZVzUwSUVWMlpXNTBVM1JoWTJ0Y2JpQWdJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkZkbVZ1ZEZCaGNuTmxjbHh1SUNBZ0tpQWdJSEJoY25ScFkybHdZVzUwSUU5aWMyVnlkbVZ5YzF4dUlDQWdLbHh1SUNBZ0tpQWdJRVpoWW5KcFkwUnBjM0JoZEdOb0xUNCtSbUZpY21salJHbHpjR0YwWTJnNklHaGhibVJzWlVWMlpXNTBjeWdwWEc0Z0lDQXFJQ0FnUm1GaWNtbGpSR2x6Y0dGMFkyZ3RQajVGZG1WdWRGTjBZV05yT2lCbWIzSWdZWGRoYVhRZ0tHTnZibk4wSUdWMmRDQnZaaUJzYVhOMFpXNXBibWRUZEdGamF5bGNiaUFnSUNvZ0lDQkZkbVZ1ZEZOMFlXTnJMUzArUGtaaFluSnBZMFJwYzNCaGRHTm9PaUJEYUdGcGJtTnZaR1ZGZG1WdWRGeHVJQ0FnS2lBZ0lFWmhZbkpwWTBScGMzQmhkR05vTFQ0K1JYWmxiblJRWVhKelpYSTZJSEJoY25ObFJYWmxiblJPWVcxbEtHVjJkQzVsZG1WdWRFNWhiV1VwWEc0Z0lDQXFJQ0FnUlhabGJuUlFZWEp6WlhJdExUNCtSbUZpY21salJHbHpjR0YwWTJnNklIc2dkR0ZpYkdVc0lHVjJaVzUwTENCdmQyNWxjaUI5WEc0Z0lDQXFJQ0FnUm1GaWNtbGpSR2x6Y0dGMFkyZ3RQajVHWVdKeWFXTkVhWE53WVhSamFEb2dRMmhsWTJzZ2FXWWdaWFpsYm5RZ2FYTWdabTl5SUhSb2FYTWdUVk5RWEc0Z0lDQXFJQ0FnUm1GaWNtbGpSR2x6Y0dGMFkyZ3RQajVHWVdKeWFXTkVhWE53WVhSamFEb2djR0Z5YzJWUVlYbHNiMkZrS0dWMmRDNXdZWGxzYjJGa0tWeHVJQ0FnS2lBZ0lFWmhZbkpwWTBScGMzQmhkR05vTFQ0K1QySnpaWEoyWlhKek9pQjFjR1JoZEdWUFluTmxjblpsY25Nb2RHRmliR1VzSUdWMlpXNTBMQ0J3WVhsc2IyRmtMbWxrS1Z4dUlDQWdLaUFnSUU5aWMyVnlkbVZ5Y3kwdFBqNUdZV0p5YVdORWFYTndZWFJqYURvZ1EyRnNiR0poWTJ0eklHVjRaV04xZEdWa1hHNGdJQ0FxTDF4dUlDQndjbTkwWldOMFpXUWdZWE41Ym1NZ2FHRnVaR3hsUlhabGJuUnpLRnh1SUNBZ0lHTjBlRUZ5Wno4NklFWmhZbkpwWTBOc2FXVnVkRU52Ym5SbGVIUmNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbXhwYzNSbGJtbHVaMU4wWVdOcktWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvWEc0Z0lDQWdJQ0FnSUdCRmRtVnVkQ0J6ZEdGamF5QnViM1FnYVc1cGRHbGhiR2w2WldRdUlFVnVjM1Z5WlNCMGFHRjBJRndpYzNSaGNuUk1hWE4wWlc1cGJtZGNJaUJwY3lCallXeHNaV1FnWW1WbWIzSmxJR0YwZEdWdGNIUnBibWNnZEdocGN5QnZjR1Z5WVhScGIyNHVZRnh1SUNBZ0lDQWdLVHRjYmx4dUlDQWdJR2xtSUNnaGRHaHBjeTVoWkdGd2RHVnlJSHg4SUNGMGFHbHpMbUZrWVhCMFpYSXVZMjl1Wm1sbktWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvWUU1dklHRmtZWEIwWlhJZ1ptOTFibVF1SUhOb2IzVnNaQ0JpWlNCcGJYQnZjM05wWW14bFlDazdYRzVjYmlBZ0lDQmpiMjV6ZENCamRIZ2dQVnh1SUNBZ0lDQWdZM1I0UVhKbklIeDhYRzRnSUNBZ0lDQW9ZWGRoYVhRZ2RHaHBjeTVoWkdGd2RHVnlMbU52Ym5SbGVIUW9YRzRnSUNBZ0lDQWdJRTl3WlhKaGRHbHZia3RsZVhNdVVrVkJSQ3hjYmlBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZjbkpsYkdGMGFXOXVTV1E2SUhSb2FYTXVZV1JoY0hSbGNpNWpiMjVtYVdjdVkyaGhhVzVqYjJSbFRtRnRaU3hjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0tIUm9hWE11Ylc5a1pXeHpJQ1ltSUhSb2FYTXViVzlrWld4eld6QmRLU0I4ZkNBb1RXOWtaV3dnWVhNZ2RXNXJibTkzYmlCaGN5QkRiMjV6ZEhKMVkzUnZjaWxjYmlBZ0lDQWdJQ2twTzF4dUlDQWdJR052Ym5OMElHeHZaeUE5SUhSb2FYTXViRzluTG1admNpaDBhR2x6TG1oaGJtUnNaVVYyWlc1MGN5azdYRzVjYmlBZ0lDQnNiMmN1YVc1bWJ5aGNiaUFnSUNBZ0lHQk1hWE4wWlc1cGJtY2dabTl5SUdsdVkyOXRhVzVuSUdWMlpXNTBjeUJ2YmlCamFHRnBibU52WkdVZ1hDSWtlM1JvYVhNdVlXUmhjSFJsY2k1amIyNW1hV2N1WTJoaGFXNWpiMlJsVG1GdFpYMWNJaUJ2YmlCamFHRnVibVZzSUZ3aUpIdDBhR2x6TG1Ga1lYQjBaWEl1WTI5dVptbG5MbU5vWVc1dVpXeDlYQ0l1TGk1Z1hHNGdJQ0FnS1R0Y2JseHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQm1iM0lnWVhkaGFYUWdLR052Ym5OMElHVjJkQ0J2WmlCMGFHbHpMbXhwYzNSbGJtbHVaMU4wWVdOcktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIc2dkR0ZpYkdVc0lHVjJaVzUwTENCdmQyNWxjaUI5SUQwZ2NHRnljMlZGZG1WdWRFNWhiV1VvWlhaMExtVjJaVzUwVG1GdFpTazdYRzRnSUNBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ0lDQjBhR2x6TG1Ga1lYQjBaWEl1WTI5dVptbG5QeTV0YzNCRmRtVnVkRTl1YkhrZ0ppWmNiaUFnSUNBZ0lDQWdJQ0J2ZDI1bGNpQW1KbHh1SUNBZ0lDQWdJQ0FnSUc5M2JtVnlJQ0U5UFNCMGFHbHpMbUZrWVhCMFpYSXVZMjl1Wm1sblB5NXRjM0JKWkZ4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQmhlV3h2WVdRNklIc2dhV1E2SUhOMGNtbHVaenNnY21WemRXeDBQem9nWVc1NUlIMGdQU0IwYUdsekxuQmhjbk5sVUdGNWJHOWhaQ2hjYmlBZ0lDQWdJQ0FnSUNCbGRuUXVjR0Y1Ykc5aFpGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElIUmhjbWRsZEUxdlpHVnNJRDBnZEdGaWJHVmNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z1RXOWtaV3d1WjJWMEtIUmhZbXhsS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdPaUJOYjJSbGJDNW5aWFFvZEdocGN5NXRiMlJsYkhOYk1GMHVibUZ0WlNrN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JXOWtaV3hTWldZZ1BTQjBZWEpuWlhSTmIyUmxiQ0EvUHlBb2RHRmliR1VnZkh3Z2RHaHBjeTV0YjJSbGJITmJNRjAvTG01aGJXVXBPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzlpYzJWeWRtVnlRWEpuY3lBOUlIQmhlV3h2WVdRdWNtVnpkV3gwSUQ4Z1czQmhlV3h2WVdRdWNtVnpkV3gwTENCamRIaGRJRG9nVzJOMGVGMDdYRzRnSUNBZ0lDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1MWNHUmhkR1ZQWW5ObGNuWmxjbk1vWEc0Z0lDQWdJQ0FnSUNBZ0lDQnRiMlJsYkZKbFppQmhjeUJEYjI1emRISjFZM1J2Y2lCOElITjBjbWx1Wnl4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1YyWlc1MExGeHVJQ0FnSUNBZ0lDQWdJQ0FnY0dGNWJHOWhaQzVwWkNCaGN5QnpkSEpwYm1jc1hHNGdJQ0FnSUNBZ0lDQWdJQ0F1TGk0b2IySnpaWEoyWlhKQmNtZHpJR0Z6SUVOdmJuUmxlSFIxWVd4QmNtZHpQR0Z1ZVQ0cFhHNGdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJR3h2Wnk1bGNuSnZjaWhjYmlBZ0lDQWdJQ0FnSUNBZ0lHQkdZV2xzWldRZ2RYQmtZWFJsSUc5aWMyVnlkbUZpYkdWeklHWnZjaUIwWVdKc1pTQWtlM1JoWW14bGZTQmxkbVZ1ZENBa2UyVjJaVzUwZlNCcFpEb2dKSHR3WVhsc2IyRmtMbWxrZlRvZ0pIdGxmV0JjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pUb2dZVzU1S1NCN1hHNGdJQ0FnSUNCc2IyY3VaWEp5YjNJb1hHNGdJQ0FnSUNBZ0lHQkdZV2xzWldRZ2RHOGdjbVZoWkNCbGRtVnVkQ0JtYjNJZ1kyaGhhVzVqYjJSbElGd2lKSHQwYUdsekxtRmtZWEIwWlhJdVkyOXVabWxuTG1Ob1lXbHVZMjlrWlU1aGJXVjlYQ0lnYjI0Z1kyaGhibTVsYkNCY0lpUjdkR2hwY3k1aFpHRndkR1Z5TG1OdmJtWnBaeTVqYUdGdWJtVnNmVndpT2lBa2UyVjlZRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11WTJ4dmMyVW9ZM1I0S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRWx1YVhScFlXeHBlbVZ6SUhSb1pTQmxkbVZ1ZENCc2FYTjBaVzVsY2x4dUlDQWdLaUJBYzNWdGJXRnllU0JUWlhSeklIVndJR1YyWlc1MElHUnBjM0JoZEdOb2FXNW5JR1p2Y2lCMGFHVWdiMkp6WlhKMlpXUWdZV1JoY0hSbGNpNGdWMmhsYmx4dUlDQWdLaUJnYzNsdWRHaGxkR2xqUlhabGJuUnpZQ0JwY3lCMGNuVmxJQ2gwYUdVZ1pHVm1ZWFZzZENrZ2JtOGdaMkYwWlhkaGVTQmpiMjV1WldOMGFXOXVJR2x6SUc5d1pXNWxaRHRjYmlBZ0lDb2dhVzV6ZEdWaFpDQmxkbVZ5ZVNCRFVsVkVJRzl3WlhKaGRHbHZiaUJwY3lCM2NtRndjR1ZrSUhkcGRHZ2dZU0JRY205NGVTQjBhR0YwSUdacGNtVnpYRzRnSUNBcUlHQjFjR1JoZEdWUFluTmxjblpsY25OZ0lHWnZjaUFxS21Gc2JDb3FJRzF2WkdWc2N5NGdWMmhsYmlCZ2MzbHVkR2hsZEdsalJYWmxiblJ6WUNCcGN5Qm1ZV3h6WlNCMGFHVmNiaUFnSUNvZ1pYaHBjM1JwYm1jZ1oyRjBaWGRoZVMxaVlYTmxaQ0JqYUdGcGJtTnZaR1V0WlhabGJuUWdjM1ZpYzJOeWFYQjBhVzl1SUdseklHVnpkR0ZpYkdsemFHVmtJR0Z1WkNCMGFHVmNiaUFnSUNvZ2JHOWpZV3dnVUhKdmVIa2dabUZzYkdKaFkyc2dhWE1nYkdsdGFYUmxaQ0IwYnlCbWRXeHNlUzF6WldkeVpXZGhkR1ZrSUNoMGNtRnVjMmxsYm5RcElHMXZaR1ZzY3lCdmJteDVMbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdFFjbTl0YVhObFBIWnZhV1ErZlNCUWNtOXRhWE5sSUhSb1lYUWdjbVZ6YjJ4MlpYTWdkMmhsYmlCcGJtbDBhV0ZzYVhwaGRHbHZiaUJwY3lCamIyMXdiR1YwWlZ4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lHOTJaWEp5YVdSbElHRnplVzVqSUdsdWFYUnBZV3hwZW1Vb0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1Ga1lYQjBaWElwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGdUbThnWVdSaGNIUmxjaUJ2Y2lCamIyNW1hV2NnYjJKelpYSjJaV1FnWm05eUlHUnBjM0JoZEdOb1lDazdYRzVjYmlBZ0lDQmpiMjV6ZENCemVXNTBhR1YwYVdORmRtVnVkSE1nUFNCMGFHbHpMbUZrWVhCMFpYSXVZMjl1Wm1sbkxuTjViblJvWlhScFkwVjJaVzUwY3lBaFBUMGdabUZzYzJVN1hHNWNiaUFnSUNCcFppQW9JWE41Ym5Sb1pYUnBZMFYyWlc1MGN5a2dlMXh1SUNBZ0lDQWdMeThnUjJGMFpYZGhlUzFpWVhObFpDQmphR0ZwYm1OdlpHVXRaWFpsYm5RZ2MzVmljMk55YVhCMGFXOXVJQ2h1YjI0dGMzbHVkR2hsZEdsaklIQmhkR2dwWEc0Z0lDQWdJQ0JqYjI1emRDQmpiMjUwWlhoMElEMGdZWGRoYVhRZ2RHaHBjeTVoWkdGd2RHVnlMbU52Ym5SbGVIUW9YRzRnSUNBZ0lDQWdJRndpWkdsemNHRjBZMmhjSWl4Y2JpQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Y25KbGJHRjBhVzl1U1dRNklIUm9hWE11WVdSaGNIUmxjaTVqYjI1bWFXY3VZMmhoYVc1amIyUmxUbUZ0WlN4Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdUVzlrWld3Z1lYTWdZVzU1WEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnWTI5dWMzUWdleUJqZEhnZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0Z0amIyNTBaWGgwWFN3Z2RHaHBjeTVwYm1sMGFXRnNhWHBsS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR2RoZEdWM1lYa2dQU0JoZDJGcGRDQkdZV0p5YVdORGJHbGxiblJCWkdGd2RHVnlMbWRsZEVkaGRHVjNZWGtvWEc0Z0lDQWdJQ0FnSUdOMGVDeGNiaUFnSUNBZ0lDQWdkR2hwY3k1aFpHRndkR1Z5TG1OdmJtWnBaeUJoY3lCUVpXVnlRMjl1Wm1sbkxGeHVJQ0FnSUNBZ0lDQjBhR2x6TG1Oc2FXVnVkRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR052Ym5OMElHNWxkSGR2Y21zZ1BTQm5ZWFJsZDJGNUxtZGxkRTVsZEhkdmNtc29kR2hwY3k1aFpHRndkR1Z5TG1OdmJtWnBaeTVqYUdGdWJtVnNLVHRjYmlBZ0lDQWdJR2xtSUNnaGRHaHBjeTVoWkdGd2RHVnlLVnh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGdUbThnWVdSaGNIUmxjaUJ2WW5ObGNuWmxaQ0JtYjNJZ1pHbHpjR0YwWTJoZ0tUdGNiaUFnSUNBZ0lIUm9hWE11YkdsemRHVnVhVzVuVTNSaFkyc2dQU0JoZDJGcGRDQnVaWFIzYjNKckxtZGxkRU5vWVdsdVkyOWtaVVYyWlc1MGN5aGNiaUFnSUNBZ0lDQWdkR2hwY3k1aFpHRndkR1Z5TG1OdmJtWnBaeTVqYUdGcGJtTnZaR1ZPWVcxbFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2RHaHBjeTVvWVc1a2JHVkZkbVZ1ZEhNb1kzUjRLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJRY205NGVTQkRVbFZFSUcxbGRHaHZaSE11WEc0Z0lDQWdMeThnNG9DaUlITjViblJvWlhScFkwVjJaVzUwY3lBOUlIUnlkV1VnSU9LR2tpQnViM1JwWm5rZ1ptOXlJRUZNVENCdGIyUmxiSE1nS0hKbGNHeGhZMlZ6SUdkaGRHVjNZWGtnWlhabGJuUnpJR1Z1ZEdseVpXeDVLVnh1SUNBZ0lDOHZJT0tBb2lCemVXNTBhR1YwYVdORmRtVnVkSE1nUFNCbVlXeHpaU0RpaHBJZ2JtOTBhV1o1SUc5dWJIa2dabTl5SUdaMWJHeDVMWE5sWjNKbFoyRjBaV1FnS0hSeVlXNXphV1Z1ZENrZ2JXOWtaV3h6WEc0Z0lDQWdMeThnSUNBb2RHaGxJR2RoZEdWM1lYa2djM1ZpYzJOeWFYQjBhVzl1SUdoaGJtUnNaWE1nY0hWaWJHbGpJRzF2WkdWc2N5bGNiaUFnSUNBb1hHNGdJQ0FnSUNCYlhHNGdJQ0FnSUNBZ0lFOXdaWEpoZEdsdmJrdGxlWE11UTFKRlFWUkZMRnh1SUNBZ0lDQWdJQ0JQY0dWeVlYUnBiMjVMWlhsekxsVlFSRUZVUlN4Y2JpQWdJQ0FnSUNBZ1QzQmxjbUYwYVc5dVMyVjVjeTVFUlV4RlZFVXNYRzRnSUNBZ0lDQWdJRUoxYkd0RGNuVmtUM0JsY21GMGFXOXVTMlY1Y3k1RFVrVkJWRVZmUVV4TUxGeHVJQ0FnSUNBZ0lDQkNkV3hyUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE11VlZCRVFWUkZYMEZNVEN4Y2JpQWdJQ0FnSUNBZ1FuVnNhME55ZFdSUGNHVnlZWFJwYjI1TFpYbHpMa1JGVEVWVVJWOUJURXdzWEc0Z0lDQWdJQ0JkSUdGeklDaHJaWGx2WmlCQlpHRndkR1Z5UEdGdWVTd2dZVzU1TENCaGJua3NJR0Z1ZVQ0cFcxMWNiaUFnSUNBcExtWnZja1ZoWTJnb0tIUnZWM0poY0NrZ1BUNGdlMXh1SUNBZ0lDQWdhV1lnS0NGMGFHbHpMbUZrWVhCMFpYSXBYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQWdJR0JPYnlCaFpHRndkR1Z5SUhCeWIzWnBaR1ZrSUdadmNpQjBhR1VnWm1Gc2JHSmhZMnNnYjJZZ1puVnNiSGtnYzJWbmNtVm5ZWFJsWkNCdGIyUmxiSE5nWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCcFppQW9JWFJvYVhNdVlXUmhjSFJsY2x0MGIxZHlZWEJkS1Z4dUlDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjYmlBZ0lDQWdJQ0FnSUNCZ1RXVjBhRzlrSUNSN2RHOVhjbUZ3ZlNCdWIzUWdabTkxYm1RZ2FXNGdKSHQwYUdsekxtRmtZWEIwWlhJdVlXeHBZWE45SUdGa1lYQjBaWElnZEc4Z1ltbHVaQ0JQWW5ObGNuWmhZbXhsY3lCRWFYTndZWFJqYUdCY2JpQWdJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lDQWdiR1YwSUdSbGMyTnlhWEIwYjNJZ1BTQlBZbXBsWTNRdVoyVjBUM2R1VUhKdmNHVnlkSGxFWlhOamNtbHdkRzl5S0hSb2FYTXVZV1JoY0hSbGNpd2dkRzlYY21Gd0tUdGNiaUFnSUNBZ0lHeGxkQ0J3Y205MGJ6b2dZVzU1SUQwZ2RHaHBjeTVoWkdGd2RHVnlPMXh1SUNBZ0lDQWdkMmhwYkdVZ0tDRmtaWE5qY21sd2RHOXlJQ1ltSUhCeWIzUnZJQ0U5UFNCUFltcGxZM1F1Y0hKdmRHOTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lIQnliM1J2SUQwZ1QySnFaV04wTG1kbGRGQnliM1J2ZEhsd1pVOW1LSEJ5YjNSdktUdGNiaUFnSUNBZ0lDQWdaR1Z6WTNKcGNIUnZjaUE5SUU5aWFtVmpkQzVuWlhSUGQyNVFjbTl3WlhKMGVVUmxjMk55YVhCMGIzSW9jSEp2ZEc4c0lIUnZWM0poY0NrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2doWkdWelkzSnBjSFJ2Y2lCOGZDQWhaR1Z6WTNKcGNIUnZjaTUzY21sMFlXSnNaU2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbXh2Wnk1bGNuSnZjaWhjYmlBZ0lDQWdJQ0FnSUNCZ1EyOTFiR1FnYm05MElHWnBibVFnYldWMGFHOWtJQ1I3ZEc5WGNtRndmU0IwYnlCaWFXNWtJRTlpYzJWeWRtRmliR1Z6SUVScGMzQmhkR05vWUZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCbWRXNWpkR2x2YmlCaWRXeHJWRzlUYVc1bmJHVW9iV1YwYUc5a09pQnpkSEpwYm1jcElIdGNiaUFnSUNBZ0lDQWdjM2RwZEdOb0lDaHRaWFJvYjJRcElIdGNiaUFnSUNBZ0lDQWdJQ0JqWVhObElFSjFiR3REY25Wa1QzQmxjbUYwYVc5dVMyVjVjeTVEVWtWQlZFVmZRVXhNT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlFOXdaWEpoZEdsdmJrdGxlWE11UTFKRlFWUkZPMXh1SUNBZ0lDQWdJQ0FnSUdOaGMyVWdRblZzYTBOeWRXUlBjR1Z5WVhScGIyNUxaWGx6TGxWUVJFRlVSVjlCVEV3NlhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdUM0JsY21GMGFXOXVTMlY1Y3k1VlVFUkJWRVU3WEc0Z0lDQWdJQ0FnSUNBZ1kyRnpaU0JDZFd4clEzSjFaRTl3WlhKaGRHbHZia3RsZVhNdVJFVk1SVlJGWDBGTVREcGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJQY0dWeVlYUnBiMjVMWlhsekxrUkZURVZVUlR0Y2JpQWdJQ0FnSUNBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzFsZEdodlpEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0F2THlCQWRITXRaWGh3WldOMExXVnljbTl5SUdKbFkyRjFjMlVnZEdobGNtVWdZWEpsSUhKbFlXUWdiMjVzZVNCd2NtOXdaWEowYVdWelhHNGdJQ0FnSUNCMGFHbHpMbUZrWVhCMFpYSmJkRzlYY21Gd1hTQTlJRzVsZHlCUWNtOTRlU2gwYUdsekxtRmtZWEIwWlhKYmRHOVhjbUZ3WFN3Z2UxeHVJQ0FnSUNBZ0lDQmhjSEJzZVRvZ1lYTjVibU1nS0Z4dUlDQWdJQ0FnSUNBZ0lIUmhjbWRsZERvZ1lXNTVMRnh1SUNBZ0lDQWdJQ0FnSUhSb2FYTkJjbWM2SUVaaFluSnBZME5zYVdWdWRFRmtZWEIwWlhJc1hHNGdJQ0FnSUNBZ0lDQWdZWEpuUVhKeVlYazZJR0Z1ZVZ0ZFhHNGdJQ0FnSUNBZ0lDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDOHZJRkoxYmlCMGFHVWdiM0pwWjJsdVlXd2diV1YwYUc5a0lIVnVZMmhoYm1kbFpDQnpieUIwY21GdWMybGxiblFnWkdGMFlTQnBjeUJ3Y21WelpYSjJaV1JjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J5WlhOMWJIUWdQU0JoZDJGcGRDQjBZWEpuWlhRdVlYQndiSGtvZEdocGMwRnlaeXdnWVhKblFYSnlZWGtwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1kyeGhlbm82SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRnUFNCaGNtZEJjbkpoZVZzd1hUdGNiaUFnSUNBZ0lDQWdJQ0F2THlCWGFHVnVJSE41Ym5Sb1pYUnBZMFYyWlc1MGN5QnBjeUJtWVd4elpTd2djSFZpYkdsaklHMXZaR1ZzY3lCbGJXbDBJR0VnWTJoaGFXNWpiMlJsSUdWMlpXNTBYRzRnSUNBZ0lDQWdJQ0FnTHk4Z2IyNGdkR2hsSUdOdmJuUnlZV04wSUhOcFpHVTdJSE5yYVhBZ2RHaGxJR3h2WTJGc0lHWmhiR3hpWVdOcklIUnZJR0YyYjJsa1hHNGdJQ0FnSUNBZ0lDQWdMeThnWkc5MVlteGxMVzV2ZEdsbWFXTmhkR2x2Ymk0Z1YyaGxiaUJ6ZVc1MGFHVjBhV05GZG1WdWRITWdhWE1nZEhKMVpTQjNaU0JvWVc1a2JHVWdZV3hzSUcxdlpHVnNjeTVjYmlBZ0lDQWdJQ0FnSUNCcFppQW9JWE41Ym5Sb1pYUnBZMFYyWlc1MGN5QW1KaUFoVFc5a1pXd3VhWE5VY21GdWMybGxiblFvWTJ4aGVub3BLU0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1EyOXVkR1Y0ZENCcGN5QmhiSGRoZVhNZ2RHaGxJR3hoYzNRZ1pXeGxiV1Z1ZENCdlppQmhjbWRCY25KaGVWeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElIc2diRzluTENCamRIaEJjbWR6TENCamRIZ2dmU0E5SUhSb2FYTkJjbWRiWENKc2IyZERkSGhjSWwwb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JoY21kQmNuSmhlUzV6YkdsalpTaGhjbWRCY25KaGVTNXNaVzVuZEdnZ0xTQXhLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIUmhjbWRsZEZ4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdhV1J6SUQwZ1lYSm5RWEp5WVhsYk1WMDdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjbVZ6ZFd4MFFYSm5jem9nWVc1NVcxMGdQU0JiWTJ4aGVub3NJR0oxYkd0VWIxTnBibWRzWlNoMGIxZHlZWEFwTENCcFpITmRPMXh1WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR04wZUM1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW05aWMyVnlkbVZHZFd4c1VtVnpkV3gwWENJcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYTjFiSFJCY21kekxuQjFjMmdvY21WemRXeDBLVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1MWNHUmhkR1ZQWW5ObGNuWmxjbk1vWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWE4xYkhSQmNtZHpXekJkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ6ZFd4MFFYSm5jMXN4WFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RFRnlaM05iTWwwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0F1TGk1eVpYTjFiSFJCY21kekxuTnNhV05sS0RNcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnTGk0dUtHTjBlRUZ5WjNNZ1lYTWdRMjl1ZEdWNGRIVmhiRUZ5WjNNOFJtRmljbWxqUTJ4cFpXNTBRMjl1ZEdWNGRENHBYRzRnSUNBZ0lDQWdJQ0FnS1M1allYUmphQ2dvWlRvZ2RXNXJibTkzYmlrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0FnSUd4dlp5NWxjbkp2Y2loY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWUVaaGFXeGxaQ0IwYnlCa2FYTndZWFJqYUNCdlluTmxjblpsY2lCeVpXWnlaWE5vSUdadmNpQWtlM1J2VjNKaGNIMGdiMjRnSkh0amJHRjZlaTV1WVcxbElIeDhJR05zWVhwNmZTQm1iM0lnSkh0cFpITjlPaUFrZTJWOVlGeHVJQ0FnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDBwTzF4dUlDQjlYRzU5WEc1Y2JtbG1JQ2hHWVdKeWFXTkRiR2xsYm5SQlpHRndkR1Z5S1Z4dUlDQkdZV0p5YVdORGJHbGxiblJCWkdGd2RHVnlXMXdpWDJKaGMyVkVhWE53WVhSamFGd2lYU0E5SUVaaFluSnBZME5zYVdWdWRFUnBjM0JoZEdOb08xeHVJbDE5Il19
|
|
@@ -18,5 +18,5 @@ class FabricClientPaginator extends core_1.Paginator {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
exports.FabricClientPaginator = FabricClientPaginator;
|
|
21
|
-
//# sourceMappingURL=
|
|
22
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9GYWJyaWNDbGllbnRQYWdpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFHVCxnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQU14QixNQUFNLE9BQU8scUJBQXVDLFNBQVEsU0FJM0Q7SUFHQyxZQUNFLE9BQTRCLEVBQzVCLEtBQTBDLEVBQzFDLElBQVksRUFDWixLQUFxQjtRQUVyQixLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELDZEQUE2RDtJQUNuRCxPQUFPLENBQUMsWUFBd0I7UUFDeEMsTUFBTSxJQUFJLGdCQUFnQixDQUN4QixxR0FBcUcsQ0FDdEcsQ0FBQztJQUNKLENBQUM7SUFFUSxJQUFJLENBQ1gsT0FBZSxDQUFDLEVBQ2hCLEdBQUcsSUFBNkI7UUFFaEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsNkNBQTZDO0lBQ2pGLENBQUM7SUFFRCxNQUFNLENBQVUsZ0JBQWdCLENBQUMsR0FBOEI7UUFDN0QsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1heWJlQ29udGV4dHVhbEFyZyxcbiAgUGFnaW5hdG9yLFxuICBQcmVwYXJlZFN0YXRlbWVudCxcbiAgU2VyaWFsaXplZFBhZ2UsXG4gIFVuc3VwcG9ydGVkRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50QWRhcHRlciB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudEFkYXB0ZXJcIjtcbmltcG9ydCB7IE1hbmdvUXVlcnkgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5cbmV4cG9ydCBjbGFzcyBGYWJyaWNDbGllbnRQYWdpbmF0b3I8TSBleHRlbmRzIE1vZGVsPiBleHRlbmRzIFBhZ2luYXRvcjxcbiAgTSxcbiAgTVtdLFxuICBNYW5nb1F1ZXJ5XG4+IHtcbiAgYm9va21hcms/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYWRhcHRlcjogRmFicmljQ2xpZW50QWRhcHRlcixcbiAgICBxdWVyeTogTWFuZ29RdWVyeSB8IFByZXBhcmVkU3RhdGVtZW50PGFueT4sXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPlxuICApIHtcbiAgICBzdXBlcihhZGFwdGVyLCBxdWVyeSwgc2l6ZSwgY2xhenopO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcm90ZWN0ZWQgcHJlcGFyZShyYXdTdGF0ZW1lbnQ6IE1hbmdvUXVlcnkpOiBNYW5nb1F1ZXJ5IHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgIGBSYXcgcXVlcnkgYWNjZXNzIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgYSBzdWJjbGFzcy4gb25seSBwcmVwYXJlZCBzdGF0ZW1lbnRzIGFyZSBuYXRpdmVseSBhdmFpbGFibGVgXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHBhZ2UoXG4gICAgcGFnZTogbnVtYmVyID0gMSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIHJldHVybiBzdXBlci5wYWdlKHBhZ2UsIC4uLmFyZ3MpOyAvLyB0aGlzIHdpbGwgZmFpbCBmb3Igbm9uLXByZXBhcmVkIHN0YXRlbWVudHNcbiAgfVxuXG4gIHN0YXRpYyBvdmVycmlkZSBpc1NlcmlhbGl6ZWRQYWdlKG9iajogU2VyaWFsaXplZFBhZ2U8YW55PiB8IGFueSkge1xuICAgIHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIiAmJiBBcnJheS5pc0FycmF5KG9iai5kYXRhKTtcbiAgfVxufVxuIl19
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRmFicmljQ2xpZW50UGFnaW5hdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUE4RDtBQUM5RCxNQUFhLHFCQUFzQixTQUFRLGdCQUFTO0lBQ2hELFlBQVksT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSztRQUNuQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELDZEQUE2RDtJQUM3RCxPQUFPLENBQUMsWUFBWTtRQUNoQixNQUFNLElBQUksdUJBQWdCLENBQUMscUdBQXFHLENBQUMsQ0FBQztJQUN0SSxDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLDZDQUE2QztJQUNuRixDQUFDO0lBQ0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUc7UUFDdkIsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDSjtBQWRELHNEQWNDO0FBQ0Qsa3ZGQUFrdkYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdpbmF0b3IsIFVuc3VwcG9ydGVkRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50UGFnaW5hdG9yIGV4dGVuZHMgUGFnaW5hdG9yIHtcbiAgICBjb25zdHJ1Y3RvcihhZGFwdGVyLCBxdWVyeSwgc2l6ZSwgY2xhenopIHtcbiAgICAgICAgc3VwZXIoYWRhcHRlciwgcXVlcnksIHNpemUsIGNsYXp6KTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHByZXBhcmUocmF3U3RhdGVtZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKGBSYXcgcXVlcnkgYWNjZXNzIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgYSBzdWJjbGFzcy4gb25seSBwcmVwYXJlZCBzdGF0ZW1lbnRzIGFyZSBuYXRpdmVseSBhdmFpbGFibGVgKTtcbiAgICB9XG4gICAgcGFnZShwYWdlID0gMSwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gc3VwZXIucGFnZShwYWdlLCAuLi5hcmdzKTsgLy8gdGhpcyB3aWxsIGZhaWwgZm9yIG5vbi1wcmVwYXJlZCBzdGF0ZW1lbnRzXG4gICAgfVxuICAgIHN0YXRpYyBpc1NlcmlhbGl6ZWRQYWdlKG9iaikge1xuICAgICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgJiYgQXJyYXkuaXNBcnJheShvYmouZGF0YSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUm1GaWNtbGpRMnhwWlc1MFVHRm5hVzVoZEc5eUxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZMaTR2YzNKakwyTnNhV1Z1ZEM5R1lXSnlhV05EYkdsbGJuUlFZV2RwYm1GMGIzSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhGUVVWTUxGTkJRVk1zUlVGSFZDeG5Ra0ZCWjBJc1IwRkRha0lzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVUxNFFpeE5RVUZOTEU5QlFVOHNjVUpCUVhWRExGTkJRVkVzVTBGSk0wUTdTVUZIUXl4WlFVTkZMRTlCUVRSQ0xFVkJRelZDTEV0QlFUQkRMRVZCUXpGRExFbEJRVmtzUlVGRFdpeExRVUZ4UWp0UlFVVnlRaXhMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGNrTXNRMEZCUXp0SlFVVkVMRFpFUVVFMlJEdEpRVU51UkN4UFFVRlBMRU5CUVVNc1dVRkJkMEk3VVVGRGVFTXNUVUZCVFN4SlFVRkpMR2RDUVVGblFpeERRVU40UWl4eFIwRkJjVWNzUTBGRGRFY3NRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZVU3hKUVVGSkxFTkJRMWdzVDBGQlpTeERRVUZETEVWQlEyaENMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUMEZCVHl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc05rTkJRVFpETzBsQlEycEdMRU5CUVVNN1NVRkZSQ3hOUVVGTkxFTkJRVlVzWjBKQlFXZENMRU5CUVVNc1IwRkJPRUk3VVVGRE4wUXNUMEZCVHl4SFFVRkhMRWxCUVVrc1QwRkJUeXhIUVVGSExFdEJRVXNzVVVGQlVTeEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEyNUZMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp5eGNiaUFnVUdGbmFXNWhkRzl5TEZ4dUlDQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRDeGNiaUFnVTJWeWFXRnNhWHBsWkZCaFoyVXNYRzRnSUZWdWMzVndjRzl5ZEdWa1JYSnliM0lzWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1RXOWtaV3dnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJ2Y2kxMllXeHBaR0YwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJEYjI1emRISjFZM1J2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHNnUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2lCOUlHWnliMjBnWENJdUwwWmhZbkpwWTBOc2FXVnVkRUZrWVhCMFpYSmNJanRjYm1sdGNHOXlkQ0I3SUUxaGJtZHZVWFZsY25rZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyWnZjaTFqYjNWamFHUmlYQ0k3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJHWVdKeWFXTkRiR2xsYm5SUVlXZHBibUYwYjNJOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGlCbGVIUmxibVJ6SUZCaFoybHVZWFJ2Y2p4Y2JpQWdUU3hjYmlBZ1RWdGRMRnh1SUNCTllXNW5iMUYxWlhKNVhHNCtJSHRjYmlBZ1ltOXZhMjFoY21zL09pQnpkSEpwYm1jN1hHNWNiaUFnWTI5dWMzUnlkV04wYjNJb1hHNGdJQ0FnWVdSaGNIUmxjam9nUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2l4Y2JpQWdJQ0J4ZFdWeWVUb2dUV0Z1WjI5UmRXVnllU0I4SUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUEdGdWVUNHNYRzRnSUNBZ2MybDZaVG9nYm5WdFltVnlMRnh1SUNBZ0lHTnNZWHA2T2lCRGIyNXpkSEoxWTNSdmNqeE5QbHh1SUNBcElIdGNiaUFnSUNCemRYQmxjaWhoWkdGd2RHVnlMQ0J4ZFdWeWVTd2djMmw2WlN3Z1kyeGhlbm9wTzF4dUlDQjlYRzVjYmlBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTExYm5WelpXUXRkbUZ5YzF4dUlDQndjbTkwWldOMFpXUWdjSEpsY0dGeVpTaHlZWGRUZEdGMFpXMWxiblE2SUUxaGJtZHZVWFZsY25rcE9pQk5ZVzVuYjFGMVpYSjVJSHRjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dWVzV6ZFhCd2IzSjBaV1JGY25KdmNpaGNiaUFnSUNBZ0lHQlNZWGNnY1hWbGNua2dZV05qWlhOeklHMTFjM1FnWW1VZ2FXMXdiR1Z0Wlc1MFpXUWdZbmtnWVNCemRXSmpiR0Z6Y3k0Z2IyNXNlU0J3Y21Wd1lYSmxaQ0J6ZEdGMFpXMWxiblJ6SUdGeVpTQnVZWFJwZG1Wc2VTQmhkbUZwYkdGaWJHVmdYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJRzkyWlhKeWFXUmxJSEJoWjJVb1hHNGdJQ0FnY0dGblpUb2diblZ0WW1WeUlEMGdNU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQRTFiWFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUJ6ZFhCbGNpNXdZV2RsS0hCaFoyVXNJQzR1TG1GeVozTXBPeUF2THlCMGFHbHpJSGRwYkd3Z1ptRnBiQ0JtYjNJZ2JtOXVMWEJ5WlhCaGNtVmtJSE4wWVhSbGJXVnVkSE5jYmlBZ2ZWeHVYRzRnSUhOMFlYUnBZeUJ2ZG1WeWNtbGtaU0JwYzFObGNtbGhiR2w2WldSUVlXZGxLRzlpYWpvZ1UyVnlhV0ZzYVhwbFpGQmhaMlU4WVc1NVBpQjhJR0Z1ZVNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ2WW1vZ0ppWWdkSGx3Wlc5bUlHOWlhaUE5UFQwZ1hDSnZZbXBsWTNSY0lpQW1KaUJCY25KaGVTNXBjMEZ5Y21GNUtHOWlhaTVrWVhSaEtUdGNiaUFnZlZ4dWZWeHVJbDE5Il19
|