@decaf-ts/for-fabric 0.3.39 → 0.3.40
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 +3740 -2
- package/dist/for-fabric.js +3844 -2
- package/lib/bin/cli.cjs +2 -1
- package/lib/cli-module.cjs +1 -1
- package/lib/cli-utils.cjs +1 -1
- package/lib/client/FabricClientAdapter.cjs +1 -1
- package/lib/client/FabricClientDispatch.cjs +1 -1
- package/lib/client/FabricClientPaginator.cjs +1 -1
- package/lib/client/FabricClientRepository.cjs +1 -1
- package/lib/client/FabricClientStatement.cjs +1 -1
- package/lib/client/collections/generation.cjs +1 -1
- package/lib/client/collections/index.cjs +1 -1
- package/lib/client/constants.cjs +1 -1
- package/lib/client/crypto.cjs +1 -1
- package/lib/client/erc20/FabricERC20ClientRepository.cjs +1 -1
- package/lib/client/erc20/index.cjs +1 -1
- package/lib/client/fabric-fs.cjs +1 -1
- package/lib/client/fabric-hsm.cjs +1 -1
- package/lib/client/ids/id-extraction.cjs +1 -1
- package/lib/client/ids/index.cjs +1 -1
- package/lib/client/index.cjs +1 -1
- package/lib/client/indexes/generation.cjs +1 -1
- package/lib/client/indexes/index.cjs +1 -1
- package/lib/client/logging.cjs +1 -1
- package/lib/client/services/FabricEnrollmentService.cjs +1 -1
- package/lib/client/services/FabricIdentityService.cjs +1 -1
- package/lib/client/services/RegistrationRequestBuilder.cjs +1 -1
- package/lib/client/services/constants.cjs +1 -1
- package/lib/client/services/index.cjs +1 -1
- package/lib/client/types.cjs +1 -1
- package/lib/client/utils.cjs +1 -1
- package/lib/contract/Address.cjs +1 -1
- package/lib/contract/AddressContract.cjs +1 -1
- package/lib/contract/AuditContract.cjs +1 -1
- package/lib/contract/BatchContract.cjs +1 -1
- package/lib/contract/MarketContract.cjs +1 -1
- package/lib/contract/OtherAuditContract.cjs +1 -1
- package/lib/contract/OtherBatchContract.cjs +1 -1
- package/lib/contract/OtherMarketContract.cjs +1 -1
- package/lib/contract/OtherProductContract.cjs +1 -1
- package/lib/contract/OtherProductSharedContract.cjs +1 -1
- package/lib/contract/OtherProductStrengthContract.cjs +1 -1
- package/lib/contract/Product.cjs +1 -1
- package/lib/contract/ProductContract.cjs +1 -1
- package/lib/contract/ProductStrengthContract.cjs +1 -1
- package/lib/contract/SegregatedPrivateDocumentContract.cjs +1 -1
- package/lib/contract/SegregatedSharedDocumentContract.cjs +1 -1
- package/lib/contract/User.cjs +1 -1
- package/lib/contract/UserContract.cjs +1 -1
- package/lib/contract/index.cjs +1 -1
- package/lib/contract/models/Audit.cjs +1 -1
- package/lib/contract/models/BaseIdentifiedModel.cjs +1 -1
- package/lib/contract/models/BaseModel.cjs +1 -1
- package/lib/contract/models/Batch.cjs +1 -1
- package/lib/contract/models/GtinOwner.cjs +1 -1
- package/lib/contract/models/History.cjs +1 -1
- package/lib/contract/models/Leaflet.cjs +1 -1
- package/lib/contract/models/LeafletFile.cjs +1 -1
- package/lib/contract/models/Market.cjs +1 -1
- package/lib/contract/models/OtherAudit.cjs +1 -1
- package/lib/contract/models/OtherBatchShared.cjs +1 -1
- package/lib/contract/models/OtherMarket.cjs +1 -1
- package/lib/contract/models/OtherProduct.cjs +1 -1
- package/lib/contract/models/OtherProductImage.cjs +50 -0
- package/lib/contract/models/OtherProductImage.d.ts +8 -0
- package/lib/contract/models/OtherProductShared.cjs +9 -1
- package/lib/contract/models/OtherProductShared.d.ts +2 -0
- package/lib/contract/models/OtherProductStrength.cjs +1 -1
- package/lib/contract/models/Product.cjs +1 -1
- package/lib/contract/models/ProductStrength.cjs +1 -1
- package/lib/contract/models/SegregatedDocument.cjs +1 -1
- package/lib/contract/models/constants.cjs +1 -1
- package/lib/contract/models/decorators-private.cjs +1 -1
- package/lib/contract/models/decorators.cjs +1 -1
- package/lib/contract/models/gtin.cjs +1 -1
- package/lib/contract/models/history-dec.cjs +1 -1
- package/lib/contracts/ContractAdapter.cjs +2 -2
- package/lib/contracts/ContractContext.cjs +1 -1
- package/lib/contracts/FabricContractDispatch.cjs +1 -1
- package/lib/contracts/FabricContractPaginator.cjs +1 -1
- package/lib/contracts/FabricContractRepository.cjs +1 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +1 -1
- package/lib/contracts/FabricContractSequence.cjs +1 -1
- package/lib/contracts/FabricContractStatement.cjs +1 -1
- package/lib/contracts/PrivateSequence.cjs +1 -1
- package/lib/contracts/auth/decorators.cjs +1 -1
- package/lib/contracts/auth/index.cjs +1 -1
- package/lib/contracts/crud/crud-contract.cjs +1 -1
- package/lib/contracts/crud/index.cjs +1 -1
- package/lib/contracts/crud/serialized-crud-contract.cjs +1 -1
- package/lib/contracts/erc20/erc20contract.cjs +1 -1
- package/lib/contracts/erc20/index.cjs +1 -1
- package/lib/contracts/erc20/models.cjs +1 -1
- package/lib/contracts/index.cjs +1 -1
- package/lib/contracts/logging.cjs +1 -1
- package/lib/contracts/overrides.cjs +1 -1
- package/lib/contracts/types.cjs +1 -1
- package/lib/contracts/uuid.cjs +1 -1
- 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/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 +1 -1
- 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/OtherMarketContract.js +1 -1
- package/lib/esm/contract/OtherProductContract.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/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/OtherMarket.js +1 -1
- package/lib/esm/contract/models/OtherProduct.js +1 -1
- package/lib/esm/contract/models/OtherProductImage.d.ts +8 -0
- package/lib/esm/contract/models/OtherProductImage.js +47 -0
- package/lib/esm/contract/models/OtherProductShared.d.ts +2 -0
- package/lib/esm/contract/models/OtherProductShared.js +10 -2
- 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/contracts/ContractAdapter.js +2 -2
- 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/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/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/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.d.ts +1 -1
- package/lib/esm/version.js +2 -2
- package/lib/index.cjs +1 -1
- package/lib/shared/ClientSerializer.cjs +1 -1
- package/lib/shared/DeterministicSerializer.cjs +1 -1
- package/lib/shared/SimpleDeterministicSerializer.cjs +1 -1
- package/lib/shared/constants.cjs +1 -1
- package/lib/shared/decorators.cjs +1 -1
- package/lib/shared/erc20/erc20-constants.cjs +1 -1
- package/lib/shared/erc20/index.cjs +1 -1
- package/lib/shared/errors.cjs +1 -1
- package/lib/shared/events.cjs +1 -1
- package/lib/shared/fabric-types.cjs +1 -1
- package/lib/shared/index.cjs +1 -1
- package/lib/shared/interfaces/Checkable.cjs +1 -1
- package/lib/shared/interfaces/index.cjs +1 -1
- package/lib/shared/math.cjs +1 -1
- package/lib/shared/model/FabricBaseModel.cjs +1 -1
- package/lib/shared/model/FabricIdentifiedBaseModel.cjs +1 -1
- package/lib/shared/model/Identity.cjs +1 -1
- package/lib/shared/model/IdentityCredentials.cjs +1 -1
- package/lib/shared/model/index.cjs +1 -1
- package/lib/shared/overrides/Model.cjs +1 -1
- package/lib/shared/overrides/index.cjs +1 -1
- package/lib/shared/overrides/overrides.cjs +1 -1
- package/lib/shared/types.cjs +1 -1
- package/lib/version.cjs +2 -2
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/for-fabric.cjs.map +0 -1
- package/dist/for-fabric.js.map +0 -1
- package/lib/bin/cli.js.map +0 -1
- package/lib/cli-module.js.map +0 -1
- package/lib/cli-utils.js.map +0 -1
- package/lib/client/FabricClientAdapter.js.map +0 -1
- package/lib/client/FabricClientDispatch.js.map +0 -1
- package/lib/client/FabricClientPaginator.js.map +0 -1
- package/lib/client/FabricClientRepository.js.map +0 -1
- package/lib/client/FabricClientStatement.js.map +0 -1
- package/lib/client/collections/generation.js.map +0 -1
- package/lib/client/collections/index.js.map +0 -1
- package/lib/client/constants.js.map +0 -1
- package/lib/client/crypto.js.map +0 -1
- package/lib/client/erc20/FabricERC20ClientRepository.js.map +0 -1
- package/lib/client/erc20/index.js.map +0 -1
- package/lib/client/fabric-fs.js.map +0 -1
- package/lib/client/fabric-hsm.js.map +0 -1
- package/lib/client/ids/id-extraction.js.map +0 -1
- package/lib/client/ids/index.js.map +0 -1
- package/lib/client/index.js.map +0 -1
- package/lib/client/indexes/generation.js.map +0 -1
- package/lib/client/indexes/index.js.map +0 -1
- package/lib/client/logging.js.map +0 -1
- package/lib/client/services/FabricEnrollmentService.js.map +0 -1
- package/lib/client/services/FabricIdentityService.js.map +0 -1
- package/lib/client/services/RegistrationRequestBuilder.js.map +0 -1
- package/lib/client/services/constants.js.map +0 -1
- package/lib/client/services/index.js.map +0 -1
- package/lib/client/types.js.map +0 -1
- package/lib/client/utils.js.map +0 -1
- package/lib/contract/Address.js.map +0 -1
- package/lib/contract/AddressContract.js.map +0 -1
- package/lib/contract/AuditContract.js.map +0 -1
- package/lib/contract/BatchContract.js.map +0 -1
- package/lib/contract/MarketContract.js.map +0 -1
- package/lib/contract/OtherAuditContract.js.map +0 -1
- package/lib/contract/OtherBatchContract.js.map +0 -1
- package/lib/contract/OtherMarketContract.js.map +0 -1
- package/lib/contract/OtherProductContract.js.map +0 -1
- package/lib/contract/OtherProductSharedContract.js.map +0 -1
- package/lib/contract/OtherProductStrengthContract.js.map +0 -1
- package/lib/contract/Product.js.map +0 -1
- package/lib/contract/ProductContract.js.map +0 -1
- package/lib/contract/ProductStrengthContract.js.map +0 -1
- package/lib/contract/SegregatedPrivateDocumentContract.js.map +0 -1
- package/lib/contract/SegregatedSharedDocumentContract.js.map +0 -1
- package/lib/contract/User.js.map +0 -1
- package/lib/contract/UserContract.js.map +0 -1
- package/lib/contract/index.js.map +0 -1
- package/lib/contract/models/Audit.js.map +0 -1
- package/lib/contract/models/BaseIdentifiedModel.js.map +0 -1
- package/lib/contract/models/BaseModel.js.map +0 -1
- package/lib/contract/models/Batch.js.map +0 -1
- package/lib/contract/models/GtinOwner.js.map +0 -1
- package/lib/contract/models/History.js.map +0 -1
- package/lib/contract/models/Leaflet.js.map +0 -1
- package/lib/contract/models/LeafletFile.js.map +0 -1
- package/lib/contract/models/Market.js.map +0 -1
- package/lib/contract/models/OtherAudit.js.map +0 -1
- package/lib/contract/models/OtherBatchShared.js.map +0 -1
- package/lib/contract/models/OtherMarket.js.map +0 -1
- package/lib/contract/models/OtherProduct.js.map +0 -1
- package/lib/contract/models/OtherProductShared.js.map +0 -1
- package/lib/contract/models/OtherProductStrength.js.map +0 -1
- package/lib/contract/models/Product.js.map +0 -1
- package/lib/contract/models/ProductStrength.js.map +0 -1
- package/lib/contract/models/SegregatedDocument.js.map +0 -1
- package/lib/contract/models/constants.js.map +0 -1
- package/lib/contract/models/decorators-private.js.map +0 -1
- package/lib/contract/models/decorators.js.map +0 -1
- package/lib/contract/models/gtin.js.map +0 -1
- package/lib/contract/models/history-dec.js.map +0 -1
- package/lib/contracts/ContractAdapter.js.map +0 -1
- package/lib/contracts/ContractContext.js.map +0 -1
- package/lib/contracts/FabricContractDispatch.js.map +0 -1
- package/lib/contracts/FabricContractPaginator.js.map +0 -1
- package/lib/contracts/FabricContractRepository.js.map +0 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
- package/lib/contracts/FabricContractSequence.js.map +0 -1
- package/lib/contracts/FabricContractStatement.js.map +0 -1
- package/lib/contracts/PrivateSequence.js.map +0 -1
- package/lib/contracts/auth/decorators.js.map +0 -1
- package/lib/contracts/auth/index.js.map +0 -1
- package/lib/contracts/crud/crud-contract.js.map +0 -1
- package/lib/contracts/crud/index.js.map +0 -1
- package/lib/contracts/crud/serialized-crud-contract.js.map +0 -1
- package/lib/contracts/erc20/erc20contract.js.map +0 -1
- package/lib/contracts/erc20/index.js.map +0 -1
- package/lib/contracts/erc20/models.js.map +0 -1
- package/lib/contracts/index.js.map +0 -1
- package/lib/contracts/logging.js.map +0 -1
- package/lib/contracts/overrides.js.map +0 -1
- package/lib/contracts/types.js.map +0 -1
- package/lib/contracts/uuid.js.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/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/OtherMarketContract.js.map +0 -1
- package/lib/esm/contract/OtherProductContract.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/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/OtherMarket.js.map +0 -1
- package/lib/esm/contract/models/OtherProduct.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/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/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/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/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
- package/lib/index.js.map +0 -1
- package/lib/shared/ClientSerializer.js.map +0 -1
- package/lib/shared/DeterministicSerializer.js.map +0 -1
- package/lib/shared/SimpleDeterministicSerializer.js.map +0 -1
- package/lib/shared/constants.js.map +0 -1
- package/lib/shared/decorators.js.map +0 -1
- package/lib/shared/erc20/erc20-constants.js.map +0 -1
- package/lib/shared/erc20/index.js.map +0 -1
- package/lib/shared/errors.js.map +0 -1
- package/lib/shared/events.js.map +0 -1
- package/lib/shared/fabric-types.js.map +0 -1
- package/lib/shared/index.js.map +0 -1
- package/lib/shared/interfaces/Checkable.js.map +0 -1
- package/lib/shared/interfaces/index.js.map +0 -1
- package/lib/shared/math.js.map +0 -1
- package/lib/shared/model/FabricBaseModel.js.map +0 -1
- package/lib/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
- package/lib/shared/model/Identity.js.map +0 -1
- package/lib/shared/model/IdentityCredentials.js.map +0 -1
- package/lib/shared/model/index.js.map +0 -1
- package/lib/shared/overrides/Model.js.map +0 -1
- package/lib/shared/overrides/index.js.map +0 -1
- package/lib/shared/overrides/overrides.js.map +0 -1
- package/lib/shared/types.js.map +0 -1
- package/lib/version.js.map +0 -1
|
@@ -274,4 +274,4 @@ class FabricClientDispatch extends core_1.Dispatch {
|
|
|
274
274
|
exports.FabricClientDispatch = FabricClientDispatch;
|
|
275
275
|
if (FabricClientAdapter_1.FabricClientAdapter)
|
|
276
276
|
FabricClientAdapter_1.FabricClientAdapter["_baseDispatch"] = FabricClientDispatch;
|
|
277
|
-
//# sourceMappingURL=FabricClientDispatch.js.map
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50RGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L0ZhYnJpY0NsaWVudERpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQVN3QjtBQUd4QixtRUFBNEQ7QUFDNUQsMkRBSWlDO0FBS2pDLG1EQUFrRDtBQUNsRCx5RUFBdUQ7QUFJdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSxlQUE2QjtJQVdyRTs7OztPQUlHO0lBQ0gsWUFBc0IsTUFBYztRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQURZLFdBQU0sR0FBTixNQUFNLENBQVE7UUFWcEM7O1dBRUc7UUFDSyxZQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFTMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDTSxLQUFLLENBQUMsS0FBSyxDQUNsQixHQUFHLE9BQW1EO1FBRXRELE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQ25DLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsc0JBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQzNELENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixHQUFHLENBQUMsS0FBSyxDQUFDLCtDQUErQyxFQUFFLENBQVUsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsY0FBYyxD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QUFJLENBQUMsNEJBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO3dCQUFFLE9BQU8sTUFBTSxDQUFDO29CQUU3QyxpREFBaUQ7b0JBQ2pELE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDN0MsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUNuQyxNQUFNLENBQ1AsQ0FBQztvQkFDRixNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3hCLE1BQU0sVUFBVSxHQUFVLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFFN0QsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQzt3QkFDNUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDMUIsQ0FBQztvQkFDRCxJQUFJLENBQUMsZUFBZSxDQUNsQixHQUFJLFVBQXNELEVBQzFELEdBQUcsT0FBTyxDQUNYLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FDckIsR0FBRyxDQUFDLEtBQUssQ0FDUCwyQ0FBMkMsTUFBTSxPQUFPLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FDL0YsQ0FDRixDQUFDO29CQUNGLE9BQU8sTUFBTSxDQUFDO2dCQUNoQixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsVEQsb0RBa1RDO0FBRUQsSUFBSSx5Q0FBbUI7SUFDckIseUNBQW1CLENBQUMsZUFBZSxDQUFDLEdBQUcsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZGFwdGVyLFxuICBDb250ZXh0dWFsQXJncyxcbiAgRGlzcGF0Y2gsXG4gIEV2ZW50SWRzLFxuICBVbnN1cHBvcnRlZEVycm9yLFxuICBDb250ZXh0LFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBQZWVyQ29uZmlnIH0gZnJvbSBcIi4uL3NoYXJlZC90eXBlc1wiO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSBcIkBncnBjL2dycGMtanNcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ2hhaW5jb2RlRXZlbnQsXG4gIENsb3NlYWJsZUFzeW5jSXRlcmFibGUsXG59IGZyb20gXCJAaHlwZXJsZWRnZXIvZmFicmljLWdhdGV3YXlcIjtcbmltcG9ydCB7IHBhcnNlRXZlbnROYW1lIH0gZnJvbSBcIi4uL3NoYXJlZC9ldmVudHNcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXZlbnQgZGlzcGF0Y2hlciBmb3IgSHlwZXJsZWRnZXIgRmFicmljIGNoYWluY29kZSBldmVudHNcbiAqIEBzdW1tYXJ5IExpc3RlbnMgZm9yIGFuZCBwcm9jZXNzZXMgZXZlbnRzIGVtaXR0ZWQgYnkgRmFicmljIGNoYWluY29kZSwgZGlzcGF0Y2hpbmcgdGhlbSB0byByZWdpc3RlcmVkIG9ic2VydmVyc1xuICogQHRlbXBsYXRlIFBlZXJDb25maWcgLSBDb25maWd1cmF0aW9uIHR5cGUgZm9yIGNvbm5lY3RpbmcgdG8gYSBGYWJyaWMgcGVlclxuICogQHBhcmFtIGNsaWVudCAtIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICogQGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbmV3IEZhYnJpY0Rpc3BhdGNoIGluc3RhbmNlXG4gKiBjb25zdCBjbGllbnQgPSBhd2FpdCBGYWJyaWNBZGFwdGVyLmdldENsaWVudChwZWVyQ29uZmlnKTtcbiAqIGNvbnN0IGRpc3BhdGNoID0gbmV3IEZhYnJpY0Rpc3BhdGNoKGNsaWVudCk7XG4gKlxuICogLy8gQ29uZmlndXJlIHRoZSBkaXNwYXRjaCB3aXRoIHBlZXIgY29uZmlndXJhdGlvblxuICogZGlzcGF0Y2guY29uZmlndXJlKHBlZXJDb25maWcpO1xuICpcbiAqIC8vIFJlZ2lzdGVyIGFuIG9ic2VydmVyIGZvciBhIHNwZWNpZmljIHRhYmxlIGFuZCBldmVudFxuICogZGlzcGF0Y2gub2JzZXJ2ZSgndXNlcnMnLCAnY3JlYXRlJywgKGlkKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKGBVc2VyIGNyZWF0ZWQ6ICR7aWR9YCk7XG4gKiB9KTtcbiAqXG4gKiAvLyBTdGFydCBsaXN0ZW5pbmcgZm9yIGV2ZW50c1xuICogYXdhaXQgZGlzcGF0Y2guc3RhcnQoKTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgRmFicmljRGlzcGF0Y2hcbiAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICogICBwYXJ0aWNpcGFudCBOZXR3b3JrXG4gKiAgIHBhcnRpY2lwYW50IENoYWluY29kZVxuICpcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG5ldyBGYWJyaWNEaXNwYXRjaChjbGllbnQpXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBjb25maWd1cmUocGVlckNvbmZpZylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG9ic2VydmUodGFibGUsIGV2ZW50LCBjYWxsYmFjaylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IHN0YXJ0KClcbiAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaW5pdGlhbGl6ZSgpXG4gKiAgIEZhYnJpY0Rpc3BhdGNoLT4+R2F0ZXdheTogZ2V0R2F0ZXdheShjb25maWcsIGNsaWVudClcbiAqICAgR2F0ZXdheS0+Pk5ldHdvcms6IGdldE5ldHdvcmsoY2hhbm5lbClcbiAqICAgTmV0d29yay0+Pk5ldHdvcms6IGdldENoYWluY29kZUV2ZW50cyhjaGFpbmNvZGVOYW1lKVxuICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBoYW5kbGVFdmVudHMoKVxuICogICBsb29wIEZvciBlYWNoIGV2ZW50XG4gKiAgICAgQ2hhaW5jb2RlLS0+PkZhYnJpY0Rpc3BhdGNoOiBDaGFpbmNvZGVFdmVudFxuICogICAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IHBhcnNlRXZlbnROYW1lKGV2ZW50TmFtZSlcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQocGF5bG9hZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiB1cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0tPj5DbGllbnQ6IGNhbGxiYWNrKGlkKVxuICogICBlbmRcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoIGV4dGVuZHMgRGlzcGF0Y2g8RmFicmljQ2xpZW50QWRhcHRlcj4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV2ZW50IGxpc3RlbmluZyBzdGFjayBmb3IgY2hhaW5jb2RlIGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5pbmdTdGFjaz86IENsb3NlYWJsZUFzeW5jSXRlcmFibGU8Q2hhaW5jb2RlRXZlbnQ+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGV4dCBkZWNvZGVyIGZvciBjb252ZXJ0aW5nIGV2ZW50IHBheWxvYWRzIGZyb20gYnl0ZXMgdG8gc3RyaW5nc1xuICAgKi9cbiAgcHJpdmF0ZSBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKFwidXRmOFwiKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRmFicmljRGlzcGF0Y2ggaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBkaXNwYXRjaGVyIGZvciBGYWJyaWMgY2hhaW5jb2RlIGV2ZW50c1xuICAgKiBAcGFyYW0ge0NsaWVudH0gY2xpZW50IC0gZ1JQQyBjbGllbnQgZm9yIGNvbm5lY3RpbmcgdG8gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2xpZW50OiBDbGllbnQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDbG9zZXMgdGhlIGV2ZW50IGxpc3RlbmluZyBjb25uZWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN0b3BzIGxpc3RlbmluZyBmb3IgY2hhaW5jb2RlIGV2ZW50cyBhbmQgcmVsZWFzZXMgcmVzb3VyY2VzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZFxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgY2xvc2UoXG4gICAgLi4uY3R4QXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzOiBsb2dnZWRBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChjdHhBcmdzLCBQZXJzaXN0ZW5jZUtleXMuU0hVVERPV04sIHRydWUpXG4gICAgKS5mb3IodGhpcy5jbG9zZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHN1cGVyLmNsb3NlKC4uLmxvZ2dlZEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNsb3NlIEZhYnJpYyBwcm94aWVzIGV2ZW50IGxpc3RlbmVyYCwgZSBhcyBFcnJvcik7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpc3RlbmluZ1N0YWNrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLmxpc3RlbmluZ1N0YWNrLmNsb3NlKCk7XG4gICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNsb3NlIEZhYnJpYyBldmVudCBsaXN0ZW5lcmAsIGUgYXMgRXJyb3IpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5saXN0ZW5pbmdTdGFjayA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBldmVudCBwYXlsb2FkIGZyb20gYmluYXJ5IGZvcm1hdFxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBhIFVpbnQ4QXJyYXkgY29udGFpbmluZyBKU09OIHRvIGFuIG9iamVjdCB3aXRoIGFuIGlkIHByb3BlcnR5XG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ganNvbkJ5dGVzIC0gVGhlIGJpbmFyeSBwYXlsb2FkIGZyb20gdGhlIGNoYWluY29kZSBldmVudFxuICAgKiBAcmV0dXJuIHt7IGlkOiBzdHJpbmcgfX0gVGhlIHBhcnNlZCBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHJlY29yZCBJRFxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZVBheWxvYWQoanNvbkJ5dGVzOiBVaW50OEFycmF5KTogeyBpZDogc3RyaW5nOyByZXN1bHQ/OiBhbnkgfSB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuZGVjb2Rlci5kZWNvZGUoanNvbkJ5dGVzKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3RhcnRzIG9ic2VydmluZyBhbiBhZGFwdGVyXG4gICAqIEBzdW1tYXJ5IENvbm5lY3RzIHRoaXMgZGlzcGF0Y2ggdG8gYW4gYWRhcHRlciB0byBtb25pdG9yIGl0cyBvcGVyYXRpb25zXG4gICAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIGFueSwgYW55LCBhbnk+fSBvYnNlcnZlciAtIFRoZSBhZGFwdGVyIHRvIG9ic2VydmVcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIG92ZXJyaWRlIG9ic2VydmUob2JzZXJ2ZXI6IEFkYXB0ZXI8YW55LCBhbnksIGFueSwgYW55Pik6ICgpID0+IHZvaWQge1xuICAgIGlmICghKG9ic2VydmVyIGluc3RhbmNlb2YgRmFicmljQ2xpZW50QWRhcHRlcikpXG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgICAgXCJPbmx5IEZhYnJpY0NsaWVudEFkYXB0ZXIgY2FuIGJlIG9ic2VydmVkIGJ5IGRpc3BhdGNoXCJcbiAgICAgICk7XG4gICAgc3VwZXIub2JzZXJ2ZShvYnNlcnZlciBhcyBGYWJyaWNDbGllbnRBZGFwdGVyKTtcbiAgICByZXR1cm4gKCkgPT4gdGhpcy51bk9ic2VydmUob2JzZXJ2ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIG9ic2VydmVycyBhYm91dCBhIGRhdGFiYXNlIGV2ZW50XG4gICAqIEBzdW1tYXJ5IE5vdGlmaWVzIG9ic2VydmVycyBhYm91dCBhIGNoYW5nZSBpbiB0aGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHdoZXJlIHRoZSBjaGFuZ2Ugb2NjdXJyZWRcbiAgICogQHBhcmFtIHtPcGVyYXRpb25LZXlzfEJ1bGtDcnVkT3BlcmF0aW9uS2V5c3xzdHJpbmd9IGV2ZW50IC0gVGhlIHR5cGUgb2Ygb3BlcmF0aW9uIHRoYXQgb2NjdXJyZWRcbiAgICogQHBhcmFtIHthbnl9IHBheWxvYWQgLSBUaGUgZXZlbnQgcGF5bG9hZFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBvYnNlcnZlcnMgaGF2ZSBiZWVuIG5vdGlmaWVkXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyB1cGRhdGVPYnNlcnZlcnMoXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPGFueT4gfCBzdHJpbmcsXG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gICAgaWQ6IEV2ZW50SWRzLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gQWRhcHRlci5sb2dDdHg8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+KFxuICAgICAgdGhpcy51cGRhdGVPYnNlcnZlcnMsXG4gICAgICBldmVudCxcbiAgICAgIGZhbHNlLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIGxvZy52ZXJib3NlKFxuICAgICAgICBgTm8gYWRhcHRlciBvYnNlcnZlZCBmb3IgZGlzcGF0Y2g7IHNraXBwaW5nIG9ic2VydmVyIHVwZGF0ZSBmb3IgJHt0eXBlb2YgbW9kZWwgPT09IFwic3RyaW5nXCIgPyBtb2RlbCA6IE1vZGVsLnRhYmxlTmFtZShtb2RlbCl9OiR7ZXZlbnR9YFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYWRhcHRlci5yZWZyZXNoKG1vZGVsLCBldmVudCwgaWQsIC4uLmN0eEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gcmVmcmVzaCBkaXNwYXRjaDogJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJvY2Vzc2VzIGluY29taW5nIGNoYWluY29kZSBldmVudHNcbiAgICogQHN1bW1hcnkgTGlzdGVucyBmb3IgZXZlbnRzIGZyb20gdGhlIGNoYWluY29kZSBhbmQgZGlzcGF0Y2hlcyB0aGVtIHRvIHJlZ2lzdGVyZWQgb2JzZXJ2ZXJzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGV2ZW50IGhhbmRsaW5nIHN0b3BzXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0Rpc3BhdGNoXG4gICAqICAgcGFydGljaXBhbnQgRXZlbnRTdGFja1xuICAgKiAgIHBhcnRpY2lwYW50IEV2ZW50UGFyc2VyXG4gICAqICAgcGFydGljaXBhbnQgT2JzZXJ2ZXJzXG4gICAqXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaGFuZGxlRXZlbnRzKClcbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkV2ZW50U3RhY2s6IGZvciBhd2FpdCAoY29uc3QgZXZ0IG9mIGxpc3RlbmluZ1N0YWNrKVxuICAgKiAgIEV2ZW50U3RhY2stLT4+RmFicmljRGlzcGF0Y2g6IENoYWluY29kZUV2ZW50XG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5FdmVudFBhcnNlcjogcGFyc2VFdmVudE5hbWUoZXZ0LmV2ZW50TmFtZSlcbiAgICogICBFdmVudFBhcnNlci0tPj5GYWJyaWNEaXNwYXRjaDogeyB0YWJsZSwgZXZlbnQsIG93bmVyIH1cbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBDaGVjayBpZiBldmVudCBpcyBmb3IgdGhpcyBNU1BcbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQoZXZ0LnBheWxvYWQpXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5PYnNlcnZlcnM6IHVwZGF0ZU9ic2VydmVycyh0YWJsZSwgZXZlbnQsIHBheWxvYWQuaWQpXG4gICAqICAgT2JzZXJ2ZXJzLS0+PkZhYnJpY0Rpc3BhdGNoOiBDYWxsYmFja3MgZXhlY3V0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVFdmVudHMoXG4gICAgY3R4QXJnPzogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmxpc3RlbmluZ1N0YWNrKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBFdmVudCBzdGFjayBub3QgaW5pdGlhbGl6ZWQuIEVuc3VyZSB0aGF0IFwic3RhcnRMaXN0ZW5pbmdcIiBpcyBjYWxsZWQgYmVmb3JlIGF0dGVtcHRpbmcgdGhpcyBvcGVyYXRpb24uYFxuICAgICAgKTtcblxuICAgIGlmICghdGhpcy5hZGFwdGVyIHx8ICF0aGlzLmFkYXB0ZXIuY29uZmlnKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIGFkYXB0ZXIgZm91bmQuIHNob3VsZCBiZSBpbXBvc3NpYmxlYCk7XG5cbiAgICBjb25zdCBjdHggPVxuICAgICAgY3R4QXJnIHx8XG4gICAgICAoYXdhaXQgdGhpcy5hZGFwdGVyLmNvbnRleHQoXG4gICAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgICAge1xuICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHRoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgKHRoaXMubW9kZWxzICYmIHRoaXMubW9kZWxzWzBdKSB8fCAoTW9kZWwgYXMgdW5rbm93biBhcyBDb25zdHJ1Y3RvcilcbiAgICAgICkpO1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmhhbmRsZUV2ZW50cyk7XG5cbiAgICBsb2cuaW5mbyhcbiAgICAgIGBMaXN0ZW5pbmcgZm9yIGluY29taW5nIGV2ZW50cyBvbiBjaGFpbmNvZGUgXCIke3RoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZX1cIiBvbiBjaGFubmVsIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYW5uZWx9XCIuLi5gXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGV2dCBvZiB0aGlzLmxpc3RlbmluZ1N0YWNrKSB7XG4gICAgICAgIGNvbnN0IHsgdGFibGUsIGV2ZW50LCBvd25lciB9ID0gcGFyc2VFdmVudE5hbWUoZXZ0LmV2ZW50TmFtZSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BFdmVudE9ubHkgJiZcbiAgICAgICAgICBvd25lciAmJlxuICAgICAgICAgIG93bmVyICE9PSB0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BJZFxuICAgICAgICApXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IHsgaWQ6IHN0cmluZzsgcmVzdWx0PzogYW55IH0gPSB0aGlzLnBhcnNlUGF5bG9hZChcbiAgICAgICAgICBldnQucGF5bG9hZFxuICAgICAgICApO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHRhcmdldE1vZGVsID0gdGFibGVcbiAgICAgICAgICAgID8gTW9kZWwuZ2V0KHRhYmxlKVxuICAgICAgICAgICAgOiBNb2RlbC5nZXQodGhpcy5tb2RlbHNbMF0ubmFtZSk7XG4gICAgICAgICAgY29uc3QgbW9kZWxSZWYgPSB0YXJnZXRNb2RlbCA/PyAodGFibGUgfHwgdGhpcy5tb2RlbHNbMF0/Lm5hbWUpO1xuICAgICAgICAgIGNvbnN0IG9ic2VydmVyQXJncyA9IHBheWxvYWQucmVzdWx0ID8gW3BheWxvYWQucmVzdWx0LCBjdHhdIDogW2N0eF07XG4gICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVPYnNlcnZlcnMoXG4gICAgICAgICAgICBtb2RlbFJlZiBhcyBDb25zdHJ1Y3RvciB8IHN0cmluZyxcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgcGF5bG9hZC5pZCBhcyBzdHJpbmcsXG4gICAgICAgICAgICAuLi4ob2JzZXJ2ZXJBcmdzIGFzIENvbnRleHR1YWxBcmdzPGFueT4pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIGxvZy5lcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdXBkYXRlIG9ic2VydmFibGVzIGZvciB0YWJsZSAke3RhYmxlfSBldmVudCAke2V2ZW50fSBpZDogJHtwYXlsb2FkLmlkfTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBsb2cuZXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gcmVhZCBldmVudCBmb3IgY2hhaW5jb2RlIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWV9XCIgb24gY2hhbm5lbCBcIiR7dGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFubmVsfVwiOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2xvc2UoY3R4KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBldmVudCBsaXN0ZW5lclxuICAgKiBAc3VtbWFyeSBTZXRzIHVwIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBGYWJyaWMgbmV0d29yayBhbmQgc3RhcnRzIGxpc3RlbmluZyBmb3IgY2hhaW5jb2RlIGV2ZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBpbml0aWFsaXphdGlvbiBpcyBjb21wbGV0ZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvciBjb25maWcgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoYCk7XG4gICAgY29uc3QgY29udGV4dCA9IGF3YWl0IHRoaXMuYWRhcHRlci5jb250ZXh0KFxuICAgICAgXCJkaXNwYXRjaFwiLFxuICAgICAge1xuICAgICAgICBjb3JyZWxhdGlvbklkOiB0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWUsXG4gICAgICB9LFxuICAgICAgTW9kZWwgYXMgYW55XG4gICAgKTtcbiAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGdhdGV3YXkgPSBhd2FpdCBGYWJyaWNDbGllbnRBZGFwdGVyLmdldEdhdGV3YXkoXG4gICAgICBjdHgsXG4gICAgICB0aGlzLmFkYXB0ZXIuY29uZmlnIGFzIFBlZXJDb25maWcsXG4gICAgICB0aGlzLmNsaWVudFxuICAgICk7XG4gICAgY29uc3QgbmV0d29yayA9IGdhdGV3YXkuZ2V0TmV0d29yayh0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYW5uZWwpO1xuICAgIGlmICghdGhpcy5hZGFwdGVyKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIGFkYXB0ZXIgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoYCk7XG4gICAgdGhpcy5saXN0ZW5pbmdTdGFjayA9IGF3YWl0IG5ldHdvcmsuZ2V0Q2hhaW5jb2RlRXZlbnRzKFxuICAgICAgdGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFpbmNvZGVOYW1lXG4gICAgKTtcbiAgICB0aGlzLmhhbmRsZUV2ZW50cyhjdHgpO1xuXG4gICAgLy8gZmFsbGJhY2sgZm9yIGZ1bGx5IHNlZ3JlZ2F0ZWQgbW9kZWxzICh0aGUgYWRhcHRlciBkb2VzbnQgc2VudCBldmVudHMgaWYgc28pXG5cbiAgICAoXG4gICAgICBbXG4gICAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMLFxuICAgICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTCxcbiAgICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsXG4gICAgICBdIGFzIChrZXlvZiBBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT4pW11cbiAgICApLmZvckVhY2goKHRvV3JhcCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIGBObyBhZGFwdGVyIHByb3ZpZGVkIGZvciB0aGUgZmFsbGJhY2sgb2YgZnVsbHkgc2VncmVnYXRlZCBtb2RlbHNgXG4gICAgICAgICk7XG4gICAgICBpZiAoIXRoaXMuYWRhcHRlclt0b1dyYXBdKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBgTWV0aG9kICR7dG9XcmFwfSBub3QgZm91bmQgaW4gJHt0aGlzLmFkYXB0ZXIuYWxpYXN9IGFkYXB0ZXIgdG8gYmluZCBPYnNlcnZhYmxlcyBEaXNwYXRjaGBcbiAgICAgICAgKTtcblxuICAgICAgbGV0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMuYWRhcHRlciwgdG9XcmFwKTtcbiAgICAgIGxldCBwcm90bzogYW55ID0gdGhpcy5hZGFwdGVyO1xuICAgICAgd2hpbGUgKCFkZXNjcmlwdG9yICYmIHByb3RvICE9PSBPYmplY3QucHJvdG90eXBlKSB7XG4gICAgICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgICAgICAgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocHJvdG8sIHRvV3JhcCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghZGVzY3JpcHRvciB8fCAhZGVzY3JpcHRvci53cml0YWJsZSkge1xuICAgICAgICB0aGlzLmxvZy5lcnJvcihcbiAgICAgICAgICBgQ291bGQgbm90IGZpbmQgbWV0aG9kICR7dG9XcmFwfSB0byBiaW5kIE9ic2VydmFibGVzIERpc3BhdGNoYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBidWxrVG9TaW5nbGUobWV0aG9kOiBzdHJpbmcpIHtcbiAgICAgICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgICAgICBjYXNlIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMOlxuICAgICAgICAgICAgcmV0dXJuIE9wZXJhdGlvbktleXMuQ1JFQVRFO1xuICAgICAgICAgIGNhc2UgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEw6XG4gICAgICAgICAgICByZXR1cm4gT3BlcmF0aW9uS2V5cy5VUERBVEU7XG4gICAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTDpcbiAgICAgICAgICAgIHJldHVybiBPcGVyYXRpb25LZXlzLkRFTEVURTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG1ldGhvZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGJlY2F1c2UgdGhlcmUgYXJlIHJlYWQgb25seSBwcm9wZXJ0aWVzXG4gICAgICB0aGlzLmFkYXB0ZXJbdG9XcmFwXSA9IG5ldyBQcm94eSh0aGlzLmFkYXB0ZXJbdG9XcmFwXSwge1xuICAgICAgICBhcHBseTogYXN5bmMgKFxuICAgICAgICAgIHRhcmdldDogYW55LFxuICAgICAgICAgIHRoaXNBcmc6IEZhYnJpY0NsaWVudEFkYXB0ZXIsXG4gICAgICAgICAgYXJnQXJyYXk6IGFueVtdXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIC8vIFJ1biB0aGUgb3JpZ2luYWwgbWV0aG9kIHVuY2hhbmdlZCBzbyB0cmFuc2llbnQgZGF0YSBpcyBwcmVzZXJ2ZWRcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0YXJnZXQuYXBwbHkodGhpc0FyZywgYXJnQXJyYXkpO1xuXG4gICAgICAgICAgY29uc3QgY2xheno6IENvbnN0cnVjdG9yPGFueT4gPSBhcmdBcnJheVswXTtcbiAgICAgICAgICAvLyBGdWxseS1wdWJsaWMgbW9kZWxzIGVtaXQgYSBjaGFpbmNvZGUgZXZlbnQgb24gdGhlIGNvbnRyYWN0IHNpZGU7XG4gICAgICAgICAgLy8gc2tpcCB0aGUgbG9jYWwgZmFsbGJhY2sgdG8gYXZvaWQgZG91YmxlLW5vdGlmaWNhdGlvbi5cbiAgICAgICAgICBpZiAoIU1vZGVsLmlzVHJhbnNpZW50KGNsYXp6KSkgcmV0dXJuIHJlc3VsdDtcblxuICAgICAgICAgIC8vIENvbnRleHQgaXMgYWx3YXlzIHRoZSBsYXN0IGVsZW1lbnQgb2YgYXJnQXJyYXlcbiAgICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncywgY3R4IH0gPSB0aGlzQXJnW1wibG9nQ3R4XCJdKFxuICAgICAgICAgICAgYXJnQXJyYXkuc2xpY2UoYXJnQXJyYXkubGVuZ3RoIC0gMSksXG4gICAgICAgICAgICB0YXJnZXRcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGlkcyA9IGFyZ0FycmF5WzFdO1xuICAgICAgICAgIGNvbnN0IHJlc3VsdEFyZ3M6IGFueVtdID0gW2NsYXp6LCBidWxrVG9TaW5nbGUodG9XcmFwKSwgaWRzXTtcblxuICAgICAgICAgIGlmIChjdHguZ2V0T3JVbmRlZmluZWQoXCJvYnNlcnZlRnVsbFJlc3VsdFwiKSkge1xuICAgICAgICAgICAgcmVzdWx0QXJncy5wdXNoKHJlc3VsdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudXBkYXRlT2JzZXJ2ZXJzKFxuICAgICAgICAgICAgLi4uKHJlc3VsdEFyZ3MgYXMgUGFyYW1ldGVyczx0eXBlb2YgdGhpcy51cGRhdGVPYnNlcnZlcnM+KSxcbiAgICAgICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICAgICApLmNhdGNoKChlOiB1bmtub3duKSA9PlxuICAgICAgICAgICAgbG9nLmVycm9yKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIGRpc3BhdGNoIG9ic2VydmVyIHJlZnJlc2ggZm9yICR7dG9XcmFwfSBvbiAke2NsYXp6Lm5hbWUgfHwgY2xhenp9IGZvciAke2lkc306ICR7ZX1gXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cblxuaWYgKEZhYnJpY0NsaWVudEFkYXB0ZXIpXG4gIEZhYnJpY0NsaWVudEFkYXB0ZXJbXCJfYmFzZURpc3BhdGNoXCJdID0gRmFicmljQ2xpZW50RGlzcGF0Y2g7XG4iXX0=
|
|
@@ -15,4 +15,4 @@ class FabricClientPaginator extends core_1.Paginator {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
exports.FabricClientPaginator = FabricClientPaginator;
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9GYWJyaWNDbGllbnRQYWdpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBS3dCO0FBTXhCLE1BQWEscUJBQXVDLFNBQVEsZ0JBSTNEO0lBR0MsWUFDRSxPQUE0QixFQUM1QixLQUEwQyxFQUMxQyxJQUFZLEVBQ1osS0FBcUI7UUFFckIsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCw2REFBNkQ7SUFDbkQsT0FBTyxDQUFDLFlBQXdCO1FBQ3hDLE1BQU0sSUFBSSx1QkFBZ0IsQ0FDeEIscUdBQXFHLENBQ3RHLENBQUM7SUFDSixDQUFDO0lBRVEsSUFBSSxDQUNYLE9BQWUsQ0FBQyxFQUNoQixHQUFHLElBQTZCO1FBRWhDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLDZDQUE2QztJQUNqRixDQUFDO0NBQ0Y7QUE3QkQsc0RBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTWF5YmVDb250ZXh0dWFsQXJnLFxuICBQYWdpbmF0b3IsXG4gIFByZXBhcmVkU3RhdGVtZW50LFxuICBVbnN1cHBvcnRlZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQgeyBNYW5nb1F1ZXJ5IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50UGFnaW5hdG9yPE0gZXh0ZW5kcyBNb2RlbD4gZXh0ZW5kcyBQYWdpbmF0b3I8XG4gIE0sXG4gIE1bXSxcbiAgTWFuZ29RdWVyeVxuPiB7XG4gIGJvb2ttYXJrPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFkYXB0ZXI6IEZhYnJpY0NsaWVudEFkYXB0ZXIsXG4gICAgcXVlcnk6IE1hbmdvUXVlcnkgfCBQcmVwYXJlZFN0YXRlbWVudDxhbnk+LFxuICAgIHNpemU6IG51bWJlcixcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT5cbiAgKSB7XG4gICAgc3VwZXIoYWRhcHRlciwgcXVlcnksIHNpemUsIGNsYXp6KTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHJvdGVjdGVkIHByZXBhcmUocmF3U3RhdGVtZW50OiBNYW5nb1F1ZXJ5KTogTWFuZ29RdWVyeSB7XG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICBgUmF3IHF1ZXJ5IGFjY2VzcyBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGEgc3ViY2xhc3MuIG9ubHkgcHJlcGFyZWQgc3RhdGVtZW50cyBhcmUgbmF0aXZlbHkgYXZhaWxhYmxlYFxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBwYWdlKFxuICAgIHBhZ2U6IG51bWJlciA9IDEsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICByZXR1cm4gc3VwZXIucGFnZShwYWdlLCAuLi5hcmdzKTsgLy8gdGhpcyB3aWxsIGZhaWwgZm9yIG5vbi1wcmVwYXJlZCBzdGF0ZW1lbnRzXG4gIH1cbn1cbiJdfQ==
|
|
@@ -232,4 +232,4 @@ class FabricClientRepository extends core_1.Repository {
|
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
234
|
exports.FabricClientRepository = FabricClientRepository;
|
|
235
|
-
//# sourceMappingURL=FabricClientRepository.js.map
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50UmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FXd0I7QUFDeEIseUVBQXVEO0FBR3ZELDJEQU9pQztBQUNqQyx1REFBb0Q7QUFFcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQWEsc0JBR1gsU0FBUSxpQkFBZ0I7SUFXeEIsWUFBWSxPQUFXLEVBQUUsS0FBc0I7UUFDN0MsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQVhMLGVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDckUsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixjQUFjLEVBQUUsSUFBSTtZQUNwQixrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsMEJBQTBCLEVBQUUsSUFBSTtZQUNoQyx1QkFBdUIsRUFBRSxLQUFLO1lBQzlCLG9CQUFvQixFQUFFLEtBQUs7U0FDNUIsQ0FBQyxDQUFDO0lBSUgsQ0FBQztJQUVRLFFBQVEsQ0FBQyxLQUFxQztRQUNyRCxPQUFPLEtBQUs7YUFDVCxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNuRCxHQUFHLENBQUMsS0FBWSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVrQixlQUFlO1FBQ2hDLE9BQU8sS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFUSxLQUFLLENBQUMsVUFBVSxDQUN2QixHQUFZLEVBQ1osS0FBcUIsRUFDckIsTUFBK0M7UUFDN0MsTUFBTSxFQUFFLENBQUM7UUFDVCxLQUFLLEVBQUUsRUFBRTtL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R0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQ2hDLEdBQUcsT0FBTyxDQUNYLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QixNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDeEIsQ0FBQyxFQUNELElBQUksQ0FBQyxLQUFLLEVBQ1YsRUFBRSxFQUNGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQ3JCLEdBQUcsQ0FDSixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxHQUFpQixFQUFFLEtBQVE7UUFDeEQsSUFBSSw0QkFBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdmNELHdEQXVjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQge1xuICBDb250ZXh0T2YsXG4gIERpcmVjdGlvbkxpbWl0T2Zmc2V0LFxuICBGbGFnc09mLFxuICBPYnNlcnZlckhhbmRsZXIsXG4gIE9yZGVyRGlyZWN0aW9uLFxuICBQYWdpbmF0b3IsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbiAgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLFxuICBSZXBvc2l0b3J5LFxuICBTZXJpYWxpemVkUGFnZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyB0eXBlIEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIGVuZm9yY2VEQkRlY29yYXRvcnMsXG4gIE9wZXJhdGlvbktleXMsXG4gIFByaW1hcnlLZXlUeXBlLFxuICByZWR1Y2VFcnJvcnNUb1ByaW50LFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ291Y2hEQktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlcG9zaXRvcnkgaW1wbGVtZW50YXRpb24gZm9yIEZhYnJpYyBjbGllbnQgb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgRXh0ZW5kcyB0aGUgZ2VuZXJpYyBSZXBvc2l0b3J5IHRvIHByZXBhcmUgY29udGV4dCBhbmQgYXJndW1lbnRzIGZvciBDUlVEIG9wZXJhdGlvbnMgZXhlY3V0ZWQgdmlhIGEgRmFicmljIGNsaWVudCBBZGFwdGVyLCB3aXJpbmcgUmVwb3NpdG9yeUZsYWdzIGFuZCBGYWJyaWMtc3BlY2lmaWMgb3ZlcnJpZGVzLlxuICogQHRlbXBsYXRlIE0gZXh0ZW5kcyBNb2RlbCAtIFRoZSBtb2RlbCB0eXBlIGhhbmRsZWQgYnkgdGhpcyByZXBvc2l0b3J5XG4gKiBAcGFyYW0ge0FkYXB0ZXI8YW55LCBNYW5nb1F1ZXJ5LCBGYWJyaWNGbGFncywgQ29udGV4dDxGYWJyaWNGbGFncz4+fSBbYWRhcHRlcl0gLSBPcHRpb25hbCBhZGFwdGVyIGluc3RhbmNlIHVzZWQgdG8gZXhlY3V0ZSBvcGVyYXRpb25zXG4gKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBbY2xhenpdIC0gT3B0aW9uYWwgbW9kZWwgY29uc3RydWN0b3IgdXNlZCBieSB0aGUgcmVwb3NpdG9yeVxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5XG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuICogaW1wb3J0IHsgRmFicmljQ2xpZW50UmVwb3NpdG9yeSB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWZhYnJpY1wiO1xuICpcbiAqIGNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7IGlkITogc3RyaW5nOyBuYW1lITogc3RyaW5nOyB9XG4gKiBjb25zdCByZXBvID0gbmV3IEZhYnJpY0NsaWVudFJlcG9zaXRvcnk8VXNlcj4oKTtcbiAqIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCByZXBvLmNyZWF0ZShuZXcgVXNlcih7IGlkOiBcIjFcIiwgbmFtZTogXCJBbGljZVwiIH0pKTtcbiAqIGNvbnN0IGxvYWRlZCA9IGF3YWl0IHJlcG8ucmVhZChcIjFcIik7XG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBBcHBcbiAqICAgcGFydGljaXBhbnQgUmVwbyBhcyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5XG4gKiAgIHBhcnRpY2lwYW50IEFkYXB0ZXJcbiAqICAgQXBwLT4+UmVwbzogY3JlYXRlKG1vZGVsKVxuICogICBSZXBvLT4+UmVwbzogY3JlYXRlUHJlZml4KG1vZGVsLCAuLi5hcmdzKVxuICogICBSZXBvLT4+QWRhcHRlcjogY3JlYXRlKHRhYmxlLCBpZCwgbW9kZWwsIGZsYWdzKVxuICogICBBZGFwdGVyLS0+PlJlcG86IHJlc3VsdFxuICogICBSZXBvLS0+PkFwcDogbW9kZWxcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnk8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgQSBleHRlbmRzIEZhYnJpY0NsaWVudEFkYXB0ZXIgPSBGYWJyaWNDbGllbnRBZGFwdGVyLFxuPiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgQT4ge1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX292ZXJyaWRlcyA9IE9iamVjdC5hc3NpZ24oe30sIHN1cGVyW1wiX292ZXJyaWRlc1wiXSwge1xuICAgIGlnbm9yZVZhbGlkYXRpb246IHRydWUsXG4gICAgaWdub3JlSGFuZGxlcnM6IHRydWUsXG4gICAgYWxsb3dSYXdTdGF0ZW1lbnRzOiBmYWxzZSxcbiAgICBmb3JjZVByZXBhcmVTaW1wbGVRdWVyaWVzOiB0cnVlLFxuICAgIGZvcmNlUHJlcGFyZUNvbXBsZXhRdWVyaWVzOiB0cnVlLFxuICAgIGFsbG93R2VuZXJhdGlvbk92ZXJyaWRlOiBmYWxzZSxcbiAgICByZWJ1aWxkV2l0aFRyYW5zaWVudDogZmFsc2UsXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI/OiBBLCBjbGF6ej86IENvbnN0cnVjdG9yPE0+KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgY2xhenopO1xuICB9XG5cbiAgb3ZlcnJpZGUgb3ZlcnJpZGUoZmxhZ3M6IFBhcnRpYWw8RmxhZ3NPZjxDb250ZXh0T2Y8QT4+Pik6IHRoaXMge1xuICAgIHJldHVybiBzdXBlclxuICAgICAgLm92ZXJyaWRlKE9iamVjdC5hc3NpZ24oe30sIGZsYWdzLCB0aGlzLl9vdmVycmlkZXMpKVxuICAgICAgLmZvcihmbGFncyBhcyBhbnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIE9ic2VydmVySGFuZGxlcigpOiBPYnNlcnZlckhhbmRsZXIge1xuICAgIHJldHVybiBzdXBlci5PYnNlcnZlckhhbmRsZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHBhZ2luYXRlQnkoXG4gICAga2V5OiBrZXlvZiBNLFxuICAgIG9yZGVyOiBPcmRlckRpcmVjdGlvbixcbiAgICByZWY6IE9taXQ8RGlyZWN0aW9uTGltaXRPZmZzZXQsIFwiZGlyZWN0aW9uXCI+ID0ge1xuICAgICAgb2Zmc2V0OiAxLFxuICAgICAgbGltaXQ6IDEwLFxuICAgIH0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxTZXJpYWxpemVkUGFnZTxNPj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRV9CWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnBhZ2luYXRlQnkpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYHBhZ2luYXRpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHdpdGggcGFnZSBzaXplICR7cmVmLmxpbWl0fWBcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMucGFnaW5hdGVCeS5uYW1lLFxuICAgICAga2V5LFxuICAgICAgb3JkZXIsXG4gICAgICB7IGxpbWl0OiByZWYubGltaXQsIG9mZnNldDogcmVmLm9mZnNldCwgYm9va21hcms6IHJlZi5ib29rbWFyayB9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBsaXN0QnkoXG4gICAga2V5OiBrZXlvZiBNLFxuICAgIG9yZGVyOiBPcmRlckRpcmVjdGlvbixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTElTVF9CWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmxpc3RCeSk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgbGlzdGluZyAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gYnkgJHtrZXkgYXMgc3RyaW5nfSAke29yZGVyfWBcbiAgICApO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQoXG4gICAgICB0aGlzLmxpc3RCeS5uYW1lLFxuICAgICAga2V5LFxuICAgICAgb3JkZXIsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKSkgYXMgYW55O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmluZEJ5KFxuICAgIGtleToga2V5b2YgTSxcbiAgICB2YWx1ZTogYW55LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX0JZLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZmluZEJ5KTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBmaW5kaW5nIGFsbCAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gd2l0aCAke2tleSBhcyBzdHJpbmd9ICR7dmFsdWV9YFxuICAgICk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMuZmluZEJ5Lm5hbWUsXG4gICAgICBrZXksXG4gICAgICB2YWx1ZSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApKSBhcyBhbnk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmaW5kT25lQnkoXG4gICAga2V5OiBrZXlvZiBNLFxuICAgIHZhbHVlOiBhbnksXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX09ORV9CWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmZpbmRPbmVCeSk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgZmluZGluZyBPbmUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHdpdGggJHtrZXkgYXMgc3RyaW5nfSAke3ZhbHVlfWBcbiAgICApO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQoXG4gICAgICB0aGlzLmZpbmRPbmVCeS5uYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKSkgYXMgYW55O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmluZChcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIG9yZGVyOiBPcmRlckRpcmVjdGlvbiA9IE9yZGVyRGlyZWN0aW9uLkFTQyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuRklORCwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmZpbmQpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGZpbmRpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGJ5IGRlZmF1bHQgcXVlcnkgYXR0cmlidXRlc2BcbiAgICApO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQoXG4gICAgICB0aGlzLmZpbmQubmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3JkZXIsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKSkgYXMgYW55O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcGFnZShcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIGRpcmVjdGlvbjogT3JkZXJEaXJlY3Rpb24gPSBPcmRlckRpcmVjdGlvbi5BU0MsXG4gICAgcmVmOiBPbWl0PERpcmVjdGlvbkxpbWl0T2Zmc2V0LCBcImRpcmVjdGlvblwiPiA9IHtcbiAgICAgIG9mZnNldDogMSxcbiAgICAgIGxpbWl0OiAxMCxcbiAgICB9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8U2VyaWFsaXplZFBhZ2U8TT4+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0UsIHRydWUpXG4gICAgKS5mb3IodGhpcy5wYWdlKTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBwYWdpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGJ5IGRlZmF1bHQgcXVlcnkgYXR0cmlidXRlc2BcbiAgICApO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zdGF0ZW1lbnQoXG4gICAgICB0aGlzLnBhZ2UubmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgcmVmLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICkpIGFzIGFueTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHN0YXRlbWVudChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4LCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQZXJzaXN0ZW5jZUtleXMuU1RBVEVNRU5ULCB0cnVlKVxuICAgICkuZm9yKHRoaXMuc3RhdGVtZW50KTtcbiAgICBsb2cudmVyYm9zZShgRXhlY3V0aW5nIHByZXBhcmVkIHN0YXRlbWVudCAke25hbWV9YCk7XG4gICAgY29uc3QgY2FsbEFyZ3MgPSBjdHhBcmdzLnNsaWNlKDAsIC0xKTtcbiAgICBjb25zdCByZXN1bHQgPSBKU09OLnBhcnNlKFxuICAgICAgdGhpcy5hZGFwdGVyLmRlY29kZShcbiAgICAgICAgYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oXG4gICAgICAgICAgY3R4LFxuICAgICAgICAgIFBlcnNpc3RlbmNlS2V5cy5TVEFURU1FTlQsXG4gICAgICAgICAgW25hbWUsIEpTT04uc3RyaW5naWZ5KGNhbGxBcmdzKV0sXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICB0aGlzLmNsYXNzLm5hbWVcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICByZXR1cm4gcmVzdWx0Lm1hcCgocjogYW55KSA9PlxuICAgICAgICAociBhcyBhbnkpW0NvdWNoREJLZXlzLlRBQkxFXSAmJlxuICAgICAgICAociBhcyBhbnkpW0NvdWNoREJLZXlzLlRBQkxFXSA9PT0gTW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpXG4gICAgICAgICAgPyBuZXcgdGhpcy5jbGFzcyhyKVxuICAgICAgICAgIDogclxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIChyZXN1bHQgYXMgYW55KVtDb3VjaERCS2V5cy5UQUJMRV0gJiZcbiAgICAgIChyZXN1bHQgYXMgYW55KVtDb3VjaERCS2V5cy5UQUJMRV0gPT09IE1vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKVxuICAgICAgPyBuZXcgdGhpcy5jbGFzcyhyZXN1bHQpXG4gICAgICA6IFBhZ2luYXRvci5pc1NlcmlhbGl6ZWRQYWdlKHJlc3VsdClcbiAgICAgICAgPyBPYmplY3QuYXNzaWduKHJlc3VsdCwge1xuICAgICAgICAgICAgZGF0YTogcmVzdWx0LmRhdGEubWFwKChkOiBhbnkpID0+IG5ldyB0aGlzLmNsYXNzKGQpKSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IHJlc3VsdDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNvdW50T2YoXG4gICAga2V5Pzoga2V5b2YgTSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuQ09VTlRfT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jb3VudE9mKTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBjb3VudGluZyAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0ke2tleSA/IGAgYnkgJHtrZXkgYXMgc3RyaW5nfWAgOiBcIlwifWBcbiAgICApO1xuICAgIGNvbnN0IHN0bXRBcmdzID0ga2V5ID8gW2tleSwgLi4uY3R4QXJnc10gOiBjdHhBcmdzO1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChQcmVwYXJlZFN0YXRlbWVudEtleXMuQ09VTlRfT0YsIC4uLnN0bXRBcmdzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIG1heE9mPEsgZXh0ZW5kcyBrZXlvZiBNPihcbiAgICBrZXk6IEssXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNW0tdPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5NQVhfT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5tYXhPZik7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgZmluZGluZyBtYXggb2YgJHtrZXkgYXMgc3RyaW5nfSBpbiAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1BWF9PRiwga2V5LCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIG1pbk9mPEsgZXh0ZW5kcyBrZXlvZiBNPihcbiAgICBrZXk6IEssXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNW0tdPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5NSU5fT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5taW5PZik7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgZmluZGluZyBtaW4gb2YgJHtrZXkgYXMgc3RyaW5nfSBpbiAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1JTl9PRiwga2V5LCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGF2Z09mPEsgZXh0ZW5kcyBrZXlvZiBNPihcbiAgICBrZXk6IEssXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkFWR19PRiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmF2Z09mKTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBjYWxjdWxhdGluZyBhdmcgb2YgJHtrZXkgYXMgc3RyaW5nfSBpbiAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkFWR19PRiwga2V5LCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHN1bU9mPEsgZXh0ZW5kcyBrZXlvZiBNPihcbiAgICBrZXk6IEssXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlNVTV9PRiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnN1bU9mKTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBjYWxjdWxhdGluZyBzdW0gb2YgJHtrZXkgYXMgc3RyaW5nfSBpbiAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQoUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlNVTV9PRiwga2V5LCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGRpc3RpbmN0T2Y8SyBleHRlbmRzIGtleW9mIE0+KFxuICAgIGtleTogSyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE1bS11bXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuRElTVElOQ1RfT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5kaXN0aW5jdE9mKTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBmaW5kaW5nIGRpc3RpbmN0IHZhbHVlcyBvZiAke2tleSBhcyBzdHJpbmd9IGluICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChQcmVwYXJlZFN0YXRlbWVudEtleXMuRElTVElOQ1RfT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBncm91cE9mPEsgZXh0ZW5kcyBrZXlvZiBNPihcbiAgICBrZXk6IEssXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBNW10+PiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5HUk9VUF9PRiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmdyb3VwT2YpO1xuICAgIGxvZy52ZXJib3NlKGBncm91cGluZyAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gYnkgJHtrZXkgYXMgc3RyaW5nfWApO1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChQcmVwYXJlZFN0YXRlbWVudEtleXMuR1JPVVBfT0YsIGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBoZWFsdGhjaGVjayguLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+Pikge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5oZWFsdGhjaGVjayk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuaGVhbHRoY2hlY2sodGhpcy5jbGFzcywgLi4uY3R4QXJncyk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlKFxuICAgIG1vZGVsOiBNLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TT4ge1xuICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgQ3JlYXRpbmcgbmV3ICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcbiAgICB0aGlzLmVuc3VyZUxlZ2FjeU1pcnJvckZsYWcoY3R4LCBtb2RlbCk7XG4gICAgY29uc3QgcHJlcGFyZWQgPSB0aGlzLmFkYXB0ZXIucHJlcGFyZShtb2RlbCwgY3R4KTtcbiAgICBjb25zdCB7IHJlY29yZCwgaWQsIHRyYW5zaWVudCB9ID0gcHJlcGFyZWQ7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLmNyZWF0ZShcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBpZCxcbiAgICAgIHJlY29yZCxcbiAgICAgIHRyYW5zaWVudCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucmV2ZXJ0PE0+KHJlc3VsdCwgdGhpcy5jbGFzcywgaWQsIHRyYW5zaWVudCwgY3R4KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZShcbiAgICBtb2RlbDogTSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE0+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZSk7XG4gICAgdGhpcy5lbnN1cmVMZWdhY3lNaXJyb3JGbGFnKGN0eCwgbW9kZWwpO1xuICAgIGNvbnN0IHByZXBhcmVkID0gdGhpcy5hZGFwdGVyLnByZXBhcmUobW9kZWwsIGN0eCk7XG4gICAgY29uc3QgeyBpZCwgdHJhbnNpZW50IH0gPSBwcmVwYXJlZDtcbiAgICBsZXQgcmVjb3JkID0gcHJlcGFyZWQucmVjb3JkO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGB1cGRhdGluZyAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHdpdGggaWQgJHtpZH1gXG4gICAgKTtcbiAgICByZWNvcmQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIudXBkYXRlKFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGlkLFxuICAgICAgcmVjb3JkLFxuICAgICAgdHJhbnNpZW50LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQ8TT4ocmVjb3JkLCB0aGlzLmNsYXNzLCBpZCwgdHJhbnNpZW50LCBjdHgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGNyZWF0ZUFsbFByZWZpeChcbiAgICBtb2RlbHM6IE1bXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPFtNW10sIC4uLmFueVtdLCBDb250ZXh0T2Y8QT5dPiB7XG4gICAgY29uc3QgeyBjdHgsIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIE9wZXJhdGlvbktleXMuQ1JFQVRFLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlQWxsUHJlZml4KTtcbiAgICBjb25zdCBpZ25vcmVIYW5kbGVycyA9IGN0eC5nZXQoXCJpZ25vcmVIYW5kbGVyc1wiKTtcbiAgICBjb25zdCBpZ25vcmVWYWxpZGF0ZSA9IGN0eC5nZXQoXCJpZ25vcmVWYWxpZGF0aW9uXCIpO1xuICAgIGlmICghbW9kZWxzLmxlbmd0aCkgcmV0dXJuIFttb2RlbHMsIC4uLmN0eEFyZ3NdIGFzIGFueTtcblxuICAgIG1vZGVscyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbW9kZWxzLm1hcChhc3luYyAobSkgPT4ge1xuICAgICAgICBtID0gbmV3IHRoaXMuY2xhc3MobSk7XG4gICAgICAgIGlmICghaWdub3JlSGFuZGxlcnMpXG4gICAgICAgICAgYXdhaXQgZW5mb3JjZURCRGVjb3JhdG9yczxNLCBSZXBvc2l0b3J5PE0sIEE+LCBhbnk+KFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgIGN0eCxcbiAgICAgICAgICAgIG0sXG4gICAgICAgICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgICAgICAgIE9wZXJhdGlvbktleXMuT05cbiAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gbTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICghaWdub3JlVmFsaWRhdGUpIHtcbiAgICAgIGNvbnN0IGlnbm9yZWRQcm9wcyA9IGN0eC5nZXQoXCJpZ25vcmVkVmFsaWRhdGlvblByb3BlcnRpZXNcIikgfHwgW107XG5cbiAgICAgIGNvbnN0IGVycm9ycyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBtb2RlbHMubWFwKChtKSA9PiBQcm9taXNlLnJlc29sdmUobS5oYXNFcnJvcnMoLi4uaWdub3JlZFByb3BzKSkpXG4gICAgICApO1xuXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2VzID0gcmVkdWNlRXJyb3JzVG9QcmludChlcnJvcnMpO1xuXG4gICAgICBpZiAoZXJyb3JNZXNzYWdlcykgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgICB9XG4gICAgcmV0dXJuIFttb2RlbHMsIC4uLmN0eEFyZ3NdIGFzIGFueTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNyZWF0ZUFsbChcbiAgICBtb2RlbHM6IE1bXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIGlmICghbW9kZWxzLmxlbmd0aCkgcmV0dXJuIG1vZGVscztcbiAgICBjb25zdCB7IGN0eCwgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZUFsbCk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYENyZWF0aW5nICR7bW9kZWxzLmxlbmd0aH0gbmV3ICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcblxuICAgIG1vZGVscy5mb3JFYWNoKChtb2RlbCkgPT4gdGhpcy5lbnN1cmVMZWdhY3lNaXJyb3JGbGFnKGN0eCwgbW9kZWwpKTtcbiAgICBjb25zdCBwcmVwYXJlZCA9IG1vZGVscy5tYXAoKG0pID0+IHRoaXMuYWRhcHRlci5wcmVwYXJlKG0sIGN0eCkpO1xuICAgIGNvbnN0IGlkcyA9IHByZXBhcmVkLm1hcCgocCkgPT4gcC5pZCk7XG4gICAgY29uc3QgcGF5bG9hZHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAucmVjb3JkKTtcbiAgICBjb25zdCB0cmFuc2llbnRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLnRyYW5zaWVudCk7XG4gICAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGVBbGwoXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgaWRzIGFzIFByaW1hcnlLZXlUeXBlW10sXG4gICAgICBwYXlsb2FkcyxcbiAgICAgIHRyYW5zaWVudHMsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICBjcmVhdGVkLm1hcChhc3luYyAociwgaSkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGlkc1tpXTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQ8TT4ociwgdGhpcy5jbGFzcywgaWQsIHRyYW5zaWVudHNbaV0sIGN0eCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByZWFkQWxsKFxuICAgIGtleXM6IFByaW1hcnlLZXlUeXBlW10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKSB7XG4gICAgY29uc3QgeyBjdHgsIGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZWFkQWxsKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgcmVhZGluZyAke2tleXMubGVuZ3RofSAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgY29uc3QgcmVjb3JkcyA9IGF3YWl0IHRoaXMuYWRhcHRlci5yZWFkQWxsKHRoaXMuY2xhc3MsIGtleXMsIC4uLmN0eEFyZ3MpO1xuICAgIHJldHVybiByZWNvcmRzLm1hcCgociwgaSkgPT5cbiAgICAgIHRoaXMuYWRhcHRlci5yZXZlcnQociwgdGhpcy5jbGFzcywga2V5c1tpXSwge30sIGN0eClcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlQWxsKFxuICAgIG1vZGVsczogTVtdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgeyBjdHgsIGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGVBbGwpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBVcGRhdGluZyAke21vZGVscy5sZW5ndGh9IG5ldyAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG5cbiAgICBtb2RlbHMuZm9yRWFjaCgobW9kZWwpID0+IHRoaXMuZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHgsIG1vZGVsKSk7XG4gICAgY29uc3QgcHJlcGFyZWQgPSBtb2RlbHMubWFwKChtKSA9PiB0aGlzLmFkYXB0ZXIucHJlcGFyZShtLCBjdHgpKTtcbiAgICBjb25zdCBpZHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAuaWQpO1xuICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIudXBkYXRlQWxsKFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGlkcyBhcyBQcmltYXJ5S2V5VHlwZVtdLFxuICAgICAgcHJlcGFyZWQubWFwKChyKSA9PiByLnJlY29yZCksXG4gICAgICBwcmVwYXJlZC5tYXAoKHIpID0+IHIudHJhbnNpZW50KSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIHVwZGF0ZWQubWFwKGFzeW5jICh1LCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gaWRzW2ldO1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydDxNPihcbiAgICAgICAgICB1LFxuICAgICAgICAgIHRoaXMuY2xhc3MsXG4gICAgICAgICAgaWQsXG4gICAgICAgICAgcHJlcGFyZWRbaV0udHJhbnNpZW50LFxuICAgICAgICAgIGN0eFxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVMZWdhY3lNaXJyb3JGbGFnKGN0eDogQ29udGV4dE9mPEE+LCBtb2RlbDogTSk6IHZvaWQge1xuICAgIGlmIChNb2RlbC5taXJyb3JlZEF0KG1vZGVsKSkge1xuICAgICAgY3R4LmFjY3VtdWxhdGUoeyBsZWdhY3k6IHRydWUgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -443,4 +443,4 @@ class FabricClientStatement extends core_1.Statement {
|
|
|
443
443
|
}
|
|
444
444
|
}
|
|
445
445
|
exports.FabricClientStatement = FabricClientStatement;
|
|
446
|
-
//# sourceMappingURL=FabricClientStatement.js.map
|
|
446
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50U3RhdGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9GYWJyaWNDbGllbnRTdGF0ZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBbUJ3QjtBQUN4Qix5RUFBdUQ7QUFFdkQsdURBYytCO0FBRS9CLCtDQUFnRDtBQUNoRCwyREFBZ0U7QUFDaEUscURBQWdEO0FBc0JoRCxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFLENBQzdDLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFL0MsU0FBUyx1QkFBdUIsQ0FBQyxLQUFhO0lBQzVDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFDNUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxJQUFJLEtBQUssU0FBUztZQUFFLFNBQVM7UUFDakMsSUFBSSxJQUFJLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDcEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxLQUFLLFFBQVEs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ZGl0aW9uLFxuICBDb250ZXh0LFxuICBHcm91cE9wZXJhdG9yLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIE9wZXJhdG9yLFxuICBPcmRlckRpcmVjdGlvbixcbiAgUGVyc2lzdGVuY2VLZXlzLFxuICBQcmVwYXJlZFN0YXRlbWVudCxcbiAgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLFxuICBRdWVyeUNsYXVzZSxcbiAgUXVlcnlFcnJvcixcbiAgUmVwb3NpdG9yeSxcbiAgU2VsZWN0U2VsZWN0b3IsXG4gIFNlcXVlbmNlLFxuICBTdGF0ZW1lbnQsXG4gIFN0YXRlbWVudEV4ZWN1dG9yLFxuICBWaWV3S2luZCxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQge1xuICBDb3VjaERCS2V5cyxcbiAgQ291Y2hEQk9wZXJhdG9yLFxuICBDb3VjaERCR3JvdXBPcGVyYXRvcixcbiAgQ291Y2hEQlF1ZXJ5TGltaXQsXG4gIE1hbmdvUXVlcnksXG4gIE1hbmdvT3BlcmF0b3IsXG4gIE1hbmdvU2VsZWN0b3IsXG4gIHRyYW5zbGF0ZU9wZXJhdG9ycyxcbiAgZ2VuZXJhdGVEZXNpZ25Eb2NOYW1lLFxuICBnZW5lcmF0ZVZpZXdOYW1lLFxuICBmaW5kVmlld01ldGFkYXRhLFxuICBDb3VjaERCVmlld01ldGFkYXRhLFxuICBWaWV3UmVzcG9uc2UsXG59IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHRvQ2FtZWxDYXNlIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBEQktleXMsIEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbnR5cGUgRmFicmljVmlld0Rlc2NyaXB0b3IgPSB7XG4gIGRkb2M6IHN0cmluZztcbiAgdmlldzogc3RyaW5nO1xuICBvcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufTtcblxudHlwZSBGYWJyaWNBZ2dyZWdhdGVJbmZvID1cbiAgfCB7XG4gICAgICBraW5kOiBWaWV3S2luZDtcbiAgICAgIG1ldGE6IENvdWNoREJWaWV3TWV0YWRhdGE7XG4gICAgICBkZXNjcmlwdG9yOiBGYWJyaWNWaWV3RGVzY3JpcHRvcjtcbiAgICAgIGNvdW50RGlzdGluY3Q/OiBib29sZWFuO1xuICAgIH1cbiAgfCB7XG4gICAgICBraW5kOiBcImF2Z1wiO1xuICAgICAgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgICBzdW1EZXNjcmlwdG9yOiBGYWJyaWNWaWV3RGVzY3JpcHRvcjtcbiAgICAgIGNvdW50RGVzY3JpcHRvcjogRmFicmljVmlld0Rlc2NyaXB0b3I7XG4gICAgfTtcblxuY29uc3QgZXNjYXBlUmVnRXhwID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgdmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csIFwiXFxcXCQmXCIpO1xuXG5mdW5jdGlvbiBuZXh0TGV4aWNvZ3JhcGhpY1N0cmluZyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIFwiXFx1MDAwMFwiO1xuICBjb25zdCBjaGFycyA9IEFycmF5LmZyb20odmFsdWUpO1xuICBmb3IgKGxldCBpID0gY2hhcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC09IDEpIHtcbiAgICBjb25zdCBjb2RlID0gY2hhcnNbaV0uY29kZVBvaW50QXQoMCk7XG4gICAgaWYgKGNvZGUgPT09IHVuZGVmaW5lZCkgY29udGludWU7XG4gICAgaWYgKGNvZGUgPCAweDEwZmZmZikge1xuICAgICAgY2hhcnNbaV0gPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjb2RlICsgMSk7XG4gICAgICByZXR1cm4gY2hhcnMuc2xpY2UoMCwgaSArIDEpLmpvaW4oXCJcIik7XG4gICAgfVxuICB9XG4gIHJldHVybiBgJHt2YWx1ZX1cXHUwMDAwYDtcbn1cblxuZnVuY3Rpb24gcHJlZml4UmFuZ2UocHJlZml4OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogcHJlZml4LFxuICAgIGVuZDogbmV4dExleGljb2dyYXBoaWNTdHJpbmcocHJlZml4KSxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudFN0YXRlbWVudDxNIGV4dGVuZHMgTW9kZWwsIFI+IGV4dGVuZHMgU3RhdGVtZW50PFxuICBNLFxuICBGYWJyaWNDbGllbnRBZGFwdGVyLFxuICBSLFxuICBNYW5nb1F1ZXJ5XG4+IHtcbiAgY29uc3RydWN0b3IoYWRhcHRlcjogRmFicmljQ2xpZW50QWRhcHRlciwgb3ZlcnJpZGVzPzogUGFydGlhbDxBZGFwdGVyRmxhZ3M+KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgb3ZlcnJpZGVzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzcXVhc2goXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApOiBQcmVwYXJlZFN0YXRlbWVudDxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzcXVhc2hlZDogUHJlcGFyZWRTdGF0ZW1lbnQ8TT4gfCB1bmRlZmluZWQgPSBzdXBlci5zcXVhc2goXG4gICAgICBjdHggYXMgbmV2ZXJcbiAgICApO1xuICAgIGlmICghc3F1YXNoZWQpIHJldHVybiBzcXVhc2hlZDtcblxuICAgIGNvbnN0IHsgbWV0aG9kLCBwYXJhbXMsIGFyZ3MgfSA9IHNxdWFzaGVkO1xuICAgIGNvbnN0IHsgZGlyZWN0aW9uLCBsaW1pdCB9ID0gcGFyYW1zO1xuICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICBjYXNlIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0U6XG4gICAgICAgIGFyZ3MucHVzaChkaXJlY3Rpb24sIGxpbWl0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX0JZOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkxJU1RfQlk6XG4gICAgICAgIGFyZ3MucHVzaChkaXJlY3Rpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0VfQlk6XG4gICAgICAgIGFyZ3MucHVzaChkaXJlY3Rpb24sIGxpbWl0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX09ORV9CWTpcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgVW5zdXBwb3J0ZWQgbWV0aG9kICR7bWV0aG9kfWApO1xuICAgIH1cblxuICAgIHJldHVybiBzcXVhc2hlZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBleGVjdXRlUHJlcGFyZWQoXG4gICAgLi4uYXJnejogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBQcm9taXNlPFI+IHtcbiAgICBjb25zdCByZXBvID0gUmVwb3NpdG9yeS5mb3JNb2RlbCh0aGlzLmZyb21TZWxlY3RvciwgdGhpcy5hZGFwdGVyLmFsaWFzKTtcbiAgICBjb25zdCB7IG1ldGhvZCwgYXJncyB9ID0gdGhpcy5wcmVwYXJlZCBhcyBQcmVwYXJlZFN0YXRlbWVudDxhbnk+O1xuICAgIHJldHVybiByZXBvLnN0YXRlbWVudChtZXRob2QsIC4uLmFyZ3MsIC4uLmFyZ3opO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcHJlcGFyZShcbiAgICBjdHg/OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApOiBQcm9taXNlPFN0YXRlbWVudEV4ZWN1dG9yPE0sIFI+PiB7XG4gICAgY3R4ID1cbiAgICAgIGN0eCB8fFxuICAgICAgKGF3YWl0IHRoaXMuYWRhcHRlci5jb250ZXh0KFxuICAgICAgICBQZXJzaXN0ZW5jZUtleXMuUVVFUlksXG4gICAgICAgIHRoaXMub3ZlcnJpZGVzIHx8IHt9LFxuICAgICAgICB0aGlzLmZyb21TZWxlY3RvclxuICAgICAgKSk7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmlzU2ltcGxlUXVlcnkoKSAmJlxuICAgICAgKGN0eCBhcyBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPikuZ2V0KFwiZm9yY2VQcmVwYXJlU2ltcGxlUXVlcmllc1wiKVxuICAgICkge1xuICAgICAgY29uc3Qgc3F1YXNoZWQgPSB0aGlzLnNxdWFzaChjdHggYXMgQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4pO1xuICAgICAgaWYgKHNxdWFzaGVkKSB7XG4gICAgICAgIHRoaXMucHJlcGFyZWQgPSBzcXVhc2hlZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGFyZ3M6IChzdHJpbmcgfCBudW1iZXIpW10gPSBbXTtcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHt9IGFzIGFueTtcblxuICAgIGNvbnN0IHByZXBhcmVkOiBQcmVwYXJlZFN0YXRlbWVudDxhbnk+ID0ge1xuICAgICAgY2xhc3M6IHRoaXMuZnJvbVNlbGVjdG9yLFxuICAgICAgYXJncyxcbiAgICAgIHBhcmFtcyxcbiAgICB9IGFzIGFueTtcblxuICAgIGNvbnN0IG1ldGhvZDogc3RyaW5nW10gPSBbUXVlcnlDbGF1c2UuRklORF9CWV07XG5cbiAgICBpZiAodGhpcy53aGVyZUNvbmRpdGlvbikge1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wcmVwYXJlQ29uZGl0aW9uKHRoaXMud2hlcmVDb25kaXRpb24sIGN0eCBhcyBuZXZlcik7XG4gICAgICBtZXRob2QucHVzaChwYXJzZWQubWV0aG9kKTtcbiAgICAgIGlmIChwYXJzZWQuYXJncyAmJiBwYXJzZWQuYXJncy5sZW5ndGgpXG4gICAgICAgIGFyZ3MucHVzaCguLi4ocGFyc2VkLmFyZ3MgYXMgKHN0cmluZyB8IG51bWJlcilbXSkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RTZWxlY3RvcilcbiAgICAgIG1ldGhvZC5wdXNoKFxuICAgICAgICBRdWVyeUNsYXVzZS5TRUxFQ1QsXG4gICAgICAgIHRoaXMuc2VsZWN0U2VsZWN0b3Iuam9pbihgICR7UXVlcnlDbGF1c2UuQU5ELnRvTG93ZXJDYXNlKCl9IGApXG4gICAgICApO1xuICAgIGlmICh0aGlzLm9yZGVyQnlTZWxlY3RvcnM/Lmxlbmd0aCkge1xuICAgICAgbWV0aG9kLnB1c2goUXVlcnlDbGF1c2UuT1JERVJfQlksIHRoaXMub3JkZXJCeVNlbGVjdG9yc1swXVswXSBhcyBzdHJpbmcpO1xuICAgICAgYXJncy5wdXNoKHRoaXMub3JkZXJCeVNlbGVjdG9yc1swXVsxXSBhcyBhbnkpO1xuICAgIH1cbiAgICBwcmVwYXJlZC5tZXRob2QgPSB0b0NhbWVsQ2FzZShtZXRob2Quam9pbihcIiBcIikpO1xuICAgIHByZXBhcmVkLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLnByZXBhcmVkID0gcHJlcGFyZWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByb2Nlc3NlcyBhIHJlY29yZCBmcm9tIENvdWNoREIvRmFicmljXG4gICAqIEBzdW1tYXJ5IEV4dHJhY3RzIHRoZSBJRCBmcm9tIGEgQ291Y2hEQiBkb2N1bWVudCBhbmQgcmV2ZXJ0cyBpdCB0byBhIG1vZGVsIGluc3RhbmNlXG4gICAqL1xuICBwcm90ZWN0ZWQgcHJvY2Vzc1JlY29yZChcbiAgICByOiBhbnksXG4gICAgcGtBdHRyOiBrZXlvZiBNLFxuICAgIHNlcXVlbmNlVHlwZTogXCJOdW1iZXJcIiB8IFwiQmlnSW50XCIgfCB1bmRlZmluZWQsXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApIHtcbiAgICBpZiAocltDb3VjaERCS2V5cy5JRF0pIHtcbiAgICAgIGNvbnN0IFssIC4uLmtleUFyZ3NdID0gcltDb3VjaERCS2V5cy5JRF0uc3BsaXQoQ291Y2hEQktleXMuU0VQQVJBVE9SKTtcbiAgICAgIGNvbnN0IGlkID0ga2V5QXJncy5qb2luKFwiX1wiKTtcbiAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucmV2ZXJ0KFxuICAgICAgICByLFxuICAgICAgICB0aGlzLmZyb21TZWxlY3RvcixcbiAgICAgICAgU2VxdWVuY2UucGFyc2VWYWx1ZShzZXF1ZW5jZVR5cGUsIGlkKSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBjdHhcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhIHJhdyBNYW5nbyBxdWVyeVxuICAgKiBAc3VtbWFyeSBTZW5kcyBhIHJhdyBNYW5nbyBxdWVyeSB0byBGYWJyaWMgYW5kIHByb2Nlc3NlcyB0aGUgcmVzdWx0c1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgcmF3PFI+KHJhd0lucHV0OiBNYW5nb1F1ZXJ5LCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8Uj4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJhdyk7XG4gICAgY29uc3QgYWdncmVnYXRvciA9IChyYXdJbnB1dCBhcyBhbnkpPy5hZ2dyZWdhdGVJbmZvO1xuICAgIGlmICgocmF3SW5wdXQgYXMgYW55KT8uYWdncmVnYXRlICYmIGFnZ3JlZ2F0b3IpIHtcbiAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGVBZ2dyZWdhdGU8Uj4oYWdncmVnYXRvciwgY3R4KTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0czogYW55W10gPSBhd2FpdCB0aGlzLmFkYXB0ZXIucmF3KFxuICAgICAgcmF3SW5wdXQsXG4gICAgICB0cnVlLFxuICAgICAgdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICBjdHhcbiAgICApO1xuXG4gICAgY29uc3QgcGtBdHRyID0gTW9kZWwucGsodGhpcy5mcm9tU2VsZWN0b3IpO1xuICAgIGNvbnN0IHR5cGUgPSBNZXRhZGF0YS5nZXQoXG4gICAgICB0aGlzLmZyb21TZWxlY3RvcixcbiAgICAgIE1ldGFkYXRhLmtleShEQktleXMuSUQsIHBrQXR0ciBhcyBzdHJpbmcpXG4gICAgKT8udHlwZTtcblxuICAgIGlmICghdGhpcy5zZWxlY3RTZWxlY3RvcilcbiAgICAgIHJldHVybiByZXN1bHRzLm1hcCgocikgPT4gdGhpcy5wcm9jZXNzUmVjb3JkKHIsIHBrQXR0ciwgdHlwZSwgY3R4KSkgYXMgUjtcbiAgICByZXR1cm4gcmVzdWx0cyBhcyBSO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgYSBDb3VjaERCIE1hbmdvIHF1ZXJ5IGZyb20gdGhlIHN0YXRlbWVudFxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyB0aGUgc3RhdGVtZW50J3MgY29uZGl0aW9ucywgc2VsZWN0b3JzLCBhbmQgb3B0aW9ucyBpbnRvIGEgQ291Y2hEQiBNYW5nbyBxdWVyeVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGJ1aWxkKCk6IE1hbmdvUXVlcnkge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmJ1aWxkKTtcbiAgICBjb25zdCBhZ2dyZWdhdGVRdWVyeSA9IHRoaXMuYnVpbGRBZ2dyZWdhdGVRdWVyeSgpO1xuICAgIGlmIChhZ2dyZWdhdGVRdWVyeSkgcmV0dXJuIGFnZ3JlZ2F0ZVF1ZXJ5O1xuICAgIGNvbnN0IHNlbGVjdG9yczogTWFuZ29TZWxlY3RvciA9IHt9O1xuICAgIHNlbGVjdG9yc1tDb3VjaERCS2V5cy5UQUJMRV0gPSB7fTtcbiAgICBzZWxlY3RvcnNbQ291Y2hEQktleXMuVEFCTEVdID0gTW9kZWwudGFibGVOYW1lKHRoaXMuZnJvbVNlbGVjdG9yKTtcbiAgICBjb25zdCBxdWVyeTogTWFuZ29RdWVyeSA9IHsgc2VsZWN0b3I6IHNlbGVjdG9ycyB9O1xuICAgIGlmICh0aGlzLnNlbGVjdFNlbGVjdG9yKSBxdWVyeS5maWVsZHMgPSB0aGlzLnNlbGVjdFNlbGVjdG9yIGFzIHN0cmluZ1tdO1xuXG4gICAgaWYgKHRoaXMud2hlcmVDb25kaXRpb24pIHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbjogTWFuZ29TZWxlY3RvciA9IHRoaXMucGFyc2VDb25kaXRpb24oXG4gICAgICAgIENvbmRpdGlvbi5hbmQoXG4gICAgICAgICAgdGhpcy53aGVyZUNvbmRpdGlvbixcbiAgICAgICAgICBDb25kaXRpb24uYXR0cmlidXRlPE0+KENvdWNoREJLZXlzLlRBQkxFIGFzIGtleW9mIE0pLmVxKFxuICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3JbQ291Y2hEQktleXMuVEFCTEVdXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApLnNlbGVjdG9yO1xuICAgICAgY29uc3Qgc2VsZWN0b3JLZXlzID0gT2JqZWN0LmtleXMoY29uZGl0aW9uKSBhcyBNYW5nb09wZXJhdG9yW107XG4gICAgICBpZiAoXG4gICAgICAgIHNlbGVjdG9yS2V5cy5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhDb3VjaERCR3JvdXBPcGVyYXRvcikuaW5kZXhPZihzZWxlY3RvcktleXNbMF0pICE9PSAtMVxuICAgICAgKVxuICAgICAgICBzd2l0Y2ggKHNlbGVjdG9yS2V5c1swXSkge1xuICAgICAgICAgIGNhc2UgQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EOlxuICAgICAgICAgICAgY29uZGl0aW9uW0NvdWNoREJHcm91cE9wZXJhdG9yLkFORF0gPSBbXG4gICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uW0NvdWNoREJHcm91cE9wZXJhdG9yLkFORF0gYXMgTWFuZ29TZWxlY3RvclxuICAgICAgICAgICAgICApLnJlZHVjZSgoYWNjdW06IE1hbmdvU2VsZWN0b3JbXSwgdmFsOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmFsKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggIT09IDEpXG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiVG9vIG1hbnkga2V5cyBpbiBxdWVyeSBzZWxlY3Rvci4gc2hvdWxkIGJlIG9uZVwiXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGsgPSBrZXlzWzBdO1xuICAgICAgICAgICAgICAgIGlmIChrID09PSBDb3VjaERCR3JvdXBPcGVyYXRvci5BTkQpXG4gICAgICAgICAgICAgICAgICBhY2N1bS5wdXNoKC4uLih2YWxba10gYXMgYW55W10pKTtcbiAgICAgICAgICAgICAgICBlbHNlIGFjY3VtLnB1c2godmFsKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgICAgICAgIH0sIFtdKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICBxdWVyeS5zZWxlY3RvciA9IGNvbmRpdGlvbjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgQ291Y2hEQkdyb3VwT3BlcmF0b3IuT1I6IHtcbiAgICAgICAgICAgIGNvbnN0IHM6IFJlY29yZDxhbnksIGFueT4gPSB7fTtcbiAgICAgICAgICAgIHNbQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EXSA9IFtcbiAgICAgICAgICAgICAgY29uZGl0aW9uLFxuICAgICAgICAgICAgICAuLi5PYmplY3QuZW50cmllcyhxdWVyeS5zZWxlY3RvcikubWFwKChba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8YW55LCBhbnk+ID0ge307XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3IgPSBzO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIHNob3VsZCBiZSBpbXBvc3NpYmxlXCIpO1xuICAgICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoY29uZGl0aW9uKS5mb3JFYWNoKChba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgICAgaWYgKHF1ZXJ5LnNlbGVjdG9yW2tleV0pXG4gICAgICAgICAgICBsb2cud2FybihcbiAgICAgICAgICAgICAgYEEgJHtrZXl9IHF1ZXJ5IHBhcmFtIGlzIGFib3V0IHRvIGJlIG92ZXJyaWRkZW46ICR7cXVlcnkuc2VsZWN0b3Jba2V5XX0gYnkgJHt2YWx9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBxdWVyeS5zZWxlY3RvcltrZXldID0gdmFsO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcmRlckJ5U2VsZWN0b3JzPy5sZW5ndGgpIHtcbiAgICAgIHF1ZXJ5LnNvcnQgPSBxdWVyeS5zb3J0IHx8IFtdO1xuICAgICAgcXVlcnkuc2VsZWN0b3IgPSBxdWVyeS5zZWxlY3RvciB8fCAoe30gYXMgTWFuZ29TZWxlY3Rvcik7XG4gICAgICBmb3IgKGNvbnN0IFtzZWxlY3RvcktleSwgZGlyZWN0aW9uXSBvZiB0aGlzLm9yZGVyQnlTZWxlY3RvcnMpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBzZWxlY3RvcktleSBhcyBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHJlYzogUmVjb3JkPHN0cmluZywgT3JkZXJEaXJlY3Rpb24+ID0ge307XG4gICAgICAgIHJlY1tzZWxlY3Rvcl0gPSBkaXJlY3Rpb24gYXMgT3JkZXJEaXJlY3Rpb247XG4gICAgICAgIChxdWVyeS5zb3J0IGFzIFJlY29yZDxzdHJpbmcsIE9yZGVyRGlyZWN0aW9uPltdKS5wdXNoKHJlYyk7XG4gICAgICAgIGlmICghcXVlcnkuc2VsZWN0b3Jbc2VsZWN0b3JdKSB7XG4gICAgICAgICAgcXVlcnkuc2VsZWN0b3Jbc2VsZWN0b3JdID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgICAgICAocXVlcnkuc2VsZWN0b3Jbc2VsZWN0b3JdIGFzIE1hbmdvU2VsZWN0b3IpW0NvdWNoREJPcGVyYXRvci5CSUdHRVJdID1cbiAgICAgICAgICAgIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW1pdFNlbGVjdG9yKSB7XG4gICAgICBxdWVyeS5saW1pdCA9IHRoaXMubGltaXRTZWxlY3RvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBObyBsaW1pdCBzZWxlY3RvciBkZWZpbmVkLiBVc2luZyBkZWZhdWx0IGNvdWNoZGIgbGltaXQgb2YgJHtDb3VjaERCUXVlcnlMaW1pdH1gXG4gICAgICApO1xuICAgICAgcXVlcnkubGltaXQgPSBDb3VjaERCUXVlcnlMaW1pdDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vZmZzZXRTZWxlY3RvcikgcXVlcnkuc2tpcCA9IHRoaXMub2Zmc2V0U2VsZWN0b3I7XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhIGNvbmRpdGlvbiBpbnRvIGEgQ291Y2hEQiBNYW5nbyBxdWVyeSBzZWxlY3RvclxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBhIENvbmRpdGlvbiBvYmplY3QgaW50byBhIENvdWNoREIgTWFuZ28gcXVlcnkgc2VsZWN0b3Igc3RydWN0dXJlXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcGFyc2VDb25kaXRpb24oY29uZGl0aW9uOiBDb25kaXRpb248TT4pOiBNYW5nb1F1ZXJ5IHtcbiAgICBmdW5jdGlvbiBtZXJnZShcbiAgICAgIG9wOiBNYW5nb09wZXJhdG9yLFxuICAgICAgb2JqMTogTWFuZ29TZWxlY3RvcixcbiAgICAgIG9iajI6IE1hbmdvU2VsZWN0b3JcbiAgICApOiBNYW5nb1F1ZXJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdDogTWFuZ29RdWVyeSA9IHsgc2VsZWN0b3I6IHt9IGFzIE1hbmdvU2VsZWN0b3IgfTtcbiAgICAgIHJlc3VsdC5zZWxlY3RvcltvcF0gPSBbb2JqMSwgb2JqMl07XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGNvbnN0IHsgYXR0cjEsIG9wZXJhdG9yLCBjb21wYXJpc29uIH0gPSBjb25kaXRpb24gYXMgdW5rbm93biBhcyB7XG4gICAgICBhdHRyMTogc3RyaW5nIHwgQ29uZGl0aW9uPE0+O1xuICAgICAgb3BlcmF0b3I6IE9wZXJhdG9yIHwgR3JvdXBPcGVyYXRvcjtcbiAgICAgIGNvbXBhcmlzb246IGFueTtcbiAgICB9O1xuXG4gICAgaWYgKG9wZXJhdG9yID09PSBPcGVyYXRvci5TVEFSVFNfV0lUSCkge1xuICAgICAgaWYgKHR5cGVvZiBhdHRyMSAhPT0gXCJzdHJpbmdcIilcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJTVEFSVFNfV0lUSCByZXF1aXJlcyBhbiBhdHRyaWJ1dGUgbmFtZVwiKTtcbiAgICAgIGlmICh0eXBlb2YgY29tcGFyaXNvbiAhPT0gXCJzdHJpbmdcIilcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJTVEFSVFNfV0lUSCByZXF1aXJlcyBhIHN0cmluZyBjb21wYXJpc29uXCIpO1xuICAgICAgY29uc3QgcmFuZ2UgPSBwcmVmaXhSYW5nZShjb21wYXJpc29uKTtcbiAgICAgIGNvbnN0IHNlbGVjdG9yOiBNYW5nb1NlbGVjdG9yID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgIHNlbGVjdG9yW2F0dHIxXSA9IHt9IGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgICAoc2VsZWN0b3JbYXR0cjFdIGFzIE1hbmdvU2VsZWN0b3IpW0NvdWNoREJPcGVyYXRvci5CSUdHRVJfRVFdID0gcmFuZ2Uuc3RhcnQ7XG4gICAgICAoc2VsZWN0b3JbYXR0cjFdIGFzIE1hbmdvU2VsZWN0b3IpW0NvdWNoREJPcGVyYXRvci5TTUFMTEVSXSA9IHJhbmdlLmVuZDtcbiAgICAgIHJldHVybiB7IHNlbGVjdG9yIH07XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdG9yID09PSBPcGVyYXRvci5FTkRTX1dJVEgpIHtcbiAgICAgIGlmICh0eXBlb2YgYXR0cjEgIT09IFwic3RyaW5nXCIpXG4gICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFwiRU5EU19XSVRIIHJlcXVpcmVzIGFuIGF0dHJpYnV0ZSBuYW1lXCIpO1xuICAgICAgaWYgKHR5cGVvZiBjb21wYXJpc29uICE9PSBcInN0cmluZ1wiKVxuICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcIkVORFNfV0lUSCByZXF1aXJlcyBhIHN0cmluZyBjb21wYXJpc29uXCIpO1xuICAgICAgY29uc3Qgc2VsZWN0b3I6IE1hbmdvU2VsZWN0b3IgPSB7fSBhcyBNYW5nb1NlbGVjdG9yO1xuICAgICAgc2VsZWN0b3JbYXR0cjFdID0ge1xuICAgICAgICBbQ291Y2hEQk9wZXJhdG9yLlJFR0VYUF06IGAke2VzY2FwZVJlZ0V4cChjb21wYXJpc29uKX0kYCxcbiAgICAgIH0gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgIHJldHVybiB7IHNlbGVjdG9yIH07XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdG9yID09PSBPcGVyYXRvci5CRVRXRUVOKSB7XG4gICAgICBjb25zdCBhdHRyID0gYXR0cjEgYXMgc3RyaW5nO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbXBhcmlzb24pIHx8IGNvbXBhcmlzb24ubGVuZ3RoICE9PSAyKVxuICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcIkJFVFdFRU4gb3BlcmF0b3IgcmVxdWlyZXMgW21pbiwgbWF4XSBjb21wYXJpc29uXCIpO1xuICAgICAgY29uc3QgW21pbiwgbWF4XSA9IGNvbXBhcmlzb247XG4gICAgICBjb25zdCBvcEJldHdlZW46IE1hbmdvU2VsZWN0b3IgPSB7fSBhcyBNYW5nb1NlbGVjdG9yO1xuICAgICAgb3BCZXR3ZWVuW2F0dHJdID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgIChvcEJldHdlZW5bYXR0cl0gYXMgTWFuZ29TZWxlY3RvcilbXG4gICAgICAgIHRyYW5zbGF0ZU9wZXJhdG9ycyhPcGVyYXRvci5CSUdHRVJfRVEpXG4gICAgICBdID0gbWluO1xuICAgICAgKG9wQmV0d2VlblthdHRyXSBhcyBNYW5nb1NlbGVjdG9yKVtcbiAgICAgICAgdHJhbnNsYXRlT3BlcmF0b3JzKE9wZXJhdG9yLlNNQUxMRVJfRVEpXG4gICAgICBdID0gbWF4O1xuICAgICAgcmV0dXJuIHsgc2VsZWN0b3I6IG9wQmV0d2VlbiB9O1xuICAgIH1cblxuICAgIGxldCBvcDogTWFuZ29TZWxlY3RvciA9IHt9IGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgaWYgKFxuICAgICAgW0dyb3VwT3BlcmF0b3IuQU5ELCBHcm91cE9wZXJhdG9yLk9SLCBPcGVyYXRvci5OT1RdLmluZGV4T2YoXG4gICAgICAgIG9wZXJhdG9yIGFzIEdyb3VwT3BlcmF0b3JcbiAgICAgICkgPT09IC0xXG4gICAgKSB7XG4gICAgICBvcFthdHRyMSBhcyBzdHJpbmddID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgIChvcFthdHRyMSBhcyBzdHJpbmddIGFzIE1hbmdvU2VsZWN0b3IpW3RyYW5zbGF0ZU9wZXJhdG9ycyhvcGVyYXRvcildID1cbiAgICAgICAgY29tcGFyaXNvbjtcbiAgICB9IGVsc2UgaWYgKG9wZXJhdG9yID09PSBPcGVyYXRvci5OT1QpIHtcbiAgICAgIG9wID0gdGhpcy5wYXJzZUNvbmRpdGlvbihhdHRyMSBhcyBDb25kaXRpb248TT4pLnNlbGVjdG9yIGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgICBvcFt0cmFuc2xhdGVPcGVyYXRvcnMoT3BlcmF0b3IuTk9UKV0gPSB7fSBhcyBNYW5nb1NlbGVjdG9yO1xuICAgICAgKG9wW3RyYW5zbGF0ZU9wZXJhdG9ycyhPcGVyYXRvci5OT1QpXSBhcyBNYW5nb1NlbGVjdG9yKVtcbiAgICAgICAgKGF0dHIxIGFzIHVua25vd24gYXMgeyBhdHRyMTogc3RyaW5nIH0pLmF0dHIxXG4gICAgICBdID0gY29tcGFyaXNvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb3AxOiBhbnkgPSB0aGlzLnBhcnNlQ29uZGl0aW9uKGF0dHIxIGFzIENvbmRpdGlvbjxNPikuc2VsZWN0b3I7XG4gICAgICBjb25zdCBvcDI6IGFueSA9IHRoaXMucGFyc2VDb25kaXRpb24oY29tcGFyaXNvbiBhcyBDb25kaXRpb248TT4pLnNlbGVjdG9yO1xuICAgICAgb3AgPSBtZXJnZSh0cmFuc2xhdGVPcGVyYXRvcnMob3BlcmF0b3IpLCBvcDEsIG9wMikuc2VsZWN0b3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc2VsZWN0b3I6IG9wIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyBhbiBhZ2dyZWdhdGUgcXVlcnkgaWYgYWdncmVnYXRpb24gaXMgcmVxdWVzdGVkXG4gICAqIEBzdW1tYXJ5IENoZWNrcyBmb3IgYWdncmVnYXRlIG9wZXJhdGlvbnMgYW5kIHJldHVybnMgYSBzcGVjaWFsIE1hbmdvUXVlcnkgZm9yIHRoZW1cbiAgICovXG4gIHByaXZhdGUgYnVpbGRBZ2dyZWdhdGVRdWVyeSgpOiBNYW5nb1F1ZXJ5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuZnJvbVNlbGVjdG9yKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLmF2Z1NlbGVjdG9yKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGUgPSBTdHJpbmcodGhpcy5hdmdTZWxlY3Rvcik7XG4gICAgICBjb25zdCBzdW1JbmZvID0gdGhpcy5jcmVhdGVBZ2dyZWdhdGVEZXNjcmlwdG9yKFwic3VtXCIsIGF0dHJpYnV0ZSk7XG4gICAgICBjb25zdCBjb3VudEluZm8gPSB0aGlzLmNyZWF0ZUFnZ3JlZ2F0ZURlc2NyaXB0b3IoXCJjb3VudFwiLCBhdHRyaWJ1dGUpO1xuICAgICAgaWYgKCFzdW1JbmZvIHx8ICFjb3VudEluZm8pXG4gICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFxuICAgICAgICAgIGBBdmcgb3BlcmF0aW9uIHJlcXVpcmVzIHN1bSBhbmQgY291bnQgdmlld3MgZm9yIGF0dHJpYnV0ZSAke2F0dHJpYnV0ZX1gXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVBZ2dyZWdhdGVRdWVyeSh7XG4gICAgICAgIGtpbmQ6IFwiYXZnXCIsXG4gICAgICAgIGF0dHJpYnV0ZSxcbiAgICAgICAgc3VtRGVzY3JpcHRvcjogc3VtSW5mby5kZXNjcmlwdG9yLFxuICAgICAgICBjb3VudERlc2NyaXB0b3I6IGNvdW50SW5mby5kZXNjcmlwdG9yLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmNvdW50RGlzdGluY3RTZWxlY3RvciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgY29uc3QgYXR0cmlidXRlID1cbiAgICAgICAgdGhpcy5jb3VudERpc3RpbmN0U2VsZWN0b3IgPT0gbnVsbFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiBTdHJpbmcodGhpcy5jb3VudERpc3RpbmN0U2VsZWN0b3IpO1xuICAgICAgY29uc3QgaW5mbyA9IHRoaXMuY3JlYXRlQWdncmVnYXRlRGVzY3JpcHRvcihcImRpc3RpbmN0XCIsIGF0dHJpYnV0ZSk7XG4gICAgICBpZiAoaW5mbykge1xuICAgICAgICBpbmZvLmNvdW50RGlzdGluY3QgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVBZ2dyZWdhdGVRdWVyeShpbmZvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhZ2dyZWdhdG9yVXNlZCA9XG4gICAgICB0eXBlb2YgdGhpcy5jb3VudFNlbGVjdG9yICE9PSBcInVuZGVmaW5lZFwiIHx8XG4gICAgICB0eXBlb2YgdGhpcy5jb3VudERpc3RpbmN0U2VsZWN0b3IgIT09IFwidW5kZWZpbmVkXCIgfHxcbiAgICAgICEhdGhpcy5taW5TZWxlY3RvciB8fFxuICAgICAgISF0aGlzLm1heFNlbGVjdG9yIHx8XG4gICAgICAhIXRoaXMuc3VtU2VsZWN0b3IgfHxcbiAgICAgICEhdGhpcy5kaXN0aW5jdFNlbGVjdG9yO1xuXG4gICAgY29uc3QgYWdncmVnYXRvckNoZWNrczogQXJyYXk8W1ZpZXdLaW5kLCBTZWxlY3RTZWxlY3RvcjxNPiB8IHVuZGVmaW5lZF0+ID0gW1xuICAgICAgW1xuICAgICAgICBcImNvdW50XCIsXG4gICAgICAgICh0aGlzLmNvdW50U2VsZWN0b3IgPz8gdW5kZWZpbmVkKSBhcyBTZWxlY3RTZWxlY3RvcjxNPiB8IHVuZGVmaW5lZCxcbiAgICAgIF0sXG4gICAgICBbXCJtYXhcIiwgdGhpcy5tYXhTZWxlY3Rvcl0sXG4gICAgICBbXCJtaW5cIiwgdGhpcy5taW5TZWxlY3Rvcl0sXG4gICAgICBbXCJzdW1cIiwgdGhpcy5zdW1TZWxlY3Rvcl0sXG4gICAgICBbXCJkaXN0aW5jdFwiLCB0aGlzLmRpc3RpbmN0U2VsZWN0b3JdLFxuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IFtraW5kLCBzZWxlY3Rvcl0gb2YgYWdncmVnYXRvckNoZWNrcykge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gc2VsZWN0b3IgPyBTdHJpbmcoc2VsZWN0b3IpIDogdW5kZWZpbmVkO1xuICAgICAgY29uc3QgaW5mbyA9IHRoaXMuY3JlYXRlQWdncmVnYXRlRGVzY3JpcHRvcihraW5kLCBhdHRyaWJ1dGUpO1xuICAgICAgaWYgKGluZm8pIHJldHVybiB0aGlzLmNyZWF0ZUFnZ3JlZ2F0ZVF1ZXJ5KGluZm8pO1xuICAgIH1cblxuICAgIGlmIChhZ2dyZWdhdG9yVXNlZCkge1xuICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXG4gICAgICAgIGBObyBDb3VjaERCIHZpZXcgbWV0YWRhdGEgZm91bmQgZm9yIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKFxuICAgICAgICAgIHRoaXMuZnJvbVNlbGVjdG9yXG4gICAgICAgICl9IGFnZ3JlZ2F0b3JgXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGFuIGFnZ3JlZ2F0ZSBkZXNjcmlwdG9yIGZvciBhIHZpZXctYmFzZWQgYWdncmVnYXRpb25cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQWdncmVnYXRlRGVzY3JpcHRvcihcbiAgICBraW5kOiBWaWV3S2luZCxcbiAgICBhdHRyaWJ1dGU/OiBzdHJpbmdcbiAgKTogRXh0cmFjdDxGYWJyaWNBZ2dyZWdhdGVJbmZvLCB7IGtpbmQ6IFZpZXdLaW5kIH0+IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuZnJvbVNlbGVjdG9yKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1ldGFzID0gZmluZFZpZXdNZXRhZGF0YSh0aGlzLmZyb21TZWxlY3Rvciwga2luZCwgYXR0cmlidXRlKTtcbiAgICBpZiAoIW1ldGFzLmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBtZXRhID0gbWV0YXNbMF07XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKHRoaXMuZnJvbVNlbGVjdG9yKTtcbiAgICBjb25zdCB2aWV3TmFtZSA9IGdlbmVyYXRlVmlld05hbWUodGFibGVOYW1lLCBtZXRhLmF0dHJpYnV0ZSwga2luZCwgbWV0YSk7XG4gICAgY29uc3QgZGRvYyA9IG1ldGEuZGRvYyB8fCBnZW5lcmF0ZURlc2lnbkRvY05hbWUodGFibGVOYW1lLCB2aWV3TmFtZSk7XG4gICAgY29uc3Qgb3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgICAgIHJlZHVjZTogbWV0YS5yZWR1Y2UgIT09IHVuZGVmaW5lZCA/IHRydWUgOiAhbWV0YS5yZXR1cm5Eb2NzLFxuICAgIH07XG4gICAgaWYgKGtpbmQgPT09IFwiZGlzdGluY3RcIiB8fCBraW5kID09PSBcImdyb3VwQnlcIikgb3B0aW9ucy5ncm91cCA9IHRydWU7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtpbmQsXG4gICAgICBtZXRhLFxuICAgICAgZGVzY3JpcHRvcjoge1xuICAgICAgICBkZG9jLFxuICAgICAgICB2aWV3OiB2aWV3TmFtZSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyB0aGUgc3BlY2lhbCBhZ2dyZWdhdGUgTWFuZ29RdWVyeSBtYXJrZXJcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQWdncmVnYXRlUXVlcnkoXG4gICAgaW5mbzogRmFicmljQWdncmVnYXRlSW5mb1xuICApOiBNYW5nb1F1ZXJ5ICYgeyBhZ2dyZWdhdGU6IHRydWU7IGFnZ3JlZ2F0ZUluZm86IEZhYnJpY0FnZ3JlZ2F0ZUluZm8gfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbGVjdG9yOiB7fSxcbiAgICAgIGFnZ3JlZ2F0ZTogdHJ1ZSxcbiAgICAgIGFnZ3JlZ2F0ZUluZm86IGluZm8sXG4gICAgfSBhcyBNYW5nb1F1ZXJ5ICYgeyBhZ2dyZWdhdGU6IHRydWU7IGFnZ3JlZ2F0ZUluZm86IEZhYnJpY0FnZ3JlZ2F0ZUluZm8gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgYWRhcHRlciBjYXN0IHRvIEZhYnJpY0NsaWVudEFkYXB0ZXIgZm9yIHZpZXcgYWNjZXNzXG4gICAqL1xuICBwcml2YXRlIGdldEZhYnJpY0FkYXB0ZXIoKTogRmFicmljQ2xpZW50QWRhcHRlciB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlciBhcyBGYWJyaWNDbGllbnRBZGFwdGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhbiBhZ2dyZWdhdGUgcXVlcnkgdmlhIGFkYXB0ZXIncyB2aWV3IG1ldGhvZFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBleGVjdXRlQWdncmVnYXRlPFI+KFxuICAgIGluZm86IEZhYnJpY0FnZ3JlZ2F0ZUluZm8sXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApOiBQcm9taXNlPFI+IHtcbiAgICBpZiAoIXRoaXMuaXNWaWV3QWdncmVnYXRlKGluZm8pKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVBdmVyYWdlPFI+KGluZm8sIGN0eCk7XG4gICAgfVxuICAgIGNvbnN0IGZhYnJpY0FkYXB0ZXIgPSB0aGlzLmdldEZhYnJpY0FkYXB0ZXIoKTtcbiAgICBjb25zdCB2aWV3SW5mbyA9IGluZm8gYXMgRXh0cmFjdDxGYWJyaWNBZ2dyZWdhdGVJbmZvLCB7IGtpbmQ6IFZpZXdLaW5kIH0+O1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmFicmljQWRhcHRlci52aWV3PFZpZXdSZXNwb25zZT4oXG4gICAgICB2aWV3SW5mby5kZXNjcmlwdG9yLmRkb2MsXG4gICAgICB2aWV3SW5mby5kZXNjcmlwdG9yLnZpZXcsXG4gICAgICB2aWV3SW5mby5kZXNjcmlwdG9yLm9wdGlvbnMsXG4gICAgICBjdHhcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NWaWV3UmVzcG9uc2U8Uj4oaW5mbywgcmVzcG9uc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIGF2ZXJhZ2UgY2FsY3VsYXRpb24gZnJvbSBzdW0gYW5kIGNvdW50IHZpZXdzXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZUF2ZXJhZ2U8Uj4oXG4gICAgaW5mbzogRmFicmljQWdncmVnYXRlSW5mbyxcbiAgICBjdHg6IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+XG4gICk6IFByb21pc2U8Uj4ge1xuICAgIGlmIChpbmZvLmtpbmQgIT09IFwiYXZnXCIpXG4gICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcIkF2ZXJhZ2UgZGVzY3JpcHRvciBpcyBub3QgdmFsaWRcIik7XG4gICAgY29uc3QgZmFicmljQWRhcHRlciA9IHRoaXMuZ2V0RmFicmljQWRhcHRlcigpO1xuICAgIGNvbnN0IFtzdW1EZXNjLCBjb3VudERlc2NdID0gW2luZm8uc3VtRGVzY3JpcHRvciwgaW5mby5jb3VudERlc2NyaXB0b3JdO1xuICAgIGNvbnN0IFtzdW1SZXNwb25zZSwgY291bnRSZXNwb25zZV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBmYWJyaWNBZGFwdGVyLnZpZXc8Vmlld1Jlc3BvbnNlPihcbiAgICAgICAgc3VtRGVzYy5kZG9jLFxuICAgICAgICBzdW1EZXNjLnZpZXcsXG4gICAgICAgIHN1bURlc2Mub3B0aW9ucyxcbiAgICAgICAgY3R4XG4gICAgICApLFxuICAgICAgZmFicmljQWRhcHRlci52aWV3PFZpZXdSZXNwb25zZT4oXG4gICAgICAgIGNvdW50RGVzYy5kZG9jLFxuICAgICAgICBjb3VudERlc2MudmlldyxcbiAgICAgICAgY291bnREZXNjLm9wdGlvbnMsXG4gICAgICAgIGN0eFxuICAgICAgKSxcbiAgICBdKTtcbiAgICBjb25zdCBzdW0gPSBzdW1SZXNwb25zZS5yb3dzPy5bMF0/LnZhbHVlID8/IDA7XG4gICAgY29uc3QgY291bnQgPSBjb3VudFJlc3BvbnNlLnJvd3M/LlswXT8udmFsdWUgPz8gMDtcbiAgICBpZiAoIWNvdW50KSByZXR1cm4gMCBhcyB1bmtub3duIGFzIFI7XG4gICAgcmV0dXJuIChzdW0gLyBjb3VudCkgYXMgdW5rbm93biBhcyBSO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcm9jZXNzZXMgdGhlIHZpZXcgcmVzcG9uc2UgYmFzZWQgb24gYWdncmVnYXRlIGtpbmRcbiAgICovXG4gIHByaXZhdGUgcHJvY2Vzc1ZpZXdSZXNwb25zZTxSPihcbiAgICBpbmZvOiBGYWJyaWNBZ2dyZWdhdGVJbmZvLFxuICAgIHJlc3BvbnNlOiBWaWV3UmVzcG9uc2VcbiAgKTogUiB7XG4gICAgaWYgKGluZm8ua2luZCA9PT0gXCJhdmdcIilcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFxuICAgICAgICBcIkF2ZXJhZ2UgcmVzdWx0cyBzaG91bGQgYmUgaGFuZGxlZCBiZWZvcmUgcHJvY2Vzc2luZyByb3dzXCJcbiAgICAgICk7XG4gICAgY29uc3Qgcm93cyA9IHJlc3BvbnNlLnJvd3MgfHwgW107XG4gICAgY29uc3Qgdmlld0luZm8gPSBpbmZvIGFzIEV4dHJhY3Q8RmFicmljQWdncmVnYXRlSW5mbywgeyBraW5kOiBWaWV3S2luZCB9PjtcbiAgICBjb25zdCBtZXRhID0gdmlld0luZm8ubWV0YTtcbiAgICBpZiAodmlld0luZm8uY291bnREaXN0aW5jdCkge1xuICAgICAgcmV0dXJuIChyb3dzLmxlbmd0aCB8fCAwKSBhcyB1bmtub3duIGFzIFI7XG4gICAgfVxuICAgIGlmICh2aWV3SW5mby5raW5kID09PSBcImRpc3RpbmN0XCIgfHwgdmlld0luZm8ua2luZCA9PT0gXCJncm91cEJ5XCIpIHtcbiAgICAgIHJldHVybiByb3dzLm1hcCgocm93KSA9PiByb3cua2V5ID8/IHJvdy52YWx1ZSkgYXMgdW5rbm93biBhcyBSO1xuICAgIH1cbiAgICBpZiAobWV0YS5yZXR1cm5Eb2NzKSB7XG4gICAgICByZXR1cm4gcm93cy5tYXAoKHJvdykgPT4gcm93LnZhbHVlID8/IHJvdy5kb2MgPz8gcm93KSBhcyB1bmtub3duIGFzIFI7XG4gICAgfVxuICAgIGlmICghcm93cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAodmlld0luZm8ua2luZCA9PT0gXCJjb3VudFwiID8gMCA6IG51bGwpIGFzIHVua25vd24gYXMgUjtcbiAgICB9XG4gICAgcmV0dXJuIChyb3dzWzBdLnZhbHVlID8/IHJvd3NbMF0ua2V5ID8/IG51bGwpIGFzIHVua25vd24gYXMgUjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVHlwZSBndWFyZCB0byBjaGVjayBpZiBpbmZvIGlzIGEgdmlldy1iYXNlZCBhZ2dyZWdhdGVcbiAgICovXG4gIHByaXZhdGUgaXNWaWV3QWdncmVnYXRlKFxuICAgIGluZm86IEZhYnJpY0FnZ3JlZ2F0ZUluZm9cbiAgKTogaW5mbyBpcyBFeHRyYWN0PEZhYnJpY0FnZ3JlZ2F0ZUluZm8sIHsga2luZDogVmlld0tpbmQgfT4ge1xuICAgIHJldHVybiBpbmZvLmtpbmQgIT09IFwiYXZnXCI7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -110,4 +110,4 @@ function writeCollectionDesignDocs(docs, p = process.cwd(), collection) {
|
|
|
110
110
|
return;
|
|
111
111
|
(0, generation_1.writeDesignDocs)(docs, p, collection);
|
|
112
112
|
}
|
|
113
|
-
//# sourceMappingURL=generation.js.map
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29sbGVjdGlvbnMvZ2VuZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTJEQSxzQ0FrQkM7QUFFRCxvREF1QkM7QUFFRCxrREFzQkM7QUFFRCxnREFvSEM7QUFFRCw0Q0FzQkM7QUFFRCw4REFPQztBQW5SRCx5RUFBdUQ7QUFDdkQsMkRBQXdEO0FBRXhELDREQUF3RDtBQXNEeEQsU0FBZ0IsYUFBYSxDQUMzQixjQUFzQixFQUN0QixNQUFjLEVBQ2QsaUJBQXlCLEVBQ3pCLFlBQW9CLEVBQ3BCLFdBQW1CLEVBQ25CLGNBQXVCLEVBQ3ZCLGVBQXdCO0lBRXhCLE9BQU87UUFDTCxJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUsTUFBTTtRQUNkLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osV0FBVztRQUNYLGNBQWM7UUFDZCxlQUFlO0tBQ2hCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQ2xDLEtBQWEsRUFDYixpQkFBeUIsR0FBRyxLQUFLLFNBQVMsRUFDMUMsb0JBQTRCLENBQUMsRUFDN0IsZUFBdUIsQ0FBQyxFQUN4QixjQUFzQixDQUFDLEVBQ3ZCLGlCQUEwQixJQUFJLEVBQzlCLGtCQUEyQixJQUFJO0lBRS9CLE1BQU0sQ0FBQyxHQUFHLGFBQWEsQ0FDckIsY0FBYyxFQUNkLE9BQU8sS0FBSyxXQUFXLEVBQ3ZCLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osV0FBVyxFQUNYLGNBQWMsRUFDZCxlQUFlLENBQ2hCLENBQUM7SUFFRixDQUFDLENBQUMsaUJBQWlCLEdBQUc7UUFDcEIsZUFBZSxFQUFFLE9BQU8sS0FBSyxTQUFTO0tBQ3ZDLENBQUM7SUFDRixPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FDakMsTUFBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsb0JBQTRCLENBQUMs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ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBDb3VjaERCRGVzaWduRG9jIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb2xsZWN0aW9uUmVzb2x2ZXIgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2luZGV4XCI7XG5pbXBvcnQgeyB3cml0ZURlc2lnbkRvY3MgfSBmcm9tIFwiLi4vaW5kZXhlcy9nZW5lcmF0aW9uXCI7XG5cbi8vXG4vLyBleHBvcnQgdHlwZSBGYWJyaWNDb2xsZWN0aW9uID0ge1xuLy8gICBuYW1lOiBcImNvbGxlY3Rpb25NYXJibGVzXCI7XG4vLyAgIHBvbGljeTogXCJPUignT3JnMU1TUC5tZW1iZXInLCAnT3JnMk1TUC5tZW1iZXInKVwiO1xuLy8gICByZXF1aXJlZFBlZXJDb3VudDogMDtcbi8vICAgbWF4UGVlckNvdW50OiAzO1xuLy8gICBibG9ja1RvTGl2ZTogMDtcbi8vICAgbWVtYmVyT25seVJlYWQ6IHRydWU7XG4vLyAgIG1lbWJlck9ubHlXcml0ZTogdHJ1ZTtcbi8vICAgZW5kb3JzZW1lbnRQb2xpY3k6IHtcbi8vICAgICBpZGVudGl0aWVzOiBbXG4vLyAgICAgICB7IHJvbGU6IHsgbmFtZTogXCJtZW1iZXJcIjsgbXNwSWQ6IFwiT3JnMU1TUFwiIH0gfSxcbi8vICAgICAgIHsgcm9sZTogeyBuYW1lOiBcIm1lbWJlclwiOyBtc3BJZDogXCJPcmcyTVNQXCIgfSB9LFxuLy8gICAgIF07XG4vLyAgICAgcnVsZTogXCJPUignT3JnMU1TUC5tZW1iZXInLCAnT3JnMk1TUC5tZW1iZXInKVwiO1xuLy8gICB9O1xuLy8gfTtcblxuZXhwb3J0IHR5cGUgRmFicmljUG9saWN5SWRlbnRpdHkgPSB7XG4gIHJvbGU6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbXNwSWQ6IHN0cmluZztcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIEZhYnJpY0NvbGxlY3Rpb24gPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgcG9saWN5OiBzdHJpbmc7XG4gIHJlcXVpcmVkUGVlckNvdW50OiBudW1iZXI7XG4gIG1heFBlZXJDb3VudDogbnVtYmVyO1xuICBibG9ja1RvTGl2ZTogbnVtYmVyO1xuICBtZW1iZXJPbmx5UmVhZDogYm9vbGVhbjtcbiAgbWVtYmVyT25seVdyaXRlOiBib29sZWFuO1xuICBlbmRvcnNlbWVudFBvbGljeToge1xuICAgIGlkZW50aXRpZXM6IEZhYnJpY1BvbGljeUlkZW50aXR5W107XG4gICAgcnVsZTogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgUHJpdmF0ZUNvbGxlY3Rpb24gPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgcG9saWN5OiBzdHJpbmc7XG4gIHJlcXVpcmVkUGVlckNvdW50OiBudW1iZXI7XG4gIG1heFBlZXJDb3VudDogbnVtYmVyO1xuICBibG9ja1RvTGl2ZTogbnVtYmVyO1xuICBtZW1iZXJPbmx5UmVhZDogYm9vbGVhbjtcbiAgbWVtYmVyT25seVdyaXRlOiBib29sZWFuO1xuICBlbmRvcnNlbWVudFBvbGljeT86IHtcbiAgICBzaWduYXR1cmVQb2xpY3k6IHN0cmluZztcbiAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2xsZWN0aW9uRm9yKFxuICBjb2xsZWN0aW9uTmFtZTogc3RyaW5nLFxuICBwb2xpY3k6IHN0cmluZyxcbiAgcmVxdWlyZWRQZWVyQ291bnQ6IG51bWJlcixcbiAgbWF4UGVlckNvdW50OiBudW1iZXIsXG4gIGJsb2NrVG9MaXZlOiBudW1iZXIsXG4gIG1lbWJlck9ubHlSZWFkOiBib29sZWFuLFxuICBtZW1iZXJPbmx5V3JpdGU6IGJvb2xlYW5cbik6IFByaXZhdGVDb2xsZWN0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBjb2xsZWN0aW9uTmFtZSxcbiAgICBwb2xpY3k6IHBvbGljeSxcbiAgICByZXF1aXJlZFBlZXJDb3VudCxcbiAgICBtYXhQZWVyQ291bnQsXG4gICAgYmxvY2tUb0xpdmUsXG4gICAgbWVtYmVyT25seVJlYWQsXG4gICAgbWVtYmVyT25seVdyaXRlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZUNvbGxlY3Rpb25Gb3IoXG4gIG1zcElkOiBzdHJpbmcsXG4gIGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcgPSBgJHttc3BJZH1Qcml2YXRlYCxcbiAgcmVxdWlyZWRQZWVyQ291bnQ6IG51bWJlciA9IDAsXG4gIG1heFBlZXJDb3VudDogbnVtYmVyID0gMCxcbiAgYmxvY2tUb0xpdmU6IG51bWJlciA9IDAsXG4gIG1lbWJlck9ubHlSZWFkOiBib29sZWFuID0gdHJ1ZSxcbiAgbWVtYmVyT25seVdyaXRlOiBib29sZWFuID0gdHJ1ZVxuKTogUHJpdmF0ZUNvbGxlY3Rpb24ge1xuICBjb25zdCBjID0gY29sbGVjdGlvbkZvcihcbiAgICBjb2xsZWN0aW9uTmFtZSxcbiAgICBgT1IoJyR7bXNwSWR9Lm1lbWJlcicpYCxcbiAgICByZXF1aXJlZFBlZXJDb3VudCxcbiAgICBtYXhQZWVyQ291bnQsXG4gICAgYmxvY2tUb0xpdmUsXG4gICAgbWVtYmVyT25seVJlYWQsXG4gICAgbWVtYmVyT25seVdyaXRlXG4gICk7XG5cbiAgYy5lbmRvcnNlbWVudFBvbGljeSA9IHtcbiAgICBzaWduYXR1cmVQb2xpY3k6IGBPUignJHttc3BJZH0ucGVlcicpYCxcbiAgfTtcbiAgcmV0dXJuIGM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaGFyZWRDb2xsZWN0aW9uRm9yKFxuICBtc3BJZHM6IHN0cmluZ1tdLFxuICBjb2xsZWN0aW9uTmFtZTogc3RyaW5nLFxuICByZXF1aXJlZFBlZXJDb3VudDogbnVtYmVyID0gMSxcbiAgbWF4UGVlckNvdW50OiBudW1iZXIgPSAyLFxuICBibG9ja1RvTGl2ZTogbnVtYmVyID0gMCxcbiAgbWVtYmVyT25seVJlYWQ6IGJvb2xlYW4gPSB0cnVlLFxuICBtZW1iZXJPbmx5V3JpdGU6IGJvb2xlYW4gPSB0cnVlXG4pOiBQcml2YXRlQ29sbGVjdGlvbiB7XG4gIGNvbnN0IGMgPSBjb2xsZWN0aW9uRm9yKFxuICAgIGNvbGxlY3Rpb25OYW1lLFxuICAgIGBPUigke21zcElkcy5tYXAoKG0pID0+IGAnJHttfS5tZW1iZXInYCkuam9pbihcIixcIil9KWAsXG4gICAgcmVxdWlyZWRQZWVyQ291bnQsXG4gICAgbWF4UGVlckNvdW50LFxuICAgIGJsb2NrVG9MaXZlLFxuICAgIG1lbWJlck9ubHlSZWFkLFxuICAgIG1lbWJlck9ubHlXcml0ZVxuICApO1xuICBjLmVuZG9yc2VtZW50UG9saWN5ID0ge1xuICAgIHNpZ25hdHVyZVBvbGljeTogYEFORCgke21zcElkcy5tYXAoKG0pID0+IGAnJHttfS5wZWVyJ2ApLmpvaW4oXCIsXCIpfSlgLFxuICB9O1xuICByZXR1cm4gYztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RDb2xsZWN0aW9uczxNIGV4dGVuZHMgTW9kZWw+KFxuICBtOiBDb25zdHJ1Y3RvcjxNPixcbiAgbXNwSWRzOiBzdHJpbmdbXSxcbiAgb3ZlcnJpZGVzOiB7XG4gICAgcHJpdmF0ZUNvbHM/OiBQYXJ0aWFsPFByaXZhdGVDb2xsZWN0aW9uPjtcbiAgICBzaGFyZWRDb2xzPzogUGFydGlhbDxQcml2YXRlQ29sbGVjdGlvbj47XG4gIH0gPSB7fSxcbiAgbWlycm9yOiBib29sZWFuID0gZmFsc2Vcbikge1xuICBsZXQgeyBwcml2YXRlQ29scywgc2hhcmVkQ29scyB9ID0gTW9kZWwuY29sbGVjdGlvbnNGb3IobSk7XG5cbiAgZnVuY3Rpb24gcmVzb2x2ZUNvbGxlY3Rpb24oYXJnOiBzdHJpbmcgfCBDb2xsZWN0aW9uUmVzb2x2ZXIpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBpZiAodHlwZW9mIGFyZyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIGFyZztcbiAgICAgIHJldHVybiBhcmcobSwgbXNwSWRzWzBdKSBhcyBzdHJpbmc7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZUNvbHMgPSBwcml2YXRlQ29scy5tYXAocmVzb2x2ZUNvbGxlY3Rpb24pO1xuICBzaGFyZWRDb2xzID0gc2hhcmVkQ29scy5tYXAocmVzb2x2ZUNvbGxlY3Rpb24pO1xuXG4gIGNvbnN0IHByaXZhdGVEZWZhdWx0cyA9IE9iamVjdC5hc3NpZ24oXG4gICAge30sXG4gICAge1xuICAgICAgcmVxdWlyZWRQZWVyQ291bnQ6IDAsXG4gICAgICBtYXhQZWVyQ291bnQ6IDAsXG4gICAgICBibG9ja1RvTGl2ZTogMCxcbiAgICAgIG1lbWJlck9ubHlSZWFkOiB0cnVlLFxuICAgICAgbWVtYmVyT25seVdyaXRlOiB0cnVlLFxuICAgIH0sXG4gICAgb3ZlcnJpZGVzPy5wcml2YXRlQ29scyB8fCB7fVxuICApO1xuICBjb25zdCBzaGFyZWREZWZhdWx0cyA9IE9iamVjdC5hc3NpZ24oXG4gICAge30sXG4gICAge1xuICAgICAgcmVxdWlyZWRQZWVyQ291bnQ6IDEsXG4gICAgICBtYXhQZWVyQ291bnQ6IDIsXG4gICAgICBibG9ja1RvTGl2ZTogMCxcbiAgICAgIG1lbWJlck9ubHlSZWFkOiB0cnVlLFxuICAgICAgbWVtYmVyT25seVdyaXRlOiB0cnVlLFxuICAgIH0sXG4gICAgb3ZlcnJpZGVzPy5zaGFyZWRDb2xzIHx8IHt9XG4gICk7XG5cbiAgY29uc3QgbWlycm9yTWV0YSA9IG1pcnJvciA/IE1vZGVsLm1pcnJvcmVkQXQobSkgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgcHJpdmF0ZXMgPSBtc3BJZHNcbiAgICAubWFwKChtc3BJZCkgPT5cbiAgICAgIChwcml2YXRlQ29scyBhcyBzdHJpbmdbXSkubWFwKChwKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcmVxdWlyZWRQZWVyQ291bnQsIG1heFBlZXJDb3VudCwgYmxvY2tUb0xpdmUsIG1lbWJlck9ubHlSZWFkIH0gPVxuICAgICAgICAgIHByaXZhdGVEZWZhdWx0cztcbiAgICAgICAgcmV0dXJuIHByaXZhdGVDb2xsZWN0aW9uRm9yKFxuICAgICAgICAgIG1zcElkLFxuICAgICAgICAgIHAsXG4gICAgICAgICAgcmVxdWlyZWRQZWVyQ291bnQsXG4gICAgICAgICAgbWF4UGVlckNvdW50LFxuICAgICAgICAgIGJsb2NrVG9MaXZlLFxuICAgICAgICAgIG1lbWJlck9ubHlSZWFkLFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgIClcbiAgICAuZmxhdCgpO1xuXG4gIGlmIChtaXJyb3JNZXRhICYmIG1pcnJvck1ldGEubXNwSWQpIHtcbiAgICBjb25zdCByZXNvbHZlZCA9XG4gICAgICB0eXBlb2YgbWlycm9yTWV0YS5yZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IG1pcnJvck1ldGEucmVzb2x2ZXJcbiAgICAgICAgOiBtaXJyb3JNZXRhLnJlc29sdmVyKG0sIG1pcnJvck1ldGEubXNwSWQpO1xuICAgIGlmIChcbiAgICAgIHJlc29sdmVkICYmXG4gICAgICAhcHJpdmF0ZXMuc29tZShcbiAgICAgICAgKHApID0+IHAubmFtZSA9PT0gcmVzb2x2ZWQgJiYgcC5wb2xpY3kuaW5jbHVkZXMobWlycm9yTWV0YS5tc3BJZClcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnN0IHsgcmVxdWlyZWRQZWVyQ291bnQsIG1heFBlZXJDb3VudCwgYmxvY2tUb0xpdmUsIG1lbWJlck9ubHlSZWFkIH0gPVxuICAgICAgICBwcml2YXRlRGVmYXVsdHM7XG4gICAgICBwcml2YXRlcy5wdXNoKFxuICAgICAgICBwcml2YXRlQ29sbGVjdGlvbkZvcihcbiAgICAgICAgICBtaXJyb3JNZXRhLm1zcElkLFxuICAgICAgICAgIHJlc29sdmVkLFxuICAgICAgICAgIHJlcXVpcmVkUGVlckNvdW50LFxuICAgICAgICAgIG1heFBlZXJDb3VudCxcbiAgICAgICAgICBibG9ja1RvTGl2ZSxcbiAgICAgICAgICBtZW1iZXJPbmx5UmVhZCxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNoYXJlZCA9IChzaGFyZWRDb2xzIGFzIHN0cmluZ1tdKS5tYXAoKHApID0+IHtcbiAgICBjb25zdCB7XG4gICAgICByZXF1aXJlZFBlZXJDb3VudCxcbiAgICAgIG1heFBlZXJDb3VudCxcbiAgICAgIGJsb2NrVG9MaXZlLFxuICAgICAgbWVtYmVyT25seVJlYWQsXG4gICAgICBtZW1iZXJPbmx5V3JpdGUsXG4gICAgfSA9IHNoYXJlZERlZmF1bHRzO1xuICAgIHJldHVybiBzaGFyZWRDb2xsZWN0aW9uRm9yKFxuICAgICAgbXNwSWRzLFxuICAgICAgcCxcbiAgICAgIHJlcXVpcmVkUGVlckNvdW50LFxuICAgICAgbWF4UGVlckNvdW50LFxuICAgICAgYmxvY2tUb0xpdmUsXG4gICAgICBtZW1iZXJPbmx5UmVhZCxcbiAgICAgIG1lbWJlck9ubHlXcml0ZVxuICAgICk7XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgcHJpdmF0ZXMsXG4gICAgc2hhcmVkLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVDb2xsZWN0aW9ucyhcbiAgY29sczogUHJpdmF0ZUNvbGxlY3Rpb25bXSxcbiAgcDogc3RyaW5nID0gcHJvY2Vzcy5jd2QoKSxcbiAgZmlsZU5hbWUgPSBcImNvbGxlY3Rpb25zX2NvbmZpZ1wiXG4pIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gIGNvbnN0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcblxuICBmdW5jdGlvbiBlbnN1cmVEaXJlY3RvcnlFeGlzdGVuY2UoZmlsZVBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGRpcm5hbWU6IHN0cmluZyA9IHBhdGguZGlybmFtZShmaWxlUGF0aCkgYXMgc3RyaW5nO1xuICAgIGlmIChmcy5leGlzdHNTeW5jKGRpcm5hbWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZW5zdXJlRGlyZWN0b3J5RXhpc3RlbmNlKGRpcm5hbWUpO1xuICAgIGZzLm1rZGlyU3luYyhkaXJuYW1lKTtcbiAgfVxuXG4gIGNvbnN0IGZpbGUgPSBwYXRoLnJlc29sdmUocGF0aC5qb2luKHAsIGAuL01FVEEtSU5GLyR7ZmlsZU5hbWV9Lmpzb25gKSk7XG4gIGVuc3VyZURpcmVjdG9yeUV4aXN0ZW5jZShmaWxlKTtcbiAgZnMud3JpdGVGaWxlU3luYyhmaWxlLCBKU09OLnN0cmluZ2lmeShjb2xzLCB1bmRlZmluZWQsIDIpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlQ29sbGVjdGlvbkRlc2lnbkRvY3MoXG4gIGRvY3M6IENvdWNoREJEZXNpZ25Eb2NbXSxcbiAgcDogc3RyaW5nID0gcHJvY2Vzcy5jd2QoKSxcbiAgY29sbGVjdGlvbj86IHN0cmluZ1xuKSB7XG4gIGlmICghZG9jcz8ubGVuZ3RoKSByZXR1cm47XG4gIHdyaXRlRGVzaWduRG9jcyhkb2NzLCBwLCBjb2xsZWN0aW9uKTtcbn1cbiJdfQ==
|
|
@@ -15,4 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./generation.cjs"), exports);
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2NvbGxlY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9nZW5lcmF0aW9uXCI7XG4iXX0=
|
package/lib/client/constants.cjs
CHANGED
|
@@ -12,4 +12,4 @@ exports.DefaultFabricClientFlags = Object.assign({
|
|
|
12
12
|
rebuildWithTransient: true,
|
|
13
13
|
encryptTransient: false,
|
|
14
14
|
});
|
|
15
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRWEsUUFBQSx3QkFBd0IsR0FBc0IsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN2RSxlQUFlLEVBQUUsQ0FBQztJQUNsQixjQUFjLEVBQUUsRUFBRTtJQUNsQixhQUFhLEVBQUUsQ0FBQztJQUNoQixhQUFhLEVBQUUsRUFBRTtJQUNqQixNQUFNLEVBQUUsS0FBSztJQUNiLHdCQUF3QixFQUFFLEtBQUs7SUFDL0Isb0JBQW9CLEVBQUUsS0FBSztJQUMzQixvQkFBb0IsRUFBRSxJQUFJO0lBQzFCLGdCQUFnQixFQUFFLEtBQUs7Q0FDeEIsQ0FBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFicmljQ2xpZW50RmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEZhYnJpY0NsaWVudEZsYWdzOiBGYWJyaWNDbGllbnRGbGFncyA9IE9iamVjdC5hc3NpZ24oe1xuICBldmFsdWF0ZVRpbWVvdXQ6IDUsXG4gIGVuZG9yc2VUaW1lb3V0OiAxNSxcbiAgc3VibWl0VGltZW91dDogNSxcbiAgY29tbWl0VGltZW91dDogNjAsXG4gIGxlZ2FjeTogZmFsc2UsXG4gIGFsbG93TWFudWFsRW5kb3JzaW5nT3JnczogZmFsc2UsXG4gIGFsbG93R2F0ZXdheU92ZXJyaWRlOiBmYWxzZSxcbiAgcmVidWlsZFdpdGhUcmFuc2llbnQ6IHRydWUsXG4gIGVuY3J5cHRUcmFuc2llbnQ6IGZhbHNlLFxufSkgYXMgYW55O1xuIl19
|
package/lib/client/crypto.cjs
CHANGED
|
@@ -365,4 +365,4 @@ class CryptoUtils {
|
|
|
365
365
|
}
|
|
366
366
|
}
|
|
367
367
|
exports.CryptoUtils = CryptoUtils;
|
|
368
|
-
//# sourceMappingURL=crypto.js.map
|
|
368
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9jcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXVDO0FBQ3ZDLG1EQUF3RDtBQUN4RCx5RUFBOEQ7QUFDOUQsK0NBQTBEO0FBRTFELE1BQU0sTUFBTSxHQUFHLElBQUksa0JBQU0sRUFBRSxDQUFDO0FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRWhDLElBQVksYUFZWDtBQVpELFdBQVksYUFBYTtJQUN2Qiw2QkFBWSxDQUFBO0lBQ1osbUNBQWtCLENBQUE7SUFDbEIsdUNBQXNCLENBQUE7SUFDdEIsNENBQTJCLENBQUE7SUFDM0IsNERBQTJDLENBQUE7SUFDM0MsOERBQTZDLENBQUE7SUFDN0MsZ0VBQStDLENBQUE7SUFDL0Msc0ZBQXFFLENBQUE7SUFDckUsMEZBQXlFLENBQUE7SUFDekUsNEZBQTJFLENBQUE7SUFDM0UsK0ZBQThFLENBQUE7QUFDaEYsQ0FBQyxFQVpXLGFBQWEsNkJBQWIsYUFBYSxRQVl4QjtBQU9ELElBQVksTUFRWDtBQVJELFdBQVksTUFBTTtJQUNoQiwwQkFBZ0IsQ0FBQTtJQUNoQixrREFBaUIsQ0FBQTtJQUNqQiw4Q0FBYyxDQUFBO0lBQ2QsOERBQXNCLENBQUE7SUFDdEIsZ0VBQXVCLENBQUE7SUFDdkIsK0JBQXFCLENBQUE7SUFDckIsa0NBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQVJXLE1BQU0sc0JBQU4sTUFBTSxRQVFqQjtBQUVELE1BQWEsV0FBVztJQU90QixZQUFvQixRQUF1QjtRQUF2QixhQUFRLEdBQVIsUUFBUSxDQUFlO1FBTjFCLFlBQU8sR0FBZSxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQU96RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLEdBQUc7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QUFFLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUN0RCxTQUFTLENBQUMsR0FBRyxFQUNiLFVBQVUsQ0FDWCxDQUFDO1FBQ0YsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDckIsYUFBMEIsRUFDMUIsU0FBb0I7UUFFcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxPQUFPLENBQ3hELEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFtQixFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQ3RELFNBQVMsQ0FBQyxHQUFHLEVBQ2IsYUFBYSxDQUNkLENBQUM7UUFDRixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7QUF4Ukgsa0NBeVJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgeDUwOSBmcm9tIFwiQHBlY3VsaWFyL3g1MDlcIjtcbmltcG9ydCB7IENyeXB0bywgQ3J5cHRvS2V5IH0gZnJvbSBcIkBwZWN1bGlhci93ZWJjcnlwdG9cIjtcbmltcG9ydCB7IHN0cmluZ0Zvcm1hdCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGlzQnJvd3NlciwgTWluaUxvZ2dlciB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuXG5jb25zdCBjcnlwdG8gPSBuZXcgQ3J5cHRvKCk7XG54NTA5LmNyeXB0b1Byb3ZpZGVyLnNldChjcnlwdG8pO1xuXG5leHBvcnQgZW51bSBCQVNFX0FMUEhBQkVUIHtcbiAgQkFTRTIgPSBcIjAxXCIsXG4gIEJBU0U4ID0gXCIwMTIzNDU2N1wiLFxuICBCQVNFMTEgPSBcIjAxMjM0NTY3ODlhXCIsXG4gIEJBU0UxNiA9IFwiMDEyMzQ1Njc4OWFiY2RlZlwiLFxuICBCQVNFMzIgPSBcIjAxMjM0NTY3ODlBQkNERUZHSEpLTU5QUVJTVFZXWFlaXCIsXG4gIEJBU0UzMl9aID0gXCJ5Ym5kcmZnOGVqa21jcHF4b3QxdXdpc3phMzQ1aDc2OVwiLFxuICBCQVNFMzYgPSBcIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5elwiLFxuICBCQVNFNTggPSBcIjEyMzQ1Njc4OUFCQ0RFRkdISktMTU5QUVJTVFVWV1hZWmFiY2RlZmdoaWprbW5vcHFyc3R1dnd4eXpcIixcbiAgQkFTRTYyID0gXCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWlwiLFxuICBCQVNFNjQgPSBcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky9cIixcbiAgQkFTRTY3ID0gXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fLiF+XCIsXG59XG5cbmV4cG9ydCB0eXBlIGtleU9iamVjdCA9IHtcbiAgaXY6IEFycmF5QnVmZmVyO1xuICBrZXk6IENyeXB0b0tleTtcbn07XG5cbmV4cG9ydCBlbnVtIENSWVBUTyB7XG4gIEhBU0ggPSBcIlNIQS0yNTZcIixcbiAgSVRFUkFUSU9OUyA9IDEwMDAsXG4gIEtFWUxFTkdUSCA9IDQ4LFxuICBERVJJVkVEX0lWX0xFTkdUSCA9IDE2LFxuICBERVJJVkVEX0tFWV9MRU5HVEggPSAzMiwgLy8gQmVjYXVzZSBTSEEtMjU2IHVzZWQgaGFzIGEgbmF0aXZlIHNpemUgb2YgMzIgYnl0ZXNcbiAgQUxHT1JZVEhNID0gXCJBRVMtR0NNXCIsXG4gIEtFWV9BTEdPUllUSE0gPSBcIlBCS0RGMlwiLFxufVxuXG5leHBvcnQgY2xhc3MgQmFzZUVuY29kZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGJhc2VNYXA6IFVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheSgyNTYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJhc2U6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBsZWFkZXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBmYWN0b3I6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBpRmFjdG9yOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbHBoYWJldDogQkFTRV9BTFBIQUJFVCkge1xuICAgIGlmICh0aGlzLmFscGhhYmV0Lmxlbmd0aCA+PSAyNTUpIHRocm93IG5ldyBFcnJvcihcIkFscGhhYmV0IHRvbyBsb25nXCIpO1xuXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmJhc2VNYXAubGVuZ3RoOyBqKyspIHRoaXMuYmFzZU1hcFtqXSA9IDI1NTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxwaGFiZXQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHggPSBhbHBoYWJldC5jaGFyQXQoaSk7XG4gICAgICBjb25zdCB4YyA9IHguY2hhckNvZGVBdCgwKTtcbiAgICAgIGlmICh0aGlzLmJhc2VNYXBbeGNdICE9PSAyNTUpIHRocm93IG5ldyBFcnJvcih4ICsgXCIgaXMgYW1iaWd1b3VzXCIpO1xuXG4gICAgICB0aGlzLmJhc2VNYXBbeGNdID0gaTtcbiAgICB9XG5cbiAgICB0aGlzLmJhc2UgPSB0aGlzLmFscGhhYmV0Lmxlbmd0aDtcbiAgICB0aGlzLmxlYWRlciA9IHRoaXMuYWxwaGFiZXQuY2hhckF0KDApO1xuICAgIHRoaXMuZmFjdG9yID0gTWF0aC5sb2codGhpcy5iYXNlKSAvIE1hdGgubG9nKDI1Nik7IC8vIGxvZyhCQVNFKSAvIGxvZygyNTYpLCByb3VuZGVkIHVwXG4gICAgdGhpcy5pRmFjdG9yID0gTWF0aC5sb2coMjU2KSAvIE1hdGgubG9nKHRoaXMuYmFzZSk7IC8vIGxvZygyNTYpIC8gbG9nKEJBU0UpLCByb3VuZGVkIHVwXG4gIH1cblxuICBlbmNvZGUoc291cmNlOiBVaW50OEFycmF5IHwgRGF0YVZpZXcgfCBhbnlbXSB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2Ygc291cmNlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBzb3VyY2UgPSBCdWZmZXIuZnJvbShzb3VyY2UpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KHNvdXJjZSkpIHtcbiAgICAgIHNvdXJjZSA9IG5ldyBVaW50OEFycmF5KFxuICAgICAgICBzb3VyY2UuYnVmZmVyLFxuICAgICAgICBzb3VyY2UuYnl0ZU9mZnNldCxcbiAgICAgICAgc291cmNlLmJ5dGVMZW5ndGhcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgIHNvdXJjZSA9IFVpbnQ4QXJyYXkuZnJvbShzb3VyY2UpO1xuICAgIH1cblxuICAgIGlmIChzb3VyY2UubGVuZ3RoID09PSAwKSByZXR1cm4gXCJcIjtcblxuICAgIC8vIFNraXAgJiBjb3VudCBsZWFkaW5nIHplcm9lcy5cbiAgICBsZXQgemVyb2VzID0gMDtcbiAgICBsZXQgbGVuZ3RoID0gMDtcbiAgICBsZXQgcGJlZ2luID0gMDtcbiAgICBjb25zdCBwZW5kID0gc291cmNlLmxlbmd0aDtcbiAgICB3aGlsZSAocGJlZ2luICE9PSBwZW5kICYmIHNvdXJjZVtwYmVnaW5dID09PSAwKSB7XG4gICAgICBwYmVnaW4rKztcbiAgICAgIHplcm9lcysrO1xuICAgIH1cbiAgICAvLyBBbGxvY2F0ZSBlbm91Z2ggc3BhY2UgaW4gYmlnLWVuZGlhbiBiYXNlNTggcmVwcmVzZW50YXRpb24uXG4gICAgY29uc3Qgc2l6ZSA9ICgocGVuZCAtIHBiZWdpbikgKiB0aGlzLmlGYWN0b3IgKyAxKSA+Pj4gMDtcbiAgICBjb25zdCBiNTggPSBuZXcgVWludDhBcnJheShzaXplKTtcbiAgICAvLyBQcm9jZXNzIHRoZSBieXRlcy5cbiAgICB3aGlsZSAocGJlZ2luICE9PSBwZW5kKSB7XG4gICAgICBsZXQgY2FycnkgPSBzb3VyY2VbcGJlZ2luXTtcbiAgICAgIC8vIEFwcGx5IFwiYjU4ID0gYjU4ICogMjU2ICsgY2hcIi5cbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGZvciAoXG4gICAgICAgIGxldCBpdDEgPSBzaXplIC0gMTtcbiAgICAgICAgKGNhcnJ5ICE9PSAwIHx8IGkgPCBsZW5ndGgpICYmIGl0MSAhPT0gLTE7XG4gICAgICAgIGl0MS0tLCBpKytcbiAgICAgICkge1xuICAgICAgICBjYXJyeSArPSAoMjU2ICogYjU4W2l0MV0pID4+PiAwO1xuICAgICAgICBiNThbaXQxXSA9IGNhcnJ5ICUgdGhpcy5iYXNlID4+PiAwO1xuICAgICAgICBjYXJyeSA9IChjYXJyeSAvIHRoaXMuYmFzZSkgPj4+IDA7XG4gICAgICB9XG4gICAgICBpZiAoY2FycnkgIT09IDApIHRocm93IG5ldyBFcnJvcihcIk5vbi16ZXJvIGNhcnJ5XCIpO1xuXG4gICAgICBsZW5ndGggPSBpO1xuICAgICAgcGJlZ2luKys7XG4gICAgfVxuICAgIC8vIFNraXAgbGVhZGluZyB6ZXJvZXMgaW4gYmFzZTU4IHJlc3VsdC5cbiAgICBsZXQgaXQyID0gc2l6ZSAtIGxlbmd0aDtcbiAgICB3aGlsZSAoaXQyICE9PSBzaXplICYmIGI1OFtpdDJdID09PSAwKSBpdDIrKztcblxuICAgIC8vIFRyYW5zbGF0ZSB0aGUgcmVzdWx0IGludG8gYSBzdHJpbmcuXG4gICAgbGV0IHN0ciA9IHRoaXMubGVhZGVyLnJlcGVhdCh6ZXJvZXMpO1xuICAgIGZvciAoOyBpdDIgPCBzaXplOyArK2l0Mikge1xuICAgICAgc3RyICs9IHRoaXMuYWxwaGFiZXQuY2hhckF0KGI1OFtpdDJdKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIHByaXZhdGUgZGVjb2RlVW5zYWZlKHNvdXJjZTogc3RyaW5nKTogVWludDhBcnJheSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHNvdXJjZS5sZW5ndGggPT09IDApIHJldHVybiBuZXcgVWludDhBcnJheSgwKTtcblxuICAgIGxldCBwc3ogPSAwO1xuICAgIC8vIFNraXAgYW5kIGNvdW50IGxlYWRpbmcgJzEncy5cbiAgICBsZXQgemVyb2VzID0gMDtcbiAgICBsZXQgbGVuZ3RoID0gMDtcbiAgICB3aGlsZSAoc291cmNlW3Bzel0gPT09IHRoaXMubGVhZGVyKSB7XG4gICAgICB6ZXJvZXMrKztcbiAgICAgIHBzeisrO1xuICAgIH1cbiAgICAvLyBBbGxvY2F0ZSBlbm91Z2ggc3BhY2UgaW4gYmlnLWVuZGlhbiBiYXNlMjU2IHJlcHJlc2VudGF0aW9uLlxuICAgIGNvbnN0IHNpemUgPSAoKHNvdXJjZS5sZW5ndGggLSBwc3opICogdGhpcy5mYWN0b3IgKyAxKSA+Pj4gMDsgLy8gbG9nKDU4KSAvIGxvZygyNTYpLCByb3VuZGVkIHVwLlxuICAgIGNvbnN0IGIyNTYgPSBuZXcgVWludDhBcnJheShzaXplKTtcbiAgICAvLyBQcm9jZXNzIHRoZSBjaGFyYWN0ZXJzLlxuICAgIHdoaWxlIChzb3VyY2VbcHN6XSkge1xuICAgICAgLy8gRGVjb2RlIGNoYXJhY3RlclxuICAgICAgbGV0IGNhcnJ5ID0gdGhpcy5iYXNlTWFwW3NvdXJjZS5jaGFyQ29kZUF0KHBzeildO1xuICAgICAgLy8gSW52YWxpZCBjaGFyYWN0ZXJcbiAgICAgIGlmIChjYXJyeSA9PT0gMjU1KSByZXR1cm47XG5cbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGZvciAoXG4gICAgICAgIGxldCBpdDMgPSBzaXplIC0gMTtcbiAgICAgICAgKGNhcnJ5ICE9PSAwIHx8IGkgPCBsZW5ndGgpICYmIGl0MyAhPT0gLTE7XG4gICAgICAgIGl0My0tLCBpKytcbiAgICAgICkge1xuICAgICAgICBjYXJyeSArPSAodGhpcy5iYXNlICogYjI1NltpdDNdKSA+Pj4gMDtcbiAgICAgICAgYjI1NltpdDNdID0gY2FycnkgJSAyNTYgPj4+IDA7XG4gICAgICAgIGNhcnJ5ID0gKGNhcnJ5IC8gMjU2KSA+Pj4gMDtcbiAgICAgIH1cbiAgICAgIGlmIChjYXJyeSAhPT0gMCkgdGhyb3cgbmV3IEVycm9yKFwiTm9uLXplcm8gY2FycnlcIik7XG5cbiAgICAgIGxlbmd0aCA9IGk7XG4gICAgICBwc3orKztcbiAgICB9XG4gICAgLy8gU2tpcCBsZWFkaW5nIHplcm9lcyBpbiBiMjU2LlxuICAgIGxldCBpdDQgPSBzaXplIC0gbGVuZ3RoO1xuICAgIHdoaWxlIChpdDQgIT09IHNpemUgJiYgYjI1NltpdDRdID09PSAwKSBpdDQrKztcblxuICAgIGNvbnN0IHZjaCA9IG5ldyBVaW50OEFycmF5KHplcm9lcyArIChzaXplIC0gaXQ0KSk7XG4gICAgbGV0IGogPSB6ZXJvZXM7XG4gICAgd2hpbGUgKGl0NCAhPT0gc2l6ZSkgdmNoW2orK10gPSBiMjU2W2l0NCsrXTtcblxuICAgIHJldHVybiB2Y2g7XG4gIH1cblxuICBkZWNvZGUoc291cmNlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBidWZmZXIgPSB0aGlzLmRlY29kZVVuc2FmZShzb3VyY2UpO1xuICAgIGlmIChidWZmZXIpIHJldHVybiBidWZmZXI7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTm9uLWJhc2VcIiArIHRoaXMuYmFzZSArIFwiIGNoYXJhY3RlclwiKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J5cHRvVXRpbHMge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBiNThlbmNvZGVyID0gbmV3IEJhc2VFbmNvZGVyKEJBU0VfQUxQSEFCRVQuQkFTRTU4KTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgbG9nZ2VyID0gbmV3IE1pbmlMb2dnZXIoQ3J5cHRvVXRpbHMubmFtZSk7XG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7fVxuXG4gIHN0YXRpYyBmYWJyaWNJZEZyb21DZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoc3RyaW5nRm9ybWF0KFwiUGFyc2luZyBjZXJ0aWZpY2F0ZTogezB9XCIsIGNlcnRpZmljYXRlKSk7XG4gICAgY29uc3QgY2VydCA9IG5ldyB4NTA5Llg1MDlDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7XG4gICAgY29uc3QgeyBzdWJqZWN0LCBpc3N1ZXIgfSA9IGNlcnQ7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBzdHJpbmdGb3JtYXQoXG4gICAgICAgIFwiQ2VydGlmaWNhdGUgcGFyc2VkIHdpdGggc3ViamVjdCB7MH0gYW5kIGlzc3VlciB7MX1cIixcbiAgICAgICAgc3ViamVjdCxcbiAgICAgICAgaXNzdWVyXG4gICAgICApXG4gICAgKTtcbiAgICByZXR1cm4gYHg1MDk6Oi8ke3N1YmplY3QucmVwbGFjZUFsbChcIiwgXCIsIFwiL1wiKX06Oi8ke2lzc3Vlci5yZXBsYWNlQWxsKFwiLCBcIiwgXCIvXCIpfWA7XG4gIH1cblxuICBzdGF0aWMgZW5jb2RlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5iNThlbmNvZGVyLmVuY29kZShzdHIpO1xuICB9XG4gIHN0YXRpYyBkZWNvZGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlY29kZWQgPSB0aGlzLmI1OGVuY29kZXIuZGVjb2RlKHN0cik7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGRlY29kZWQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdGF0aWMgc3RyaW5nVG9BcnJheUJ1ZmZlcihzdHI6IHN0cmluZykge1xuICAgIGNvbnN0IGJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcihzdHIubGVuZ3RoKTtcbiAgICBjb25zdCBidWZWaWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcbiAgICBmb3IgKGxldCBpID0gMCwgc3RyTGVuID0gc3RyLmxlbmd0aDsgaSA8IHN0ckxlbjsgaSsrKSB7XG4gICAgICBidWZWaWV3W2ldID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBidWY7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhc3luYyBleHRyYWN0S2V5KFxuICAgIHR5cGU6IFwicHJpdmF0ZVwiIHwgXCJwdWJsaWNcIixcbiAgICBwZW06IEJ1ZmZlciB8IHN0cmluZyxcbiAgICB1c2FnZXM/OiBhbnlbXVxuICApIHtcbiAgICBjb25zdCBzdWJ0bGUgPSBjcnlwdG8uc3VidGxlO1xuXG4gICAgY29uc3Qgc3RyID0gcGVtXG4gICAgICAudG9TdHJpbmcoXCJ1dGY4XCIpXG4gICAgICAucmVwbGFjZShcbiAgICAgICAgbmV3IFJlZ0V4cChgLS0tLS1CRUdJTiAoJHt0eXBlLnRvVXBwZXJDYXNlKCl9IEtFWXxDRVJUSUZJQ0FURSktLS0tLWApLFxuICAgICAgICBcIlwiXG4gICAgICApXG4gICAgICAucmVwbGFjZUFsbChcIlxcblwiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXG4gICAgICAgIG5ldyBSZWdFeHAoYC0tLS0tRU5EICgke3R5cGUudG9VcHBlckNhc2UoKX0gS0VZfENFUlRJRklDQVRFKS0tLS0tYCksXG4gICAgICAgIFwiXCJcbiAgICAgICk7XG4gICAgY29uc3QgZGVjb2RlZCA9IEJ1ZmZlci5mcm9tKHN0ciwgXCJiYXNlNjRcIikudG9TdHJpbmcoXCJiaW5hcnlcIik7XG4gICAgY29uc3QgYmluYXJ5RGVyID0gdGhpcy5zdHJpbmdUb0FycmF5QnVmZmVyKGRlY29kZWQpO1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHN1YnRsZS5pbXBvcnRLZXkoXG4gICAgICBcInBrY3M4XCIsXG4gICAgICBiaW5hcnlEZXIsXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiRUNEU0FcIixcbiAgICAgICAgbmFtZWRDdXJ2ZTogXCJQLTI1NlwiLFxuICAgICAgfSxcbiAgICAgIHRydWUsXG4gICAgICB1c2FnZXMgPyB1c2FnZXMgOiBbXCJzaWduXCJdXG4gICAgKTtcblxuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZXh0cmFjdFByaXZhdGVLZXkocGVtOiBCdWZmZXIgfCBzdHJpbmcsIHVzYWdlcz86IGFueVtdKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0cmFjdEtleShcInByaXZhdGVcIiwgcGVtLCB1c2FnZXMpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGV4dHJhY3RQdWJsaWNLZXkocGVtOiBCdWZmZXIgfCBzdHJpbmcsIHVzYWdlcz86IGFueVtdKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0cmFjdEtleShcInB1YmxpY1wiLCBwZW0sIHVzYWdlcyk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgc2lnbihwcml2YXRlS2V5OiBzdHJpbmcsIGRhdGE6IEJ1ZmZlcik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5leHRyYWN0UHJpdmF0ZUtleShwcml2YXRlS2V5KTtcbiAgICBjb25zdCBidWZmID0gKGF3YWl0IGNyeXB0by5zdWJ0bGUuc2lnbihcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJFQ0RTQVwiLFxuICAgICAgICBoYXNoOiBcIlNIQS0yNTZcIixcbiAgICAgIH0sXG4gICAgICBrZXksXG4gICAgICBkYXRhIGFzIGFueVxuICAgICkpIGFzIEFycmF5QnVmZmVyO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkoYnVmZikpXG4gICAgICAubWFwKChiKSA9PiBiLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCBcIjBcIikpXG4gICAgICAuam9pbihcIlwiKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyB2ZXJpZnkoXG4gICAgY2VydGlmaWNhdGU6IHN0cmluZyxcbiAgICBzaWduYXR1cmU6IEJ1ZmZlciB8IHN0cmluZyxcbiAgICBkYXRhOiBCdWZmZXIgfCBzdHJpbmdcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgY2VydCA9IG5ldyB4NTA5Llg1MDlDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgY2VydC5wdWJsaWNLZXkuZXhwb3J0KCk7XG4gICAgc2lnbmF0dXJlID0gKFxuICAgICAgdHlwZW9mIHNpZ25hdHVyZSA9PT0gXCJzdHJpbmdcIiA/IEJ1ZmZlci5mcm9tKHNpZ25hdHVyZSwgXCJoZXhcIikgOiBzaWduYXR1cmVcbiAgICApIGFzIEJ1ZmZlcjtcbiAgICBkYXRhID0gKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiID8gQnVmZmVyLmZyb20oZGF0YSkgOiBkYXRhKSBhcyBCdWZmZXI7XG4gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5KFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkVDRFNBXCIsXG4gICAgICAgIGhhc2g6IFwiU0hBLTI1NlwiLFxuICAgICAgfSxcbiAgICAgIGtleSxcbiAgICAgIHNpZ25hdHVyZSBhcyBhbnksXG4gICAgICBkYXRhIGFzIGFueVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZW5jcnlwdChjZXJ0aWZpY2F0ZTogc3RyaW5nLCBkYXRhOiBzdHJpbmcgfCBCdWZmZXIpIHtcbiAgICBjb25zdCBjZXJ0ID0gbmV3IHg1MDkuWDUwOUNlcnRpZmljYXRlKGNlcnRpZmljYXRlKTtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCBjZXJ0LnB1YmxpY0tleS5leHBvcnQoKTtcbiAgICBkYXRhID0gKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiID8gQnVmZmVyLmZyb20oZGF0YSkgOiBkYXRhKSBhcyBCdWZmZXI7XG4gICAgY29uc3QgYnVmZiA9IGF3YWl0IHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuZW5jcnlwdChcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJFQ0RTQVwiLFxuICAgICAgfSxcbiAgICAgIGtleSxcbiAgICAgIGRhdGFcbiAgICApO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkoYnVmZikpXG4gICAgICAubWFwKChiKSA9PiBiLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCBcIjBcIikpXG4gICAgICAuam9pbihcIlwiKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFN1YnRsZUNyeXB0bygpIHtcbiAgICByZXR1cm4gaXNCcm93c2VyKClcbiAgICAgID8gKGdsb2JhbFRoaXMgYXMgYW55KS53aW5kb3cuY3J5cHRvLnN1YnRsZVxuICAgICAgOiBjcnlwdG8uc3VidGxlO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGRlY3J5cHQocHJpdmF0ZUtleTogc3RyaW5nLCBkYXRhOiBzdHJpbmcgfCBCdWZmZXIpIHtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmV4dHJhY3RQcml2YXRlS2V5KHByaXZhdGVLZXkpO1xuICAgIGRhdGEgPSAoXG4gICAgICB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEJ1ZmZlci5mcm9tKGRhdGEsIFwiaGV4XCIpIDogZGF0YVxuICAgICkgYXMgQnVmZmVyO1xuICAgIHJldHVybiB0aGlzLmdldFN1YnRsZUNyeXB0bygpLmRlY3J5cHQoXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiRUNEU0FcIixcbiAgICAgIH0sXG4gICAgICBrZXksXG4gICAgICBkYXRhXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBVdGlsIGZ1bmN0aW9uIHRvIGdldCBhIHJhbmRvbSBtYXN0ZXIga2V5XG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBJZiBkYXRhIGlzIG5vdCBwYXNzZWQsIGEgcmFuZG9tIEFycmF5QnVmZmVyIHdpbGwgYmUgZ2VuZXJhdGVkXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGRhdGEgZW5jcnl0aW9uIGRhdGFcbiAgICpcbiAgICogQGZ1bmN0aW9uIGdldE1hc3RlclxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGdldE1hc3RlcihkYXRhPzogQXJyYXlCdWZmZXIpOiBQcm9taXNlPGtleU9iamVjdD4ge1xuICAgIGNvbnN0IHRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZ2VuR2VuZXNpcyA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgICBkYXRhID0gdGV4dEVuY29kZXIuZW5jb2RlKGdlbkdlbmVzaXMpLmJ1ZmZlcjtcbiAgICB9XG5cbiAgICBjb25zdCBpbXBvcnRlZEtleSA9IGF3YWl0IHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuaW1wb3J0S2V5KFxuICAgICAgXCJyYXdcIixcbiAgICAgIGRhdGEsXG4gICAgICBDUllQVE8uS0VZX0FMR09SWVRITSBhcyBzdHJpbmcsXG4gICAgICBmYWxzZSxcbiAgICAgIFtcImRlcml2ZUJpdHNcIl1cbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogaW1wb3J0ZWRLZXksXG4gICAgICBpdjogZGF0YSEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBVdGlsIGZ1bmN0aW9uIHRvIGRlcml2ZSBhIGtleSBmcm9tIGFub3RoZXIga2V5XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzYWx0XG4gICAqIEBwYXJhbSB7Q3J5cHRvS2V5fSBrZXkgT3JpZ2luYWwga2V5XG4gICAqXG4gICAqIEBmdW5jdGlvbiBnZXREZXJpdmF0aW9uS2V5XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZ2V0RGVyaXZhdGlvbktleShzYWx0OiBzdHJpbmcsIGtleTogQ3J5cHRvS2V5KSB7XG4gICAgY29uc3QgdGV4dEVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbiAgICBjb25zdCBzYWx0QnVmZmVyID0gdGV4dEVuY29kZXIuZW5jb2RlKHNhbHQpO1xuICAgIGNvbnN0IHNhbHRIYXNoZWQgPSBhd2FpdCB0aGlzLmdldFN1YnRsZUNyeXB0bygpLmRpZ2VzdChcbiAgICAgIFwiU0hBLTI1NlwiLFxuICAgICAgc2FsdEJ1ZmZlclxuICAgICk7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgbmFtZTogQ1JZUFRPLktFWV9BTEdPUllUSE0gYXMgc3RyaW5nLFxuICAgICAgaGFzaDogQ1JZUFRPLkhBU0gsXG4gICAgICBzYWx0OiBzYWx0SGFzaGVkLFxuICAgICAgaXRlcmF0aW9uczogQ1JZUFRPLklURVJBVElPTlMsXG4gICAgfTtcbiAgICBjb25zdCBkZXJpdmF0aW9uID0gYXdhaXQgdGhpcy5nZXRTdWJ0bGVDcnlwdG8oKS5kZXJpdmVCaXRzKFxuICAgICAgcGFyYW1zLFxuICAgICAga2V5LFxuICAgICAgQ1JZUFRPLktFWUxFTkdUSCAqIDhcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmdldEtleShkZXJpdmF0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBVdGlsIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5IGFuZCBJViBmcm9tIHRoZSBDcnl0b0tleSBhcnJheVxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBkZXJpdmF0aW9uXG4gICAqXG4gICAqIEBmdW5jdGlvbiBnZXRLZXlcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRLZXkoZGVyaXZhdGlvbjogQXJyYXlCdWZmZXIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY29uc3QgaXZsZW4gPSAxNjtcbiAgICBjb25zdCBrZXlsZW4gPSAzMjtcbiAgICBjb25zdCBkZXJpdmVkS2V5ID0gZGVyaXZhdGlvbi5zbGljZSgwLCBrZXlsZW4pO1xuICAgIGNvbnN0IGl2ID0gZGVyaXZhdGlvbi5zbGljZShrZXlsZW4pO1xuICAgIGNvbnN0IGltcG9ydGVkRW5jcnlwdGlvbktleSA9IGF3YWl0IHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuaW1wb3J0S2V5KFxuICAgICAgXCJyYXdcIixcbiAgICAgIGRlcml2ZWRLZXksXG4gICAgICB7IG5hbWU6IENSWVBUTy5BTEdPUllUSE0gYXMgc3RyaW5nIH0sXG4gICAgICBmYWxzZSxcbiAgICAgIFtcImVuY3J5cHRcIiwgXCJkZWNyeXB0XCJdXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiBpbXBvcnRlZEVuY3J5cHRpb25LZXksXG4gICAgICBpdjogaXYsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBVdGlsIGZ1bmN0aW9uIHRvIGRlY3J5cHQgZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dFxuICAgKiBAcGFyYW0ge2tleU9iamVjdH0ga2V5T2JqZWN0XG4gICAqXG4gICAqIEBmdW5jdGlvbiBlbmNyeXB0XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZW5jcnlwdFBpbihcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAga2V5T2JqZWN0OiBrZXlPYmplY3RcbiAgKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj4ge1xuICAgIGNvbnN0IHRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgY29uc3QgdGV4dEJ1ZmZlciA9IHRleHRFbmNvZGVyLmVuY29kZSh0ZXh0KTtcbiAgICBjb25zdCBlbmNyeXB0ZWRUZXh0ID0gYXdhaXQgdGhpcy5nZXRTdWJ0bGVDcnlwdG8oKS5lbmNyeXB0KFxuICAgICAgeyBuYW1lOiBDUllQVE8uQUxHT1JZVEhNIGFzIHN0cmluZywgaXY6IGtleU9iamVjdC5pdiB9LFxuICAgICAga2V5T2JqZWN0LmtleSxcbiAgICAgIHRleHRCdWZmZXJcbiAgICApO1xuICAgIHJldHVybiBlbmNyeXB0ZWRUZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFV0aWwgZnVuY3Rpb24gdG8gZGVjcnlwdCBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7QnVmZmVyU291cmNlfSBlbmNyeXB0ZWRUZXh0XG4gICAqIEBwYXJhbSB7a2V5T2JqZWN0fSBrZXlPYmplY3RcbiAgICpcbiAgICogQGZ1bmN0aW9uIGRlY3J5cHRcbiAgICovXG4gIHN0YXRpYyBhc3luYyBkZWNyeXB0UGluKFxuICAgIGVuY3J5cHRlZFRleHQ6IEFycmF5QnVmZmVyLFxuICAgIGtleU9iamVjdDoga2V5T2JqZWN0XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgdGV4dERlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKTtcbiAgICBjb25zdCBkZWNyeXB0ZWRUZXh0ID0gYXdhaXQgdGhpcy5nZXRTdWJ0bGVDcnlwdG8oKS5kZWNyeXB0KFxuICAgICAgeyBuYW1lOiBDUllQVE8uQUxHT1JZVEhNIGFzIHN0cmluZywgaXY6IGtleU9iamVjdC5pdiB9LFxuICAgICAga2V5T2JqZWN0LmtleSxcbiAgICAgIGVuY3J5cHRlZFRleHRcbiAgICApO1xuICAgIHJldHVybiB0ZXh0RGVjb2Rlci5kZWNvZGUoZGVjcnlwdGVkVGV4dCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -360,4 +360,4 @@ class FabricERC20ClientRepository extends FabricClientRepository_1.FabricClientR
|
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
362
|
exports.FabricERC20ClientRepository = FabricERC20ClientRepository;
|
|
363
|
-
//# sourceMappingURL=FabricERC20ClientRepository.js.map
|
|
363
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9lcmMyMC9GYWJyaWNFUkMyMENsaWVudFJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNEVBQW1FO0FBQ25FLCtEQUF1RTtBQUN2RSx5RUFBbUU7QUFFbkUsMEVBQWlFO0FBQ2pFLHlDQU93QjtBQUN4QiwyREFJaUM7QUFFakM7OztHQUdHO0FBQ0gsTUFBYSwyQkFFWCxTQUFRLCtDQUFzQzthQUMvQixlQUFVLEdBQUcsSUFBSSxtQ0FBZ0IsRUFBRSxBQUF6QixDQUEwQjthQUtwQyxZQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEFBQTFCLENBQTJCO0lBRWpEOzs7Ozs7Ozs7T0FTRztJQUNNLEtBQUssQ0FBQyxlQUFlLENBQzVCLEtBQThCLEVBQzlCLEtBQXFELEVBQ3JELEVBQVksRUFDWixHQUFHLElBQWtDO1FBRXJDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUN2QixNQUFNLElBQUksNkJBQWEsQ0FDckIsb0VBQW9FLENBQ3JFLENBQUM7UUFDSixNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRSxHQUFHLENBQUMsT0FBTyxDQUNULFlBQVksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLElBQUksRUFBRSxDQUNqRSxDQUFDO1FBRUYsS0FBSyxHQUFHLENBQ04sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyw0QkFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNuQyxDQUFDO1FBQ3BCLElBQUksUUFBdUMsQ0FBQztRQUU1QyxJQUFJLEVBQUUsS0FBSyxTQUFTLEVB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Q0FDdEIsQ0FBQztRQUNGLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FDNUQsR0FBRyxFQUNILGlCQUFpQixDQUNsQixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O0FBNWVILGtFQTZlQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhYnJpY0NsaWVudFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vRmFicmljQ2xpZW50UmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgRVJDMjBUb2tlbiwgRVJDMjBXYWxsZXQgfSBmcm9tIFwiLi4vLi4vY29udHJhY3RzL2VyYzIwL21vZGVsc1wiO1xuaW1wb3J0IHsgTW9kZWwsIFNlcmlhbGl6ZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRBZGFwdGVyIH0gZnJvbSBcIi4uL0ZhYnJpY0NsaWVudEFkYXB0ZXJcIjtcbmltcG9ydCB7IENsaWVudFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL0NsaWVudFNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7XG4gIENvbnRleHQsXG4gIENvbnRleHRPZixcbiAgQ29udGV4dHVhbEFyZ3MsXG4gIEV2ZW50SWRzLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIFNlcXVlbmNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyxcbiAgSW50ZXJuYWxFcnJvcixcbiAgT3BlcmF0aW9uS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuLyoqXG4gKiBSZXBvc2l0b3J5IGZvciBpbnRlcmFjdGluZyB3aXRoIEVSQzIwIGNvbnRyYWN0cyBvbiBhIEh5cGVybGVkZ2VyIEZhYnJpYyBuZXR3b3JrLlxuICogRXh0ZW5kcyB0aGUgYmFzZSBGYWJyaWNDbGllbnRSZXBvc2l0b3J5IGNsYXNzIGFuZCB1dGlsaXplcyB0aGUgQ2xpZW50U2VyaWFsaXplciBmb3IgZGF0YSBzZXJpYWxpemF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5PFxuICBBIGV4dGVuZHMgRmFicmljQ2xpZW50QWRhcHRlcixcbj4gZXh0ZW5kcyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5PEVSQzIwV2FsbGV0LCBBPiB7XG4gIHByaXZhdGUgc3RhdGljIHNlcmlhbGl6ZXIgPSBuZXcgQ2xpZW50U2VyaWFsaXplcigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzZXJpYWxpemVyOiBTZXJpYWxpemVyPGFueT4gPVxuICAgIEZhYnJpY0VSQzIwQ2xpZW50UmVwb3NpdG9yeS5zZXJpYWxpemVyO1xuXG4gIHByaXZhdGUgc3RhdGljIGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoXCJ1dGY4XCIpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTm90aWZpZXMgYWxsIG9ic2VydmVycyBvZiBhbiBldmVudC5cbiAgICogQHN1bW1hcnkgVXBkYXRlcyBhbGwgcmVnaXN0ZXJlZCBvYnNlcnZlcnMgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBhIGRhdGFiYXNlIGV2ZW50LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGUgLSBUaGUgdGFibGUgbmFtZSB3aGVyZSB0aGUgZXZlbnQgb2NjdXJyZWQuXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5c3xCdWxrQ3J1ZE9wZXJhdGlvbktleXN8c3RyaW5nfSBldmVudCAtIFRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgb2NjdXJyZWQuXG4gICAqIEBwYXJhbSB7RXZlbnRJZHN9IGlkIC0gVGhlIElEIG9yIElEcyBvZiB0aGUgYWZmZWN0ZWQgcmVjb3Jkcy5cbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBvYnNlcnZlcnMgaGF2ZSBiZWVuIG5vdGlmaWVkLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBJZiB0aGUgb2JzZXJ2ZXIgaGFuZGxlciBpcyBub3QgaW5pdGlhbGl6ZWQuXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyB1cGRhdGVPYnNlcnZlcnM8TSBleHRlbmRzIE1vZGVsPihcbiAgICB0YWJsZTogQ29uc3RydWN0b3I8TT4gfCBzdHJpbmcsXG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gICAgaWQ6IEV2ZW50SWRzLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLm9ic2VydmVySGFuZGxlcilcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIk9ic2VydmVySGFuZGxlciBub3QgaW5pdGlhbGl6ZWQuIERpZCB5b3UgcmVnaXN0ZXIgYW55IG9ic2VydmFibGVzP1wiXG4gICAgICApO1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZU9ic2VydmVycyk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgVXBkYXRpbmcgJHt0aGlzLm9ic2VydmVySGFuZGxlci5jb3VudCgpfSBvYnNlcnZlcnMgZm9yICR7dGhpc31gXG4gICAgKTtcblxuICAgIHRhYmxlID0gKFxuICAgICAgdHlwZW9mIHRhYmxlID09PSBcInN0cmluZ1wiID8gTW9kZWwuZ2V0KHRhYmxlKSA6IHRhYmxlXG4gICAgKSBhcyBDb25zdHJ1Y3RvcjxNPjtcbiAgICBsZXQgcGFyc2VkSWQ6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcnNlZElkID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpZCkpIHtcbiAgICAgIHBhcnNlZElkID0gaWQubWFwKFxuICAgICAgICAoaSkgPT4gU2VxdWVuY2UucGFyc2VWYWx1ZShNb2RlbC5zZXF1ZW5jZUZvcih0YWJsZSkudHlwZSwgaSkgYXMgc3RyaW5nXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZWRJZCA9IFNlcXVlbmNlLnBhcnNlVmFsdWUoXG4gICAgICAgIE1vZGVsLnNlcXVlbmNlRm9yKHRhYmxlKS50eXBlLFxuICAgICAgICBpZFxuICAgICAgKSBhcyBzdHJpbmc7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMub2JzZXJ2ZXJIYW5kbGVyLnVwZGF0ZU9ic2VydmVycyhcbiAgICAgIHRhYmxlLFxuICAgICAgZXZlbnQsXG4gICAgICBwYXJzZWRJZCEsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIGEgVWludDhBcnJheSBpbnRvIGEgc3RyaW5nIHVzaW5nIHRoZSBUZXh0RGVjb2Rlci5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgVWludDhBcnJheSB0byBkZWNvZGUuXG4gICAqIEByZXR1cm5zIFRoZSBkZWNvZGVkIHN0cmluZy5cbiAgICovXG4gIGRlY29kZShkYXRhOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5LmRlY29kZXIuZGVjb2RlKGRhdGEpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYWRhcHRlcj86IEEpIHtcbiAgICBzdXBlcihhZGFwdGVyLCBFUkMyMFdhbGxldCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBuYW1lIG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgbmFtZSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqIEl0IGNhbGxzIHRoZSBcIlRva2VuTmFtZVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCBhbmQgZGVjb2RlcyB0aGUgcmV0dXJuZWQgZGF0YS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgbmFtZSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyB0b2tlbk5hbWUoLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ0b2tlbk5hbWVcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMudG9rZW5OYW1lXG4gICAgKTtcbiAgICBjb25zdCBuYW1lID0gYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oY3R4LCBcIlRva2VuTmFtZVwiKTtcbiAgICByZXR1cm4gdGhpcy5kZWNvZGUobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBzeW1ib2wgb2YgdGhlIEVSQzIwIHRva2VuLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gZmV0Y2ggdGhlIHN5bWJvbCBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqIEl0IGNhbGxzIHRoZSBcIlN5bWJvbFwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCBhbmQgZGVjb2RlcyB0aGUgcmV0dXJuZWQgZGF0YS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgc3ltYm9sIG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICovXG4gIGFzeW5jIHN5bWJvbCguLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+Pik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInN5bWJvbFwiLCB0cnVlKSkuZm9yKHRoaXMuc3ltYm9sKTtcbiAgICBjb25zdCBzeW1ib2wgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIFwiU3ltYm9sXCIpO1xuICAgIHJldHVybiB0aGlzLmRlY29kZShzeW1ib2wpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGZvciB0aGUgRVJDMjAgdG9rZW4uXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGZvciB0aGUgRVJDMjAgdG9rZW4uXG4gICAqIEl0IGNhbGxzIHRoZSBcIkRlY2ltYWxzXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IGFuZCBkZWNvZGVzIHRoZSByZXR1cm5lZCBkYXRhLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgZm9yIHRoZSBFUkMyMCB0b2tlbi5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICovXG4gIGFzeW5jIGRlY2ltYWxzKC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB7IGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZGVjaW1hbHNcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuZGVjaW1hbHNcbiAgICApO1xuICAgIGNvbnN0IGRlY2ltYWxzID0gYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oY3R4LCBcIkRlY2ltYWxzXCIpO1xuICAgIHJldHVybiBOdW1iZXIodGhpcy5kZWNvZGUoZGVjaW1hbHMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHRvdGFsIHN1cHBseSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgdG90YWwgc3VwcGx5IG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICogSXQgY2FsbHMgdGhlIFwiVG90YWxTdXBwbHlcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3QgYW5kIGRlY29kZXMgdGhlIHJldHVybmVkIGRhdGEuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPG51bWJlcj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHRvdGFsIHN1cHBseSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyB0b3RhbFN1cHBseShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ0b3RhbFN1cHBseVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy50b3RhbFN1cHBseVxuICAgICk7XG4gICAgY29uc3QgdG90YWwgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIFwiVG90YWxTdXBwbHlcIik7XG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmRlY29kZSh0b3RhbCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgYmFsYW5jZSBvZiB0aGUgRVJDMjAgdG9rZW4gZm9yIGEgc3BlY2lmaWVkIG93bmVyLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBiYWxhbmNlIG9mIHRoZSBFUkMyMCB0b2tlbiBmb3IgYSBnaXZlbiBvd25lci5cbiAgICogSXQgY2FsbHMgdGhlIFwiQmFsYW5jZU9mXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIHByb3ZpZGVkIG93bmVyJ3MgYWRkcmVzcyBhcyBhIHBhcmFtZXRlci5cbiAgICogVGhlIHJldHVybmVkIGRhdGEgaXMgdGhlbiBkZWNvZGVkIGFuZCBjb252ZXJ0ZWQgdG8gYSBudW1iZXIuXG4gICAqXG4gICAqIEBwYXJhbSBvd25lciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBFUkMyMCB0b2tlbiBvd25lci5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgYmFsYW5jZSBvZiB0aGUgRVJDMjAgdG9rZW4gZm9yIHRoZSBzcGVjaWZpZWQgb3duZXIuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyBiYWxhbmNlT2YoXG4gICAgb3duZXI6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJiYWxhbmNlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmJhbGFuY2VPZlxuICAgICk7XG4gICAgY29uc3QgYmFsYW5jZSA9IGF3YWl0IHRoaXMuYWRhcHRlci5ldmFsdWF0ZVRyYW5zYWN0aW9uKGN0eCwgXCJCYWxhbmNlT2ZcIiwgW1xuICAgICAgb3duZXIsXG4gICAgXSk7XG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmRlY29kZShiYWxhbmNlKSk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmZXJzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gYSByZWNpcGllbnQuXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gdHJhbnNmZXIgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byBhIHJlY2lwaWVudC5cbiAgICogSXQgY2FsbHMgdGhlIFwiVHJhbnNmZXJcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3Qgd2l0aCB0aGUgcmVjaXBpZW50J3MgYWRkcmVzcyBhbmQgdGhlIHRyYW5zZmVyIGFtb3VudCBhcyBwYXJhbWV0ZXJzLlxuICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNoZWNrZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bC5cbiAgICpcbiAgICogQHBhcmFtIHRvIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHJlY2lwaWVudC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gdHJhbnNmZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGB0cnVlYCBpZiB0aGUgdHJhbnNmZXIgd2FzIHN1Y2Nlc3NmdWwsIGFuZCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICovXG4gIGFzeW5jIHRyYW5zZmVyKFxuICAgIHRvOiBzdHJpbmcsXG4gICAgdmFsdWU6IG51bWJlcixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidHJhbnNmZXJcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMudHJhbnNmZXJcbiAgICApO1xuICAgIGNvbnN0IHRyYW5zZmVycmVkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnN1Ym1pdFRyYW5zYWN0aW9uKGN0eCwgXCJUcmFuc2ZlclwiLCBbXG4gICAgICB0byxcbiAgICAgIHZhbHVlLnRvU3RyaW5nKCksXG4gICAgXSk7XG4gICAgcmV0dXJuIHRoaXMuZGVjb2RlKHRyYW5zZmVycmVkKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmZXJzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgZnJvbSBvbmUgYWNjb3VudCB0byBhbm90aGVyLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIHRyYW5zZmVyIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgZnJvbSBvbmUgYWNjb3VudCB0byBhbm90aGVyLlxuICAgKiBGb3IgdGhpcyB0cmFuc2ZlciB0byB3b3JrIHRoZSBzcGVuZGVyICggYWNjb3VudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGlzIGZ1bmN0aW9uICkgbmVlZCB0byBoYXZlIHRoZSB2YWx1ZSBhcHByb3ZlZCBhcyBhbiBhbGxvd2FuY2UgYnkgdGhlIHNlbmRlci5cbiAgICogSXQgY2FsbHMgdGhlIFwiVHJhbnNmZXJGcm9tXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIHNlbmRlcidzIGFkZHJlc3MsIHJlY2lwaWVudCdzIGFkZHJlc3MsIGFuZCB0aGUgdHJhbnNmZXIgYW1vdW50IGFzIHBhcmFtZXRlcnMuXG4gICAqIFRoZSByZXR1cm5lZCBkYXRhIGlzIHRoZW4gZGVjb2RlZCBhbmQgY2hlY2tlZCB0byBkZXRlcm1pbmUgaWYgdGhlIHRyYW5zZmVyIHdhcyBzdWNjZXNzZnVsLlxuICAgKlxuICAgKiBAcGFyYW0gZnJvbSAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzZW5kZXIuXG4gICAqIEBwYXJhbSB0byAtIFRoZSBhZGRyZXNzIG9mIHRoZSByZWNpcGllbnQuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIHRyYW5zZmVyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBgdHJ1ZWAgaWYgdGhlIHRyYW5zZmVyIHdhcyBzdWNjZXNzZnVsLCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyB0cmFuc2ZlckZyb20oXG4gICAgZnJvbTogc3RyaW5nLFxuICAgIHRvOiBzdHJpbmcsXG4gICAgdmFsdWU6IG51bWJlclxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIFwidHJhbnNmZXJGcm9tXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLnRyYW5zZmVyRnJvbSk7XG4gICAgY29uc3QgdHJhbnNmZXJyZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oXG4gICAgICBjdHgsXG4gICAgICBcIlRyYW5zZmVyRnJvbVwiLFxuICAgICAgW2Zyb20sIHRvLCB2YWx1ZS50b1N0cmluZygpXVxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5kZWNvZGUodHJhbnNmZXJyZWQpID09PSBcInRydWVcIiA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHByb3ZlcyBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIGJlIHNwZW50IGJ5IGEgc3BlY2lmaWVkIHNwZW5kZXIuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBhcHByb3ZlIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gYmUgc3BlbnQgYnkgYSBzcGVjaWZpZWQgc3BlbmRlci5cbiAgICogSXQgY2FsbHMgdGhlIFwiQXBwcm92ZVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCB3aXRoIHRoZSBzcGVuZGVyJ3MgYWRkcmVzcyBhbmQgdGhlIGFwcHJvdmFsIGFtb3VudCBhcyBwYXJhbWV0ZXJzLlxuICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNoZWNrZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBhcHByb3ZhbCB3YXMgc3VjY2Vzc2Z1bC5cbiAgICpcbiAgICogQHBhcmFtIHNwZW5kZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgc3BlbmRlci5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gYXBwcm92ZSBmb3IgdGhlIHNwZW5kZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGB0cnVlYCBpZiB0aGUgYXBwcm92YWwgd2FzIHN1Y2Nlc3NmdWwsIGFuZCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICovXG4gIGFzeW5jIGFwcHJvdmUoc3BlbmRlcjogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBcImFwcHJvdmVcIixcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBbXSxcbiAgICAgIHRoaXMuYWRhcHRlcixcbiAgICAgIHRoaXMuX292ZXJyaWRlcyB8fCB7fVxuICAgICk7XG4gICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KGNvbnRleHRBcmdzLmFyZ3MsIHRoaXMuYXBwcm92ZSk7XG4gICAgY29uc3QgYXBwcm92ZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBcIkFwcHJvdmVcIiwgW1xuICAgICAgc3BlbmRlcixcbiAgICAgIHZhbHVlLnRvU3RyaW5nKCksXG4gICAgXSk7XG4gICAgcmV0dXJuIHRoaXMuZGVjb2RlKGFwcHJvdmVkKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBhbGxvd2FuY2Ugb2YgRVJDMjAgdG9rZW5zIHRoYXQgdGhlIHNwZWNpZmllZCBvd25lciBoYXMgYXBwcm92ZWQgZm9yIGEgc3BlbmRlci5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgYWxsb3dhbmNlIG9mIEVSQzIwIHRva2VucyB0aGF0IHRoZSBzcGVjaWZpZWQgb3duZXIgaGFzIGFwcHJvdmVkIGZvciBhIHNwZW5kZXIuXG4gICAqIEl0IGNhbGxzIHRoZSBcIkFsbG93YW5jZVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCB3aXRoIHRoZSBvd25lcidzIGFkZHJlc3MgYW5kIHRoZSBzcGVuZGVyJ3MgYWRkcmVzcyBhcyBwYXJhbWV0ZXJzLlxuICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNvbnZlcnRlZCB0byBhIG51bWJlci5cbiAgICpcbiAgICogQHBhcmFtIG93bmVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIEVSQzIwIHRva2VuIG93bmVyLlxuICAgKiBAcGFyYW0gc3BlbmRlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzcGVuZGVyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBhbGxvd2FuY2Ugb2YgRVJDMjAgdG9rZW5zIHRoYXQgdGhlIHNwZWNpZmllZCBvd25lciBoYXMgYXBwcm92ZWQgZm9yIHRoZSBzcGVuZGVyLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzIG9yIHRoZSBkZWNvZGluZyBwcm9jZXNzIGZhaWxzLlxuICAgKi9cbiAgYXN5bmMgYWxsb3dhbmNlKG93bmVyOiBzdHJpbmcsIHNwZW5kZXI6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBcImFsbG93YW5jZVwiLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIFtdLFxuICAgICAgdGhpcy5hZGFwdGVyLFxuICAgICAgdGhpcy5fb3ZlcnJpZGVzIHx8IHt9XG4gICAgKTtcbiAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5sb2dDdHgoY29udGV4dEFyZ3MuYXJncywgdGhpcy5hbGxvd2FuY2UpO1xuICAgIGNvbnN0IGFsbG93YW5jZSA9IGF3YWl0IHRoaXMuYWRhcHRlci5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIFwiQWxsb3dhbmNlXCIsIFtcbiAgICAgIG93bmVyLFxuICAgICAgc3BlbmRlcixcbiAgICBdKTtcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMuZGVjb2RlKGFsbG93YW5jZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBFUkMyMCBjb250cmFjdCB3aXRoIHRoZSBwcm92aWRlZCB0b2tlbiBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBpbml0aWFsaXplIHRoZSBFUkMyMCBjb250cmFjdCB3aXRoIHRoZSBnaXZlbiB0b2tlbiBpbmZvcm1hdGlvbi5cbiAgICogSXQgY2FsbHMgdGhlIFwiSW5pdGlhbGl6ZVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCB3aXRoIHRoZSBzZXJpYWxpemVkIHRva2VuIGRhdGEgYXMgYSBwYXJhbWV0ZXIuXG4gICAqIFRoZSByZXR1cm5lZCBkYXRhIGlzIHRoZW4gZGVjb2RlZCBhbmQgY2hlY2tlZCB0byBkZXRlcm1pbmUgaWYgdGhlIGluaXRpYWxpemF0aW9uIHdhcyBzdWNjZXNzZnVsLlxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW4gLSBUaGUgRVJDMjAgdG9rZW4gaW5mb3JtYXRpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29udHJhY3Qgd2l0aC5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYHRydWVgIGlmIHRoZSBpbml0aWFsaXphdGlvbiB3YXMgc3VjY2Vzc2Z1bCwgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzIG9yIHRoZSBkZWNvZGluZyBwcm9jZXNzIGZhaWxzLlxuICAgKi9cbiAgYXN5bmMgaW5pdGlhbGl6ZSh0b2tlbjogRVJDMjBUb2tlbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgXCJpbml0aWFsaXplXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGluaXRpbGlhemVkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgXCJJbml0aWFsaXplXCIsXG4gICAgICBbRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5LnNlcmlhbGl6ZXIuc2VyaWFsaXplKHRva2VuKV1cbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuZGVjb2RlKGluaXRpbGlhemVkKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBFUkMyMCBjb250cmFjdCBoYXMgYmVlbiBpbml0aWFsaXplZC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIHZlcmlmeSBpZiB0aGUgRVJDMjAgY29udHJhY3QgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAqIEl0IGNhbGxzIHRoZSBcIkNoZWNrSW5pdGlhbGl6ZWRcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3QsIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgYW55IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBpbml0aWFsaXphdGlvbiBjaGVjayBpcyBjb21wbGV0ZWQuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMuXG4gICAqL1xuICBhc3luYyBjaGVja0luaXRpYWxpemVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgXCJjaGVja0luaXRpYWxpemVkXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmNoZWNrSW5pdGlhbGl6ZWQpO1xuICAgIGF3YWl0IHRoaXMuYWRhcHRlci5ldmFsdWF0ZVRyYW5zYWN0aW9uKGN0eCwgXCJDaGVja0luaXRpYWxpemVkXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1pbnRzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMuXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gbWludCBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zLlxuICAgKiBJdCBjYWxscyB0aGUgXCJNaW50XCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIG1pbnRpbmcgYW1vdW50IGFzIGEgcGFyYW1ldGVyLlxuICAgKiBUaGUgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGFueSB2YWx1ZSwgYnV0IGl0IHVwZGF0ZXMgdGhlIG1pbnRlcidzIG51bWJlciBvZiB0b2tlbnMuXG4gICAqXG4gICAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byBtaW50LlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWludGluZyBwcm9jZXNzIGlzIGNvbXBsZXRlZC5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscy5cbiAgICovXG4gIGFzeW5jIG1pbnQoYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIFwibWludFwiLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIFtdLFxuICAgICAgdGhpcy5hZGFwdGVyLFxuICAgICAgdGhpcy5fb3ZlcnJpZGVzIHx8IHt9XG4gICAgKTtcbiAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5sb2dDdHgoY29udGV4dEFyZ3MuYXJncywgdGhpcy5taW50KTtcbiAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBcIk1pbnRcIiwgW2Ftb3VudC50b1N0cmluZygpXSk7XG4gIH1cblxuICAvKipcbiAgICogQnVybnMgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyBmcm9tIHRoZSBtaW50ZXIncyBhY2NvdW50LlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gYnVybiBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zLlxuICAgKiBJdCBjYWxscyB0aGUgXCJCdXJuXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIGJ1cm5pbmcgYW1vdW50IGFzIGEgcGFyYW1ldGVyLlxuICAgKiBUaGUgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGFueSB2YWx1ZSwgYnV0IGl0IGRlY3JlYXNlcyB0aGUgbWludGVyJ3MgbnVtYmVyIG9mIHRva2Vucy5cbiAgICpcbiAgICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIGJ1cm4uXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBidXJuaW5nIHByb2Nlc3MgaXMgY29tcGxldGVkLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzLlxuICAgKi9cbiAgYXN5bmMgYnVybihhbW91bnQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgXCJidXJuXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmJ1cm4pO1xuICAgIGF3YWl0IHRoaXMuYWRhcHRlci5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIFwiQnVyblwiLCBbYW1vdW50LnRvU3RyaW5nKCldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdXJucyBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIGZyb20gYSBzcGVjaWZpZWQgYWNjb3VudC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGJ1cm4gYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyBmcm9tIGEgZ2l2ZW4gYWNjb3VudC5cbiAgICogSXQgY2FsbHMgdGhlIFwiQnVybkZyb21cIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3Qgd2l0aCB0aGUgYWNjb3VudCdzIGFkZHJlc3MgYW5kIHRoZSBidXJuaW5nIGFtb3VudCBhcyBwYXJhbWV0ZXJzLlxuICAgKiBUaGUgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGFueSB2YWx1ZSwgYnV0IGl0IGRlY3JlYXNlcyB0aGUgc3BlY2lmaWVkIGFjY291bnQncyBudW1iZXIgb2YgdG9rZW5zLlxuICAgKlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBhY2NvdW50IGZyb20gd2hpY2ggdG8gYnVybiB0aGUgRVJDMjAgdG9rZW5zLlxuICAgKiBAcGFyYW0gYW1vdW50IC0gVGhlIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gYnVybi5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGJ1cm5pbmcgcHJvY2VzcyBpcyBjb21wbGV0ZWQuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMuXG4gICAqL1xuICBhc3luYyBidXJuRnJvbShhY2NvdW50OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBcImJ1cm5Gcm9tXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmJ1cm5Gcm9tKTtcbiAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBcIkJ1cm5Gcm9tXCIsIFtcbiAgICAgIGFjY291bnQsXG4gICAgICBhbW91bnQudG9TdHJpbmcoKSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGJhbGFuY2Ugb2YgRVJDMjAgdG9rZW5zIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2xpZW50J3MgYWNjb3VudC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBiYWxhbmNlIG9mIEVSQzIwIHRva2VucyBhc3NvY2lhdGVkIHdpdGggdGhlIGNsaWVudCdzIGFjY291bnQuXG4gICAqIEl0IGNhbGxzIHRoZSBcIkNsaWVudEFjY291bnRCYWxhbmNlXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0LCB3aGljaCBkb2VzIG5vdCByZXF1aXJlIGFueSBwYXJhbWV0ZXJzLlxuICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNvbnZlcnRlZCB0byBhIG51bWJlci5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgYmFsYW5jZSBvZiBFUkMyMCB0b2tlbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGllbnQncyBhY2NvdW50LlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzIG9yIHRoZSBkZWNvZGluZyBwcm9jZXNzIGZhaWxzLlxuICAgKi9cbiAgYXN5bmMgY2xpZW50QWNjb3VudEJhbGFuY2UoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIFwiYWNjb3VudEJhbGFuY2VcIixcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBbXSxcbiAgICAgIHRoaXMuYWRhcHRlcixcbiAgICAgIHRoaXMuX292ZXJyaWRlcyB8fCB7fVxuICAgICk7XG4gICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KGNvbnRleHRBcmdzLmFyZ3MsIHRoaXMuY2xpZW50QWNjb3VudEJhbGFuY2UpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRBY2NvdW50QmFsYW5jZSA9IGF3YWl0IHRoaXMuYWRhcHRlci5ldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgXCJDbGllbnRBY2NvdW50QmFsYW5jZVwiXG4gICAgKTtcblxuICAgIHJldHVybiBOdW1iZXIodGhpcy5kZWNvZGUoc2VyaWFsaXplZEFjY291bnRCYWxhbmNlKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjbGllbnQncyBhY2NvdW50IElEIGZyb20gdGhlIGJsb2NrY2hhaW4gbmV0d29yay5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBjbGllbnQncyBhY2NvdW50IElELlxuICAgKiBJdCBjYWxscyB0aGUgXCJDbGllbnRBY2NvdW50SURcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3QsIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgYW55IHBhcmFtZXRlcnMuXG4gICAqIFRoZSByZXR1cm5lZCBkYXRhIGlzIHRoZW4gZGVjb2RlZCBhbmQgcmV0dXJuZWQgYXMgYSBzdHJpbmcuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGNsaWVudCdzIGFjY291bnQgSUQuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyBjbGllbnRBY2NvdW50SUQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIFwiYWNjb3VudElkXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmNsaWVudEFjY291bnRJRCk7XG4gICAgY29uc3QgY2xpZW50QWNjb3VudElEID0gYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oXG4gICAgICBjdHgsXG4gICAgICBcIkNsaWVudEFjY291bnRJRFwiXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmRlY29kZShjbGllbnRBY2NvdW50SUQpO1xuICB9XG59XG4iXX0=
|
|
@@ -15,4 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./FabricERC20ClientRepository.cjs"), exports);
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L2VyYzIwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvRUFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9GYWJyaWNFUkMyMENsaWVudFJlcG9zaXRvcnlcIjtcbiJdfQ==
|
package/lib/client/fabric-fs.cjs
CHANGED
|
@@ -231,4 +231,4 @@ async function extractPrivateKey(pem) {
|
|
|
231
231
|
throw new db_decorators_1.InternalError(e);
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
|
-
//# sourceMappingURL=fabric-fs.js.map
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmljLWZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9mYWJyaWMtZnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQkEsOENBWUM7QUFVRCw0QkFTQztBQWFELDhCQWVDO0FBV0Qsa0NBaUJDO0FBVUQsa0RBS0M7QUFVRCxnRUFPQztBQVVELDhCQXNCQztBQXVCRCw4Q0E2Q0M7QUE1T0QsK0NBQTBEO0FBQzFELGlEQUFxQztBQUNyQyxnRUFBd0U7QUFDeEUsMkRBQXdEO0FBQ3hELHlDQUFpRDtBQUVqRCxNQUFNLEdBQUcsR0FBRyxJQUFJLG9CQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFeEM7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLGFBQWtDLEVBQ2xDLFVBQW1FO0lBRW5FLElBQUksYUFBYSxZQUFZLFVBQVU7UUFBRSxPQUFPLGFBQWEsQ0FBQztJQUM5RCxJQUNFLGFBQWEsQ0FBQyxLQUFLLENBQ2pCLHNFQUFzRSxDQUN2RTtRQUVELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLE9BQU8sTUFBTSxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSSxLQUFLLFVBQVUsUUFBUSxDQUFDLGFBQThCO0lBQzNELElBQUksT0FBTyxhQUFhLEtBQUssUUFBUTtRQUFFLE9BQU8sYUFBYSxDQUFDO0lBRTVELE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQUUsRUFBRTtRQUN4QyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFBLHNCQUFlLG9EQUFRLElBQUksSUFBRSxDQUFDO1FBQ3pELE9BQU8sTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxVQUFVLENBQUMsYUFBYSxD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LENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0Jyb3dzZXIsIE1pbmlMb2dnZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IFVzZXIgfSBmcm9tIFwiZmFicmljLWNvbW1vblwiO1xuaW1wb3J0IHsgSWRlbnRpdHksIFNpZ25lciwgc2lnbmVycyB9IGZyb20gXCJAaHlwZXJsZWRnZXIvZmFicmljLWdhdGV3YXlcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUltcG9ydCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuXG5jb25zdCBsb2cgPSBuZXcgTWluaUxvZ2dlcihcImZhYnJpYy1mc1wiKTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTG9hZHMgY29udGVudCBmcm9tIGEgZmlsZSBvciByZXR1cm5zIHRoZSBjb250ZW50IGlmIGFscmVhZHkgbG9hZGVkXG4gKiBAc3VtbWFyeSBEZXRlcm1pbmVzIGlmIHRoZSBpbnB1dCBpcyBhbHJlYWR5IGNvbnRlbnQgb3IgYSBwYXRoIHRvIGEgZmlsZSwgYW5kIGxvYWRzIHRoZSBmaWxlIGlmIG5lZWRlZFxuICogQHBhcmFtIHtzdHJpbmcgfCBVaW50OEFycmF5fSBjb250ZW50T3JQYXRoIC0gVGhlIGNvbnRlbnQgb3IgcGF0aCB0byBsb2FkXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmaWxlUmVhZGVyIC0gRnVuY3Rpb24gdG8gcmVhZCB0aGUgZmlsZSBpZiBjb250ZW50T3JQYXRoIGlzIGEgcGF0aFxuICogQHJldHVybiB7UHJvbWlzZTxzdHJpbmcgfCBVaW50OEFycmF5IHwgQnVmZmVyPn0gVGhlIGNvbnRlbnRcbiAqIEBmdW5jdGlvbiBjb250ZW50T2ZMb2FkRmlsZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLmNsaWVudFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29udGVudE9mTG9hZEZpbGUoXG4gIGNvbnRlbnRPclBhdGg6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gIGZpbGVSZWFkZXI6IChwYXRoOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nIHwgVWludDhBcnJheSB8IEJ1ZmZlcj5cbikge1xuICBpZiAoY29udGVudE9yUGF0aCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHJldHVybiBjb250ZW50T3JQYXRoO1xuICBpZiAoXG4gICAgY29udGVudE9yUGF0aC5tYXRjaChcbiAgICAgIC8tLS0tLUJFR0lOIChDRVJUSUZJQ0FURXxLRVl8UFJJVkFURSBLRVkpLS0tLS0uKz8tLS0tLUVORCBcXDEtLS0tLSQvZ21zXG4gICAgKVxuICApXG4gICAgcmV0dXJuIGNvbnRlbnRPclBhdGg7XG4gIHJldHVybiBhd2FpdCBmaWxlUmVhZGVyKGNvbnRlbnRPclBhdGgpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZWFkcyBhIGZpbGUgZnJvbSB0aGUgZmlsZSBzeXN0ZW1cbiAqIEBzdW1tYXJ5IExvYWRzIGEgZmlsZSB1c2luZyB0aGUgTm9kZS5qcyBmaWxlIHN5c3RlbSBtb2R1bGVcbiAqIEBwYXJhbSB7c3RyaW5nIHwgQnVmZmVyfSBjb250ZW50T3JQYXRoIC0gVGhlIGNvbnRlbnQgb3IgcGF0aCB0byBsb2FkXG4gKiBAcmV0dXJuIHtQcm9taXNlPEJ1ZmZlcj59IFRoZSBmaWxlIGNvbnRlbnQgYXMgYSBCdWZmZXJcbiAqIEBmdW5jdGlvbiByZWFkRmlsZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLmNsaWVudFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZEZpbGUoY29udGVudE9yUGF0aDogc3RyaW5nIHwgQnVmZmVyKSB7XG4gIGlmICh0eXBlb2YgY29udGVudE9yUGF0aCAhPT0gXCJzdHJpbmdcIikgcmV0dXJuIGNvbnRlbnRPclBhdGg7XG5cbiAgY29uc3QgZmlsZVJlYWRlciA9IGFzeW5jIChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB7IHByb21pc2VzIH0gPSBhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KFwiZnNcIikpO1xuICAgIHJldHVybiBhd2FpdCBwcm9taXNlcy5yZWFkRmlsZShwYXRoKTtcbiAgfTtcblxuICByZXR1cm4gYXdhaXQgZmlsZVJlYWRlcihjb250ZW50T3JQYXRoKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIENlcnRpZmljYXRlIEF1dGhvcml0eSB1c2VyXG4gKiBAc3VtbWFyeSBJbml0aWFsaXplcyBhIHVzZXIgd2l0aCB0aGUgZ2l2ZW4gY3JlZGVudGlhbHMgZm9yIGludGVyYWN0aW5nIHdpdGggYSBGYWJyaWMgQ0FcbiAqIEBwYXJhbSB7c3RyaW5nfSB1c2VyTmFtZSAtIFRoZSB1c2VyIG5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcml2YXRlS2V5IC0gVGhlIHByaXZhdGUga2V5IGFzIGEgc3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gY2VydGlmaWNhdGUgLSBUaGUgY2VydGlmaWNhdGUgYXMgYSBzdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSBtc3BJZCAtIFRoZSBNZW1iZXJzaGlwIFNlcnZpY2UgUHJvdmlkZXIgSURcbiAqIEByZXR1cm4ge1Byb21pc2U8VXNlcj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjcmVhdGVkIHVzZXJcbiAqIEBmdW5jdGlvbiBnZXRDQVVzZXJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5jbGllbnRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENBVXNlcihcbiAgdXNlck5hbWU6IHN0cmluZyxcbiAgcHJpdmF0ZUtleTogc3RyaW5nLFxuICBjZXJ0aWZpY2F0ZTogc3RyaW5nLFxuICBtc3BJZDogc3RyaW5nXG4pOiBQcm9taXNlPFVzZXI+IHtcbiAgbG9nLmRlYnVnKFxuICAgIGBDcmVhdGluZyBhIENBICR7bXNwSWR9IHVzZXIgJHt1c2VyTmFtZX0gd2l0aCBjZXJ0aWZpY2F0ZSAke2NlcnRpZmljYXRlfWBcbiAgKTtcbiAgY29uc3QgdXNlciA9IG5ldyBVc2VyKHVzZXJOYW1lKTtcbiAgY29uc3QgY3J5cHRvU3VpdGUgPSBVc2VyLm5ld0NyeXB0b1N1aXRlKCk7XG4gIHVzZXIuc2V0Q3J5cHRvU3VpdGUoY3J5cHRvU3VpdGUpO1xuICBjb25zdCBpbXBvcnRlZEtleSA9IGNyeXB0b1N1aXRlLmNyZWF0ZUtleUZyb21SYXcocHJpdmF0ZUtleSk7XG4gIGF3YWl0IHVzZXIuc2V0RW5yb2xsbWVudChpbXBvcnRlZEtleSwgY2VydGlmaWNhdGUsIG1zcElkKTtcbiAgcmV0dXJuIHVzZXI7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdldHMgYW4gaWRlbnRpdHkgZnJvbSBhIGNlcnRpZmljYXRlIGRpcmVjdG9yeVxuICogQHN1bW1hcnkgTG9hZHMgYSBjZXJ0aWZpY2F0ZSBmcm9tIGEgZGlyZWN0b3J5IGFuZCBjcmVhdGVzIGFuIElkZW50aXR5IG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd9IG1zcElkIC0gVGhlIE1lbWJlcnNoaXAgU2VydmljZSBQcm92aWRlciBJRFxuICogQHBhcmFtIHtzdHJpbmd9IGNlcnREaXJlY3RvcnlQYXRoIC0gUGF0aCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGNlcnRpZmljYXRlXG4gKiBAcmV0dXJuIHtQcm9taXNlPElkZW50aXR5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGlkZW50aXR5XG4gKiBAZnVuY3Rpb24gZ2V0SWRlbnRpdHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5jbGllbnRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldElkZW50aXR5KFxuICBtc3BJZDogc3RyaW5nLFxuICBjZXJ0RGlyZWN0b3J5UGF0aDogc3RyaW5nXG4pOiBQcm9taXNlPElkZW50aXR5PiB7XG4gIGNvbnN0IGlkZW50aXR5RmlsZVJlYWRlciA9IGFzeW5jIChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB7IHByb21pc2VzIH0gPSBhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KFwiZnNcIikpO1xuICAgIGNvbnN0IGNlcnRQYXRoID0gYXdhaXQgZ2V0Rmlyc3REaXJGaWxlTmFtZShwYXRoKTtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IHByb21pc2VzLnJlYWRGaWxlKGNlcnRQYXRoKTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH07XG5cbiAgY29uc3QgY3JlZGVudGlhbHM6IFVpbnQ4QXJyYXkgPSAoYXdhaXQgY29udGVudE9mTG9hZEZpbGUoXG4gICAgY2VydERpcmVjdG9yeVBhdGgsXG4gICAgaWRlbnRpdHlGaWxlUmVhZGVyXG4gICkpIGFzIFVpbnQ4QXJyYXk7XG5cbiAgcmV0dXJuIHsgbXNwSWQsIGNyZWRlbnRpYWxzIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdldHMgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgZmlyc3QgZmlsZSBpbiBhIGRpcmVjdG9yeVxuICogQHN1bW1hcnkgUmVhZHMgYSBkaXJlY3RvcnkgYW5kIHJldHVybnMgdGhlIHBhdGggdG8gdGhlIGZpcnN0IGZpbGUgZm91bmRcbiAqIEBwYXJhbSB7c3RyaW5nfSBkaXJQYXRoIC0gUGF0aCB0byB0aGUgZGlyZWN0b3J5XG4gKiBAcmV0dXJuIHtQcm9taXNlPHN0cmluZz59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBmdWxsIHBhdGggb2YgdGhlIGZpcnN0IGZpbGVcbiAqIEBmdW5jdGlvbiBnZXRGaXJzdERpckZpbGVOYW1lXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWMuY2xpZW50XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGaXJzdERpckZpbGVOYW1lKGRpclBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHsgcHJvbWlzZXMgfSA9IGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQoXCJmc1wiKSk7XG4gIGNvbnN0IHsgam9pbiB9ID0gYXdhaXQgbm9ybWFsaXplSW1wb3J0KGltcG9ydChcInBhdGhcIikpO1xuICBjb25zdCBmaWxlcyA9IGF3YWl0IHByb21pc2VzLnJlYWRkaXIoZGlyUGF0aCk7XG4gIHJldHVybiBqb2luKGRpclBhdGgsIGZpbGVzWzBdKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgY29udGVudCBvZiB0aGUgZmlyc3QgZmlsZSBpbiBhIGRpcmVjdG9yeVxuICogQHN1bW1hcnkgUmVhZHMgYSBkaXJlY3RvcnksIGZpbmRzIHRoZSBmaXJzdCBmaWxlLCBhbmQgcmV0dXJucyBpdHMgY29udGVudCBhcyBhIHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IGRpclBhdGggLSBQYXRoIHRvIHRoZSBkaXJlY3RvcnlcbiAqIEByZXR1cm4ge1Byb21pc2U8c3RyaW5nPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNvbnRlbnQgb2YgdGhlIGZpcnN0IGZpbGVcbiAqIEBmdW5jdGlvbiBnZXRGaXJzdERpckZpbGVOYW1lQ29udGVudFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLmNsaWVudFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Rmlyc3REaXJGaWxlTmFtZUNvbnRlbnQoXG4gIGRpclBhdGg6IHN0cmluZ1xuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgeyBwcm9taXNlcyB9ID0gYXdhaXQgbm9ybWFsaXplSW1wb3J0KGltcG9ydChcImZzXCIpKTtcbiAgY29uc3QgeyBqb2luIH0gPSBhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KFwicGF0aFwiKSk7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgcHJvbWlzZXMucmVhZGRpcihkaXJQYXRoKTtcbiAgcmV0dXJuIChhd2FpdCBwcm9taXNlcy5yZWFkRmlsZShqb2luKGRpclBhdGgsIGZpbGVzWzBdKSkpLnRvU3RyaW5nKCk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdldHMgYSBzaWduZXIgZnJvbSBhIGtleSBkaXJlY3RvcnlcbiAqIEBzdW1tYXJ5IExvYWRzIGEgcHJpdmF0ZSBrZXkgZnJvbSBhIGRpcmVjdG9yeSBhbmQgY3JlYXRlcyBhIFNpZ25lciBmb3IgRmFicmljIHRyYW5zYWN0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IGtleURpcmVjdG9yeVBhdGggLSBQYXRoIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgcHJpdmF0ZSBrZXlcbiAqIEByZXR1cm4ge1Byb21pc2U8U2lnbmVyPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHNpZ25lclxuICogQGZ1bmN0aW9uIGdldFNpZ25lclxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLmNsaWVudFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U2lnbmVyKGtleURpcmVjdG9yeVBhdGg6IHN0cmluZyk6IFByb21pc2U8U2lnbmVyPiB7XG4gIGNvbnN0IHNpZ25lckZpbGVSZWFkZXIgPSBhc3luYyAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgeyBwcm9taXNlcyB9ID0gYXdhaXQgbm9ybWFsaXplSW1wb3J0KGltcG9ydChcImZzXCIpKTtcbiAgICBjb25zdCBrZXlQYXRoID0gYXdhaXQgZ2V0Rmlyc3REaXJGaWxlTmFtZShwYXRoKTtcbiAgICByZXR1cm4gYXdhaXQgcHJvbWlzZXMucmVhZEZpbGUoa2V5UGF0aCk7XG4gIH07XG5cbiAgY29uc3QgcHJpdmF0ZUtleVBlbSA9IChhd2FpdCBjb250ZW50T2ZMb2FkRmlsZShcbiAgICBrZXlEaXJlY3RvcnlQYXRoLFxuICAgIHNpZ25lckZpbGVSZWFkZXJcbiAgKSkgYXMgQnVmZmVyO1xuICAvLyBOb2RlIGJhc2VkIGltcGxlbWVudGF0aW9uXG4gIC8vIHByaXZhdGVLZXkgPSBjcmVhdGVQcml2YXRlS2V5KHByaXZhdGVLZXlQZW0pO1xuICAvLyAtLVxuXG4gIC8vIHdlYiBiYXNlZCBpbXBsZW1lbnRhdGlvblxuICBjb25zdCBwcml2YXRlS2V5ID0gYXdhaXQgZXh0cmFjdFByaXZhdGVLZXkocHJpdmF0ZUtleVBlbSk7XG4gIGNvbnN0IGtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHByaXZhdGVLZXkpO1xuICBjb25zdCBrID0gKHByaXZhdGVLZXkgYXMgYW55KVtrZXlzWzBdXTtcbiAgLy8gLS1cblxuICByZXR1cm4gc2lnbmVycy5uZXdQcml2YXRlS2V5U2lnbmVyKGsgYXMgYW55KTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXh0cmFjdHMgYSBwcml2YXRlIGtleSBmcm9tIGEgUEVNIGJ1ZmZlclxuICogQHN1bW1hcnkgQ29udmVydHMgYSBQRU0tZW5jb2RlZCBwcml2YXRlIGtleSB0byBhIENyeXB0b0tleSBvYmplY3RcbiAqIEBwYXJhbSB7QnVmZmVyfSBwZW0gLSBUaGUgUEVNLWVuY29kZWQgcHJpdmF0ZSBrZXlcbiAqIEByZXR1cm4ge1Byb21pc2U8Q3J5cHRvS2V5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIENyeXB0b0tleVxuICogQGZ1bmN0aW9uIGV4dHJhY3RQcml2YXRlS2V5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWMuY2xpZW50XG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBFeHRyYWN0UHJpdmF0ZUtleVxuICogICBwYXJ0aWNpcGFudCBTdWJ0bGVDcnlwdG9cbiAqXG4gKiAgIENhbGxlci0+PkV4dHJhY3RQcml2YXRlS2V5OiBleHRyYWN0UHJpdmF0ZUtleShwZW0pXG4gKiAgIEV4dHJhY3RQcml2YXRlS2V5LT4+RXh0cmFjdFByaXZhdGVLZXk6IEdldCBTdWJ0bGVDcnlwdG8gaW1wbGVtZW50YXRpb25cbiAqICAgRXh0cmFjdFByaXZhdGVLZXktPj5FeHRyYWN0UHJpdmF0ZUtleTogUGFyc2UgUEVNIGZvcm1hdFxuICogICBFeHRyYWN0UHJpdmF0ZUtleS0+PkV4dHJhY3RQcml2YXRlS2V5OiBDb252ZXJ0IHRvIGJpbmFyeSBERVJcbiAqICAgRXh0cmFjdFByaXZhdGVLZXktPj5TdWJ0bGVDcnlwdG86IGltcG9ydEtleShwa2NzOCwgYmluYXJ5RGVyLCBvcHRpb25zKVxuICogICBTdWJ0bGVDcnlwdG8tLT4+RXh0cmFjdFByaXZhdGVLZXk6IENyeXB0b0tleVxuICogICBFeHRyYWN0UHJpdmF0ZUtleS0tPj5DYWxsZXI6IENyeXB0b0tleVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXh0cmFjdFByaXZhdGVLZXkocGVtOiBCdWZmZXIpIHtcbiAgY29uc3QgbGliTmFtZSA9IFwiY3J5cHRvXCI7XG4gIGxldCBzdWJ0bGU7XG4gIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgIHN1YnRsZSA9IChnbG9iYWxUaGlzIGFzIGFueSkuY3J5cHRvLnN1YnRsZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBsaWIgPSAoYXdhaXQgbm9ybWFsaXplSW1wb3J0KGltcG9ydChsaWJOYW1lKSkpIGFzIGFueTtcbiAgICBzdWJ0bGUgPSBsaWIuc3VidGxlIHx8IGxpYi53ZWJjcnlwdG8uc3VidGxlO1xuICB9XG5cbiAgaWYgKCFzdWJ0bGUpIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBsb2FkIFN1YnRsZUNyeXB0byBtb2R1bGVcIik7XG5cbiAgZnVuY3Rpb24gc3RyMmFiKHN0cjogc3RyaW5nKSB7XG4gICAgY29uc3QgYnVmID0gbmV3IEFycmF5QnVmZmVyKHN0ci5sZW5ndGgpO1xuICAgIGNvbnN0IGJ1ZlZpZXcgPSBuZXcgVWludDhBcnJheShidWYpO1xuICAgIGZvciAobGV0IGkgPSAwLCBzdHJMZW4gPSBzdHIubGVuZ3RoOyBpIDwgc3RyTGVuOyBpKyspIHtcbiAgICAgIGJ1ZlZpZXdbaV0gPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1ZjtcbiAgfVxuXG4gIGNvbnN0IHN0ciA9IHBlbVxuICAgIC50b1N0cmluZyhcInV0ZjhcIilcbiAgICAucmVwbGFjZShcIi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVwiLCBcIlwiKVxuICAgIC5yZXBsYWNlQWxsKFwiXFxuXCIsIFwiXCIpXG4gICAgLnJlcGxhY2UoXCItLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tXCIsIFwiXCIpO1xuICBjb25zdCBkZWNvZGVkID0gQnVmZmVyLmZyb20oc3RyLCBcImJhc2U2NFwiKS50b1N0cmluZyhcImJpbmFyeVwiKTtcbiAgY29uc3QgYmluYXJ5RGVyID0gc3RyMmFiKGRlY29kZWQpO1xuXG4gIHRyeSB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgc3VidGxlLmltcG9ydEtleShcbiAgICAgIFwicGtjczhcIixcbiAgICAgIGJpbmFyeURlcixcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJFQ0RTQVwiLFxuICAgICAgICBuYW1lZEN1cnZlOiBcIlAtMjU2XCIsXG4gICAgICB9LFxuICAgICAgdHJ1ZSxcbiAgICAgIFtcInNpZ25cIl1cbiAgICApO1xuXG4gICAgcmV0dXJuIGtleTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZSk7XG4gIH1cbn1cbiJdfQ==
|