@decaf-ts/for-fabric 0.12.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/for-fabric.cjs +3797 -2
- package/dist/for-fabric.js +3901 -2
- package/lib/cjs/bin/cli.cjs +2 -2
- package/lib/cjs/cli-module.cjs +28 -3
- package/lib/cjs/cli-utils.cjs +2 -2
- package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
- package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
- package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
- package/lib/cjs/client/FabricClientRepository.cjs +2 -2
- package/lib/cjs/client/FabricClientStatement.cjs +2 -2
- package/lib/cjs/client/collections/generation.cjs +2 -2
- package/lib/cjs/client/collections/index.cjs +2 -2
- package/lib/cjs/client/constants.cjs +2 -2
- package/lib/cjs/client/crypto.cjs +2 -2
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
- package/lib/cjs/client/erc20/index.cjs +2 -2
- package/lib/cjs/client/fabric-fs.cjs +2 -2
- package/lib/cjs/client/fabric-hsm.cjs +2 -2
- package/lib/cjs/client/ids/id-extraction.cjs +2 -2
- package/lib/cjs/client/ids/index.cjs +2 -2
- package/lib/cjs/client/index.cjs +2 -2
- package/lib/cjs/client/indexes/generation.cjs +2 -2
- package/lib/cjs/client/indexes/index.cjs +2 -2
- package/lib/cjs/client/logging.cjs +2 -2
- package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
- package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
- package/lib/cjs/client/services/constants.cjs +2 -2
- package/lib/cjs/client/services/index.cjs +2 -2
- package/lib/cjs/client/types.cjs +2 -2
- package/lib/cjs/client/utils.cjs +2 -2
- package/lib/cjs/contract/Address.cjs +2 -2
- package/lib/cjs/contract/AddressContract.cjs +2 -2
- package/lib/cjs/contract/AuditContract.cjs +2 -2
- package/lib/cjs/contract/BatchContract.cjs +2 -2
- package/lib/cjs/contract/MarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
- package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
- package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/Product.cjs +2 -2
- package/lib/cjs/contract/ProductContract.cjs +2 -2
- package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
- package/lib/cjs/contract/User.cjs +2 -2
- package/lib/cjs/contract/UserContract.cjs +2 -2
- package/lib/cjs/contract/index.cjs +2 -2
- package/lib/cjs/contract/logging-context.cjs +2 -2
- package/lib/cjs/contract/models/Audit.cjs +2 -2
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseModel.cjs +2 -2
- package/lib/cjs/contract/models/Batch.cjs +2 -2
- package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
- package/lib/cjs/contract/models/History.cjs +2 -2
- package/lib/cjs/contract/models/Leaflet.cjs +2 -2
- package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/Market.cjs +2 -2
- package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
- package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
- package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/Product.cjs +2 -2
- package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
- package/lib/cjs/contract/models/constants.cjs +2 -2
- package/lib/cjs/contract/models/decorators-private.cjs +2 -2
- package/lib/cjs/contract/models/decorators.cjs +2 -2
- package/lib/cjs/contract/models/gtin.cjs +2 -2
- package/lib/cjs/contract/models/history-dec.cjs +2 -2
- package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
- package/lib/cjs/contracts/ContractContext.cjs +2 -2
- package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
- package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
- package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
- package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
- package/lib/cjs/contracts/MigrationContract.cjs +2 -2
- package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
- package/lib/cjs/contracts/auth/decorators.cjs +2 -2
- package/lib/cjs/contracts/auth/index.cjs +2 -2
- package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
- package/lib/cjs/contracts/crud/index.cjs +2 -2
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/index.cjs +2 -2
- package/lib/cjs/contracts/erc20/models.cjs +2 -2
- package/lib/cjs/contracts/index.cjs +2 -2
- package/lib/cjs/contracts/logging.cjs +2 -2
- package/lib/cjs/contracts/overrides.cjs +2 -2
- package/lib/cjs/contracts/types.cjs +2 -2
- package/lib/cjs/contracts/uuid.cjs +2 -2
- package/lib/cjs/index.cjs +2 -2
- package/lib/cjs/shared/ClientSerializer.cjs +2 -2
- package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/constants.cjs +2 -2
- package/lib/cjs/shared/decorators.cjs +2 -2
- package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
- package/lib/cjs/shared/erc20/index.cjs +2 -2
- package/lib/cjs/shared/errors.cjs +2 -2
- package/lib/cjs/shared/events.cjs +2 -2
- package/lib/cjs/shared/fabric-types.cjs +2 -2
- package/lib/cjs/shared/index.cjs +2 -2
- package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
- package/lib/cjs/shared/interfaces/index.cjs +2 -2
- package/lib/cjs/shared/math.cjs +2 -2
- package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/Identity.cjs +2 -2
- package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
- package/lib/cjs/shared/model/index.cjs +2 -2
- package/lib/cjs/shared/overrides/Model.cjs +2 -2
- package/lib/cjs/shared/overrides/index.cjs +2 -2
- package/lib/cjs/shared/overrides/overrides.cjs +2 -2
- package/lib/cjs/shared/types.cjs +2 -2
- package/lib/cjs/version.cjs +3 -3
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/cli-module.js +27 -2
- 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/OtherProductImageContract.js +1 -1
- package/lib/esm/contract/OtherProductSharedContract.js +1 -1
- package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
- package/lib/esm/contract/Product.js +1 -1
- package/lib/esm/contract/ProductContract.js +1 -1
- package/lib/esm/contract/ProductStrengthContract.js +1 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
- package/lib/esm/contract/User.js +1 -1
- package/lib/esm/contract/UserContract.js +1 -1
- package/lib/esm/contract/index.js +1 -1
- package/lib/esm/contract/logging-context.js +1 -1
- package/lib/esm/contract/models/Audit.js +1 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
- package/lib/esm/contract/models/BaseModel.js +1 -1
- package/lib/esm/contract/models/Batch.js +1 -1
- package/lib/esm/contract/models/GtinOwner.js +1 -1
- package/lib/esm/contract/models/History.js +1 -1
- package/lib/esm/contract/models/Leaflet.js +1 -1
- package/lib/esm/contract/models/LeafletFile.js +1 -1
- package/lib/esm/contract/models/Market.js +1 -1
- package/lib/esm/contract/models/OtherAudit.js +1 -1
- package/lib/esm/contract/models/OtherBatchShared.js +1 -1
- package/lib/esm/contract/models/OtherLeaflet.js +1 -1
- package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
- package/lib/esm/contract/models/OtherMarket.js +1 -1
- package/lib/esm/contract/models/OtherProduct.js +1 -1
- package/lib/esm/contract/models/OtherProductImage.js +1 -1
- package/lib/esm/contract/models/OtherProductShared.js +1 -1
- package/lib/esm/contract/models/OtherProductStrength.js +1 -1
- package/lib/esm/contract/models/Product.js +1 -1
- package/lib/esm/contract/models/ProductStrength.js +1 -1
- package/lib/esm/contract/models/SegregatedDocument.js +1 -1
- package/lib/esm/contract/models/constants.js +1 -1
- package/lib/esm/contract/models/decorators-private.js +1 -1
- package/lib/esm/contract/models/decorators.js +1 -1
- package/lib/esm/contract/models/gtin.js +1 -1
- package/lib/esm/contract/models/history-dec.js +1 -1
- package/lib/esm/contracts/ContractAdapter.js +1 -1
- package/lib/esm/contracts/ContractContext.js +1 -1
- package/lib/esm/contracts/FabricContractDispatch.js +1 -1
- package/lib/esm/contracts/FabricContractPaginator.js +1 -1
- package/lib/esm/contracts/FabricContractRepository.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractSequence.js +1 -1
- package/lib/esm/contracts/FabricContractStatement.js +1 -1
- package/lib/esm/contracts/MigrationContract.js +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.js +2 -2
- package/lib/types/version.d.cts +1 -1
- package/lib/types/version.d.mts +1 -1
- package/package.json +7 -7
- package/dist/for-fabric.cjs.map +0 -1
- package/dist/for-fabric.js.map +0 -1
- package/lib/cjs/bin/cli.cjs.map +0 -1
- package/lib/cjs/cli-module.cjs.map +0 -1
- package/lib/cjs/cli-utils.cjs.map +0 -1
- package/lib/cjs/client/FabricClientAdapter.cjs.map +0 -1
- package/lib/cjs/client/FabricClientDispatch.cjs.map +0 -1
- package/lib/cjs/client/FabricClientPaginator.cjs.map +0 -1
- package/lib/cjs/client/FabricClientRepository.cjs.map +0 -1
- package/lib/cjs/client/FabricClientStatement.cjs.map +0 -1
- package/lib/cjs/client/collections/generation.cjs.map +0 -1
- package/lib/cjs/client/collections/index.cjs.map +0 -1
- package/lib/cjs/client/constants.cjs.map +0 -1
- package/lib/cjs/client/crypto.cjs.map +0 -1
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +0 -1
- package/lib/cjs/client/erc20/index.cjs.map +0 -1
- package/lib/cjs/client/fabric-fs.cjs.map +0 -1
- package/lib/cjs/client/fabric-hsm.cjs.map +0 -1
- package/lib/cjs/client/ids/id-extraction.cjs.map +0 -1
- package/lib/cjs/client/ids/index.cjs.map +0 -1
- package/lib/cjs/client/index.cjs.map +0 -1
- package/lib/cjs/client/indexes/generation.cjs.map +0 -1
- package/lib/cjs/client/indexes/index.cjs.map +0 -1
- package/lib/cjs/client/logging.cjs.map +0 -1
- package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +0 -1
- package/lib/cjs/client/services/FabricIdentityService.cjs.map +0 -1
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +0 -1
- package/lib/cjs/client/services/constants.cjs.map +0 -1
- package/lib/cjs/client/services/index.cjs.map +0 -1
- package/lib/cjs/client/types.cjs.map +0 -1
- package/lib/cjs/client/utils.cjs.map +0 -1
- package/lib/cjs/contract/Address.cjs.map +0 -1
- package/lib/cjs/contract/AddressContract.cjs.map +0 -1
- package/lib/cjs/contract/AuditContract.cjs.map +0 -1
- package/lib/cjs/contract/BatchContract.cjs.map +0 -1
- package/lib/cjs/contract/MarketContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherAuditContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherBatchContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherMarketContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductImageContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductSharedContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +0 -1
- package/lib/cjs/contract/Product.cjs.map +0 -1
- package/lib/cjs/contract/ProductContract.cjs.map +0 -1
- package/lib/cjs/contract/ProductStrengthContract.cjs.map +0 -1
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +0 -1
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +0 -1
- package/lib/cjs/contract/User.cjs.map +0 -1
- package/lib/cjs/contract/UserContract.cjs.map +0 -1
- package/lib/cjs/contract/index.cjs.map +0 -1
- package/lib/cjs/contract/logging-context.cjs.map +0 -1
- package/lib/cjs/contract/models/Audit.cjs.map +0 -1
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +0 -1
- package/lib/cjs/contract/models/BaseModel.cjs.map +0 -1
- package/lib/cjs/contract/models/Batch.cjs.map +0 -1
- package/lib/cjs/contract/models/GtinOwner.cjs.map +0 -1
- package/lib/cjs/contract/models/History.cjs.map +0 -1
- package/lib/cjs/contract/models/Leaflet.cjs.map +0 -1
- package/lib/cjs/contract/models/LeafletFile.cjs.map +0 -1
- package/lib/cjs/contract/models/Market.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherAudit.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherBatchShared.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherLeaflet.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherMarket.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProduct.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductImage.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductShared.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductStrength.cjs.map +0 -1
- package/lib/cjs/contract/models/Product.cjs.map +0 -1
- package/lib/cjs/contract/models/ProductStrength.cjs.map +0 -1
- package/lib/cjs/contract/models/SegregatedDocument.cjs.map +0 -1
- package/lib/cjs/contract/models/constants.cjs.map +0 -1
- package/lib/cjs/contract/models/decorators-private.cjs.map +0 -1
- package/lib/cjs/contract/models/decorators.cjs.map +0 -1
- package/lib/cjs/contract/models/gtin.cjs.map +0 -1
- package/lib/cjs/contract/models/history-dec.cjs.map +0 -1
- package/lib/cjs/contracts/ContractAdapter.cjs.map +0 -1
- package/lib/cjs/contracts/ContractContext.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractDispatch.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractPaginator.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractRepository.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractSequence.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractStatement.cjs.map +0 -1
- package/lib/cjs/contracts/MigrationContract.cjs.map +0 -1
- package/lib/cjs/contracts/PrivateSequence.cjs.map +0 -1
- package/lib/cjs/contracts/auth/decorators.cjs.map +0 -1
- package/lib/cjs/contracts/auth/index.cjs.map +0 -1
- package/lib/cjs/contracts/crud/crud-contract.cjs.map +0 -1
- package/lib/cjs/contracts/crud/index.cjs.map +0 -1
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/erc20contract.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/index.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/models.cjs.map +0 -1
- package/lib/cjs/contracts/index.cjs.map +0 -1
- package/lib/cjs/contracts/logging.cjs.map +0 -1
- package/lib/cjs/contracts/overrides.cjs.map +0 -1
- package/lib/cjs/contracts/types.cjs.map +0 -1
- package/lib/cjs/contracts/uuid.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/shared/ClientSerializer.cjs.map +0 -1
- package/lib/cjs/shared/DeterministicSerializer.cjs.map +0 -1
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +0 -1
- package/lib/cjs/shared/constants.cjs.map +0 -1
- package/lib/cjs/shared/decorators.cjs.map +0 -1
- package/lib/cjs/shared/erc20/erc20-constants.cjs.map +0 -1
- package/lib/cjs/shared/erc20/index.cjs.map +0 -1
- package/lib/cjs/shared/errors.cjs.map +0 -1
- package/lib/cjs/shared/events.cjs.map +0 -1
- package/lib/cjs/shared/fabric-types.cjs.map +0 -1
- package/lib/cjs/shared/index.cjs.map +0 -1
- package/lib/cjs/shared/interfaces/Checkable.cjs.map +0 -1
- package/lib/cjs/shared/interfaces/index.cjs.map +0 -1
- package/lib/cjs/shared/math.cjs.map +0 -1
- package/lib/cjs/shared/model/FabricBaseModel.cjs.map +0 -1
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +0 -1
- package/lib/cjs/shared/model/Identity.cjs.map +0 -1
- package/lib/cjs/shared/model/IdentityCredentials.cjs.map +0 -1
- package/lib/cjs/shared/model/index.cjs.map +0 -1
- package/lib/cjs/shared/overrides/Model.cjs.map +0 -1
- package/lib/cjs/shared/overrides/index.cjs.map +0 -1
- package/lib/cjs/shared/overrides/overrides.cjs.map +0 -1
- package/lib/cjs/shared/types.cjs.map +0 -1
- package/lib/cjs/version.cjs.map +0 -1
- package/lib/esm/bin/cli.js.map +0 -1
- package/lib/esm/cli-module.js.map +0 -1
- package/lib/esm/cli-utils.js.map +0 -1
- package/lib/esm/client/FabricClientAdapter.js.map +0 -1
- package/lib/esm/client/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/OtherProductImageContract.js.map +0 -1
- package/lib/esm/contract/OtherProductSharedContract.js.map +0 -1
- package/lib/esm/contract/OtherProductStrengthContract.js.map +0 -1
- package/lib/esm/contract/Product.js.map +0 -1
- package/lib/esm/contract/ProductContract.js.map +0 -1
- package/lib/esm/contract/ProductStrengthContract.js.map +0 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +0 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +0 -1
- package/lib/esm/contract/User.js.map +0 -1
- package/lib/esm/contract/UserContract.js.map +0 -1
- package/lib/esm/contract/index.js.map +0 -1
- package/lib/esm/contract/logging-context.js.map +0 -1
- package/lib/esm/contract/models/Audit.js.map +0 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js.map +0 -1
- package/lib/esm/contract/models/BaseModel.js.map +0 -1
- package/lib/esm/contract/models/Batch.js.map +0 -1
- package/lib/esm/contract/models/GtinOwner.js.map +0 -1
- package/lib/esm/contract/models/History.js.map +0 -1
- package/lib/esm/contract/models/Leaflet.js.map +0 -1
- package/lib/esm/contract/models/LeafletFile.js.map +0 -1
- package/lib/esm/contract/models/Market.js.map +0 -1
- package/lib/esm/contract/models/OtherAudit.js.map +0 -1
- package/lib/esm/contract/models/OtherBatchShared.js.map +0 -1
- package/lib/esm/contract/models/OtherLeaflet.js.map +0 -1
- package/lib/esm/contract/models/OtherLeafletFile.js.map +0 -1
- package/lib/esm/contract/models/OtherMarket.js.map +0 -1
- package/lib/esm/contract/models/OtherProduct.js.map +0 -1
- package/lib/esm/contract/models/OtherProductImage.js.map +0 -1
- package/lib/esm/contract/models/OtherProductShared.js.map +0 -1
- package/lib/esm/contract/models/OtherProductStrength.js.map +0 -1
- package/lib/esm/contract/models/Product.js.map +0 -1
- package/lib/esm/contract/models/ProductStrength.js.map +0 -1
- package/lib/esm/contract/models/SegregatedDocument.js.map +0 -1
- package/lib/esm/contract/models/constants.js.map +0 -1
- package/lib/esm/contract/models/decorators-private.js.map +0 -1
- package/lib/esm/contract/models/decorators.js.map +0 -1
- package/lib/esm/contract/models/gtin.js.map +0 -1
- package/lib/esm/contract/models/history-dec.js.map +0 -1
- package/lib/esm/contracts/ContractAdapter.js.map +0 -1
- package/lib/esm/contracts/ContractContext.js.map +0 -1
- package/lib/esm/contracts/FabricContractDispatch.js.map +0 -1
- package/lib/esm/contracts/FabricContractPaginator.js.map +0 -1
- package/lib/esm/contracts/FabricContractRepository.js.map +0 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
- package/lib/esm/contracts/FabricContractSequence.js.map +0 -1
- package/lib/esm/contracts/FabricContractStatement.js.map +0 -1
- package/lib/esm/contracts/MigrationContract.js.map +0 -1
- package/lib/esm/contracts/PrivateSequence.js.map +0 -1
- package/lib/esm/contracts/auth/decorators.js.map +0 -1
- package/lib/esm/contracts/auth/index.js.map +0 -1
- package/lib/esm/contracts/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
|
@@ -363,5 +363,5 @@ class CryptoUtils {
|
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
365
|
exports.CryptoUtils = CryptoUtils;
|
|
366
|
-
//# sourceMappingURL=crypto.js.map
|
|
367
|
-
//# sourceMappingURL=crypto.js.map
|
|
366
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9jcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztBQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVoQyxNQUFNLENBQU4sSUFBWSxhQVlYO0FBWkQsV0FBWSxhQUFhO0lBQ3ZCLDZCQUFZLENBQUE7SUFDWixtQ0FBa0IsQ0FBQTtJQUNsQix1Q0FBc0IsQ0FBQTtJQUN0Qiw0Q0FBMkIsQ0FBQTtJQUMzQiw0REFBMkMsQ0FBQTtJQUMzQyw4REFBNkMsQ0FBQTtJQUM3QyxnRUFBK0MsQ0FBQTtJQUMvQyxzRkFBcUUsQ0FBQTtJQUNyRSwwRkFBeUUsQ0FBQTtJQUN6RSw0RkFBMkUsQ0FBQTtJQUMzRSwrRkFBOEUsQ0FBQTtBQUNoRixDQUFDLEVBWlcsYUFBYSxLQUFiLGFBQWEsUUFZeEI7QUFPRCxNQUFNLENBQU4sSUFBWSxNQVFYO0FBUkQsV0FBWSxNQUFNO0lBQ2hCLDBCQUFnQixDQUFBO0lBQ2hCLGtEQUFpQixDQUFBO0lBQ2pCLDhDQUFjLENBQUE7SUFDZCw4REFBc0IsQ0FBQTtJQUN0QixnRUFBdUIsQ0FBQTtJQUN2QiwrQkFBcUIsQ0FBQTtJQUNyQixrQ0FBd0IsQ0FBQTtBQUMxQixDQUFDLEVBUlcsTUFBTSxLQUFOLE1BQU0sUUFRakI7QUFFRCxNQUFNLE9BQU8sV0FBVztJQU90QixZQUFvQixRQUF1QjtRQUF2QixhQUFRLEdBQVIsUUFBUSxDQUFlO1FBTjFCLFlBQU8sR0FBZSxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQU96RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLEdBQUc7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFdEUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBRXBFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDekMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDO1lBRW5FLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO1FBQ3RGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztJQUN6RixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQThDO1FBQ25ELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsQ0FBQzthQUFNLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FDckIsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsVUFBVSxFQUNqQixNQUFNLENBQUMsVUFBVSxDQUNsQixDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRW5DLCtCQUErQjtRQUMvQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzNCLE9BQU8sTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0MsTUFBTSxFQUFFLENBQUM7WUFDVCxNQUFNLEVBQUUsQ0FBQztRQUNYLENBQUM7UUFDRCw2REFBNkQ7UUFDN0QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxxQkFBcUI7UUFDckIsT0FBTyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdkIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDVixLQUNFLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQ2xCLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUN6QyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFDVixDQUFDO2dCQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7Z0JBQ25DLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxJQUFJLEtBQUssS0FBSyxDQUFDO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUVuRCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ1gsTUFBTSxFQUFFLENBQUM7UUFDWCxDQUFDO1FBQ0Qsd0NBQXdDO1FBQ3hDLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxNQUFNLENBQUM7UUFDeEIsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQUUsR0FBRyxFQUFFLENBQUM7UUFFN0Msc0NBQXNDO1FBQ3RDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQWM7UUFDakMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxELElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLCtCQUErQjtRQUMvQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkMsTUFBTSxFQUFFLENBQUM7WUFDVCxHQUFHLEVBQUUsQ0FBQztRQUNSLENBQUM7UUFDRCw4REFBOEQ7UUFDOUQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7UUFDaEcsTUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsMEJBQTBCO1FBQzFCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkIsbUJBQW1CO1lBQ25CLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pELG9CQUFvQjtZQUNwQixJQUFJLEtBQUssS0FBSyxHQUFHO2dCQUFFLE9BQU87WUFFMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ1YsS0FDRSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUNsQixDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFDekMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQ1YsQ0FBQztnQkFDRCxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUM7WUFDRCxJQUFJLEtBQUssS0FBSyxDQUFDO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUVuRCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ1gsR0FBRyxFQUFFLENBQUM7UUFDUixDQUFDO1FBQ0QsK0JBQStCO1FBQy9CLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxNQUFNLENBQUM7UUFDeEIsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQUUsR0FBRyxFQUFFLENBQUM7UUFFOUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2YsT0FBTyxHQUFHLEtBQUssSUFBSTtZQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFjO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsSUFBSSxNQUFNO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sV0FBVzthQUNFLGVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkQsV0FBTSxHQUFHLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRSxnQkFBdUIsQ0FBQztJQUV4QixNQUFNLENBQUMsdUJBQXVCLENBQUMsV0FBbUI7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLDBCQUEwQixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDekUsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNmLFlBQVksQ0FDVixvREFBb0QsRUFDcEQsT0FBTyxFQUNQLE1BQU0sQ0FDUCxDQUNGLENBQUM7UUFDRixPQUFPLFVBQVUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNyRixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBVztRQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQVc7UUFDcEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyRCxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQzdCLElBQTBCLEVBQzFCLEdBQW9CLEVBQ3BCLE1BQWM7UUFFZCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBRTdCLE1BQU0sR0FBRyxHQUFHLEdBQUc7YUFDWixRQUFRLENBQUMsTUFBTSxDQUFDO2FBQ2hCLE9BQU8sQ0FDTixJQUFJLE1BQU0sQ0FBQyxlQUFlLElBQUksQ0FBQyxXQUFXLEVBQUUsd0JBQXdCLENBQUMsRUFDckUsRUFBRSxDQUNIO2FBQ0EsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7YUFDcEIsT0FBTyxDQUNOLElBQUksTUFBTSxDQUFDLGFBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxFQUNuRSxFQUFFLENBQ0gsQ0FBQztRQUNKLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsU0FBUyxDQUNoQyxPQUFPLEVBQ1AsU0FBUyxFQUNUO1lBQ0UsSUFBSSxFQUFFLE9BQU87WUFDYixVQUFVLEVBQUUsT0FBTztTQUNwQixFQUNELElBQUksRUFDSixNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FDM0IsQ0FBQztRQUVGLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBb0IsRUFBRSxNQUFjO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQW9CLEVBQUUsTUFBYztRQUNoRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBa0IsRUFBRSxJQUFZO1FBQ2hELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDcEM7WUFDRSxJQUFJLEVBQUUsT0FBTztZQUNiLElBQUksRUFBRSxTQUFTO1NBQ2hCLEVBQ0QsR0FBRyxFQUNILElBQVcsQ0FDWixDQUFnQixDQUFDO1FBRWxCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNwQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUMzQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ2pCLFdBQW1CLEVBQ25CLFNBQTBCLEVBQzFCLElBQXFCO1FBRXJCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUMsU0FBUyxHQUFHLENBQ1YsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUNoRSxDQUFDO1FBQ1osSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQVcsQ0FBQztRQUN2RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUN6QjtZQUNFLElBQUksRUFBRSxPQUFPO1lBQ2IsSUFBSSxFQUFFLFNBQVM7U0FDaEIsRUFDRCxHQUFHLEVBQ0gsU0FBZ0IsRUFDaEIsSUFBVyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBbUIsRUFBRSxJQUFxQjtRQUM3RCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFDLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFXLENBQUM7UUFDdkUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUMvQztZQUNFLElBQUksRUFBRSxPQUFPO1NBQ2QsRUFDRCxHQUFHLEVBQ0gsSUFBSSxDQUNMLENBQUM7UUFFRixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDM0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVPLE1BQU0sQ0FBQyxlQUFlO1FBQzVCLE9BQU8sU0FBUyxFQUFFO1lBQ2hCLENBQUMsQ0FBRSxVQUFrQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMxQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBa0IsRUFBRSxJQUFxQjtRQUM1RCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRCxJQUFJLEdBQUcsQ0FDTCxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2pELENBQUM7UUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxPQUFPLENBQ25DO1lBQ0UsSUFBSSxFQUFFLE9BQU87U0FDZCxFQUNELEdBQUcsRUFDSCxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQWtCO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMvQyxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUN4RCxLQUFLLEVBQ0wsSUFBSSxFQUNKLE1BQU0sQ0FBQyxhQUF1QixFQUM5QixLQUFLLEVBQ0wsQ0FBQyxZQUFZLENBQUMsQ0FDZixDQUFDO1FBRUYsT0FBTztZQUNMLEdBQUcsRUFBRSxXQUFXO1lBQ2hCLEVBQUUsRUFBRSxJQUFLO1NBQ1YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsR0FBYztRQUN4RCxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxDQUNwRCxTQUFTLEVBQ1QsVUFBVSxDQUNYLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRztZQUNiLElBQUksRUFBRSxNQUFNLENBQUMsYUFBdUI7WUFDcEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLElBQUksRUFBRSxVQUFVO1lBQ2hCLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtTQUM5QixDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsVUFBVSxDQUN4RCxNQUFNLEVBQ04sR0FBRyxFQUNILE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUNyQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUF1QjtRQUN6Qyw2REFBNkQ7UUFDN0QsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUNsRSxLQUFLLEVBQ0wsVUFBVSxFQUNWLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFtQixFQUFFLEVBQ3BDLEtBQUssRUFDTCxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FDdkIsQ0FBQztRQUNGLE9BQU87WUFDTCxHQUFHLEVBQUUscUJBQXFCO1lBQzFCLEVBQUUsRUFBRSxFQUFFO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQ3JCLElBQVksRUFDWixTQUFvQjtRQUVwQixNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUN4RCxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsU0FBbUIsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUN0RCxTQUFTLENBQUMsR0FBRyxFQUNiLFVBQVUsQ0FDWCxDQUFDO1FBQ0YsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDckIsYUFBMEIsRUFDMUIsU0FBb0I7UUFFcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxPQUFPLENBQ3hELEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFtQixFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQ3RELFNBQVMsQ0FBQyxHQUFHLEVBQ2IsYUFBYSxDQUNkLENBQUM7UUFDRixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHg1MDkgZnJvbSBcIkBwZWN1bGlhci94NTA5XCI7XG5pbXBvcnQgeyBDcnlwdG8sIENyeXB0b0tleSB9IGZyb20gXCJAcGVjdWxpYXIvd2ViY3J5cHRvXCI7XG5pbXBvcnQgeyBzdHJpbmdGb3JtYXQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBpc0Jyb3dzZXIsIE1pbmlMb2dnZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcblxuY29uc3QgY3J5cHRvID0gbmV3IENyeXB0bygpO1xueDUwOS5jcnlwdG9Qcm92aWRlci5zZXQoY3J5cHRvKTtcblxuZXhwb3J0IGVudW0gQkFTRV9BTFBIQUJFVCB7XG4gIEJBU0UyID0gXCIwMVwiLFxuICBCQVNFOCA9IFwiMDEyMzQ1NjdcIixcbiAgQkFTRTExID0gXCIwMTIzNDU2Nzg5YVwiLFxuICBCQVNFMTYgPSBcIjAxMjM0NTY3ODlhYmNkZWZcIixcbiAgQkFTRTMyID0gXCIwMTIzNDU2Nzg5QUJDREVGR0hKS01OUFFSU1RWV1hZWlwiLFxuICBCQVNFMzJfWiA9IFwieWJuZHJmZzhlamttY3BxeG90MXV3aXN6YTM0NWg3NjlcIixcbiAgQkFTRTM2ID0gXCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIixcbiAgQkFTRTU4ID0gXCIxMjM0NTY3ODlBQkNERUZHSEpLTE1OUFFSU1RVVldYWVphYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6XCIsXG4gIEJBU0U2MiA9IFwiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpcIixcbiAgQkFTRTY0ID0gXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvXCIsXG4gIEJBU0U2NyA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXy4hflwiLFxufVxuXG5leHBvcnQgdHlwZSBrZXlPYmplY3QgPSB7XG4gIGl2OiBBcnJheUJ1ZmZlcjtcbiAga2V5OiBDcnlwdG9LZXk7XG59O1xuXG5leHBvcnQgZW51bSBDUllQVE8ge1xuICBIQVNIID0gXCJTSEEtMjU2XCIsXG4gIElURVJBVElPTlMgPSAxMDAwLFxuICBLRVlMRU5HVEggPSA0OCxcbiAgREVSSVZFRF9JVl9MRU5HVEggPSAxNixcbiAgREVSSVZFRF9LRVlfTEVOR1RIID0gMzIsIC8vIEJlY2F1c2UgU0hBLTI1NiB1c2VkIGhhcyBhIG5hdGl2ZSBzaXplIG9mIDMyIGJ5dGVzXG4gIEFMR09SWVRITSA9IFwiQUVTLUdDTVwiLFxuICBLRVlfQUxHT1JZVEhNID0gXCJQQktERjJcIixcbn1cblxuZXhwb3J0IGNsYXNzIEJhc2VFbmNvZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlTWFwOiBVaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoMjU2KTtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGVhZGVyOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjdG9yOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgaUZhY3RvcjogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWxwaGFiZXQ6IEJBU0VfQUxQSEFCRVQpIHtcbiAgICBpZiAodGhpcy5hbHBoYWJldC5sZW5ndGggPj0gMjU1KSB0aHJvdyBuZXcgRXJyb3IoXCJBbHBoYWJldCB0b28gbG9uZ1wiKTtcblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5iYXNlTWFwLmxlbmd0aDsgaisrKSB0aGlzLmJhc2VNYXBbal0gPSAyNTU7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFscGhhYmV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB4ID0gYWxwaGFiZXQuY2hhckF0KGkpO1xuICAgICAgY29uc3QgeGMgPSB4LmNoYXJDb2RlQXQoMCk7XG4gICAgICBpZiAodGhpcy5iYXNlTWFwW3hjXSAhPT0gMjU1KSB0aHJvdyBuZXcgRXJyb3IoeCArIFwiIGlzIGFtYmlndW91c1wiKTtcblxuICAgICAgdGhpcy5iYXNlTWFwW3hjXSA9IGk7XG4gICAgfVxuXG4gICAgdGhpcy5iYXNlID0gdGhpcy5hbHBoYWJldC5sZW5ndGg7XG4gICAgdGhpcy5sZWFkZXIgPSB0aGlzLmFscGhhYmV0LmNoYXJBdCgwKTtcbiAgICB0aGlzLmZhY3RvciA9IE1hdGgubG9nKHRoaXMuYmFzZSkgLyBNYXRoLmxvZygyNTYpOyAvLyBsb2coQkFTRSkgLyBsb2coMjU2KSwgcm91bmRlZCB1cFxuICAgIHRoaXMuaUZhY3RvciA9IE1hdGgubG9nKDI1NikgLyBNYXRoLmxvZyh0aGlzLmJhc2UpOyAvLyBsb2coMjU2KSAvIGxvZyhCQVNFKSwgcm91bmRlZCB1cFxuICB9XG5cbiAgZW5jb2RlKHNvdXJjZTogVWludDhBcnJheSB8IERhdGFWaWV3IHwgYW55W10gfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc291cmNlID0gQnVmZmVyLmZyb20oc291cmNlKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhzb3VyY2UpKSB7XG4gICAgICBzb3VyY2UgPSBuZXcgVWludDhBcnJheShcbiAgICAgICAgc291cmNlLmJ1ZmZlcixcbiAgICAgICAgc291cmNlLmJ5dGVPZmZzZXQsXG4gICAgICAgIHNvdXJjZS5ieXRlTGVuZ3RoXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICBzb3VyY2UgPSBVaW50OEFycmF5LmZyb20oc291cmNlKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFwiXCI7XG5cbiAgICAvLyBTa2lwICYgY291bnQgbGVhZGluZyB6ZXJvZXMuXG4gICAgbGV0IHplcm9lcyA9IDA7XG4gICAgbGV0IGxlbmd0aCA9IDA7XG4gICAgbGV0IHBiZWdpbiA9IDA7XG4gICAgY29uc3QgcGVuZCA9IHNvdXJjZS5sZW5ndGg7XG4gICAgd2hpbGUgKHBiZWdpbiAhPT0gcGVuZCAmJiBzb3VyY2VbcGJlZ2luXSA9PT0gMCkge1xuICAgICAgcGJlZ2luKys7XG4gICAgICB6ZXJvZXMrKztcbiAgICB9XG4gICAgLy8gQWxsb2NhdGUgZW5vdWdoIHNwYWNlIGluIGJpZy1lbmRpYW4gYmFzZTU4IHJlcHJlc2VudGF0aW9uLlxuICAgIGNvbnN0IHNpemUgPSAoKHBlbmQgLSBwYmVnaW4pICogdGhpcy5pRmFjdG9yICsgMSkgPj4+IDA7XG4gICAgY29uc3QgYjU4ID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSk7XG4gICAgLy8gUHJvY2VzcyB0aGUgYnl0ZXMuXG4gICAgd2hpbGUgKHBiZWdpbiAhPT0gcGVuZCkge1xuICAgICAgbGV0IGNhcnJ5ID0gc291cmNlW3BiZWdpbl07XG4gICAgICAvLyBBcHBseSBcImI1OCA9IGI1OCAqIDI1NiArIGNoXCIuXG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmb3IgKFxuICAgICAgICBsZXQgaXQxID0gc2l6ZSAtIDE7XG4gICAgICAgIChjYXJyeSAhPT0gMCB8fCBpIDwgbGVuZ3RoKSAmJiBpdDEgIT09IC0xO1xuICAgICAgICBpdDEtLSwgaSsrXG4gICAgICApIHtcbiAgICAgICAgY2FycnkgKz0gKDI1NiAqIGI1OFtpdDFdKSA+Pj4gMDtcbiAgICAgICAgYjU4W2l0MV0gPSBjYXJyeSAlIHRoaXMuYmFzZSA+Pj4gMDtcbiAgICAgICAgY2FycnkgPSAoY2FycnkgLyB0aGlzLmJhc2UpID4+PiAwO1xuICAgICAgfVxuICAgICAgaWYgKGNhcnJ5ICE9PSAwKSB0aHJvdyBuZXcgRXJyb3IoXCJOb24temVybyBjYXJyeVwiKTtcblxuICAgICAgbGVuZ3RoID0gaTtcbiAgICAgIHBiZWdpbisrO1xuICAgIH1cbiAgICAvLyBTa2lwIGxlYWRpbmcgemVyb2VzIGluIGJhc2U1OCByZXN1bHQuXG4gICAgbGV0IGl0MiA9IHNpemUgLSBsZW5ndGg7XG4gICAgd2hpbGUgKGl0MiAhPT0gc2l6ZSAmJiBiNThbaXQyXSA9PT0gMCkgaXQyKys7XG5cbiAgICAvLyBUcmFuc2xhdGUgdGhlIHJlc3VsdCBpbnRvIGEgc3RyaW5nLlxuICAgIGxldCBzdHIgPSB0aGlzLmxlYWRlci5yZXBlYXQoemVyb2VzKTtcbiAgICBmb3IgKDsgaXQyIDwgc2l6ZTsgKytpdDIpIHtcbiAgICAgIHN0ciArPSB0aGlzLmFscGhhYmV0LmNoYXJBdChiNThbaXQyXSk7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICBwcml2YXRlIGRlY29kZVVuc2FmZShzb3VyY2U6IHN0cmluZyk6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQge1xuICAgIGlmIChzb3VyY2UubGVuZ3RoID09PSAwKSByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7XG5cbiAgICBsZXQgcHN6ID0gMDtcbiAgICAvLyBTa2lwIGFuZCBjb3VudCBsZWFkaW5nICcxJ3MuXG4gICAgbGV0IHplcm9lcyA9IDA7XG4gICAgbGV0IGxlbmd0aCA9IDA7XG4gICAgd2hpbGUgKHNvdXJjZVtwc3pdID09PSB0aGlzLmxlYWRlcikge1xuICAgICAgemVyb2VzKys7XG4gICAgICBwc3orKztcbiAgICB9XG4gICAgLy8gQWxsb2NhdGUgZW5vdWdoIHNwYWNlIGluIGJpZy1lbmRpYW4gYmFzZTI1NiByZXByZXNlbnRhdGlvbi5cbiAgICBjb25zdCBzaXplID0gKChzb3VyY2UubGVuZ3RoIC0gcHN6KSAqIHRoaXMuZmFjdG9yICsgMSkgPj4+IDA7IC8vIGxvZyg1OCkgLyBsb2coMjU2KSwgcm91bmRlZCB1cC5cbiAgICBjb25zdCBiMjU2ID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSk7XG4gICAgLy8gUHJvY2VzcyB0aGUgY2hhcmFjdGVycy5cbiAgICB3aGlsZSAoc291cmNlW3Bzel0pIHtcbiAgICAgIC8vIERlY29kZSBjaGFyYWN0ZXJcbiAgICAgIGxldCBjYXJyeSA9IHRoaXMuYmFzZU1hcFtzb3VyY2UuY2hhckNvZGVBdChwc3opXTtcbiAgICAgIC8vIEludmFsaWQgY2hhcmFjdGVyXG4gICAgICBpZiAoY2FycnkgPT09IDI1NSkgcmV0dXJuO1xuXG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmb3IgKFxuICAgICAgICBsZXQgaXQzID0gc2l6ZSAtIDE7XG4gICAgICAgIChjYXJyeSAhPT0gMCB8fCBpIDwgbGVuZ3RoKSAmJiBpdDMgIT09IC0xO1xuICAgICAgICBpdDMtLSwgaSsrXG4gICAgICApIHtcbiAgICAgICAgY2FycnkgKz0gKHRoaXMuYmFzZSAqIGIyNTZbaXQzXSkgPj4+IDA7XG4gICAgICAgIGIyNTZbaXQzXSA9IGNhcnJ5ICUgMjU2ID4+PiAwO1xuICAgICAgICBjYXJyeSA9IChjYXJyeSAvIDI1NikgPj4+IDA7XG4gICAgICB9XG4gICAgICBpZiAoY2FycnkgIT09IDApIHRocm93IG5ldyBFcnJvcihcIk5vbi16ZXJvIGNhcnJ5XCIpO1xuXG4gICAgICBsZW5ndGggPSBpO1xuICAgICAgcHN6Kys7XG4gICAgfVxuICAgIC8vIFNraXAgbGVhZGluZyB6ZXJvZXMgaW4gYjI1Ni5cbiAgICBsZXQgaXQ0ID0gc2l6ZSAtIGxlbmd0aDtcbiAgICB3aGlsZSAoaXQ0ICE9PSBzaXplICYmIGIyNTZbaXQ0XSA9PT0gMCkgaXQ0Kys7XG5cbiAgICBjb25zdCB2Y2ggPSBuZXcgVWludDhBcnJheSh6ZXJvZXMgKyAoc2l6ZSAtIGl0NCkpO1xuICAgIGxldCBqID0gemVyb2VzO1xuICAgIHdoaWxlIChpdDQgIT09IHNpemUpIHZjaFtqKytdID0gYjI1NltpdDQrK107XG5cbiAgICByZXR1cm4gdmNoO1xuICB9XG5cbiAgZGVjb2RlKHNvdXJjZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYnVmZmVyID0gdGhpcy5kZWNvZGVVbnNhZmUoc291cmNlKTtcbiAgICBpZiAoYnVmZmVyKSByZXR1cm4gYnVmZmVyO1xuICAgIHRocm93IG5ldyBFcnJvcihcIk5vbi1iYXNlXCIgKyB0aGlzLmJhc2UgKyBcIiBjaGFyYWN0ZXJcIik7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENyeXB0b1V0aWxzIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgYjU4ZW5jb2RlciA9IG5ldyBCYXNlRW5jb2RlcihCQVNFX0FMUEhBQkVULkJBU0U1OCk7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGxvZ2dlciA9IG5ldyBNaW5pTG9nZ2VyKENyeXB0b1V0aWxzLm5hbWUpO1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICBzdGF0aWMgZmFicmljSWRGcm9tQ2VydGlmaWNhdGUoY2VydGlmaWNhdGU6IHN0cmluZykge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKHN0cmluZ0Zvcm1hdChcIlBhcnNpbmcgY2VydGlmaWNhdGU6IHswfVwiLCBjZXJ0aWZpY2F0ZSkpO1xuICAgIGNvbnN0IGNlcnQgPSBuZXcgeDUwOS5YNTA5Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpO1xuICAgIGNvbnN0IHsgc3ViamVjdCwgaXNzdWVyIH0gPSBjZXJ0O1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgc3RyaW5nRm9ybWF0KFxuICAgICAgICBcIkNlcnRpZmljYXRlIHBhcnNlZCB3aXRoIHN1YmplY3QgezB9IGFuZCBpc3N1ZXIgezF9XCIsXG4gICAgICAgIHN1YmplY3QsXG4gICAgICAgIGlzc3VlclxuICAgICAgKVxuICAgICk7XG4gICAgcmV0dXJuIGB4NTA5OjovJHtzdWJqZWN0LnJlcGxhY2VBbGwoXCIsIFwiLCBcIi9cIil9OjovJHtpc3N1ZXIucmVwbGFjZUFsbChcIiwgXCIsIFwiL1wiKX1gO1xuICB9XG5cbiAgc3RhdGljIGVuY29kZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYjU4ZW5jb2Rlci5lbmNvZGUoc3RyKTtcbiAgfVxuICBzdGF0aWMgZGVjb2RlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBkZWNvZGVkID0gdGhpcy5iNThlbmNvZGVyLmRlY29kZShzdHIpO1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShkZWNvZGVkKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc3RhdGljIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyOiBzdHJpbmcpIHtcbiAgICBjb25zdCBidWYgPSBuZXcgQXJyYXlCdWZmZXIoc3RyLmxlbmd0aCk7XG4gICAgY29uc3QgYnVmVmlldyA9IG5ldyBVaW50OEFycmF5KGJ1Zik7XG4gICAgZm9yIChsZXQgaSA9IDAsIHN0ckxlbiA9IHN0ci5sZW5ndGg7IGkgPCBzdHJMZW47IGkrKykge1xuICAgICAgYnVmVmlld1tpXSA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgIH1cbiAgICByZXR1cm4gYnVmO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYXN5bmMgZXh0cmFjdEtleShcbiAgICB0eXBlOiBcInByaXZhdGVcIiB8IFwicHVibGljXCIsXG4gICAgcGVtOiBCdWZmZXIgfCBzdHJpbmcsXG4gICAgdXNhZ2VzPzogYW55W11cbiAgKSB7XG4gICAgY29uc3Qgc3VidGxlID0gY3J5cHRvLnN1YnRsZTtcblxuICAgIGNvbnN0IHN0ciA9IHBlbVxuICAgICAgLnRvU3RyaW5nKFwidXRmOFwiKVxuICAgICAgLnJlcGxhY2UoXG4gICAgICAgIG5ldyBSZWdFeHAoYC0tLS0tQkVHSU4gKCR7dHlwZS50b1VwcGVyQ2FzZSgpfSBLRVl8Q0VSVElGSUNBVEUpLS0tLS1gKSxcbiAgICAgICAgXCJcIlxuICAgICAgKVxuICAgICAgLnJlcGxhY2VBbGwoXCJcXG5cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFxuICAgICAgICBuZXcgUmVnRXhwKGAtLS0tLUVORCAoJHt0eXBlLnRvVXBwZXJDYXNlKCl9IEtFWXxDRVJUSUZJQ0FURSktLS0tLWApLFxuICAgICAgICBcIlwiXG4gICAgICApO1xuICAgIGNvbnN0IGRlY29kZWQgPSBCdWZmZXIuZnJvbShzdHIsIFwiYmFzZTY0XCIpLnRvU3RyaW5nKFwiYmluYXJ5XCIpO1xuICAgIGNvbnN0IGJpbmFyeURlciA9IHRoaXMuc3RyaW5nVG9BcnJheUJ1ZmZlcihkZWNvZGVkKTtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCBzdWJ0bGUuaW1wb3J0S2V5KFxuICAgICAgXCJwa2NzOFwiLFxuICAgICAgYmluYXJ5RGVyLFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkVDRFNBXCIsXG4gICAgICAgIG5hbWVkQ3VydmU6IFwiUC0yNTZcIixcbiAgICAgIH0sXG4gICAgICB0cnVlLFxuICAgICAgdXNhZ2VzID8gdXNhZ2VzIDogW1wic2lnblwiXVxuICAgICk7XG5cbiAgICByZXR1cm4ga2V5O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGV4dHJhY3RQcml2YXRlS2V5KHBlbTogQnVmZmVyIHwgc3RyaW5nLCB1c2FnZXM/OiBhbnlbXSkge1xuICAgIHJldHVybiB0aGlzLmV4dHJhY3RLZXkoXCJwcml2YXRlXCIsIHBlbSwgdXNhZ2VzKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBleHRyYWN0UHVibGljS2V5KHBlbTogQnVmZmVyIHwgc3RyaW5nLCB1c2FnZXM/OiBhbnlbXSkge1xuICAgIHJldHVybiB0aGlzLmV4dHJhY3RLZXkoXCJwdWJsaWNcIiwgcGVtLCB1c2FnZXMpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIHNpZ24ocHJpdmF0ZUtleTogc3RyaW5nLCBkYXRhOiBCdWZmZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMuZXh0cmFjdFByaXZhdGVLZXkocHJpdmF0ZUtleSk7XG4gICAgY29uc3QgYnVmZiA9IChhd2FpdCBjcnlwdG8uc3VidGxlLnNpZ24oXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiRUNEU0FcIixcbiAgICAgICAgaGFzaDogXCJTSEEtMjU2XCIsXG4gICAgICB9LFxuICAgICAga2V5LFxuICAgICAgZGF0YSBhcyBhbnlcbiAgICApKSBhcyBBcnJheUJ1ZmZlcjtcblxuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGJ1ZmYpKVxuICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxuICAgICAgLmpvaW4oXCJcIik7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgdmVyaWZ5KFxuICAgIGNlcnRpZmljYXRlOiBzdHJpbmcsXG4gICAgc2lnbmF0dXJlOiBCdWZmZXIgfCBzdHJpbmcsXG4gICAgZGF0YTogQnVmZmVyIHwgc3RyaW5nXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNlcnQgPSBuZXcgeDUwOS5YNTA5Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpO1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IGNlcnQucHVibGljS2V5LmV4cG9ydCgpO1xuICAgIHNpZ25hdHVyZSA9IChcbiAgICAgIHR5cGVvZiBzaWduYXR1cmUgPT09IFwic3RyaW5nXCIgPyBCdWZmZXIuZnJvbShzaWduYXR1cmUsIFwiaGV4XCIpIDogc2lnbmF0dXJlXG4gICAgKSBhcyBCdWZmZXI7XG4gICAgZGF0YSA9ICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEJ1ZmZlci5mcm9tKGRhdGEpIDogZGF0YSkgYXMgQnVmZmVyO1xuICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeShcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJFQ0RTQVwiLFxuICAgICAgICBoYXNoOiBcIlNIQS0yNTZcIixcbiAgICAgIH0sXG4gICAgICBrZXksXG4gICAgICBzaWduYXR1cmUgYXMgYW55LFxuICAgICAgZGF0YSBhcyBhbnlcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGVuY3J5cHQoY2VydGlmaWNhdGU6IHN0cmluZywgZGF0YTogc3RyaW5nIHwgQnVmZmVyKSB7XG4gICAgY29uc3QgY2VydCA9IG5ldyB4NTA5Llg1MDlDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgY2VydC5wdWJsaWNLZXkuZXhwb3J0KCk7XG4gICAgZGF0YSA9ICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEJ1ZmZlci5mcm9tKGRhdGEpIDogZGF0YSkgYXMgQnVmZmVyO1xuICAgIGNvbnN0IGJ1ZmYgPSBhd2FpdCB0aGlzLmdldFN1YnRsZUNyeXB0bygpLmVuY3J5cHQoXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiRUNEU0FcIixcbiAgICAgIH0sXG4gICAgICBrZXksXG4gICAgICBkYXRhXG4gICAgKTtcblxuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGJ1ZmYpKVxuICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxuICAgICAgLmpvaW4oXCJcIik7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRTdWJ0bGVDcnlwdG8oKSB7XG4gICAgcmV0dXJuIGlzQnJvd3NlcigpXG4gICAgICA/IChnbG9iYWxUaGlzIGFzIGFueSkud2luZG93LmNyeXB0by5zdWJ0bGVcbiAgICAgIDogY3J5cHRvLnN1YnRsZTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBkZWNyeXB0KHByaXZhdGVLZXk6IHN0cmluZywgZGF0YTogc3RyaW5nIHwgQnVmZmVyKSB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5leHRyYWN0UHJpdmF0ZUtleShwcml2YXRlS2V5KTtcbiAgICBkYXRhID0gKFxuICAgICAgdHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgPyBCdWZmZXIuZnJvbShkYXRhLCBcImhleFwiKSA6IGRhdGFcbiAgICApIGFzIEJ1ZmZlcjtcbiAgICByZXR1cm4gdGhpcy5nZXRTdWJ0bGVDcnlwdG8oKS5kZWNyeXB0KFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkVDRFNBXCIsXG4gICAgICB9LFxuICAgICAga2V5LFxuICAgICAgZGF0YVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVXRpbCBmdW5jdGlvbiB0byBnZXQgYSByYW5kb20gbWFzdGVyIGtleVxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gSWYgZGF0YSBpcyBub3QgcGFzc2VkLCBhIHJhbmRvbSBBcnJheUJ1ZmZlciB3aWxsIGJlIGdlbmVyYXRlZFxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBkYXRhIGVuY3J5dGlvbiBkYXRhXG4gICAqXG4gICAqIEBmdW5jdGlvbiBnZXRNYXN0ZXJcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRNYXN0ZXIoZGF0YT86IEFycmF5QnVmZmVyKTogUHJvbWlzZTxrZXlPYmplY3Q+IHtcbiAgICBjb25zdCB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGdlbkdlbmVzaXMgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xuICAgICAgZGF0YSA9IHRleHRFbmNvZGVyLmVuY29kZShnZW5HZW5lc2lzKS5idWZmZXI7XG4gICAgfVxuXG4gICAgY29uc3QgaW1wb3J0ZWRLZXkgPSBhd2FpdCB0aGlzLmdldFN1YnRsZUNyeXB0bygpLmltcG9ydEtleShcbiAgICAgIFwicmF3XCIsXG4gICAgICBkYXRhLFxuICAgICAgQ1JZUFRPLktFWV9BTEdPUllUSE0gYXMgc3RyaW5nLFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJkZXJpdmVCaXRzXCJdXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBrZXk6IGltcG9ydGVkS2V5LFxuICAgICAgaXY6IGRhdGEhLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVXRpbCBmdW5jdGlvbiB0byBkZXJpdmUgYSBrZXkgZnJvbSBhbm90aGVyIGtleVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2FsdFxuICAgKiBAcGFyYW0ge0NyeXB0b0tleX0ga2V5IE9yaWdpbmFsIGtleVxuICAgKlxuICAgKiBAZnVuY3Rpb24gZ2V0RGVyaXZhdGlvbktleVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGdldERlcml2YXRpb25LZXkoc2FsdDogc3RyaW5nLCBrZXk6IENyeXB0b0tleSkge1xuICAgIGNvbnN0IHRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgY29uc3Qgc2FsdEJ1ZmZlciA9IHRleHRFbmNvZGVyLmVuY29kZShzYWx0KTtcbiAgICBjb25zdCBzYWx0SGFzaGVkID0gYXdhaXQgdGhpcy5nZXRTdWJ0bGVDcnlwdG8oKS5kaWdlc3QoXG4gICAgICBcIlNIQS0yNTZcIixcbiAgICAgIHNhbHRCdWZmZXJcbiAgICApO1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIG5hbWU6IENSWVBUTy5LRVlfQUxHT1JZVEhNIGFzIHN0cmluZyxcbiAgICAgIGhhc2g6IENSWVBUTy5IQVNILFxuICAgICAgc2FsdDogc2FsdEhhc2hlZCxcbiAgICAgIGl0ZXJhdGlvbnM6IENSWVBUTy5JVEVSQVRJT05TLFxuICAgIH07XG4gICAgY29uc3QgZGVyaXZhdGlvbiA9IGF3YWl0IHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuZGVyaXZlQml0cyhcbiAgICAgIHBhcmFtcyxcbiAgICAgIGtleSxcbiAgICAgIENSWVBUTy5LRVlMRU5HVEggKiA4XG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5nZXRLZXkoZGVyaXZhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVXRpbCBmdW5jdGlvbiB0byBnZXQgdGhlIGtleSBhbmQgSVYgZnJvbSB0aGUgQ3J5dG9LZXkgYXJyYXlcbiAgICpcbiAgICogQHBhcmFtIHtBcnJheUJ1ZmZlcn0gZGVyaXZhdGlvblxuICAgKlxuICAgKiBAZnVuY3Rpb24gZ2V0S2V5XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZ2V0S2V5KGRlcml2YXRpb246IEFycmF5QnVmZmVyKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGNvbnN0IGl2bGVuID0gMTY7XG4gICAgY29uc3Qga2V5bGVuID0gMzI7XG4gICAgY29uc3QgZGVyaXZlZEtleSA9IGRlcml2YXRpb24uc2xpY2UoMCwga2V5bGVuKTtcbiAgICBjb25zdCBpdiA9IGRlcml2YXRpb24uc2xpY2Uoa2V5bGVuKTtcbiAgICBjb25zdCBpbXBvcnRlZEVuY3J5cHRpb25LZXkgPSBhd2FpdCB0aGlzLmdldFN1YnRsZUNyeXB0bygpLmltcG9ydEtleShcbiAgICAgIFwicmF3XCIsXG4gICAgICBkZXJpdmVkS2V5LFxuICAgICAgeyBuYW1lOiBDUllQVE8uQUxHT1JZVEhNIGFzIHN0cmluZyB9LFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJlbmNyeXB0XCIsIFwiZGVjcnlwdFwiXVxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogaW1wb3J0ZWRFbmNyeXB0aW9uS2V5LFxuICAgICAgaXY6IGl2LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVXRpbCBmdW5jdGlvbiB0byBkZWNyeXB0IGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHRcbiAgICogQHBhcmFtIHtrZXlPYmplY3R9IGtleU9iamVjdFxuICAgKlxuICAgKiBAZnVuY3Rpb24gZW5jcnlwdFxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGVuY3J5cHRQaW4oXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIGtleU9iamVjdDoga2V5T2JqZWN0XG4gICk6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcbiAgICBjb25zdCB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGNvbnN0IHRleHRCdWZmZXIgPSB0ZXh0RW5jb2Rlci5lbmNvZGUodGV4dCk7XG4gICAgY29uc3QgZW5jcnlwdGVkVGV4dCA9IGF3YWl0IHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuZW5jcnlwdChcbiAgICAgIHsgbmFtZTogQ1JZUFRPLkFMR09SWVRITSBhcyBzdHJpbmcsIGl2OiBrZXlPYmplY3QuaXYgfSxcbiAgICAgIGtleU9iamVjdC5rZXksXG4gICAgICB0ZXh0QnVmZmVyXG4gICAgKTtcbiAgICByZXR1cm4gZW5jcnlwdGVkVGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBVdGlsIGZ1bmN0aW9uIHRvIGRlY3J5cHQgZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge0J1ZmZlclNvdXJjZX0gZW5jcnlwdGVkVGV4dFxuICAgKiBAcGFyYW0ge2tleU9iamVjdH0ga2V5T2JqZWN0XG4gICAqXG4gICAqIEBmdW5jdGlvbiBkZWNyeXB0XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZGVjcnlwdFBpbihcbiAgICBlbmNyeXB0ZWRUZXh0OiBBcnJheUJ1ZmZlcixcbiAgICBrZXlPYmplY3Q6IGtleU9iamVjdFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHRleHREZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCk7XG4gICAgY29uc3QgZGVjcnlwdGVkVGV4dCA9IGF3YWl0IHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuZGVjcnlwdChcbiAgICAgIHsgbmFtZTogQ1JZUFRPLkFMR09SWVRITSBhcyBzdHJpbmcsIGl2OiBrZXlPYmplY3QuaXYgfSxcbiAgICAgIGtleU9iamVjdC5rZXksXG4gICAgICBlbmNyeXB0ZWRUZXh0XG4gICAgKTtcbiAgICByZXR1cm4gdGV4dERlY29kZXIuZGVjb2RlKGRlY3J5cHRlZFRleHQpO1xuICB9XG59XG4iXX0=
|
|
367
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3J5cHRvLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1QztBQUN2QyxtREFBNkM7QUFDN0MseUVBQThEO0FBQzlELCtDQUEwRDtBQUMxRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGtCQUFNLEVBQUUsQ0FBQztBQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVoQyxDQUFDLFVBQVUsYUFBYTtJQUNwQixhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQzlCLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUM7SUFDcEMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLGFBQWEsQ0FBQztJQUN4QyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsa0JBQWtCLENBQUM7SUFDN0MsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLGtDQUFrQyxDQUFDO0lBQzdELGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxrQ0FBa0MsQ0FBQztJQUMvRCxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsc0NBQXNDLENBQUM7SUFDakUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLDREQUE0RCxDQUFDO0lBQ3ZGLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxnRUFBZ0UsQ0FBQztJQUMzRixhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsa0VBQWtFLENBQUM7SUFDN0YsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLHFFQUFxRSxDQUFDO0FBQ3BHLENBQUMsQ0FBQyxDQUFDLHFCQUFhLElBQUksQ0FBQyxxQkFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFMUMsQ0FBQyxVQUFVLE1BQU07SUFDYixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzNCLE1B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RUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZJLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0o7QUFuTEQsa0NBbUxDO0FBQ0Qsc3ZpQ0FBc3ZpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHg1MDkgZnJvbSBcIkBwZWN1bGlhci94NTA5XCI7XG5pbXBvcnQgeyBDcnlwdG8gfSBmcm9tIFwiQHBlY3VsaWFyL3dlYmNyeXB0b1wiO1xuaW1wb3J0IHsgc3RyaW5nRm9ybWF0IH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgaXNCcm93c2VyLCBNaW5pTG9nZ2VyIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5jb25zdCBjcnlwdG8gPSBuZXcgQ3J5cHRvKCk7XG54NTA5LmNyeXB0b1Byb3ZpZGVyLnNldChjcnlwdG8pO1xuZXhwb3J0IHZhciBCQVNFX0FMUEhBQkVUO1xuKGZ1bmN0aW9uIChCQVNFX0FMUEhBQkVUKSB7XG4gICAgQkFTRV9BTFBIQUJFVFtcIkJBU0UyXCJdID0gXCIwMVwiO1xuICAgIEJBU0VfQUxQSEFCRVRbXCJCQVNFOFwiXSA9IFwiMDEyMzQ1NjdcIjtcbiAgICBCQVNFX0FMUEhBQkVUW1wiQkFTRTExXCJdID0gXCIwMTIzNDU2Nzg5YVwiO1xuICAgIEJBU0VfQUxQSEFCRVRbXCJCQVNFMTZcIl0gPSBcIjAxMjM0NTY3ODlhYmNkZWZcIjtcbiAgICBCQVNFX0FMUEhBQkVUW1wiQkFTRTMyXCJdID0gXCIwMTIzNDU2Nzg5QUJDREVGR0hKS01OUFFSU1RWV1hZWlwiO1xuICAgIEJBU0VfQUxQSEFCRVRbXCJCQVNFMzJfWlwiXSA9IFwieWJuZHJmZzhlamttY3BxeG90MXV3aXN6YTM0NWg3NjlcIjtcbiAgICBCQVNFX0FMUEhBQkVUW1wiQkFTRTM2XCJdID0gXCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjtcbiAgICBCQVNFX0FMUEhBQkVUW1wiQkFTRTU4XCJdID0gXCIxMjM0NTY3ODlBQkNERUZHSEpLTE1OUFFSU1RVVldYWVphYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6XCI7XG4gICAgQkFTRV9BTFBIQUJFVFtcIkJBU0U2MlwiXSA9IFwiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpcIjtcbiAgICBCQVNFX0FMUEhBQkVUW1wiQkFTRTY0XCJdID0gXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvXCI7XG4gICAgQkFTRV9BTFBIQUJFVFtcIkJBU0U2N1wiXSA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXy4hflwiO1xufSkoQkFTRV9BTFBIQUJFVCB8fCAoQkFTRV9BTFBIQUJFVCA9IHt9KSk7XG5leHBvcnQgdmFyIENSWVBUTztcbihmdW5jdGlvbiAoQ1JZUFRPKSB7XG4gICAgQ1JZUFRPW1wiSEFTSFwiXSA9IFwiU0hBLTI1NlwiO1xuICAgIENSWVBUT1tDUllQVE9bXCJJVEVSQVRJT05TXCJdID0gMTAwMF0gPSBcIklURVJBVElPTlNcIjtcbiAgICBDUllQVE9bQ1JZUFRPW1wiS0VZTEVOR1RIXCJdID0gNDhdID0gXCJLRVlMRU5HVEhcIjtcbiAgICBDUllQVE9bQ1JZUFRPW1wiREVSSVZFRF9JVl9MRU5HVEhcIl0gPSAxNl0gPSBcIkRFUklWRURfSVZfTEVOR1RIXCI7XG4gICAgQ1JZUFRPW0NSWVBUT1tcIkRFUklWRURfS0VZX0xFTkdUSFwiXSA9IDMyXSA9IFwiREVSSVZFRF9LRVlfTEVOR1RIXCI7XG4gICAgQ1JZUFRPW1wiQUxHT1JZVEhNXCJdID0gXCJBRVMtR0NNXCI7XG4gICAgQ1JZUFRPW1wiS0VZX0FMR09SWVRITVwiXSA9IFwiUEJLREYyXCI7XG59KShDUllQVE8gfHwgKENSWVBUTyA9IHt9KSk7XG5leHBvcnQgY2xhc3MgQmFzZUVuY29kZXIge1xuICAgIGNvbnN0cnVjdG9yKGFscGhhYmV0KSB7XG4gICAgICAgIHRoaXMuYWxwaGFiZXQgPSBhbHBoYWJldDtcbiAgICAgICAgdGhpcy5iYXNlTWFwID0gbmV3IFVpbnQ4QXJyYXkoMjU2KTtcbiAgICAgICAgaWYgKHRoaXMuYWxwaGFiZXQubGVuZ3RoID49IDI1NSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFscGhhYmV0IHRvbyBsb25nXCIpO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuYmFzZU1hcC5sZW5ndGg7IGorKylcbiAgICAgICAgICAgIHRoaXMuYmFzZU1hcFtqXSA9IDI1NTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbHBoYWJldC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgeCA9IGFscGhhYmV0LmNoYXJBdChpKTtcbiAgICAgICAgICAgIGNvbnN0IHhjID0geC5jaGFyQ29kZUF0KDApO1xuICAgICAgICAgICAgaWYgKHRoaXMuYmFzZU1hcFt4Y10gIT09IDI1NSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoeCArIFwiIGlzIGFtYmlndW91c1wiKTtcbiAgICAgICAgICAgIHRoaXMuYmFzZU1hcFt4Y10gPSBpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYmFzZSA9IHRoaXMuYWxwaGFiZXQubGVuZ3RoO1xuICAgICAgICB0aGlzLmxlYWRlciA9IHRoaXMuYWxwaGFiZXQuY2hhckF0KDApO1xuICAgICAgICB0aGlzLmZhY3RvciA9IE1hdGgubG9nKHRoaXMuYmFzZSkgLyBNYXRoLmxvZygyNTYpOyAvLyBsb2coQkFTRSkgLyBsb2coMjU2KSwgcm91bmRlZCB1cFxuICAgICAgICB0aGlzLmlGYWN0b3IgPSBNYXRoLmxvZygyNTYpIC8gTWF0aC5sb2codGhpcy5iYXNlKTsgLy8gbG9nKDI1NikgLyBsb2coQkFTRSksIHJvdW5kZWQgdXBcbiAgICB9XG4gICAgZW5jb2RlKHNvdXJjZSkge1xuICAgICAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgc291cmNlID0gQnVmZmVyLmZyb20oc291cmNlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChBcnJheUJ1ZmZlci5pc1ZpZXcoc291cmNlKSkge1xuICAgICAgICAgICAgc291cmNlID0gbmV3IFVpbnQ4QXJyYXkoc291cmNlLmJ1ZmZlciwgc291cmNlLmJ5dGVPZmZzZXQsIHNvdXJjZS5ieXRlTGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IFVpbnQ4QXJyYXkuZnJvbShzb3VyY2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzb3VyY2UubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIC8vIFNraXAgJiBjb3VudCBsZWFkaW5nIHplcm9lcy5cbiAgICAgICAgbGV0IHplcm9lcyA9IDA7XG4gICAgICAgIGxldCBsZW5ndGggPSAwO1xuICAgICAgICBsZXQgcGJlZ2luID0gMDtcbiAgICAgICAgY29uc3QgcGVuZCA9IHNvdXJjZS5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChwYmVnaW4gIT09IHBlbmQgJiYgc291cmNlW3BiZWdpbl0gPT09IDApIHtcbiAgICAgICAgICAgIHBiZWdpbisrO1xuICAgICAgICAgICAgemVyb2VzKys7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWxsb2NhdGUgZW5vdWdoIHNwYWNlIGluIGJpZy1lbmRpYW4gYmFzZTU4IHJlcHJlc2VudGF0aW9uLlxuICAgICAgICBjb25zdCBzaXplID0gKChwZW5kIC0gcGJlZ2luKSAqIHRoaXMuaUZhY3RvciArIDEpID4+PiAwO1xuICAgICAgICBjb25zdCBiNTggPSBuZXcgVWludDhBcnJheShzaXplKTtcbiAgICAgICAgLy8gUHJvY2VzcyB0aGUgYnl0ZXMuXG4gICAgICAgIHdoaWxlIChwYmVnaW4gIT09IHBlbmQpIHtcbiAgICAgICAgICAgIGxldCBjYXJyeSA9IHNvdXJjZVtwYmVnaW5dO1xuICAgICAgICAgICAgLy8gQXBwbHkgXCJiNTggPSBiNTggKiAyNTYgKyBjaFwiLlxuICAgICAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICAgICAgZm9yIChsZXQgaXQxID0gc2l6ZSAtIDE7IChjYXJyeSAhPT0gMCB8fCBpIDwgbGVuZ3RoKSAmJiBpdDEgIT09IC0xOyBpdDEtLSwgaSsrKSB7XG4gICAgICAgICAgICAgICAgY2FycnkgKz0gKDI1NiAqIGI1OFtpdDFdKSA+Pj4gMDtcbiAgICAgICAgICAgICAgICBiNThbaXQxXSA9IGNhcnJ5ICUgdGhpcy5iYXNlID4+PiAwO1xuICAgICAgICAgICAgICAgIGNhcnJ5ID0gKGNhcnJ5IC8gdGhpcy5iYXNlKSA+Pj4gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYXJyeSAhPT0gMClcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOb24temVybyBjYXJyeVwiKTtcbiAgICAgICAgICAgIGxlbmd0aCA9IGk7XG4gICAgICAgICAgICBwYmVnaW4rKztcbiAgICAgICAgfVxuICAgICAgICAvLyBTa2lwIGxlYWRpbmcgemVyb2VzIGluIGJhc2U1OCByZXN1bHQuXG4gICAgICAgIGxldCBpdDIgPSBzaXplIC0gbGVuZ3RoO1xuICAgICAgICB3aGlsZSAoaXQyICE9PSBzaXplICYmIGI1OFtpdDJdID09PSAwKVxuICAgICAgICAgICAgaXQyKys7XG4gICAgICAgIC8vIFRyYW5zbGF0ZSB0aGUgcmVzdWx0IGludG8gYSBzdHJpbmcuXG4gICAgICAgIGxldCBzdHIgPSB0aGlzLmxlYWRlci5yZXBlYXQoemVyb2VzKTtcbiAgICAgICAgZm9yICg7IGl0MiA8IHNpemU7ICsraXQyKSB7XG4gICAgICAgICAgICBzdHIgKz0gdGhpcy5hbHBoYWJldC5jaGFyQXQoYjU4W2l0Ml0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICAgIGRlY29kZVVuc2FmZShzb3VyY2UpIHtcbiAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7XG4gICAgICAgIGxldCBwc3ogPSAwO1xuICAgICAgICAvLyBTa2lwIGFuZCBjb3VudCBsZWFkaW5nICcxJ3MuXG4gICAgICAgIGxldCB6ZXJvZXMgPSAwO1xuICAgICAgICBsZXQgbGVuZ3RoID0gMDtcbiAgICAgICAgd2hpbGUgKHNvdXJjZVtwc3pdID09PSB0aGlzLmxlYWRlcikge1xuICAgICAgICAgICAgemVyb2VzKys7XG4gICAgICAgICAgICBwc3orKztcbiAgICAgICAgfVxuICAgICAgICAvLyBBbGxvY2F0ZSBlbm91Z2ggc3BhY2UgaW4gYmlnLWVuZGlhbiBiYXNlMjU2IHJlcHJlc2VudGF0aW9uLlxuICAgICAgICBjb25zdCBzaXplID0gKChzb3VyY2UubGVuZ3RoIC0gcHN6KSAqIHRoaXMuZmFjdG9yICsgMSkgPj4+IDA7IC8vIGxvZyg1OCkgLyBsb2coMjU2KSwgcm91bmRlZCB1cC5cbiAgICAgICAgY29uc3QgYjI1NiA9IG5ldyBVaW50OEFycmF5KHNpemUpO1xuICAgICAgICAvLyBQcm9jZXNzIHRoZSBjaGFyYWN0ZXJzLlxuICAgICAgICB3aGlsZSAoc291cmNlW3Bzel0pIHtcbiAgICAgICAgICAgIC8vIERlY29kZSBjaGFyYWN0ZXJcbiAgICAgICAgICAgIGxldCBjYXJyeSA9IHRoaXMuYmFzZU1hcFtzb3VyY2UuY2hhckNvZGVBdChwc3opXTtcbiAgICAgICAgICAgIC8vIEludmFsaWQgY2hhcmFjdGVyXG4gICAgICAgICAgICBpZiAoY2FycnkgPT09IDI1NSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgICAgICBmb3IgKGxldCBpdDMgPSBzaXplIC0gMTsgKGNhcnJ5ICE9PSAwIHx8IGkgPCBsZW5ndGgpICYmIGl0MyAhPT0gLTE7IGl0My0tLCBpKyspIHtcbiAgICAgICAgICAgICAgICBjYXJyeSArPSAodGhpcy5iYXNlICogYjI1NltpdDNdKSA+Pj4gMDtcbiAgICAgICAgICAgICAgICBiMjU2W2l0M10gPSBjYXJyeSAlIDI1NiA+Pj4gMDtcbiAgICAgICAgICAgICAgICBjYXJyeSA9IChjYXJyeSAvIDI1NikgPj4+IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FycnkgIT09IDApXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm9uLXplcm8gY2FycnlcIik7XG4gICAgICAgICAgICBsZW5ndGggPSBpO1xuICAgICAgICAgICAgcHN6Kys7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2tpcCBsZWFkaW5nIHplcm9lcyBpbiBiMjU2LlxuICAgICAgICBsZXQgaXQ0ID0gc2l6ZSAtIGxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGl0NCAhPT0gc2l6ZSAmJiBiMjU2W2l0NF0gPT09IDApXG4gICAgICAgICAgICBpdDQrKztcbiAgICAgICAgY29uc3QgdmNoID0gbmV3IFVpbnQ4QXJyYXkoemVyb2VzICsgKHNpemUgLSBpdDQpKTtcbiAgICAgICAgbGV0IGogPSB6ZXJvZXM7XG4gICAgICAgIHdoaWxlIChpdDQgIT09IHNpemUpXG4gICAgICAgICAgICB2Y2hbaisrXSA9IGIyNTZbaXQ0KytdO1xuICAgICAgICByZXR1cm4gdmNoO1xuICAgIH1cbiAgICBkZWNvZGUoc291cmNlKSB7XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuZGVjb2RlVW5zYWZlKHNvdXJjZSk7XG4gICAgICAgIGlmIChidWZmZXIpXG4gICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOb24tYmFzZVwiICsgdGhpcy5iYXNlICsgXCIgY2hhcmFjdGVyXCIpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBDcnlwdG9VdGlscyB7XG4gICAgc3RhdGljIHsgdGhpcy5iNThlbmNvZGVyID0gbmV3IEJhc2VFbmNvZGVyKEJBU0VfQUxQSEFCRVQuQkFTRTU4KTsgfVxuICAgIHN0YXRpYyB7IHRoaXMubG9nZ2VyID0gbmV3IE1pbmlMb2dnZXIoQ3J5cHRvVXRpbHMubmFtZSk7IH1cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuICAgIHN0YXRpYyBmYWJyaWNJZEZyb21DZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhzdHJpbmdGb3JtYXQoXCJQYXJzaW5nIGNlcnRpZmljYXRlOiB7MH1cIiwgY2VydGlmaWNhdGUpKTtcbiAgICAgICAgY29uc3QgY2VydCA9IG5ldyB4NTA5Llg1MDlDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7XG4gICAgICAgIGNvbnN0IHsgc3ViamVjdCwgaXNzdWVyIH0gPSBjZXJ0O1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhzdHJpbmdGb3JtYXQoXCJDZXJ0aWZpY2F0ZSBwYXJzZWQgd2l0aCBzdWJqZWN0IHswfSBhbmQgaXNzdWVyIHsxfVwiLCBzdWJqZWN0LCBpc3N1ZXIpKTtcbiAgICAgICAgcmV0dXJuIGB4NTA5OjovJHtzdWJqZWN0LnJlcGxhY2VBbGwoXCIsIFwiLCBcIi9cIil9OjovJHtpc3N1ZXIucmVwbGFjZUFsbChcIiwgXCIsIFwiL1wiKX1gO1xuICAgIH1cbiAgICBzdGF0aWMgZW5jb2RlKHN0cikge1xuICAgICAgICByZXR1cm4gdGhpcy5iNThlbmNvZGVyLmVuY29kZShzdHIpO1xuICAgIH1cbiAgICBzdGF0aWMgZGVjb2RlKHN0cikge1xuICAgICAgICBjb25zdCBkZWNvZGVkID0gdGhpcy5iNThlbmNvZGVyLmRlY29kZShzdHIpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoZGVjb2RlZCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHN0YXRpYyBzdHJpbmdUb0FycmF5QnVmZmVyKHN0cikge1xuICAgICAgICBjb25zdCBidWYgPSBuZXcgQXJyYXlCdWZmZXIoc3RyLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IGJ1ZlZpZXcgPSBuZXcgVWludDhBcnJheShidWYpO1xuICAgICAgICBmb3IgKGxldCBpID0gMCwgc3RyTGVuID0gc3RyLmxlbmd0aDsgaSA8IHN0ckxlbjsgaSsrKSB7XG4gICAgICAgICAgICBidWZWaWV3W2ldID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1ZjtcbiAgICB9XG4gICAgc3RhdGljIGFzeW5jIGV4dHJhY3RLZXkodHlwZSwgcGVtLCB1c2FnZXMpIHtcbiAgICAgICAgY29uc3Qgc3VidGxlID0gY3J5cHRvLnN1YnRsZTtcbiAgICAgICAgY29uc3Qgc3RyID0gcGVtXG4gICAgICAgICAgICAudG9TdHJpbmcoXCJ1dGY4XCIpXG4gICAgICAgICAgICAucmVwbGFjZShuZXcgUmVnRXhwKGAtLS0tLUJFR0lOICgke3R5cGUudG9VcHBlckNhc2UoKX0gS0VZfENFUlRJRklDQVRFKS0tLS0tYCksIFwiXCIpXG4gICAgICAgICAgICAucmVwbGFjZUFsbChcIlxcblwiLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cChgLS0tLS1FTkQgKCR7dHlwZS50b1VwcGVyQ2FzZSgpfSBLRVl8Q0VSVElGSUNBVEUpLS0tLS1gKSwgXCJcIik7XG4gICAgICAgIGNvbnN0IGRlY29kZWQgPSBCdWZmZXIuZnJvbShzdHIsIFwiYmFzZTY0XCIpLnRvU3RyaW5nKFwiYmluYXJ5XCIpO1xuICAgICAgICBjb25zdCBiaW5hcnlEZXIgPSB0aGlzLnN0cmluZ1RvQXJyYXlCdWZmZXIoZGVjb2RlZCk7XG4gICAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHN1YnRsZS5pbXBvcnRLZXkoXCJwa2NzOFwiLCBiaW5hcnlEZXIsIHtcbiAgICAgICAgICAgIG5hbWU6IFwiRUNEU0FcIixcbiAgICAgICAgICAgIG5hbWVkQ3VydmU6IFwiUC0yNTZcIixcbiAgICAgICAgfSwgdHJ1ZSwgdXNhZ2VzID8gdXNhZ2VzIDogW1wic2lnblwiXSk7XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICAgIHN0YXRpYyBhc3luYyBleHRyYWN0UHJpdmF0ZUtleShwZW0sIHVzYWdlcykge1xuICAgICAgICByZXR1cm4gdGhpcy5leHRyYWN0S2V5KFwicHJpdmF0ZVwiLCBwZW0sIHVzYWdlcyk7XG4gICAgfVxuICAgIHN0YXRpYyBhc3luYyBleHRyYWN0UHVibGljS2V5KHBlbSwgdXNhZ2VzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RLZXkoXCJwdWJsaWNcIiwgcGVtLCB1c2FnZXMpO1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgc2lnbihwcml2YXRlS2V5LCBkYXRhKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMuZXh0cmFjdFByaXZhdGVLZXkocHJpdmF0ZUtleSk7XG4gICAgICAgIGNvbnN0IGJ1ZmYgPSAoYXdhaXQgY3J5cHRvLnN1YnRsZS5zaWduKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRUNEU0FcIixcbiAgICAgICAgICAgIGhhc2g6IFwiU0hBLTI1NlwiLFxuICAgICAgICB9LCBrZXksIGRhdGEpKTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkoYnVmZikpXG4gICAgICAgICAgICAubWFwKChiKSA9PiBiLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCBcIjBcIikpXG4gICAgICAgICAgICAuam9pbihcIlwiKTtcbiAgICB9XG4gICAgc3RhdGljIGFzeW5jIHZlcmlmeShjZXJ0aWZpY2F0ZSwgc2lnbmF0dXJlLCBkYXRhKSB7XG4gICAgICAgIGNvbnN0IGNlcnQgPSBuZXcgeDUwOS5YNTA5Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpO1xuICAgICAgICBjb25zdCBrZXkgPSBhd2FpdCBjZXJ0LnB1YmxpY0tleS5leHBvcnQoKTtcbiAgICAgICAgc2lnbmF0dXJlID0gKHR5cGVvZiBzaWduYXR1cmUgPT09IFwic3RyaW5nXCIgPyBCdWZmZXIuZnJvbShzaWduYXR1cmUsIFwiaGV4XCIpIDogc2lnbmF0dXJlKTtcbiAgICAgICAgZGF0YSA9ICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEJ1ZmZlci5mcm9tKGRhdGEpIDogZGF0YSk7XG4gICAgICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeSh7XG4gICAgICAgICAgICBuYW1lOiBcIkVDRFNBXCIsXG4gICAgICAgICAgICBoYXNoOiBcIlNIQS0yNTZcIixcbiAgICAgICAgfSwga2V5LCBzaWduYXR1cmUsIGRhdGEpO1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgZW5jcnlwdChjZXJ0aWZpY2F0ZSwgZGF0YSkge1xuICAgICAgICBjb25zdCBjZXJ0ID0gbmV3IHg1MDkuWDUwOUNlcnRpZmljYXRlKGNlcnRpZmljYXRlKTtcbiAgICAgICAgY29uc3Qga2V5ID0gYXdhaXQgY2VydC5wdWJsaWNLZXkuZXhwb3J0KCk7XG4gICAgICAgIGRhdGEgPSAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgPyBCdWZmZXIuZnJvbShkYXRhKSA6IGRhdGEpO1xuICAgICAgICBjb25zdCBidWZmID0gYXdhaXQgdGhpcy5nZXRTdWJ0bGVDcnlwdG8oKS5lbmNyeXB0KHtcbiAgICAgICAgICAgIG5hbWU6IFwiRUNEU0FcIixcbiAgICAgICAgfSwga2V5LCBkYXRhKTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkoYnVmZikpXG4gICAgICAgICAgICAubWFwKChiKSA9PiBiLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCBcIjBcIikpXG4gICAgICAgICAgICAuam9pbihcIlwiKTtcbiAgICB9XG4gICAgc3RhdGljIGdldFN1YnRsZUNyeXB0bygpIHtcbiAgICAgICAgcmV0dXJuIGlzQnJvd3NlcigpXG4gICAgICAgICAgICA/IGdsb2JhbFRoaXMud2luZG93LmNyeXB0by5zdWJ0bGVcbiAgICAgICAgICAgIDogY3J5cHRvLnN1YnRsZTtcbiAgICB9XG4gICAgc3RhdGljIGFzeW5jIGRlY3J5cHQocHJpdmF0ZUtleSwgZGF0YSkge1xuICAgICAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmV4dHJhY3RQcml2YXRlS2V5KHByaXZhdGVLZXkpO1xuICAgICAgICBkYXRhID0gKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiID8gQnVmZmVyLmZyb20oZGF0YSwgXCJoZXhcIikgOiBkYXRhKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuZGVjcnlwdCh7XG4gICAgICAgICAgICBuYW1lOiBcIkVDRFNBXCIsXG4gICAgICAgIH0sIGtleSwgZGF0YSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5IFV0aWwgZnVuY3Rpb24gdG8gZ2V0IGEgcmFuZG9tIG1hc3RlciBrZXlcbiAgICAgKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJZiBkYXRhIGlzIG5vdCBwYXNzZWQsIGEgcmFuZG9tIEFycmF5QnVmZmVyIHdpbGwgYmUgZ2VuZXJhdGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBkYXRhIGVuY3J5dGlvbiBkYXRhXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb24gZ2V0TWFzdGVyXG4gICAgICovXG4gICAgc3RhdGljIGFzeW5jIGdldE1hc3RlcihkYXRhKSB7XG4gICAgICAgIGNvbnN0IHRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGdlbkdlbmVzaXMgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xuICAgICAgICAgICAgZGF0YSA9IHRleHRFbmNvZGVyLmVuY29kZShnZW5HZW5lc2lzKS5idWZmZXI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW1wb3J0ZWRLZXkgPSBhd2FpdCB0aGlzLmdldFN1YnRsZUNyeXB0bygpLmltcG9ydEtleShcInJhd1wiLCBkYXRhLCBDUllQVE8uS0VZX0FMR09SWVRITSwgZmFsc2UsIFtcImRlcml2ZUJpdHNcIl0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5OiBpbXBvcnRlZEtleSxcbiAgICAgICAgICAgIGl2OiBkYXRhLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAc3VtbWFyeSBVdGlsIGZ1bmN0aW9uIHRvIGRlcml2ZSBhIGtleSBmcm9tIGFub3RoZXIga2V5XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2FsdFxuICAgICAqIEBwYXJhbSB7Q3J5cHRvS2V5fSBrZXkgT3JpZ2luYWwga2V5XG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb24gZ2V0RGVyaXZhdGlvbktleVxuICAgICAqL1xuICAgIHN0YXRpYyBhc3luYyBnZXREZXJpdmF0aW9uS2V5KHNhbHQsIGtleSkge1xuICAgICAgICBjb25zdCB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgICAgICBjb25zdCBzYWx0QnVmZmVyID0gdGV4dEVuY29kZXIuZW5jb2RlKHNhbHQpO1xuICAgICAgICBjb25zdCBzYWx0SGFzaGVkID0gYXdhaXQgdGhpcy5nZXRTdWJ0bGVDcnlwdG8oKS5kaWdlc3QoXCJTSEEtMjU2XCIsIHNhbHRCdWZmZXIpO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICBuYW1lOiBDUllQVE8uS0VZX0FMR09SWVRITSxcbiAgICAgICAgICAgIGhhc2g6IENSWVBUTy5IQVNILFxuICAgICAgICAgICAgc2FsdDogc2FsdEhhc2hlZCxcbiAgICAgICAgICAgIGl0ZXJhdGlvbnM6IENSWVBUTy5JVEVSQVRJT05TLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkZXJpdmF0aW9uID0gYXdhaXQgdGhpcy5nZXRTdWJ0bGVDcnlwdG8oKS5kZXJpdmVCaXRzKHBhcmFtcywga2V5LCBDUllQVE8uS0VZTEVOR1RIICogOCk7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEtleShkZXJpdmF0aW9uKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQHN1bW1hcnkgVXRpbCBmdW5jdGlvbiB0byBnZXQgdGhlIGtleSBhbmQgSVYgZnJvbSB0aGUgQ3J5dG9LZXkgYXJyYXlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGRlcml2YXRpb25cbiAgICAgKlxuICAgICAqIEBmdW5jdGlvbiBnZXRLZXlcbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgZ2V0S2V5KGRlcml2YXRpb24pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICBjb25zdCBpdmxlbiA9IDE2O1xuICAgICAgICBjb25zdCBrZXlsZW4gPSAzMjtcbiAgICAgICAgY29uc3QgZGVyaXZlZEtleSA9IGRlcml2YXRpb24uc2xpY2UoMCwga2V5bGVuKTtcbiAgICAgICAgY29uc3QgaXYgPSBkZXJpdmF0aW9uLnNsaWNlKGtleWxlbik7XG4gICAgICAgIGNvbnN0IGltcG9ydGVkRW5jcnlwdGlvbktleSA9IGF3YWl0IHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuaW1wb3J0S2V5KFwicmF3XCIsIGRlcml2ZWRLZXksIHsgbmFtZTogQ1JZUFRPLkFMR09SWVRITSB9LCBmYWxzZSwgW1wiZW5jcnlwdFwiLCBcImRlY3J5cHRcIl0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5OiBpbXBvcnRlZEVuY3J5cHRpb25LZXksXG4gICAgICAgICAgICBpdjogaXYsXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5IFV0aWwgZnVuY3Rpb24gdG8gZGVjcnlwdCBkYXRhXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dFxuICAgICAqIEBwYXJhbSB7a2V5T2JqZWN0fSBrZXlPYmplY3RcbiAgICAgKlxuICAgICAqIEBmdW5jdGlvbiBlbmNyeXB0XG4gICAgICovXG4gICAgc3RhdGljIGFzeW5jIGVuY3J5cHRQaW4odGV4dCwga2V5T2JqZWN0KSB7XG4gICAgICAgIGNvbnN0IHRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgICAgIGNvbnN0IHRleHRCdWZmZXIgPSB0ZXh0RW5jb2Rlci5lbmNvZGUodGV4dCk7XG4gICAgICAgIGNvbnN0IGVuY3J5cHRlZFRleHQgPSBhd2FpdCB0aGlzLmdldFN1YnRsZUNyeXB0bygpLmVuY3J5cHQoeyBuYW1lOiBDUllQVE8uQUxHT1JZVEhNLCBpdjoga2V5T2JqZWN0Lml2IH0sIGtleU9iamVjdC5rZXksIHRleHRCdWZmZXIpO1xuICAgICAgICByZXR1cm4gZW5jcnlwdGVkVGV4dDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQHN1bW1hcnkgVXRpbCBmdW5jdGlvbiB0byBkZWNyeXB0IGRhdGFcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7QnVmZmVyU291cmNlfSBlbmNyeXB0ZWRUZXh0XG4gICAgICogQHBhcmFtIHtrZXlPYmplY3R9IGtleU9iamVjdFxuICAgICAqXG4gICAgICogQGZ1bmN0aW9uIGRlY3J5cHRcbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgZGVjcnlwdFBpbihlbmNyeXB0ZWRUZXh0LCBrZXlPYmplY3QpIHtcbiAgICAgICAgY29uc3QgdGV4dERlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKTtcbiAgICAgICAgY29uc3QgZGVjcnlwdGVkVGV4dCA9IGF3YWl0IHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuZGVjcnlwdCh7IG5hbWU6IENSWVBUTy5BTEdPUllUSE0sIGl2OiBrZXlPYmplY3QuaXYgfSwga2V5T2JqZWN0LmtleSwgZW5jcnlwdGVkVGV4dCk7XG4gICAgICAgIHJldHVybiB0ZXh0RGVjb2Rlci5kZWNvZGUoZGVjcnlwdGVkVGV4dCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWTNKNWNIUnZMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMMk5zYVdWdWRDOWpjbmx3ZEc4dWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eExRVUZMTEVsQlFVa3NUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU4yUXl4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGaExFMUJRVTBzY1VKQlFYRkNMRU5CUVVNN1FVRkRlRVFzVDBGQlR5eEZRVUZGTEZsQlFWa3NSVUZCUlN4TlFVRk5MR2REUVVGblF5eERRVUZETzBGQlF6bEVMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzVlVGQlZTeEZRVUZGTEUxQlFVMHNiVUpCUVcxQ0xFTkJRVU03UVVGRk1VUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hOUVVGTkxFVkJRVVVzUTBGQlF6dEJRVU0xUWl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVVm9ReXhOUVVGTkxFTkJRVTRzU1VGQldTeGhRVmxZTzBGQldrUXNWMEZCV1N4aFFVRmhPMGxCUTNaQ0xEWkNRVUZaTEVOQlFVRTdTVUZEV2l4dFEwRkJhMElzUTBGQlFUdEpRVU5zUWl4MVEwRkJjMElzUTBGQlFUdEpRVU4wUWl3MFEwRkJNa0lzUTBGQlFUdEpRVU16UWl3MFJFRkJNa01zUTBGQlFUdEpRVU16UXl3NFJFRkJOa01zUTBGQlFUdEpRVU0zUXl4blJVRkJLME1zUTBGQlFUdEpRVU12UXl4elJrRkJjVVVzUTBGQlFUdEpRVU55UlN3d1JrRkJlVVVzUTBGQlFUdEpRVU42UlN3MFJrRkJNa1VzUTBGQlFUdEpRVU16UlN3clJrRkJPRVVzUTBGQlFUdEJRVU5vUml4RFFVRkRMRVZCV2xjc1lVRkJZU3hMUVVGaUxHRkJRV0VzVVVGWmVFSTdRVUZQUkN4TlFVRk5MRU5CUVU0c1NVRkJXU3hOUVZGWU8wRkJVa1FzVjBGQldTeE5RVUZOTzBsQlEyaENMREJDUVVGblFpeERRVUZCTzBsQlEyaENMR3RFUVVGcFFpeERRVUZCTzBsQlEycENMRGhEUVVGakxFTkJRVUU3U1VGRFpDdzRSRUZCYzBJc1EwRkJRVHRKUVVOMFFpeG5SVUZCZFVJc1EwRkJRVHRKUVVOMlFpd3JRa0ZCY1VJc1EwRkJRVHRKUVVOeVFpeHJRMEZCZDBJc1EwRkJRVHRCUVVNeFFpeERRVUZETEVWQlVsY3NUVUZCVFN4TFFVRk9MRTFCUVUwc1VVRlJha0k3UVVGRlJDeE5RVUZOTEU5QlFVOHNWMEZCVnp0SlFVOTBRaXhaUVVGdlFpeFJRVUYxUWp0UlFVRjJRaXhoUVVGUkxFZEJRVklzVVVGQlVTeERRVUZsTzFGQlRqRkNMRmxCUVU4c1IwRkJaU3hKUVVGSkxGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVOTZSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWRCUVVjN1dVRkJSU3hOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03VVVGRmRFVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFpRVUZGTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzFGQlJYQkZMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTTdXVUZEZWtNc1RVRkJUU3hEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNM1FpeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6TkNMRWxCUVVrc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4SFFVRkhPMmRDUVVGRkxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNRMEZCUXl4SFFVRkhMR1ZCUVdVc1EwRkJReXhEUVVGRE8xbEJSVzVGTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzWkNMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFTkJRVU1zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRE8xRkJRMnBETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRkRU1zU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNiVU5CUVcxRE8xRkJRM1JHTEVsQlFVa3NRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRzFEUVVGdFF6dEpRVU42Uml4RFFVRkRPMGxCUlVRc1RVRkJUU3hEUVVGRExFMUJRVGhETzFGQlEyNUVMRWxCUVVrc1QwRkJUeXhOUVVGTkxFdEJRVXNzVVVGQlVTeEZRVUZGTEVOQlFVTTdXVUZETDBJc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRMMElzUTBGQlF6dGhRVUZOTEVsQlFVa3NWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzUkRMRTFCUVUwc1IwRkJSeXhKUVVGSkxGVkJRVlVzUTBGRGNrSXNUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkRZaXhOUVVGTkxFTkJRVU1zVlVGQlZTeEZRVU5xUWl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVOc1FpeERRVUZETzFGQlEwb3NRMEZCUXp0aFFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTJwRExFMUJRVTBzUjBGQlJ5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRMjVETEVOQlFVTTdVVUZGUkN4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF6dFpRVUZGTEU5QlFVOHNSVUZCUlN4RFFVRkRPMUZCUlc1RExDdENRVUVyUWp0UlFVTXZRaXhKUVVGSkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEWml4SlFVRkpMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRFppeEpRVUZKTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRaaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUXpOQ0xFOUJRVThzVFVGQlRTeExRVUZMTEVsQlFVa3NTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZETDBNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRFZDeE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTllMRU5CUVVNN1VVRkRSQ3cyUkVGQk5rUTdVVUZETjBRc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVONFJDeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU5xUXl4eFFrRkJjVUk3VVVGRGNrSXNUMEZCVHl4TlFVRk5MRXRCUVVzc1NVRkJTU3hGUVVGRkxFTkJRVU03V1VGRGRrSXNTVUZCU1N4TFFVRkxMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFsQlF6TkNMR2REUVVGblF6dFpRVU5vUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRFZpeExRVU5GTEVsQlFVa3NSMEZCUnl4SFFVRkhMRWxCUVVrc1IwRkJSeXhEUVVGRExFVkJRMnhDTEVOQlFVTXNTMEZCU3l4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVONlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkRWaXhEUVVGRE8yZENRVU5FTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1owSkJRMmhETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRU5CUVVNN1owSkJRMjVETEV0QlFVc3NSMEZCUnl4RFFVRkRMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTNCRExFTkJRVU03V1VGRFJDeEpRVUZKTEV0QlFVc3NTMEZCU3l4RFFVRkRPMmRDUVVGRkxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dFpRVVZ1UkN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMWdzVFVGQlRTeEZRVUZGTEVOQlFVTTdVVUZEV0N4RFFVRkRPMUZCUTBRc2QwTkJRWGRETzFGQlEzaERMRWxCUVVrc1IwRkJSeXhIUVVGSExFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTTdVVUZEZUVJc1QwRkJUeXhIUVVGSExFdEJRVXNzU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRE8xbEJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZGTjBNc2MwTkJRWE5ETzFGQlEzUkRMRWxCUVVrc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM0pETEU5QlFVOHNSMEZCUnl4SFFVRkhMRWxCUVVrc1JVRkJSU3hGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETzFsQlEzcENMRWRCUVVjc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU40UXl4RFFVRkRPMUZCUTBRc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeERRVUZETzBsQlJVOHNXVUZCV1N4RFFVRkRMRTFCUVdNN1VVRkRha01zU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNN1dVRkJSU3hQUVVGUExFbEJRVWtzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUld4RUxFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTmFMQ3RDUVVFclFqdFJRVU12UWl4SlFVRkpMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRFppeEpRVUZKTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRaaXhQUVVGUExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRGJrTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1dVRkRWQ3hIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5TTEVOQlFVTTdVVUZEUkN3NFJFRkJPRVE3VVVGRE9VUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhyUTBGQmEwTTdVVUZEYUVjc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRiRU1zTUVKQlFUQkNPMUZCUXpGQ0xFOUJRVThzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRia0lzYlVKQlFXMUNPMWxCUTI1Q0xFbEJRVWtzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTJwRUxHOUNRVUZ2UWp0WlFVTndRaXhKUVVGSkxFdEJRVXNzUzBGQlN5eEhRVUZITzJkQ1FVRkZMRTlCUVU4N1dVRkZNVUlzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTFZc1MwRkRSU3hKUVVGSkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4RlFVTnNRaXhEUVVGRExFdEJRVXNzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNSVUZEZWtNc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlExWXNRMEZCUXp0blFrRkRSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkRka01zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRXRCUVVzc1IwRkJSeXhIUVVGSExFdEJRVXNzUTBGQlF5eERRVUZETzJkQ1FVTTVRaXhMUVVGTExFZEJRVWNzUTBGQlF5eExRVUZMTEVkQlFVY3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJRemxDTEVOQlFVTTdXVUZEUkN4SlFVRkpMRXRCUVVzc1MwRkJTeXhEUVVGRE8yZENRVUZGTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0WlFVVnVSQ3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETzFsQlExZ3NSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRVaXhEUVVGRE8xRkJRMFFzSzBKQlFTdENPMUZCUXk5Q0xFbEJRVWtzUjBGQlJ5eEhRVUZITEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkRlRUlzVDBGQlR5eEhRVUZITEV0QlFVc3NTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETzFsQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkZPVU1zVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4VlFVRlZMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRiRVFzU1VGQlNTeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRPMUZCUTJZc1QwRkJUeXhIUVVGSExFdEJRVXNzU1VGQlNUdFpRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlRWRExFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNRMEZCUXp0SlFVVkVMRTFCUVUwc1EwRkJReXhOUVVGak8xRkJRMjVDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZEZWtNc1NVRkJTU3hOUVVGTk8xbEJRVVVzVDBGQlR5eE5RVUZOTEVOQlFVTTdVVUZETVVJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhaUVVGWkxFTkJRVU1zUTBGQlF6dEpRVU42UkN4RFFVRkRPME5CUTBZN1FVRkZSQ3hOUVVGTkxFOUJRVThzVjBGQlZ6dGhRVU5GTEdWQlFWVXNSMEZCUnl4SlFVRkpMRmRCUVZjc1EwRkJReXhoUVVGaExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdZVUZEYmtRc1YwRkJUU3hIUVVGSExFbEJRVWtzVlVGQlZTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOc1JTeG5Ra0ZCZFVJc1EwRkJRenRKUVVWNFFpeE5RVUZOTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zVjBGQmJVSTdVVUZEYUVRc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVRkRMREJDUVVFd1FpeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla1VzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFGQlEyNUVMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTJwRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVTm1MRmxCUVZrc1EwRkRWaXh2UkVGQmIwUXNSVUZEY0VRc1QwRkJUeXhGUVVOUUxFMUJRVTBzUTBGRFVDeERRVU5HTEVOQlFVTTdVVUZEUml4UFFVRlBMRlZCUVZVc1QwRkJUeXhEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVWQlFVVXNSMEZCUnl4RFFVRkRMRTFCUVUwc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJRenRKUVVOeVJpeERRVUZETzBsQlJVUXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGWE8xRkJRM1pDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEY2tNc1EwRkJRenRKUVVORUxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCVnp0UlFVTjJRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU0xUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxGZEJRVmNzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOcVJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0SlFVTm9RaXhEUVVGRE8wbEJSVVFzVFVGQlRTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVmM3VVVGRGNFTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1NVRkJTU3hYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUTNoRExFMUJRVTBzVDBGQlR5eEhRVUZITEVsQlFVa3NWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM0JETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFMUJRVTBzUjBGQlJ5eEhRVUZITEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXp0WlFVTnlSQ3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5xUXl4RFFVRkRPMUZCUTBRc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeERRVUZETzBsQlJVOHNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRemRDTEVsQlFUQkNMRVZCUXpGQ0xFZEJRVzlDTEVWQlEzQkNMRTFCUVdNN1VVRkZaQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUlRkQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVkQlFVYzdZVUZEV2l4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRE8yRkJRMmhDTEU5QlFVOHNRMEZEVGl4SlFVRkpMRTFCUVUwc1EwRkJReXhsUVVGbExFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNkMEpCUVhkQ0xFTkJRVU1zUlVGRGNrVXNSVUZCUlN4RFFVTklPMkZCUTBFc1ZVRkJWU3hEUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZGTEVOQlFVTTdZVUZEY0VJc1QwRkJUeXhEUVVOT0xFbEJRVWtzVFVGQlRTeERRVUZETEdGQlFXRXNTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSU3gzUWtGQmQwSXNRMEZCUXl4RlFVTnVSU3hGUVVGRkxFTkJRMGdzUTBGQlF6dFJRVU5LTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU01UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFUXNUVUZCVFN4SFFVRkhMRWRCUVVjc1RVRkJUU3hOUVVGTkxFTkJRVU1zVTBGQlV5eERRVU5vUXl4UFFVRlBMRVZCUTFBc1UwRkJVeXhGUVVOVU8xbEJRMFVzU1VGQlNTeEZRVUZGTEU5QlFVODdXVUZEWWl4VlFVRlZMRVZCUVVVc1QwRkJUenRUUVVOd1FpeEZRVU5FTEVsQlFVa3NSVUZEU2l4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkRNMElzUTBGQlF6dFJRVVZHTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1EwRkJRenRKUVVWRUxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUjBGQmIwSXNSVUZCUlN4TlFVRmpPMUZCUTJwRkxFOUJRVThzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzBsQlEycEVMRU5CUVVNN1NVRkZSQ3hOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFZEJRVzlDTEVWQlFVVXNUVUZCWXp0UlFVTm9SU3hQUVVGUExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWRCUVVjc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU5vUkN4RFFVRkRPMGxCUlVRc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCYTBJc1JVRkJSU3hKUVVGWk8xRkJRMmhFTEUxQlFVMHNSMEZCUnl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRM0pFTEUxQlFVMHNTVUZCU1N4SFFVRkhMRU5CUVVNc1RVRkJUU3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZEY0VNN1dVRkRSU3hKUVVGSkxFVkJRVVVzVDBGQlR6dFpRVU5pTEVsQlFVa3NSVUZCUlN4VFFVRlRPMU5CUTJoQ0xFVkJRMFFzUjBGQlJ5eEZRVU5JTEVsQlFWY3NRMEZEV2l4RFFVRm5RaXhEUVVGRE8xRkJSV3hDTEU5QlFVOHNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0aFFVTndReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dGhRVU16UXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRFpDeERRVUZETzBsQlJVUXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRMnBDTEZkQlFXMUNMRVZCUTI1Q0xGTkJRVEJDTEVWQlF6RkNMRWxCUVhGQ08xRkJSWEpDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVTnVSQ3hOUVVGTkxFZEJRVWNzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03VVVGRE1VTXNVMEZCVXl4SFFVRkhMRU5CUTFZc1QwRkJUeXhUUVVGVExFdEJRVXNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVOb1JTeERRVUZETzFGQlExb3NTVUZCU1N4SFFVRkhMRU5CUVVNc1QwRkJUeXhKUVVGSkxFdEJRVXNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVZjc1EwRkJRenRSUVVOMlJTeFBRVUZQTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVONlFqdFpRVU5GTEVsQlFVa3NSVUZCUlN4UFFVRlBPMWxCUTJJc1NVRkJTU3hGUVVGRkxGTkJRVk03VTBGRGFFSXNSVUZEUkN4SFFVRkhMRVZCUTBnc1UwRkJaMElzUlVGRGFFSXNTVUZCVnl4RFFVTmFMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJiVUlzUlVGQlJTeEpRVUZ4UWp0UlFVTTNSQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRGJrUXNUVUZCVFN4SFFVRkhMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMUZCUXpGRExFbEJRVWtzUjBGQlJ5eERRVUZETEU5QlFVOHNTVUZCU1N4TFFVRkxMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZYTEVOQlFVTTdVVUZEZGtVc1RVRkJUU3hKUVVGSkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVNdlF6dFpRVU5GTEVsQlFVa3NSVUZCUlN4UFFVRlBPMU5CUTJRc1JVRkRSQ3hIUVVGSExFVkJRMGdzU1VGQlNTeERRVU5NTEVOQlFVTTdVVUZGUml4UFFVRlBMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1lVRkRjRU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdZVUZETTBNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlEyUXNRMEZCUXp0SlFVVlBMRTFCUVUwc1EwRkJReXhsUVVGbE8xRkJRelZDTEU5QlFVOHNVMEZCVXl4RlFVRkZPMWxCUTJoQ0xFTkJRVU1zUTBGQlJTeFZRVUZyUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRUdFpRVU14UXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF6dEpRVU53UWl4RFFVRkRPMGxCUlVRc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCYTBJc1JVRkJSU3hKUVVGeFFqdFJRVU0xUkN4TlFVRk5MRWRCUVVjc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU55UkN4SlFVRkpMRWRCUVVjc1EwRkRUQ3hQUVVGUExFbEJRVWtzUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRMnBFTEVOQlFVTTdVVUZEV2l4UFFVRlBMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlEyNURPMWxCUTBVc1NVRkJTU3hGUVVGRkxFOUJRVTg3VTBGRFpDeEZRVU5FTEVkQlFVY3NSVUZEU0N4SlFVRkpMRU5CUTB3c1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdPenM3T3pzN1QwRlJSenRKUVVOSUxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVd0Q08xRkJRM1pETEUxQlFVMHNWMEZCVnl4SFFVRkhMRWxCUVVrc1YwRkJWeXhGUVVGRkxFTkJRVU03VVVGRGRFTXNTVUZCU1N4SlFVRkpMRXRCUVVzc1UwRkJVeXhGUVVGRkxFTkJRVU03V1VGRGRrSXNUVUZCVFN4VlFVRlZMRWRCUVVjc1RVRkJUU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFsQlEzWkRMRWxCUVVrc1IwRkJSeXhYUVVGWExFTkJRVU1zVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVNdlF5eERRVUZETzFGQlJVUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVTjRSQ3hMUVVGTExFVkJRMHdzU1VGQlNTeEZRVU5LTEUxQlFVMHNRMEZCUXl4aFFVRjFRaXhGUVVNNVFpeExRVUZMTEVWQlEwd3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkRaaXhEUVVGRE8xRkJSVVlzVDBGQlR6dFpRVU5NTEVkQlFVY3NSVUZCUlN4WFFVRlhPMWxCUTJoQ0xFVkJRVVVzUlVGQlJTeEpRVUZMTzFOQlExWXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSRHM3T3pzN096dFBRVTlITzBsQlEwZ3NUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SlFVRlpMRVZCUVVVc1IwRkJZenRSUVVONFJDeE5RVUZOTEZkQlFWY3NSMEZCUnl4SlFVRkpMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJRM1JETEUxQlFVMHNWVUZCVlN4SFFVRkhMRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZETlVNc1RVRkJUU3hWUVVGVkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVOd1JDeFRRVUZUTEVWQlExUXNWVUZCVlN4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxFMUJRVTBzUjBGQlJ6dFpRVU5pTEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1lVRkJkVUk3V1VGRGNFTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSk8xbEJRMnBDTEVsQlFVa3NSVUZCUlN4VlFVRlZPMWxCUTJoQ0xGVkJRVlVzUlVGQlJTeE5RVUZOTEVOQlFVTXNWVUZCVlR0VFFVTTVRaXhEUVVGRE8xRkJRMFlzVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU1zVlVGQlZTeERRVU40UkN4TlFVRk5MRVZCUTA0c1IwRkJSeXhGUVVOSUxFMUJRVTBzUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVTnlRaXhEUVVGRE8xRkJRMFlzVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wbEJRMnBETEVOQlFVTTdTVUZGUkRzN096czdPMDlCVFVjN1NVRkRTQ3hOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRjFRanRSUVVONlF5dzJSRUZCTmtRN1VVRkROMFFzVFVGQlRTeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTJwQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVWQlFVVXNRMEZCUXp0UlFVTnNRaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU12UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUTNCRExFMUJRVTBzY1VKQlFYRkNMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVTnNSU3hMUVVGTExFVkJRMHdzVlVGQlZTeEZRVU5XTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhUUVVGdFFpeEZRVUZGTEVWQlEzQkRMRXRCUVVzc1JVRkRUQ3hEUVVGRExGTkJRVk1zUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZEZGtJc1EwRkJRenRSUVVOR0xFOUJRVTg3V1VGRFRDeEhRVUZITEVWQlFVVXNjVUpCUVhGQ08xbEJRekZDTEVWQlFVVXNSVUZCUlN4RlFVRkZPMU5CUTFBc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdPenM3T3p0UFFVOUhPMGxCUTBnc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlEzSkNMRWxCUVZrc1JVRkRXaXhUUVVGdlFqdFJRVVZ3UWl4TlFVRk5MRmRCUVZjc1IwRkJSeXhKUVVGSkxGZEJRVmNzUlVGQlJTeERRVUZETzFGQlEzUkRMRTFCUVUwc1ZVRkJWU3hIUVVGSExGZEJRVmNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkROVU1zVFVGQlRTeGhRVUZoTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVU40UkN4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zVTBGQmJVSXNSVUZCUlN4RlFVRkZMRVZCUVVVc1UwRkJVeXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVU4wUkN4VFFVRlRMRU5CUVVNc1IwRkJSeXhGUVVOaUxGVkJRVlVzUTBGRFdDeERRVUZETzFGQlEwWXNUMEZCVHl4aFFVRmhMRU5CUVVNN1NVRkRka0lzUTBGQlF6dEpRVVZFT3pzN096czdPMDlCVDBjN1NVRkRTQ3hOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEZWQlFWVXNRMEZEY2tJc1lVRkJNRUlzUlVGRE1VSXNVMEZCYjBJN1VVRkZjRUlzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4WFFVRlhMRVZCUVVVc1EwRkJRenRSUVVOMFF5eE5RVUZOTEdGQlFXRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlEzaEVMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eFRRVUZ0UWl4RlFVRkZMRVZCUVVVc1JVRkJSU3hUUVVGVExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlEzUkVMRk5CUVZNc1EwRkJReXhIUVVGSExFVkJRMklzWVVGQllTeERRVU5rTEVOQlFVTTdVVUZEUml4UFFVRlBMRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdTVUZETTBNc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklIZzFNRGtnWm5KdmJTQmNJa0J3WldOMWJHbGhjaTk0TlRBNVhDSTdYRzVwYlhCdmNuUWdleUJEY25sd2RHOHNJRU55ZVhCMGIwdGxlU0I5SUdaeWIyMGdYQ0pBY0dWamRXeHBZWEl2ZDJWaVkzSjVjSFJ2WENJN1hHNXBiWEJ2Y25RZ2V5QnpkSEpwYm1kR2IzSnRZWFFnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJ2Y2kxMllXeHBaR0YwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJwYzBKeWIzZHpaWElzSUUxcGJtbE1iMmRuWlhJZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyeHZaMmRwYm1kY0lqdGNibHh1WTI5dWMzUWdZM0o1Y0hSdklEMGdibVYzSUVOeWVYQjBieWdwTzF4dWVEVXdPUzVqY25sd2RHOVFjbTkyYVdSbGNpNXpaWFFvWTNKNWNIUnZLVHRjYmx4dVpYaHdiM0owSUdWdWRXMGdRa0ZUUlY5QlRGQklRVUpGVkNCN1hHNGdJRUpCVTBVeUlEMGdYQ0l3TVZ3aUxGeHVJQ0JDUVZORk9DQTlJRndpTURFeU16UTFOamRjSWl4Y2JpQWdRa0ZUUlRFeElEMGdYQ0l3TVRJek5EVTJOemc1WVZ3aUxGeHVJQ0JDUVZORk1UWWdQU0JjSWpBeE1qTTBOVFkzT0RsaFltTmtaV1pjSWl4Y2JpQWdRa0ZUUlRNeUlEMGdYQ0l3TVRJek5EVTJOemc1UVVKRFJFVkdSMGhLUzAxT1VGRlNVMVJXVjFoWldsd2lMRnh1SUNCQ1FWTkZNekpmV2lBOUlGd2llV0p1WkhKbVp6aGxhbXR0WTNCeGVHOTBNWFYzYVhONllUTTBOV2czTmpsY0lpeGNiaUFnUWtGVFJUTTJJRDBnWENJd01USXpORFUyTnpnNVlXSmpaR1ZtWjJocGFtdHNiVzV2Y0hGeWMzUjFkbmQ0ZVhwY0lpeGNiaUFnUWtGVFJUVTRJRDBnWENJeE1qTTBOVFkzT0RsQlFrTkVSVVpIU0VwTFRFMU9VRkZTVTFSVlZsZFlXVnBoWW1Oa1pXWm5hR2xxYTIxdWIzQnhjbk4wZFhaM2VIbDZYQ0lzWEc0Z0lFSkJVMFUyTWlBOUlGd2lNREV5TXpRMU5qYzRPV0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZRVUpEUkVWR1IwaEpTa3RNVFU1UFVGRlNVMVJWVmxkWVdWcGNJaXhjYmlBZ1FrRlRSVFkwSUQwZ1hDSkJRa05FUlVaSFNFbEtTMHhOVGs5UVVWSlRWRlZXVjFoWldtRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBkWFozZUhsNk1ERXlNelExTmpjNE9Tc3ZYQ0lzWEc0Z0lFSkJVMFUyTnlBOUlGd2lRVUpEUkVWR1IwaEpTa3RNVFU1UFVGRlNVMVJWVmxkWVdWcGhZbU5rWldabmFHbHFhMnh0Ym05d2NYSnpkSFYyZDNoNWVqQXhNak0wTlRZM09Ea3RYeTRoZmx3aUxGeHVmVnh1WEc1bGVIQnZjblFnZEhsd1pTQnJaWGxQWW1wbFkzUWdQU0I3WEc0Z0lHbDJPaUJCY25KaGVVSjFabVpsY2p0Y2JpQWdhMlY1T2lCRGNubHdkRzlMWlhrN1hHNTlPMXh1WEc1bGVIQnZjblFnWlc1MWJTQkRVbGxRVkU4Z2UxeHVJQ0JJUVZOSUlEMGdYQ0pUU0VFdE1qVTJYQ0lzWEc0Z0lFbFVSVkpCVkVsUFRsTWdQU0F4TURBd0xGeHVJQ0JMUlZsTVJVNUhWRWdnUFNBME9DeGNiaUFnUkVWU1NWWkZSRjlKVmw5TVJVNUhWRWdnUFNBeE5peGNiaUFnUkVWU1NWWkZSRjlMUlZsZlRFVk9SMVJJSUQwZ016SXNJQzh2SUVKbFkyRjFjMlVnVTBoQkxUSTFOaUIxYzJWa0lHaGhjeUJoSUc1aGRHbDJaU0J6YVhwbElHOW1JRE15SUdKNWRHVnpYRzRnSUVGTVIwOVNXVlJJVFNBOUlGd2lRVVZUTFVkRFRWd2lMRnh1SUNCTFJWbGZRVXhIVDFKWlZFaE5JRDBnWENKUVFrdEVSakpjSWl4Y2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklFSmhjMlZGYm1OdlpHVnlJSHRjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCaVlYTmxUV0Z3T2lCVmFXNTBPRUZ5Y21GNUlEMGdibVYzSUZWcGJuUTRRWEp5WVhrb01qVTJLVHRjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCaVlYTmxPaUJ1ZFcxaVpYSTdYRzRnSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnYkdWaFpHVnlPaUJ6ZEhKcGJtYzdYRzRnSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnWm1GamRHOXlPaUJ1ZFcxaVpYSTdYRzRnSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnYVVaaFkzUnZjam9nYm5WdFltVnlPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLSEJ5YVhaaGRHVWdZV3h3YUdGaVpYUTZJRUpCVTBWZlFVeFFTRUZDUlZRcElIdGNiaUFnSUNCcFppQW9kR2hwY3k1aGJIQm9ZV0psZEM1c1pXNW5kR2dnUGowZ01qVTFLU0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0pCYkhCb1lXSmxkQ0IwYjI4Z2JHOXVaMXdpS1R0Y2JseHVJQ0FnSUdadmNpQW9iR1YwSUdvZ1BTQXdPeUJxSUR3Z2RHaHBjeTVpWVhObFRXRndMbXhsYm1kMGFEc2dhaXNyS1NCMGFHbHpMbUpoYzJWTllYQmJhbDBnUFNBeU5UVTdYRzVjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR0ZzY0doaFltVjBMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0I0SUQwZ1lXeHdhR0ZpWlhRdVkyaGhja0YwS0drcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnZUdNZ1BTQjRMbU5vWVhKRGIyUmxRWFFvTUNrN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1aVlYTmxUV0Z3VzNoalhTQWhQVDBnTWpVMUtTQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb2VDQXJJRndpSUdseklHRnRZbWxuZFc5MWMxd2lLVHRjYmx4dUlDQWdJQ0FnZEdocGN5NWlZWE5sVFdGd1czaGpYU0E5SUdrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NWlZWE5sSUQwZ2RHaHBjeTVoYkhCb1lXSmxkQzVzWlc1bmRHZzdYRzRnSUNBZ2RHaHBjeTVzWldGa1pYSWdQU0IwYUdsekxtRnNjR2hoWW1WMExtTm9ZWEpCZENnd0tUdGNiaUFnSUNCMGFHbHpMbVpoWTNSdmNpQTlJRTFoZEdndWJHOW5LSFJvYVhNdVltRnpaU2tnTHlCTllYUm9MbXh2WnlneU5UWXBPeUF2THlCc2IyY29Ra0ZUUlNrZ0x5QnNiMmNvTWpVMktTd2djbTkxYm1SbFpDQjFjRnh1SUNBZ0lIUm9hWE11YVVaaFkzUnZjaUE5SUUxaGRHZ3ViRzluS0RJMU5pa2dMeUJOWVhSb0xteHZaeWgwYUdsekxtSmhjMlVwT3lBdkx5QnNiMmNvTWpVMktTQXZJR3h2WnloQ1FWTkZLU3dnY205MWJtUmxaQ0IxY0Z4dUlDQjlYRzVjYmlBZ1pXNWpiMlJsS0hOdmRYSmpaVG9nVldsdWREaEJjbkpoZVNCOElFUmhkR0ZXYVdWM0lId2dZVzU1VzEwZ2ZDQnpkSEpwYm1jcElIdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlITnZkWEpqWlNBOVBUMGdYQ0p6ZEhKcGJtZGNJaWtnZTF4dUlDQWdJQ0FnYzI5MWNtTmxJRDBnUW5WbVptVnlMbVp5YjIwb2MyOTFjbU5sS1R0Y2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0VGeWNtRjVRblZtWm1WeUxtbHpWbWxsZHloemIzVnlZMlVwS1NCN1hHNGdJQ0FnSUNCemIzVnlZMlVnUFNCdVpYY2dWV2x1ZERoQmNuSmhlU2hjYmlBZ0lDQWdJQ0FnYzI5MWNtTmxMbUoxWm1abGNpeGNiaUFnSUNBZ0lDQWdjMjkxY21ObExtSjVkR1ZQWm1aelpYUXNYRzRnSUNBZ0lDQWdJSE52ZFhKalpTNWllWFJsVEdWdVozUm9YRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9RWEp5WVhrdWFYTkJjbkpoZVNoemIzVnlZMlVwS1NCN1hHNGdJQ0FnSUNCemIzVnlZMlVnUFNCVmFXNTBPRUZ5Y21GNUxtWnliMjBvYzI5MWNtTmxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYzI5MWNtTmxMbXhsYm1kMGFDQTlQVDBnTUNrZ2NtVjBkWEp1SUZ3aVhDSTdYRzVjYmlBZ0lDQXZMeUJUYTJsd0lDWWdZMjkxYm5RZ2JHVmhaR2x1WnlCNlpYSnZaWE11WEc0Z0lDQWdiR1YwSUhwbGNtOWxjeUE5SURBN1hHNGdJQ0FnYkdWMElHeGxibWQwYUNBOUlEQTdYRzRnSUNBZ2JHVjBJSEJpWldkcGJpQTlJREE3WEc0Z0lDQWdZMjl1YzNRZ2NHVnVaQ0E5SUhOdmRYSmpaUzVzWlc1bmRHZzdYRzRnSUNBZ2QyaHBiR1VnS0hCaVpXZHBiaUFoUFQwZ2NHVnVaQ0FtSmlCemIzVnlZMlZiY0dKbFoybHVYU0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdjR0psWjJsdUt5czdYRzRnSUNBZ0lDQjZaWEp2WlhNckt6dGNiaUFnSUNCOVhHNGdJQ0FnTHk4Z1FXeHNiMk5oZEdVZ1pXNXZkV2RvSUhOd1lXTmxJR2x1SUdKcFp5MWxibVJwWVc0Z1ltRnpaVFU0SUhKbGNISmxjMlZ1ZEdGMGFXOXVMbHh1SUNBZ0lHTnZibk4wSUhOcGVtVWdQU0FvS0hCbGJtUWdMU0J3WW1WbmFXNHBJQ29nZEdocGN5NXBSbUZqZEc5eUlDc2dNU2tnUGo0K0lEQTdYRzRnSUNBZ1kyOXVjM1FnWWpVNElEMGdibVYzSUZWcGJuUTRRWEp5WVhrb2MybDZaU2s3WEc0Z0lDQWdMeThnVUhKdlkyVnpjeUIwYUdVZ1lubDBaWE11WEc0Z0lDQWdkMmhwYkdVZ0tIQmlaV2RwYmlBaFBUMGdjR1Z1WkNrZ2UxeHVJQ0FnSUNBZ2JHVjBJR05oY25KNUlEMGdjMjkxY21ObFczQmlaV2RwYmwwN1hHNGdJQ0FnSUNBdkx5QkJjSEJzZVNCY0ltSTFPQ0E5SUdJMU9DQXFJREkxTmlBcklHTm9YQ0l1WEc0Z0lDQWdJQ0JzWlhRZ2FTQTlJREE3WEc0Z0lDQWdJQ0JtYjNJZ0tGeHVJQ0FnSUNBZ0lDQnNaWFFnYVhReElEMGdjMmw2WlNBdElERTdYRzRnSUNBZ0lDQWdJQ2hqWVhKeWVTQWhQVDBnTUNCOGZDQnBJRHdnYkdWdVozUm9LU0FtSmlCcGRERWdJVDA5SUMweE8xeHVJQ0FnSUNBZ0lDQnBkREV0TFN3Z2FTc3JYRzRnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnWTJGeWNua2dLejBnS0RJMU5pQXFJR0kxT0Z0cGRERmRLU0ErUGo0Z01EdGNiaUFnSUNBZ0lDQWdZalU0VzJsME1WMGdQU0JqWVhKeWVTQWxJSFJvYVhNdVltRnpaU0ErUGo0Z01EdGNiaUFnSUNBZ0lDQWdZMkZ5Y25rZ1BTQW9ZMkZ5Y25rZ0x5QjBhR2x6TG1KaGMyVXBJRDQrUGlBd08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLR05oY25KNUlDRTlQU0F3S1NCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWENKT2IyNHRlbVZ5YnlCallYSnllVndpS1R0Y2JseHVJQ0FnSUNBZ2JHVnVaM1JvSUQwZ2FUdGNiaUFnSUNBZ0lIQmlaV2RwYmlzck8xeHVJQ0FnSUgxY2JpQWdJQ0F2THlCVGEybHdJR3hsWVdScGJtY2dlbVZ5YjJWeklHbHVJR0poYzJVMU9DQnlaWE4xYkhRdVhHNGdJQ0FnYkdWMElHbDBNaUE5SUhOcGVtVWdMU0JzWlc1bmRHZzdYRzRnSUNBZ2QyaHBiR1VnS0dsME1pQWhQVDBnYzJsNlpTQW1KaUJpTlRoYmFYUXlYU0E5UFQwZ01Da2dhWFF5S3lzN1hHNWNiaUFnSUNBdkx5QlVjbUZ1YzJ4aGRHVWdkR2hsSUhKbGMzVnNkQ0JwYm5SdklHRWdjM1J5YVc1bkxseHVJQ0FnSUd4bGRDQnpkSElnUFNCMGFHbHpMbXhsWVdSbGNpNXlaWEJsWVhRb2VtVnliMlZ6S1R0Y2JpQWdJQ0JtYjNJZ0tEc2dhWFF5SUR3Z2MybDZaVHNnS3l0cGRESXBJSHRjYmlBZ0lDQWdJSE4wY2lBclBTQjBhR2x6TG1Gc2NHaGhZbVYwTG1Ob1lYSkJkQ2hpTlRoYmFYUXlYU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCemRISTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR1JsWTI5a1pWVnVjMkZtWlNoemIzVnlZMlU2SUhOMGNtbHVaeWs2SUZWcGJuUTRRWEp5WVhrZ2ZDQjFibVJsWm1sdVpXUWdlMXh1SUNBZ0lHbG1JQ2h6YjNWeVkyVXViR1Z1WjNSb0lEMDlQU0F3S1NCeVpYUjFjbTRnYm1WM0lGVnBiblE0UVhKeVlYa29NQ2s3WEc1Y2JpQWdJQ0JzWlhRZ2NITjZJRDBnTUR0Y2JpQWdJQ0F2THlCVGEybHdJR0Z1WkNCamIzVnVkQ0JzWldGa2FXNW5JQ2N4SjNNdVhHNGdJQ0FnYkdWMElIcGxjbTlsY3lBOUlEQTdYRzRnSUNBZ2JHVjBJR3hsYm1kMGFDQTlJREE3WEc0Z0lDQWdkMmhwYkdVZ0tITnZkWEpqWlZ0d2MzcGRJRDA5UFNCMGFHbHpMbXhsWVdSbGNpa2dlMXh1SUNBZ0lDQWdlbVZ5YjJWekt5czdYRzRnSUNBZ0lDQndjM29yS3p0Y2JpQWdJQ0I5WEc0Z0lDQWdMeThnUVd4c2IyTmhkR1VnWlc1dmRXZG9JSE53WVdObElHbHVJR0pwWnkxbGJtUnBZVzRnWW1GelpUSTFOaUJ5WlhCeVpYTmxiblJoZEdsdmJpNWNiaUFnSUNCamIyNXpkQ0J6YVhwbElEMGdLQ2h6YjNWeVkyVXViR1Z1WjNSb0lDMGdjSE42S1NBcUlIUm9hWE11Wm1GamRHOXlJQ3NnTVNrZ1BqNCtJREE3SUM4dklHeHZaeWcxT0NrZ0x5QnNiMmNvTWpVMktTd2djbTkxYm1SbFpDQjFjQzVjYmlBZ0lDQmpiMjV6ZENCaU1qVTJJRDBnYm1WM0lGVnBiblE0UVhKeVlYa29jMmw2WlNrN1hHNGdJQ0FnTHk4Z1VISnZZMlZ6Y3lCMGFHVWdZMmhoY21GamRHVnljeTVjYmlBZ0lDQjNhR2xzWlNBb2MyOTFjbU5sVzNCemVsMHBJSHRjYmlBZ0lDQWdJQzh2SUVSbFkyOWtaU0JqYUdGeVlXTjBaWEpjYmlBZ0lDQWdJR3hsZENCallYSnllU0E5SUhSb2FYTXVZbUZ6WlUxaGNGdHpiM1Z5WTJVdVkyaGhja052WkdWQmRDaHdjM29wWFR0Y2JpQWdJQ0FnSUM4dklFbHVkbUZzYVdRZ1kyaGhjbUZqZEdWeVhHNGdJQ0FnSUNCcFppQW9ZMkZ5Y25rZ1BUMDlJREkxTlNrZ2NtVjBkWEp1TzF4dVhHNGdJQ0FnSUNCc1pYUWdhU0E5SURBN1hHNGdJQ0FnSUNCbWIzSWdLRnh1SUNBZ0lDQWdJQ0JzWlhRZ2FYUXpJRDBnYzJsNlpTQXRJREU3WEc0Z0lDQWdJQ0FnSUNoallYSnllU0FoUFQwZ01DQjhmQ0JwSUR3Z2JHVnVaM1JvS1NBbUppQnBkRE1nSVQwOUlDMHhPMXh1SUNBZ0lDQWdJQ0JwZERNdExTd2dhU3NyWEc0Z0lDQWdJQ0FwSUh0Y2JpQWdJQ0FnSUNBZ1kyRnljbmtnS3owZ0tIUm9hWE11WW1GelpTQXFJR0l5TlRaYmFYUXpYU2tnUGo0K0lEQTdYRzRnSUNBZ0lDQWdJR0l5TlRaYmFYUXpYU0E5SUdOaGNuSjVJQ1VnTWpVMklENCtQaUF3TzF4dUlDQWdJQ0FnSUNCallYSnllU0E5SUNoallYSnllU0F2SURJMU5pa2dQajQrSURBN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9ZMkZ5Y25rZ0lUMDlJREFwSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSWs1dmJpMTZaWEp2SUdOaGNuSjVYQ0lwTzF4dVhHNGdJQ0FnSUNCc1pXNW5kR2dnUFNCcE8xeHVJQ0FnSUNBZ2NITjZLeXM3WEc0Z0lDQWdmVnh1SUNBZ0lDOHZJRk5yYVhBZ2JHVmhaR2x1WnlCNlpYSnZaWE1nYVc0Z1lqSTFOaTVjYmlBZ0lDQnNaWFFnYVhRMElEMGdjMmw2WlNBdElHeGxibWQwYUR0Y2JpQWdJQ0IzYUdsc1pTQW9hWFEwSUNFOVBTQnphWHBsSUNZbUlHSXlOVFpiYVhRMFhTQTlQVDBnTUNrZ2FYUTBLeXM3WEc1Y2JpQWdJQ0JqYjI1emRDQjJZMmdnUFNCdVpYY2dWV2x1ZERoQmNuSmhlU2g2WlhKdlpYTWdLeUFvYzJsNlpTQXRJR2wwTkNrcE8xeHVJQ0FnSUd4bGRDQnFJRDBnZW1WeWIyVnpPMXh1SUNBZ0lIZG9hV3hsSUNocGREUWdJVDA5SUhOcGVtVXBJSFpqYUZ0cUt5dGRJRDBnWWpJMU5sdHBkRFFySzEwN1hHNWNiaUFnSUNCeVpYUjFjbTRnZG1Ob08xeHVJQ0I5WEc1Y2JpQWdaR1ZqYjJSbEtITnZkWEpqWlRvZ2MzUnlhVzVuS1NCN1hHNGdJQ0FnWTI5dWMzUWdZblZtWm1WeUlEMGdkR2hwY3k1a1pXTnZaR1ZWYm5OaFptVW9jMjkxY21ObEtUdGNiaUFnSUNCcFppQW9ZblZtWm1WeUtTQnlaWFIxY200Z1luVm1abVZ5TzF4dUlDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGNJazV2YmkxaVlYTmxYQ0lnS3lCMGFHbHpMbUpoYzJVZ0t5QmNJaUJqYUdGeVlXTjBaWEpjSWlrN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHTnNZWE56SUVOeWVYQjBiMVYwYVd4eklIdGNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdjbVZoWkc5dWJIa2dZalU0Wlc1amIyUmxjaUE5SUc1bGR5QkNZWE5sUlc1amIyUmxjaWhDUVZORlgwRk1VRWhCUWtWVUxrSkJVMFUxT0NrN1hHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklISmxZV1J2Ym14NUlHeHZaMmRsY2lBOUlHNWxkeUJOYVc1cFRHOW5aMlZ5S0VOeWVYQjBiMVYwYVd4ekxtNWhiV1VwTzF4dUlDQndjbWwyWVhSbElHTnZibk4wY25WamRHOXlLQ2tnZTMxY2JseHVJQ0J6ZEdGMGFXTWdabUZpY21salNXUkdjbTl0UTJWeWRHbG1hV05oZEdVb1kyVnlkR2xtYVdOaGRHVTZJSE4wY21sdVp5a2dlMXh1SUNBZ0lIUm9hWE11Ykc5bloyVnlMbVJsWW5WbktITjBjbWx1WjBadmNtMWhkQ2hjSWxCaGNuTnBibWNnWTJWeWRHbG1hV05oZEdVNklIc3dmVndpTENCalpYSjBhV1pwWTJGMFpTa3BPMXh1SUNBZ0lHTnZibk4wSUdObGNuUWdQU0J1WlhjZ2VEVXdPUzVZTlRBNVEyVnlkR2xtYVdOaGRHVW9ZMlZ5ZEdsbWFXTmhkR1VwTzF4dUlDQWdJR052Ym5OMElIc2djM1ZpYW1WamRDd2dhWE56ZFdWeUlIMGdQU0JqWlhKME8xeHVJQ0FnSUhSb2FYTXViRzluWjJWeUxtUmxZblZuS0Z4dUlDQWdJQ0FnYzNSeWFXNW5SbTl5YldGMEtGeHVJQ0FnSUNBZ0lDQmNJa05sY25ScFptbGpZWFJsSUhCaGNuTmxaQ0IzYVhSb0lITjFZbXBsWTNRZ2V6QjlJR0Z1WkNCcGMzTjFaWElnZXpGOVhDSXNYRzRnSUNBZ0lDQWdJSE4xWW1wbFkzUXNYRzRnSUNBZ0lDQWdJR2x6YzNWbGNseHVJQ0FnSUNBZ0tWeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJR0I0TlRBNU9qb3ZKSHR6ZFdKcVpXTjBMbkpsY0d4aFkyVkJiR3dvWENJc0lGd2lMQ0JjSWk5Y0lpbDlPam92Skh0cGMzTjFaWEl1Y21Wd2JHRmpaVUZzYkNoY0lpd2dYQ0lzSUZ3aUwxd2lLWDFnTzF4dUlDQjlYRzVjYmlBZ2MzUmhkR2xqSUdWdVkyOWtaU2h6ZEhJNklITjBjbWx1WnlrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVlqVTRaVzVqYjJSbGNpNWxibU52WkdVb2MzUnlLVHRjYmlBZ2ZWeHVJQ0J6ZEdGMGFXTWdaR1ZqYjJSbEtITjBjam9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQmpiMjV6ZENCa1pXTnZaR1ZrSUQwZ2RHaHBjeTVpTlRobGJtTnZaR1Z5TG1SbFkyOWtaU2h6ZEhJcE8xeHVJQ0FnSUdOdmJuTjBJSEpsYzNWc2RDQTlJRzVsZHlCVVpYaDBSR1ZqYjJSbGNpZ3BMbVJsWTI5a1pTaGtaV052WkdWa0tUdGNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNCOVhHNWNiaUFnYzNSaGRHbGpJSE4wY21sdVoxUnZRWEp5WVhsQ2RXWm1aWElvYzNSeU9pQnpkSEpwYm1jcElIdGNiaUFnSUNCamIyNXpkQ0JpZFdZZ1BTQnVaWGNnUVhKeVlYbENkV1ptWlhJb2MzUnlMbXhsYm1kMGFDazdYRzRnSUNBZ1kyOXVjM1FnWW5WbVZtbGxkeUE5SUc1bGR5QlZhVzUwT0VGeWNtRjVLR0oxWmlrN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQXNJSE4wY2t4bGJpQTlJSE4wY2k1c1pXNW5kR2c3SUdrZ1BDQnpkSEpNWlc0N0lHa3JLeWtnZTF4dUlDQWdJQ0FnWW5WbVZtbGxkMXRwWFNBOUlITjBjaTVqYUdGeVEyOWtaVUYwS0drcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdZblZtTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCemRHRjBhV01nWVhONWJtTWdaWGgwY21GamRFdGxlU2hjYmlBZ0lDQjBlWEJsT2lCY0luQnlhWFpoZEdWY0lpQjhJRndpY0hWaWJHbGpYQ0lzWEc0Z0lDQWdjR1Z0T2lCQ2RXWm1aWElnZkNCemRISnBibWNzWEc0Z0lDQWdkWE5oWjJWelB6b2dZVzU1VzExY2JpQWdLU0I3WEc0Z0lDQWdZMjl1YzNRZ2MzVmlkR3hsSUQwZ1kzSjVjSFJ2TG5OMVluUnNaVHRjYmx4dUlDQWdJR052Ym5OMElITjBjaUE5SUhCbGJWeHVJQ0FnSUNBZ0xuUnZVM1J5YVc1bktGd2lkWFJtT0Z3aUtWeHVJQ0FnSUNBZ0xuSmxjR3hoWTJVb1hHNGdJQ0FnSUNBZ0lHNWxkeUJTWldkRmVIQW9ZQzB0TFMwdFFrVkhTVTRnS0NSN2RIbHdaUzUwYjFWd2NHVnlRMkZ6WlNncGZTQkxSVmw4UTBWU1ZFbEdTVU5CVkVVcExTMHRMUzFnS1N4Y2JpQWdJQ0FnSUNBZ1hDSmNJbHh1SUNBZ0lDQWdLVnh1SUNBZ0lDQWdMbkpsY0d4aFkyVkJiR3dvWENKY1hHNWNJaXdnWENKY0lpbGNiaUFnSUNBZ0lDNXlaWEJzWVdObEtGeHVJQ0FnSUNBZ0lDQnVaWGNnVW1WblJYaHdLR0F0TFMwdExVVk9SQ0FvSkh0MGVYQmxMblJ2VlhCd1pYSkRZWE5sS0NsOUlFdEZXWHhEUlZKVVNVWkpRMEZVUlNrdExTMHRMV0FwTEZ4dUlDQWdJQ0FnSUNCY0lsd2lYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUdSbFkyOWtaV1FnUFNCQ2RXWm1aWEl1Wm5KdmJTaHpkSElzSUZ3aVltRnpaVFkwWENJcExuUnZVM1J5YVc1bktGd2lZbWx1WVhKNVhDSXBPMXh1SUNBZ0lHTnZibk4wSUdKcGJtRnllVVJsY2lBOUlIUm9hWE11YzNSeWFXNW5WRzlCY25KaGVVSjFabVpsY2loa1pXTnZaR1ZrS1R0Y2JpQWdJQ0JqYjI1emRDQnJaWGtnUFNCaGQyRnBkQ0J6ZFdKMGJHVXVhVzF3YjNKMFMyVjVLRnh1SUNBZ0lDQWdYQ0p3YTJOek9Gd2lMRnh1SUNBZ0lDQWdZbWx1WVhKNVJHVnlMRnh1SUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0J1WVcxbE9pQmNJa1ZEUkZOQlhDSXNYRzRnSUNBZ0lDQWdJRzVoYldWa1EzVnlkbVU2SUZ3aVVDMHlOVFpjSWl4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCMGNuVmxMRnh1SUNBZ0lDQWdkWE5oWjJWeklEOGdkWE5oWjJWeklEb2dXMXdpYzJsbmJsd2lYVnh1SUNBZ0lDazdYRzVjYmlBZ0lDQnlaWFIxY200Z2EyVjVPMXh1SUNCOVhHNWNiaUFnYzNSaGRHbGpJR0Z6ZVc1aklHVjRkSEpoWTNSUWNtbDJZWFJsUzJWNUtIQmxiVG9nUW5WbVptVnlJSHdnYzNSeWFXNW5MQ0IxYzJGblpYTS9PaUJoYm5sYlhTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVY0ZEhKaFkzUkxaWGtvWENKd2NtbDJZWFJsWENJc0lIQmxiU3dnZFhOaFoyVnpLVHRjYmlBZ2ZWeHVYRzRnSUhOMFlYUnBZeUJoYzNsdVl5QmxlSFJ5WVdOMFVIVmliR2xqUzJWNUtIQmxiVG9nUW5WbVptVnlJSHdnYzNSeWFXNW5MQ0IxYzJGblpYTS9PaUJoYm5sYlhTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVY0ZEhKaFkzUkxaWGtvWENKd2RXSnNhV05jSWl3Z2NHVnRMQ0IxYzJGblpYTXBPMXh1SUNCOVhHNWNiaUFnYzNSaGRHbGpJR0Z6ZVc1aklITnBaMjRvY0hKcGRtRjBaVXRsZVRvZ2MzUnlhVzVuTENCa1lYUmhPaUJDZFdabVpYSXBPaUJRY205dGFYTmxQSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUd0bGVTQTlJR0YzWVdsMElIUm9hWE11WlhoMGNtRmpkRkJ5YVhaaGRHVkxaWGtvY0hKcGRtRjBaVXRsZVNrN1hHNGdJQ0FnWTI5dWMzUWdZblZtWmlBOUlDaGhkMkZwZENCamNubHdkRzh1YzNWaWRHeGxMbk5wWjI0b1hHNGdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lHNWhiV1U2SUZ3aVJVTkVVMEZjSWl4Y2JpQWdJQ0FnSUNBZ2FHRnphRG9nWENKVFNFRXRNalUyWENJc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2EyVjVMRnh1SUNBZ0lDQWdaR0YwWVNCaGN5QmhibmxjYmlBZ0lDQXBLU0JoY3lCQmNuSmhlVUoxWm1abGNqdGNibHh1SUNBZ0lISmxkSFZ5YmlCQmNuSmhlUzVtY205dEtHNWxkeUJWYVc1ME9FRnljbUY1S0dKMVptWXBLVnh1SUNBZ0lDQWdMbTFoY0Nnb1lpa2dQVDRnWWk1MGIxTjBjbWx1WnlneE5pa3VjR0ZrVTNSaGNuUW9NaXdnWENJd1hDSXBLVnh1SUNBZ0lDQWdMbXB2YVc0b1hDSmNJaWs3WEc0Z0lIMWNibHh1SUNCemRHRjBhV01nWVhONWJtTWdkbVZ5YVdaNUtGeHVJQ0FnSUdObGNuUnBabWxqWVhSbE9pQnpkSEpwYm1jc1hHNGdJQ0FnYzJsbmJtRjBkWEpsT2lCQ2RXWm1aWElnZkNCemRISnBibWNzWEc0Z0lDQWdaR0YwWVRvZ1FuVm1abVZ5SUh3Z2MzUnlhVzVuWEc0Z0lDazZJRkJ5YjIxcGMyVThZbTl2YkdWaGJqNGdlMXh1SUNBZ0lHTnZibk4wSUdObGNuUWdQU0J1WlhjZ2VEVXdPUzVZTlRBNVEyVnlkR2xtYVdOaGRHVW9ZMlZ5ZEdsbWFXTmhkR1VwTzF4dUlDQWdJR052Ym5OMElHdGxlU0E5SUdGM1lXbDBJR05sY25RdWNIVmliR2xqUzJWNUxtVjRjRzl5ZENncE8xeHVJQ0FnSUhOcFoyNWhkSFZ5WlNBOUlDaGNiaUFnSUNBZ0lIUjVjR1Z2WmlCemFXZHVZWFIxY21VZ1BUMDlJRndpYzNSeWFXNW5YQ0lnUHlCQ2RXWm1aWEl1Wm5KdmJTaHphV2R1WVhSMWNtVXNJRndpYUdWNFhDSXBJRG9nYzJsbmJtRjBkWEpsWEc0Z0lDQWdLU0JoY3lCQ2RXWm1aWEk3WEc0Z0lDQWdaR0YwWVNBOUlDaDBlWEJsYjJZZ1pHRjBZU0E5UFQwZ1hDSnpkSEpwYm1kY0lpQS9JRUoxWm1abGNpNW1jbTl0S0dSaGRHRXBJRG9nWkdGMFlTa2dZWE1nUW5WbVptVnlPMXh1SUNBZ0lISmxkSFZ5YmlCamNubHdkRzh1YzNWaWRHeGxMblpsY21sbWVTaGNiaUFnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdibUZ0WlRvZ1hDSkZRMFJUUVZ3aUxGeHVJQ0FnSUNBZ0lDQm9ZWE5vT2lCY0lsTklRUzB5TlRaY0lpeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQnJaWGtzWEc0Z0lDQWdJQ0J6YVdkdVlYUjFjbVVnWVhNZ1lXNTVMRnh1SUNBZ0lDQWdaR0YwWVNCaGN5QmhibmxjYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnYzNSaGRHbGpJR0Z6ZVc1aklHVnVZM0o1Y0hRb1kyVnlkR2xtYVdOaGRHVTZJSE4wY21sdVp5d2daR0YwWVRvZ2MzUnlhVzVuSUh3Z1FuVm1abVZ5S1NCN1hHNGdJQ0FnWTI5dWMzUWdZMlZ5ZENBOUlHNWxkeUI0TlRBNUxsZzFNRGxEWlhKMGFXWnBZMkYwWlNoalpYSjBhV1pwWTJGMFpTazdYRzRnSUNBZ1kyOXVjM1FnYTJWNUlEMGdZWGRoYVhRZ1kyVnlkQzV3ZFdKc2FXTkxaWGt1Wlhod2IzSjBLQ2s3WEc0Z0lDQWdaR0YwWVNBOUlDaDBlWEJsYjJZZ1pHRjBZU0E5UFQwZ1hDSnpkSEpwYm1kY0lpQS9JRUoxWm1abGNpNW1jbTl0S0dSaGRHRXBJRG9nWkdGMFlTa2dZWE1nUW5WbVptVnlPMXh1SUNBZ0lHTnZibk4wSUdKMVptWWdQU0JoZDJGcGRDQjBhR2x6TG1kbGRGTjFZblJzWlVOeWVYQjBieWdwTG1WdVkzSjVjSFFvWEc0Z0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUc1aGJXVTZJRndpUlVORVUwRmNJaXhjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0JyWlhrc1hHNGdJQ0FnSUNCa1lYUmhYRzRnSUNBZ0tUdGNibHh1SUNBZ0lISmxkSFZ5YmlCQmNuSmhlUzVtY205dEtHNWxkeUJWYVc1ME9FRnljbUY1S0dKMVptWXBLVnh1SUNBZ0lDQWdMbTFoY0Nnb1lpa2dQVDRnWWk1MGIxTjBjbWx1WnlneE5pa3VjR0ZrVTNSaGNuUW9NaXdnWENJd1hDSXBLVnh1SUNBZ0lDQWdMbXB2YVc0b1hDSmNJaWs3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJuWlhSVGRXSjBiR1ZEY25sd2RHOG9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlHbHpRbkp2ZDNObGNpZ3BYRzRnSUNBZ0lDQS9JQ2huYkc5aVlXeFVhR2x6SUdGeklHRnVlU2t1ZDJsdVpHOTNMbU55ZVhCMGJ5NXpkV0owYkdWY2JpQWdJQ0FnSURvZ1kzSjVjSFJ2TG5OMVluUnNaVHRjYmlBZ2ZWeHVYRzRnSUhOMFlYUnBZeUJoYzNsdVl5QmtaV055ZVhCMEtIQnlhWFpoZEdWTFpYazZJSE4wY21sdVp5d2daR0YwWVRvZ2MzUnlhVzVuSUh3Z1FuVm1abVZ5S1NCN1hHNGdJQ0FnWTI5dWMzUWdhMlY1SUQwZ1lYZGhhWFFnZEdocGN5NWxlSFJ5WVdOMFVISnBkbUYwWlV0bGVTaHdjbWwyWVhSbFMyVjVLVHRjYmlBZ0lDQmtZWFJoSUQwZ0tGeHVJQ0FnSUNBZ2RIbHdaVzltSUdSaGRHRWdQVDA5SUZ3aWMzUnlhVzVuWENJZ1B5QkNkV1ptWlhJdVpuSnZiU2hrWVhSaExDQmNJbWhsZUZ3aUtTQTZJR1JoZEdGY2JpQWdJQ0FwSUdGeklFSjFabVpsY2p0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1blpYUlRkV0owYkdWRGNubHdkRzhvS1M1a1pXTnllWEIwS0Z4dUlDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNCdVlXMWxPaUJjSWtWRFJGTkJYQ0lzWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnYTJWNUxGeHVJQ0FnSUNBZ1pHRjBZVnh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUhOMWJXMWhjbmtnVlhScGJDQm1kVzVqZEdsdmJpQjBieUJuWlhRZ1lTQnlZVzVrYjIwZ2JXRnpkR1Z5SUd0bGVWeHVJQ0FnS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1NXWWdaR0YwWVNCcGN5QnViM1FnY0dGemMyVmtMQ0JoSUhKaGJtUnZiU0JCY25KaGVVSjFabVpsY2lCM2FXeHNJR0psSUdkbGJtVnlZWFJsWkZ4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwRnljbUY1UW5WbVptVnlmU0JrWVhSaElHVnVZM0o1ZEdsdmJpQmtZWFJoWEc0Z0lDQXFYRzRnSUNBcUlFQm1kVzVqZEdsdmJpQm5aWFJOWVhOMFpYSmNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QmhjM2x1WXlCblpYUk5ZWE4wWlhJb1pHRjBZVDg2SUVGeWNtRjVRblZtWm1WeUtUb2dVSEp2YldselpUeHJaWGxQWW1wbFkzUStJSHRjYmlBZ0lDQmpiMjV6ZENCMFpYaDBSVzVqYjJSbGNpQTlJRzVsZHlCVVpYaDBSVzVqYjJSbGNpZ3BPMXh1SUNBZ0lHbG1JQ2hrWVhSaElEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR2RsYmtkbGJtVnphWE1nUFNCamNubHdkRzh1Y21GdVpHOXRWVlZKUkNncE8xeHVJQ0FnSUNBZ1pHRjBZU0E5SUhSbGVIUkZibU52WkdWeUxtVnVZMjlrWlNoblpXNUhaVzVsYzJsektTNWlkV1ptWlhJN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdhVzF3YjNKMFpXUkxaWGtnUFNCaGQyRnBkQ0IwYUdsekxtZGxkRk4xWW5Sc1pVTnllWEIwYnlncExtbHRjRzl5ZEV0bGVTaGNiaUFnSUNBZ0lGd2ljbUYzWENJc1hHNGdJQ0FnSUNCa1lYUmhMRnh1SUNBZ0lDQWdRMUpaVUZSUExrdEZXVjlCVEVkUFVsbFVTRTBnWVhNZ2MzUnlhVzVuTEZ4dUlDQWdJQ0FnWm1Gc2MyVXNYRzRnSUNBZ0lDQmJYQ0prWlhKcGRtVkNhWFJ6WENKZFhHNGdJQ0FnS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0JyWlhrNklHbHRjRzl5ZEdWa1MyVjVMRnh1SUNBZ0lDQWdhWFk2SUdSaGRHRWhMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUhOMWJXMWhjbmtnVlhScGJDQm1kVzVqZEdsdmJpQjBieUJrWlhKcGRtVWdZU0JyWlhrZ1puSnZiU0JoYm05MGFHVnlJR3RsZVZ4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2MyRnNkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwTnllWEIwYjB0bGVYMGdhMlY1SUU5eWFXZHBibUZzSUd0bGVWeHVJQ0FnS2x4dUlDQWdLaUJBWm5WdVkzUnBiMjRnWjJWMFJHVnlhWFpoZEdsdmJrdGxlVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJR0Z6ZVc1aklHZGxkRVJsY21sMllYUnBiMjVMWlhrb2MyRnNkRG9nYzNSeWFXNW5MQ0JyWlhrNklFTnllWEIwYjB0bGVTa2dlMXh1SUNBZ0lHTnZibk4wSUhSbGVIUkZibU52WkdWeUlEMGdibVYzSUZSbGVIUkZibU52WkdWeUtDazdYRzRnSUNBZ1kyOXVjM1FnYzJGc2RFSjFabVpsY2lBOUlIUmxlSFJGYm1OdlpHVnlMbVZ1WTI5a1pTaHpZV3gwS1R0Y2JpQWdJQ0JqYjI1emRDQnpZV3gwU0dGemFHVmtJRDBnWVhkaGFYUWdkR2hwY3k1blpYUlRkV0owYkdWRGNubHdkRzhvS1M1a2FXZGxjM1FvWEc0Z0lDQWdJQ0JjSWxOSVFTMHlOVFpjSWl4Y2JpQWdJQ0FnSUhOaGJIUkNkV1ptWlhKY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElIQmhjbUZ0Y3lBOUlIdGNiaUFnSUNBZ0lHNWhiV1U2SUVOU1dWQlVUeTVMUlZsZlFVeEhUMUpaVkVoTklHRnpJSE4wY21sdVp5eGNiaUFnSUNBZ0lHaGhjMmc2SUVOU1dWQlVUeTVJUVZOSUxGeHVJQ0FnSUNBZ2MyRnNkRG9nYzJGc2RFaGhjMmhsWkN4Y2JpQWdJQ0FnSUdsMFpYSmhkR2x2Ym5NNklFTlNXVkJVVHk1SlZFVlNRVlJKVDA1VExGeHVJQ0FnSUgwN1hHNGdJQ0FnWTI5dWMzUWdaR1Z5YVhaaGRHbHZiaUE5SUdGM1lXbDBJSFJvYVhNdVoyVjBVM1ZpZEd4bFEzSjVjSFJ2S0NrdVpHVnlhWFpsUW1sMGN5aGNiaUFnSUNBZ0lIQmhjbUZ0Y3l4Y2JpQWdJQ0FnSUd0bGVTeGNiaUFnSUNBZ0lFTlNXVkJVVHk1TFJWbE1SVTVIVkVnZ0tpQTRYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NW5aWFJMWlhrb1pHVnlhWFpoZEdsdmJpazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUhOMWJXMWhjbmtnVlhScGJDQm1kVzVqZEdsdmJpQjBieUJuWlhRZ2RHaGxJR3RsZVNCaGJtUWdTVllnWm5KdmJTQjBhR1VnUTNKNWRHOUxaWGtnWVhKeVlYbGNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVVSjFabVpsY24wZ1pHVnlhWFpoZEdsdmJseHVJQ0FnS2x4dUlDQWdLaUJBWm5WdVkzUnBiMjRnWjJWMFMyVjVYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdZWE41Ym1NZ1oyVjBTMlY1S0dSbGNtbDJZWFJwYjI0NklFRnljbUY1UW5WbVptVnlLU0I3WEc0Z0lDQWdMeThnWlhOc2FXNTBMV1JwYzJGaWJHVXRibVY0ZEMxc2FXNWxJRUIwZVhCbGMyTnlhWEIwTFdWemJHbHVkQzl1YnkxMWJuVnpaV1F0ZG1GeWMxeHVJQ0FnSUdOdmJuTjBJR2wyYkdWdUlEMGdNVFk3WEc0Z0lDQWdZMjl1YzNRZ2EyVjViR1Z1SUQwZ016STdYRzRnSUNBZ1kyOXVjM1FnWkdWeWFYWmxaRXRsZVNBOUlHUmxjbWwyWVhScGIyNHVjMnhwWTJVb01Dd2dhMlY1YkdWdUtUdGNiaUFnSUNCamIyNXpkQ0JwZGlBOUlHUmxjbWwyWVhScGIyNHVjMnhwWTJVb2EyVjViR1Z1S1R0Y2JpQWdJQ0JqYjI1emRDQnBiWEJ2Y25SbFpFVnVZM0o1Y0hScGIyNUxaWGtnUFNCaGQyRnBkQ0IwYUdsekxtZGxkRk4xWW5Sc1pVTnllWEIwYnlncExtbHRjRzl5ZEV0bGVTaGNiaUFnSUNBZ0lGd2ljbUYzWENJc1hHNGdJQ0FnSUNCa1pYSnBkbVZrUzJWNUxGeHVJQ0FnSUNBZ2V5QnVZVzFsT2lCRFVsbFFWRTh1UVV4SFQxSlpWRWhOSUdGeklITjBjbWx1WnlCOUxGeHVJQ0FnSUNBZ1ptRnNjMlVzWEc0Z0lDQWdJQ0JiWENKbGJtTnllWEIwWENJc0lGd2laR1ZqY25sd2RGd2lYVnh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUd0bGVUb2dhVzF3YjNKMFpXUkZibU55ZVhCMGFXOXVTMlY1TEZ4dUlDQWdJQ0FnYVhZNklHbDJMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUhOMWJXMWhjbmtnVlhScGJDQm1kVzVqZEdsdmJpQjBieUJrWldOeWVYQjBJR1JoZEdGY2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIUmxlSFJjYmlBZ0lDb2dRSEJoY21GdElIdHJaWGxQWW1wbFkzUjlJR3RsZVU5aWFtVmpkRnh1SUNBZ0tseHVJQ0FnS2lCQVpuVnVZM1JwYjI0Z1pXNWpjbmx3ZEZ4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdGemVXNWpJR1Z1WTNKNWNIUlFhVzRvWEc0Z0lDQWdkR1Y0ZERvZ2MzUnlhVzVuTEZ4dUlDQWdJR3RsZVU5aWFtVmpkRG9nYTJWNVQySnFaV04wWEc0Z0lDazZJRkJ5YjIxcGMyVThRWEp5WVhsQ2RXWm1aWEkrSUh0Y2JpQWdJQ0JqYjI1emRDQjBaWGgwUlc1amIyUmxjaUE5SUc1bGR5QlVaWGgwUlc1amIyUmxjaWdwTzF4dUlDQWdJR052Ym5OMElIUmxlSFJDZFdabVpYSWdQU0IwWlhoMFJXNWpiMlJsY2k1bGJtTnZaR1VvZEdWNGRDazdYRzRnSUNBZ1kyOXVjM1FnWlc1amNubHdkR1ZrVkdWNGRDQTlJR0YzWVdsMElIUm9hWE11WjJWMFUzVmlkR3hsUTNKNWNIUnZLQ2t1Wlc1amNubHdkQ2hjYmlBZ0lDQWdJSHNnYm1GdFpUb2dRMUpaVUZSUExrRk1SMDlTV1ZSSVRTQmhjeUJ6ZEhKcGJtY3NJR2wyT2lCclpYbFBZbXBsWTNRdWFYWWdmU3hjYmlBZ0lDQWdJR3RsZVU5aWFtVmpkQzVyWlhrc1hHNGdJQ0FnSUNCMFpYaDBRblZtWm1WeVhHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdaVzVqY25sd2RHVmtWR1Y0ZER0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFjM1Z0YldGeWVTQlZkR2xzSUdaMWJtTjBhVzl1SUhSdklHUmxZM0o1Y0hRZ1pHRjBZVnh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTBKMVptWmxjbE52ZFhKalpYMGdaVzVqY25sd2RHVmtWR1Y0ZEZ4dUlDQWdLaUJBY0dGeVlXMGdlMnRsZVU5aWFtVmpkSDBnYTJWNVQySnFaV04wWEc0Z0lDQXFYRzRnSUNBcUlFQm1kVzVqZEdsdmJpQmtaV055ZVhCMFhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1lYTjVibU1nWkdWamNubHdkRkJwYmloY2JpQWdJQ0JsYm1OeWVYQjBaV1JVWlhoME9pQkJjbkpoZVVKMVptWmxjaXhjYmlBZ0lDQnJaWGxQWW1wbFkzUTZJR3RsZVU5aWFtVmpkRnh1SUNBcE9pQlFjbTl0YVhObFBITjBjbWx1Wno0Z2UxeHVJQ0FnSUdOdmJuTjBJSFJsZUhSRVpXTnZaR1Z5SUQwZ2JtVjNJRlJsZUhSRVpXTnZaR1Z5S0NrN1hHNGdJQ0FnWTI5dWMzUWdaR1ZqY25sd2RHVmtWR1Y0ZENBOUlHRjNZV2wwSUhSb2FYTXVaMlYwVTNWaWRHeGxRM0o1Y0hSdktDa3VaR1ZqY25sd2RDaGNiaUFnSUNBZ0lIc2dibUZ0WlRvZ1ExSlpVRlJQTGtGTVIwOVNXVlJJVFNCaGN5QnpkSEpwYm1jc0lHbDJPaUJyWlhsUFltcGxZM1F1YVhZZ2ZTeGNiaUFnSUNBZ0lHdGxlVTlpYW1WamRDNXJaWGtzWEc0Z0lDQWdJQ0JsYm1OeWVYQjBaV1JVWlhoMFhHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR1Y0ZEVSbFkyOWtaWEl1WkdWamIyUmxLR1JsWTNKNWNIUmxaRlJsZUhRcE8xeHVJQ0I5WEc1OVhHNGlYWDA9Il19
|
|
@@ -360,5 +360,5 @@ class FabricERC20ClientRepository extends FabricClientRepository_js_1.FabricClie
|
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
362
|
exports.FabricERC20ClientRepository = FabricERC20ClientRepository;
|
|
363
|
-
//# sourceMappingURL=FabricERC20ClientRepository.js.map
|
|
364
|
-
//# sourceMappingURL=FabricERC20ClientRepository.js.map
|
|
363
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9lcmMyMC9GYWJyaWNFUkMyMENsaWVudFJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVDQUFrQztBQUNuRSxPQUFPLEVBQWMsV0FBVyxFQUFFLDBDQUFxQztBQUN2RSxPQUFPLEVBQUUsS0FBSyxFQUFjLE1BQU0sZ0NBQWdDLENBQUM7QUFFbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLDJDQUFzQztBQUNqRSxPQUFPLEVBQ0wsT0FBTyxFQUtQLFFBQVEsR0FDVCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFFTCxhQUFhLEdBRWQsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMkJBRVgsU0FBUSxzQkFBc0M7YUFDL0IsZUFBVSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQUFBekIsQ0FBMEI7YUFLcEMsWUFBTyxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxBQUExQixDQUEyQjtJQUVqRDs7Ozs7Ozs7O09BU0c7SUFDTSxLQUFLLENBQUMsZUFBZSxDQUM1QixLQUE4QixFQUM5QixLQUFxRCxFQUNyRCxFQUFZLEVBQ1osR0FBRyxJQUFrQztRQUVyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFDdkIsTUFBTSxJQUFJLGFBQWEsQ0FDckIsb0VBQW9FLENBQ3JFLENBQUM7UUFDSixNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRSxHQUFHLENBQUMsT0FBTyxDQUNULFlBQVksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLElBQUksRUFBRSxDQUNqRSxDQUFDO1FBRUYsS0FBSyxHQUFHLENBQ04sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQ25DLENBQUM7UUFDcEIsSUFBSSxRQUF1QyxDQUFDO1FBRTVDLElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzdCLFFBQVEsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUNmLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBVyxDQUN2RSxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FDNUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQzdCLEVBQUUsQ0FDTyxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQ3hDLEtBQUssRUFDTCxLQUFLLEVBQ0wsUUFBUyxFQUNULEdBQUcsT0FBTyxDQUNYLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsSUFBZ0I7UUFDckIsT0FBTywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxZQUFZLE9BQVc7UUFDckIsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQWxFWCxlQUFVLEdBQzNCLDJCQUEyQixDQUFDLFVBQVUsQ0FBQztJQWtFekMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBc0M7UUFDdkQsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQzlELElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBc0M7UUFDcEQsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNFLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBc0M7UUFDdEQsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQzdELElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDekUsT0FBTyxNQUFNLENB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Ozs7Ozs7O09BVUc7SUFDSCxLQUFLLENBQUMsZUFBZTtRQUNuQixNQUFNLFdBQVcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQ3BDLFdBQVcsRUFDWCxJQUFJLENBQUMsS0FBSyxFQUNWLEVBQUUsRUFDRixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUN0QixDQUFDO1FBQ0YsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEUsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUM1RCxHQUFHLEVBQ0gsaUJBQWlCLENBQ2xCLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhYnJpY0NsaWVudFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vRmFicmljQ2xpZW50UmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgRVJDMjBUb2tlbiwgRVJDMjBXYWxsZXQgfSBmcm9tIFwiLi4vLi4vY29udHJhY3RzL2VyYzIwL21vZGVsc1wiO1xuaW1wb3J0IHsgTW9kZWwsIFNlcmlhbGl6ZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRBZGFwdGVyIH0gZnJvbSBcIi4uL0ZhYnJpY0NsaWVudEFkYXB0ZXJcIjtcbmltcG9ydCB7IENsaWVudFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL0NsaWVudFNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7XG4gIENvbnRleHQsXG4gIENvbnRleHRPZixcbiAgQ29udGV4dHVhbEFyZ3MsXG4gIEV2ZW50SWRzLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIFNlcXVlbmNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyxcbiAgSW50ZXJuYWxFcnJvcixcbiAgT3BlcmF0aW9uS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuLyoqXG4gKiBSZXBvc2l0b3J5IGZvciBpbnRlcmFjdGluZyB3aXRoIEVSQzIwIGNvbnRyYWN0cyBvbiBhIEh5cGVybGVkZ2VyIEZhYnJpYyBuZXR3b3JrLlxuICogRXh0ZW5kcyB0aGUgYmFzZSBGYWJyaWNDbGllbnRSZXBvc2l0b3J5IGNsYXNzIGFuZCB1dGlsaXplcyB0aGUgQ2xpZW50U2VyaWFsaXplciBmb3IgZGF0YSBzZXJpYWxpemF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5PFxuICBBIGV4dGVuZHMgRmFicmljQ2xpZW50QWRhcHRlcixcbj4gZXh0ZW5kcyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5PEVSQzIwV2FsbGV0LCBBPiB7XG4gIHByaXZhdGUgc3RhdGljIHNlcmlhbGl6ZXIgPSBuZXcgQ2xpZW50U2VyaWFsaXplcigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzZXJpYWxpemVyOiBTZXJpYWxpemVyPGFueT4gPVxuICAgIEZhYnJpY0VSQzIwQ2xpZW50UmVwb3NpdG9yeS5zZXJpYWxpemVyO1xuXG4gIHByaXZhdGUgc3RhdGljIGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoXCJ1dGY4XCIpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTm90aWZpZXMgYWxsIG9ic2VydmVycyBvZiBhbiBldmVudC5cbiAgICogQHN1bW1hcnkgVXBkYXRlcyBhbGwgcmVnaXN0ZXJlZCBvYnNlcnZlcnMgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBhIGRhdGFiYXNlIGV2ZW50LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGUgLSBUaGUgdGFibGUgbmFtZSB3aGVyZSB0aGUgZXZlbnQgb2NjdXJyZWQuXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5c3xCdWxrQ3J1ZE9wZXJhdGlvbktleXN8c3RyaW5nfSBldmVudCAtIFRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgb2NjdXJyZWQuXG4gICAqIEBwYXJhbSB7RXZlbnRJZHN9IGlkIC0gVGhlIElEIG9yIElEcyBvZiB0aGUgYWZmZWN0ZWQgcmVjb3Jkcy5cbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBvYnNlcnZlcnMgaGF2ZSBiZWVuIG5vdGlmaWVkLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBJZiB0aGUgb2JzZXJ2ZXIgaGFuZGxlciBpcyBub3QgaW5pdGlhbGl6ZWQuXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyB1cGRhdGVPYnNlcnZlcnM8TSBleHRlbmRzIE1vZGVsPihcbiAgICB0YWJsZTogQ29uc3RydWN0b3I8TT4gfCBzdHJpbmcsXG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gICAgaWQ6IEV2ZW50SWRzLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLm9ic2VydmVySGFuZGxlcilcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIk9ic2VydmVySGFuZGxlciBub3QgaW5pdGlhbGl6ZWQuIERpZCB5b3UgcmVnaXN0ZXIgYW55IG9ic2VydmFibGVzP1wiXG4gICAgICApO1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZU9ic2VydmVycyk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgVXBkYXRpbmcgJHt0aGlzLm9ic2VydmVySGFuZGxlci5jb3VudCgpfSBvYnNlcnZlcnMgZm9yICR7dGhpc31gXG4gICAgKTtcblxuICAgIHRhYmxlID0gKFxuICAgICAgdHlwZW9mIHRhYmxlID09PSBcInN0cmluZ1wiID8gTW9kZWwuZ2V0KHRhYmxlKSA6IHRhYmxlXG4gICAgKSBhcyBDb25zdHJ1Y3RvcjxNPjtcbiAgICBsZXQgcGFyc2VkSWQ6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcnNlZElkID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpZCkpIHtcbiAgICAgIHBhcnNlZElkID0gaWQubWFwKFxuICAgICAgICAoaSkgPT4gU2VxdWVuY2UucGFyc2VWYWx1ZShNb2RlbC5zZXF1ZW5jZUZvcih0YWJsZSkudHlwZSwgaSkgYXMgc3RyaW5nXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZWRJZCA9IFNlcXVlbmNlLnBhcnNlVmFsdWUoXG4gICAgICAgIE1vZGVsLnNlcXVlbmNlRm9yKHRhYmxlKS50eXBlLFxuICAgICAgICBpZFxuICAgICAgKSBhcyBzdHJpbmc7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMub2JzZXJ2ZXJIYW5kbGVyLnVwZGF0ZU9ic2VydmVycyhcbiAgICAgIHRhYmxlLFxuICAgICAgZXZlbnQsXG4gICAgICBwYXJzZWRJZCEsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIGEgVWludDhBcnJheSBpbnRvIGEgc3RyaW5nIHVzaW5nIHRoZSBUZXh0RGVjb2Rlci5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgVWludDhBcnJheSB0byBkZWNvZGUuXG4gICAqIEByZXR1cm5zIFRoZSBkZWNvZGVkIHN0cmluZy5cbiAgICovXG4gIGRlY29kZShkYXRhOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5LmRlY29kZXIuZGVjb2RlKGRhdGEpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYWRhcHRlcj86IEEpIHtcbiAgICBzdXBlcihhZGFwdGVyLCBFUkMyMFdhbGxldCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBuYW1lIG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgbmFtZSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqIEl0IGNhbGxzIHRoZSBcIlRva2VuTmFtZVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCBhbmQgZGVjb2RlcyB0aGUgcmV0dXJuZWQgZGF0YS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgbmFtZSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyB0b2tlbk5hbWUoLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ0b2tlbk5hbWVcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMudG9rZW5OYW1lXG4gICAgKTtcbiAgICBjb25zdCBuYW1lID0gYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oY3R4LCBcIlRva2VuTmFtZVwiKTtcbiAgICByZXR1cm4gdGhpcy5kZWNvZGUobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBzeW1ib2wgb2YgdGhlIEVSQzIwIHRva2VuLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gZmV0Y2ggdGhlIHN5bWJvbCBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqIEl0IGNhbGxzIHRoZSBcIlN5bWJvbFwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCBhbmQgZGVjb2RlcyB0aGUgcmV0dXJuZWQgZGF0YS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgc3ltYm9sIG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICovXG4gIGFzeW5jIHN5bWJvbCguLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+Pik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInN5bWJvbFwiLCB0cnVlKSkuZm9yKHRoaXMuc3ltYm9sKTtcbiAgICBjb25zdCBzeW1ib2wgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIFwiU3ltYm9sXCIpO1xuICAgIHJldHVybiB0aGlzLmRlY29kZShzeW1ib2wpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGZvciB0aGUgRVJDMjAgdG9rZW4uXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGZvciB0aGUgRVJDMjAgdG9rZW4uXG4gICAqIEl0IGNhbGxzIHRoZSBcIkRlY2ltYWxzXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IGFuZCBkZWNvZGVzIHRoZSByZXR1cm5lZCBkYXRhLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgZm9yIHRoZSBFUkMyMCB0b2tlbi5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICovXG4gIGFzeW5jIGRlY2ltYWxzKC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB7IGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZGVjaW1hbHNcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuZGVjaW1hbHNcbiAgICApO1xuICAgIGNvbnN0IGRlY2ltYWxzID0gYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oY3R4LCBcIkRlY2ltYWxzXCIpO1xuICAgIHJldHVybiBOdW1iZXIodGhpcy5kZWNvZGUoZGVjaW1hbHMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHRvdGFsIHN1cHBseSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgdG90YWwgc3VwcGx5IG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICogSXQgY2FsbHMgdGhlIFwiVG90YWxTdXBwbHlcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3QgYW5kIGRlY29kZXMgdGhlIHJldHVybmVkIGRhdGEuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPG51bWJlcj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHRvdGFsIHN1cHBseSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyB0b3RhbFN1cHBseShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ0b3RhbFN1cHBseVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy50b3RhbFN1cHBseVxuICAgICk7XG4gICAgY29uc3QgdG90YWwgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIFwiVG90YWxTdXBwbHlcIik7XG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmRlY29kZSh0b3RhbCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgYmFsYW5jZSBvZiB0aGUgRVJDMjAgdG9rZW4gZm9yIGEgc3BlY2lmaWVkIG93bmVyLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBiYWxhbmNlIG9mIHRoZSBFUkMyMCB0b2tlbiBmb3IgYSBnaXZlbiBvd25lci5cbiAgICogSXQgY2FsbHMgdGhlIFwiQmFsYW5jZU9mXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIHByb3ZpZGVkIG93bmVyJ3MgYWRkcmVzcyBhcyBhIHBhcmFtZXRlci5cbiAgICogVGhlIHJldHVybmVkIGRhdGEgaXMgdGhlbiBkZWNvZGVkIGFuZCBjb252ZXJ0ZWQgdG8gYSBudW1iZXIuXG4gICAqXG4gICAqIEBwYXJhbSBvd25lciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBFUkMyMCB0b2tlbiBvd25lci5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgYmFsYW5jZSBvZiB0aGUgRVJDMjAgdG9rZW4gZm9yIHRoZSBzcGVjaWZpZWQgb3duZXIuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyBiYWxhbmNlT2YoXG4gICAgb3duZXI6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJiYWxhbmNlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmJhbGFuY2VPZlxuICAgICk7XG4gICAgY29uc3QgYmFsYW5jZSA9IGF3YWl0IHRoaXMuYWRhcHRlci5ldmFsdWF0ZVRyYW5zYWN0aW9uKGN0eCwgXCJCYWxhbmNlT2ZcIiwgW1xuICAgICAgb3duZXIsXG4gICAgXSk7XG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmRlY29kZShiYWxhbmNlKSk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmZXJzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gYSByZWNpcGllbnQuXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gdHJhbnNmZXIgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byBhIHJlY2lwaWVudC5cbiAgICogSXQgY2FsbHMgdGhlIFwiVHJhbnNmZXJcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3Qgd2l0aCB0aGUgcmVjaXBpZW50J3MgYWRkcmVzcyBhbmQgdGhlIHRyYW5zZmVyIGFtb3VudCBhcyBwYXJhbWV0ZXJzLlxuICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNoZWNrZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bC5cbiAgICpcbiAgICogQHBhcmFtIHRvIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHJlY2lwaWVudC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gdHJhbnNmZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGB0cnVlYCBpZiB0aGUgdHJhbnNmZXIgd2FzIHN1Y2Nlc3NmdWwsIGFuZCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICovXG4gIGFzeW5jIHRyYW5zZmVyKFxuICAgIHRvOiBzdHJpbmcsXG4gICAgdmFsdWU6IG51bWJlcixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidHJhbnNmZXJcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMudHJhbnNmZXJcbiAgICApO1xuICAgIGNvbnN0IHRyYW5zZmVycmVkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnN1Ym1pdFRyYW5zYWN0aW9uKGN0eCwgXCJUcmFuc2ZlclwiLCBbXG4gICAgICB0byxcbiAgICAgIHZhbHVlLnRvU3RyaW5nKCksXG4gICAgXSk7XG4gICAgcmV0dXJuIHRoaXMuZGVjb2RlKHRyYW5zZmVycmVkKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmZXJzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgZnJvbSBvbmUgYWNjb3VudCB0byBhbm90aGVyLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIHRyYW5zZmVyIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgZnJvbSBvbmUgYWNjb3VudCB0byBhbm90aGVyLlxuICAgKiBGb3IgdGhpcyB0cmFuc2ZlciB0byB3b3JrIHRoZSBzcGVuZGVyICggYWNjb3VudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGlzIGZ1bmN0aW9uICkgbmVlZCB0byBoYXZlIHRoZSB2YWx1ZSBhcHByb3ZlZCBhcyBhbiBhbGxvd2FuY2UgYnkgdGhlIHNlbmRlci5cbiAgICogSXQgY2FsbHMgdGhlIFwiVHJhbnNmZXJGcm9tXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIHNlbmRlcidzIGFkZHJlc3MsIHJlY2lwaWVudCdzIGFkZHJlc3MsIGFuZCB0aGUgdHJhbnNmZXIgYW1vdW50IGFzIHBhcmFtZXRlcnMuXG4gICAqIFRoZSByZXR1cm5lZCBkYXRhIGlzIHRoZW4gZGVjb2RlZCBhbmQgY2hlY2tlZCB0byBkZXRlcm1pbmUgaWYgdGhlIHRyYW5zZmVyIHdhcyBzdWNjZXNzZnVsLlxuICAgKlxuICAgKiBAcGFyYW0gZnJvbSAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzZW5kZXIuXG4gICAqIEBwYXJhbSB0byAtIFRoZSBhZGRyZXNzIG9mIHRoZSByZWNpcGllbnQuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIHRyYW5zZmVyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBgdHJ1ZWAgaWYgdGhlIHRyYW5zZmVyIHdhcyBzdWNjZXNzZnVsLCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyB0cmFuc2ZlckZyb20oXG4gICAgZnJvbTogc3RyaW5nLFxuICAgIHRvOiBzdHJpbmcsXG4gICAgdmFsdWU6IG51bWJlclxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIFwidHJhbnNmZXJGcm9tXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLnRyYW5zZmVyRnJvbSk7XG4gICAgY29uc3QgdHJhbnNmZXJyZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oXG4gICAgICBjdHgsXG4gICAgICBcIlRyYW5zZmVyRnJvbVwiLFxuICAgICAgW2Zyb20sIHRvLCB2YWx1ZS50b1N0cmluZygpXVxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5kZWNvZGUodHJhbnNmZXJyZWQpID09PSBcInRydWVcIiA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHByb3ZlcyBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIGJlIHNwZW50IGJ5IGEgc3BlY2lmaWVkIHNwZW5kZXIuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBhcHByb3ZlIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gYmUgc3BlbnQgYnkgYSBzcGVjaWZpZWQgc3BlbmRlci5cbiAgICogSXQgY2FsbHMgdGhlIFwiQXBwcm92ZVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCB3aXRoIHRoZSBzcGVuZGVyJ3MgYWRkcmVzcyBhbmQgdGhlIGFwcHJvdmFsIGFtb3VudCBhcyBwYXJhbWV0ZXJzLlxuICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNoZWNrZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBhcHByb3ZhbCB3YXMgc3VjY2Vzc2Z1bC5cbiAgICpcbiAgICogQHBhcmFtIHNwZW5kZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgc3BlbmRlci5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gYXBwcm92ZSBmb3IgdGhlIHNwZW5kZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGB0cnVlYCBpZiB0aGUgYXBwcm92YWwgd2FzIHN1Y2Nlc3NmdWwsIGFuZCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICovXG4gIGFzeW5jIGFwcHJvdmUoc3BlbmRlcjogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBcImFwcHJvdmVcIixcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBbXSxcbiAgICAgIHRoaXMuYWRhcHRlcixcbiAgICAgIHRoaXMuX292ZXJyaWRlcyB8fCB7fVxuICAgICk7XG4gICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KGNvbnRleHRBcmdzLmFyZ3MsIHRoaXMuYXBwcm92ZSk7XG4gICAgY29uc3QgYXBwcm92ZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBcIkFwcHJvdmVcIiwgW1xuICAgICAgc3BlbmRlcixcbiAgICAgIHZhbHVlLnRvU3RyaW5nKCksXG4gICAgXSk7XG4gICAgcmV0dXJuIHRoaXMuZGVjb2RlKGFwcHJvdmVkKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBhbGxvd2FuY2Ugb2YgRVJDMjAgdG9rZW5zIHRoYXQgdGhlIHNwZWNpZmllZCBvd25lciBoYXMgYXBwcm92ZWQgZm9yIGEgc3BlbmRlci5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgYWxsb3dhbmNlIG9mIEVSQzIwIHRva2VucyB0aGF0IHRoZSBzcGVjaWZpZWQgb3duZXIgaGFzIGFwcHJvdmVkIGZvciBhIHNwZW5kZXIuXG4gICAqIEl0IGNhbGxzIHRoZSBcIkFsbG93YW5jZVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCB3aXRoIHRoZSBvd25lcidzIGFkZHJlc3MgYW5kIHRoZSBzcGVuZGVyJ3MgYWRkcmVzcyBhcyBwYXJhbWV0ZXJzLlxuICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNvbnZlcnRlZCB0byBhIG51bWJlci5cbiAgICpcbiAgICogQHBhcmFtIG93bmVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIEVSQzIwIHRva2VuIG93bmVyLlxuICAgKiBAcGFyYW0gc3BlbmRlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzcGVuZGVyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBhbGxvd2FuY2Ugb2YgRVJDMjAgdG9rZW5zIHRoYXQgdGhlIHNwZWNpZmllZCBvd25lciBoYXMgYXBwcm92ZWQgZm9yIHRoZSBzcGVuZGVyLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzIG9yIHRoZSBkZWNvZGluZyBwcm9jZXNzIGZhaWxzLlxuICAgKi9cbiAgYXN5bmMgYWxsb3dhbmNlKG93bmVyOiBzdHJpbmcsIHNwZW5kZXI6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBcImFsbG93YW5jZVwiLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIFtdLFxuICAgICAgdGhpcy5hZGFwdGVyLFxuICAgICAgdGhpcy5fb3ZlcnJpZGVzIHx8IHt9XG4gICAgKTtcbiAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5sb2dDdHgoY29udGV4dEFyZ3MuYXJncywgdGhpcy5hbGxvd2FuY2UpO1xuICAgIGNvbnN0IGFsbG93YW5jZSA9IGF3YWl0IHRoaXMuYWRhcHRlci5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIFwiQWxsb3dhbmNlXCIsIFtcbiAgICAgIG93bmVyLFxuICAgICAgc3BlbmRlcixcbiAgICBdKTtcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMuZGVjb2RlKGFsbG93YW5jZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBFUkMyMCBjb250cmFjdCB3aXRoIHRoZSBwcm92aWRlZCB0b2tlbiBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBpbml0aWFsaXplIHRoZSBFUkMyMCBjb250cmFjdCB3aXRoIHRoZSBnaXZlbiB0b2tlbiBpbmZvcm1hdGlvbi5cbiAgICogSXQgY2FsbHMgdGhlIFwiSW5pdGlhbGl6ZVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCB3aXRoIHRoZSBzZXJpYWxpemVkIHRva2VuIGRhdGEgYXMgYSBwYXJhbWV0ZXIuXG4gICAqIFRoZSByZXR1cm5lZCBkYXRhIGlzIHRoZW4gZGVjb2RlZCBhbmQgY2hlY2tlZCB0byBkZXRlcm1pbmUgaWYgdGhlIGluaXRpYWxpemF0aW9uIHdhcyBzdWNjZXNzZnVsLlxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW4gLSBUaGUgRVJDMjAgdG9rZW4gaW5mb3JtYXRpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29udHJhY3Qgd2l0aC5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYHRydWVgIGlmIHRoZSBpbml0aWFsaXphdGlvbiB3YXMgc3VjY2Vzc2Z1bCwgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzIG9yIHRoZSBkZWNvZGluZyBwcm9jZXNzIGZhaWxzLlxuICAgKi9cbiAgYXN5bmMgaW5pdGlhbGl6ZSh0b2tlbjogRVJDMjBUb2tlbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgXCJpbml0aWFsaXplXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGluaXRpbGlhemVkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgXCJJbml0aWFsaXplXCIsXG4gICAgICBbRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5LnNlcmlhbGl6ZXIuc2VyaWFsaXplKHRva2VuKV1cbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuZGVjb2RlKGluaXRpbGlhemVkKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBFUkMyMCBjb250cmFjdCBoYXMgYmVlbiBpbml0aWFsaXplZC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIHZlcmlmeSBpZiB0aGUgRVJDMjAgY29udHJhY3QgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAqIEl0IGNhbGxzIHRoZSBcIkNoZWNrSW5pdGlhbGl6ZWRcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3QsIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgYW55IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBpbml0aWFsaXphdGlvbiBjaGVjayBpcyBjb21wbGV0ZWQuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMuXG4gICAqL1xuICBhc3luYyBjaGVja0luaXRpYWxpemVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgXCJjaGVja0luaXRpYWxpemVkXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmNoZWNrSW5pdGlhbGl6ZWQpO1xuICAgIGF3YWl0IHRoaXMuYWRhcHRlci5ldmFsdWF0ZVRyYW5zYWN0aW9uKGN0eCwgXCJDaGVja0luaXRpYWxpemVkXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1pbnRzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMuXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gbWludCBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zLlxuICAgKiBJdCBjYWxscyB0aGUgXCJNaW50XCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIG1pbnRpbmcgYW1vdW50IGFzIGEgcGFyYW1ldGVyLlxuICAgKiBUaGUgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGFueSB2YWx1ZSwgYnV0IGl0IHVwZGF0ZXMgdGhlIG1pbnRlcidzIG51bWJlciBvZiB0b2tlbnMuXG4gICAqXG4gICAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byBtaW50LlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWludGluZyBwcm9jZXNzIGlzIGNvbXBsZXRlZC5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscy5cbiAgICovXG4gIGFzeW5jIG1pbnQoYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIFwibWludFwiLFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIFtdLFxuICAgICAgdGhpcy5hZGFwdGVyLFxuICAgICAgdGhpcy5fb3ZlcnJpZGVzIHx8IHt9XG4gICAgKTtcbiAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5sb2dDdHgoY29udGV4dEFyZ3MuYXJncywgdGhpcy5taW50KTtcbiAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBcIk1pbnRcIiwgW2Ftb3VudC50b1N0cmluZygpXSk7XG4gIH1cblxuICAvKipcbiAgICogQnVybnMgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyBmcm9tIHRoZSBtaW50ZXIncyBhY2NvdW50LlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gYnVybiBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zLlxuICAgKiBJdCBjYWxscyB0aGUgXCJCdXJuXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIGJ1cm5pbmcgYW1vdW50IGFzIGEgcGFyYW1ldGVyLlxuICAgKiBUaGUgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGFueSB2YWx1ZSwgYnV0IGl0IGRlY3JlYXNlcyB0aGUgbWludGVyJ3MgbnVtYmVyIG9mIHRva2Vucy5cbiAgICpcbiAgICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIGJ1cm4uXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBidXJuaW5nIHByb2Nlc3MgaXMgY29tcGxldGVkLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzLlxuICAgKi9cbiAgYXN5bmMgYnVybihhbW91bnQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFxuICAgICAgXCJidXJuXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmJ1cm4pO1xuICAgIGF3YWl0IHRoaXMuYWRhcHRlci5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIFwiQnVyblwiLCBbYW1vdW50LnRvU3RyaW5nKCldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdXJucyBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIGZyb20gYSBzcGVjaWZpZWQgYWNjb3VudC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGJ1cm4gYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyBmcm9tIGEgZ2l2ZW4gYWNjb3VudC5cbiAgICogSXQgY2FsbHMgdGhlIFwiQnVybkZyb21cIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3Qgd2l0aCB0aGUgYWNjb3VudCdzIGFkZHJlc3MgYW5kIHRoZSBidXJuaW5nIGFtb3VudCBhcyBwYXJhbWV0ZXJzLlxuICAgKiBUaGUgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGFueSB2YWx1ZSwgYnV0IGl0IGRlY3JlYXNlcyB0aGUgc3BlY2lmaWVkIGFjY291bnQncyBudW1iZXIgb2YgdG9rZW5zLlxuICAgKlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBhY2NvdW50IGZyb20gd2hpY2ggdG8gYnVybiB0aGUgRVJDMjAgdG9rZW5zLlxuICAgKiBAcGFyYW0gYW1vdW50IC0gVGhlIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gYnVybi5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGJ1cm5pbmcgcHJvY2VzcyBpcyBjb21wbGV0ZWQuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMuXG4gICAqL1xuICBhc3luYyBidXJuRnJvbShhY2NvdW50OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXG4gICAgICBcImJ1cm5Gcm9tXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmJ1cm5Gcm9tKTtcbiAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBcIkJ1cm5Gcm9tXCIsIFtcbiAgICAgIGFjY291bnQsXG4gICAgICBhbW91bnQudG9TdHJpbmcoKSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGJhbGFuY2Ugb2YgRVJDMjAgdG9rZW5zIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2xpZW50J3MgYWNjb3VudC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBiYWxhbmNlIG9mIEVSQzIwIHRva2VucyBhc3NvY2lhdGVkIHdpdGggdGhlIGNsaWVudCdzIGFjY291bnQuXG4gICAqIEl0IGNhbGxzIHRoZSBcIkNsaWVudEFjY291bnRCYWxhbmNlXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0LCB3aGljaCBkb2VzIG5vdCByZXF1aXJlIGFueSBwYXJhbWV0ZXJzLlxuICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNvbnZlcnRlZCB0byBhIG51bWJlci5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgYmFsYW5jZSBvZiBFUkMyMCB0b2tlbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGllbnQncyBhY2NvdW50LlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzIG9yIHRoZSBkZWNvZGluZyBwcm9jZXNzIGZhaWxzLlxuICAgKi9cbiAgYXN5bmMgY2xpZW50QWNjb3VudEJhbGFuY2UoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIFwiYWNjb3VudEJhbGFuY2VcIixcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBbXSxcbiAgICAgIHRoaXMuYWRhcHRlcixcbiAgICAgIHRoaXMuX292ZXJyaWRlcyB8fCB7fVxuICAgICk7XG4gICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KGNvbnRleHRBcmdzLmFyZ3MsIHRoaXMuY2xpZW50QWNjb3VudEJhbGFuY2UpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRBY2NvdW50QmFsYW5jZSA9IGF3YWl0IHRoaXMuYWRhcHRlci5ldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgXCJDbGllbnRBY2NvdW50QmFsYW5jZVwiXG4gICAgKTtcblxuICAgIHJldHVybiBOdW1iZXIodGhpcy5kZWNvZGUoc2VyaWFsaXplZEFjY291bnRCYWxhbmNlKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjbGllbnQncyBhY2NvdW50IElEIGZyb20gdGhlIGJsb2NrY2hhaW4gbmV0d29yay5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBjbGllbnQncyBhY2NvdW50IElELlxuICAgKiBJdCBjYWxscyB0aGUgXCJDbGllbnRBY2NvdW50SURcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3QsIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgYW55IHBhcmFtZXRlcnMuXG4gICAqIFRoZSByZXR1cm5lZCBkYXRhIGlzIHRoZW4gZGVjb2RlZCBhbmQgcmV0dXJuZWQgYXMgYSBzdHJpbmcuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGNsaWVudCdzIGFjY291bnQgSUQuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyBjbGllbnRBY2NvdW50SUQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcbiAgICAgIFwiYWNjb3VudElkXCIsXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgW10sXG4gICAgICB0aGlzLmFkYXB0ZXIsXG4gICAgICB0aGlzLl9vdmVycmlkZXMgfHwge31cbiAgICApO1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmNsaWVudEFjY291bnRJRCk7XG4gICAgY29uc3QgY2xpZW50QWNjb3VudElEID0gYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oXG4gICAgICBjdHgsXG4gICAgICBcIkNsaWVudEFjY291bnRJRFwiXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmRlY29kZShjbGllbnRBY2NvdW50SUQpO1xuICB9XG59XG4iXX0=
|
|
364
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRmFicmljRVJDMjBDbGllbnRSZXBvc2l0b3J5LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhFQUF3RTtBQUN4RSxpRUFBZ0U7QUFDaEUseUVBQXVEO0FBQ3ZELDRFQUFzRTtBQUN0RSx5Q0FBb0Q7QUFDcEQsMkRBQXlEO0FBQ3pEOzs7R0FHRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsa0RBQXNCO0lBQ25FLFNBQVMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHNDQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BELFNBQVMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEQ7Ozs7Ozs7OztPQVNHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUk7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQ3JCLE1BQU0sSUFBSSw2QkFBYSxDQUFDLG9FQUFvRSxDQUFDLENBQUM7UUFDbEcsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLGtCQUFrQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLEtBQUssR0FBRyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsNEJBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9ELElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxFQUFFLEtBQUssU0FBUyxF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LEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwRSxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDdkYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDSjtBQTNWRCxrRUEyVkM7QUFDRCwwOHFDQUEwOHFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFicmljQ2xpZW50UmVwb3NpdG9yeSB9IGZyb20gXCIuLy4uL0ZhYnJpY0NsaWVudFJlcG9zaXRvcnkuanNcIjtcbmltcG9ydCB7IEVSQzIwV2FsbGV0IH0gZnJvbSBcIi4vLi4vLi4vY29udHJhY3RzL2VyYzIwL21vZGVscy5qc1wiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDbGllbnRTZXJpYWxpemVyIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL0NsaWVudFNlcmlhbGl6ZXIuanNcIjtcbmltcG9ydCB7IENvbnRleHQsIFNlcXVlbmNlLCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbi8qKlxuICogUmVwb3NpdG9yeSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBFUkMyMCBjb250cmFjdHMgb24gYSBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29yay5cbiAqIEV4dGVuZHMgdGhlIGJhc2UgRmFicmljQ2xpZW50UmVwb3NpdG9yeSBjbGFzcyBhbmQgdXRpbGl6ZXMgdGhlIENsaWVudFNlcmlhbGl6ZXIgZm9yIGRhdGEgc2VyaWFsaXphdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0VSQzIwQ2xpZW50UmVwb3NpdG9yeSBleHRlbmRzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnkge1xuICAgIHN0YXRpYyB7IHRoaXMuc2VyaWFsaXplciA9IG5ldyBDbGllbnRTZXJpYWxpemVyKCk7IH1cbiAgICBzdGF0aWMgeyB0aGlzLmRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoXCJ1dGY4XCIpOyB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE5vdGlmaWVzIGFsbCBvYnNlcnZlcnMgb2YgYW4gZXZlbnQuXG4gICAgICogQHN1bW1hcnkgVXBkYXRlcyBhbGwgcmVnaXN0ZXJlZCBvYnNlcnZlcnMgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBhIGRhdGFiYXNlIGV2ZW50LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZSAtIFRoZSB0YWJsZSBuYW1lIHdoZXJlIHRoZSBldmVudCBvY2N1cnJlZC5cbiAgICAgKiBAcGFyYW0ge09wZXJhdGlvbktleXN8QnVsa0NydWRPcGVyYXRpb25LZXlzfHN0cmluZ30gZXZlbnQgLSBUaGUgdHlwZSBvZiBldmVudCB0aGF0IG9jY3VycmVkLlxuICAgICAqIEBwYXJhbSB7RXZlbnRJZHN9IGlkIC0gVGhlIElEIG9yIElEcyBvZiB0aGUgYWZmZWN0ZWQgcmVjb3Jkcy5cbiAgICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMuXG4gICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgb2JzZXJ2ZXJzIGhhdmUgYmVlbiBub3RpZmllZC5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBJZiB0aGUgb2JzZXJ2ZXIgaGFuZGxlciBpcyBub3QgaW5pdGlhbGl6ZWQuXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlT2JzZXJ2ZXJzKHRhYmxlLCBldmVudCwgaWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9ic2VydmVySGFuZGxlcilcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiT2JzZXJ2ZXJIYW5kbGVyIG5vdCBpbml0aWFsaXplZC4gRGlkIHlvdSByZWdpc3RlciBhbnkgb2JzZXJ2YWJsZXM/XCIpO1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGVPYnNlcnZlcnMpO1xuICAgICAgICBsb2cudmVyYm9zZShgVXBkYXRpbmcgJHt0aGlzLm9ic2VydmVySGFuZGxlci5jb3VudCgpfSBvYnNlcnZlcnMgZm9yICR7dGhpc31gKTtcbiAgICAgICAgdGFibGUgPSAodHlwZW9mIHRhYmxlID09PSBcInN0cmluZ1wiID8gTW9kZWwuZ2V0KHRhYmxlKSA6IHRhYmxlKTtcbiAgICAgICAgbGV0IHBhcnNlZElkO1xuICAgICAgICBpZiAoaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGFyc2VkSWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpZCkpIHtcbiAgICAgICAgICAgIHBhcnNlZElkID0gaWQubWFwKChpKSA9PiBTZXF1ZW5jZS5wYXJzZVZhbHVlKE1vZGVsLnNlcXVlbmNlRm9yKHRhYmxlKS50eXBlLCBpKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJzZWRJZCA9IFNlcXVlbmNlLnBhcnNlVmFsdWUoTW9kZWwuc2VxdWVuY2VGb3IodGFibGUpLnR5cGUsIGlkKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLm9ic2VydmVySGFuZGxlci51cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBwYXJzZWRJZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlY29kZXMgYSBVaW50OEFycmF5IGludG8gYSBzdHJpbmcgdXNpbmcgdGhlIFRleHREZWNvZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGEgLSBUaGUgVWludDhBcnJheSB0byBkZWNvZGUuXG4gICAgICogQHJldHVybnMgVGhlIGRlY29kZWQgc3RyaW5nLlxuICAgICAqL1xuICAgIGRlY29kZShkYXRhKSB7XG4gICAgICAgIHJldHVybiBGYWJyaWNFUkMyMENsaWVudFJlcG9zaXRvcnkuZGVjb2Rlci5kZWNvZGUoZGF0YSk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGFkYXB0ZXIpIHtcbiAgICAgICAgc3VwZXIoYWRhcHRlciwgRVJDMjBXYWxsZXQpO1xuICAgICAgICB0aGlzLnNlcmlhbGl6ZXIgPSBGYWJyaWNFUkMyMENsaWVudFJlcG9zaXRvcnkuc2VyaWFsaXplcjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBuYW1lIG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICAgKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgbmFtZSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAgICogSXQgY2FsbHMgdGhlIFwiVG9rZW5OYW1lXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IGFuZCBkZWNvZGVzIHRoZSByZXR1cm5lZCBkYXRhLlxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgbmFtZSBvZiB0aGUgRVJDMjAgdG9rZW4uXG4gICAgICpcbiAgICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzIG9yIHRoZSBkZWNvZGluZyBwcm9jZXNzIGZhaWxzLlxuICAgICAqL1xuICAgIGFzeW5jIHRva2VuTmFtZSguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ0b2tlbk5hbWVcIiwgdHJ1ZSkpLmZvcih0aGlzLnRva2VuTmFtZSk7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIFwiVG9rZW5OYW1lXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5kZWNvZGUobmFtZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgc3ltYm9sIG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICAgKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgc3ltYm9sIG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICAgKiBJdCBjYWxscyB0aGUgXCJTeW1ib2xcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3QgYW5kIGRlY29kZXMgdGhlIHJldHVybmVkIGRhdGEuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBzeW1ib2wgb2YgdGhlIEVSQzIwIHRva2VuLlxuICAgICAqXG4gICAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICAgKi9cbiAgICBhc3luYyBzeW1ib2woLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic3ltYm9sXCIsIHRydWUpKS5mb3IodGhpcy5zeW1ib2wpO1xuICAgICAgICBjb25zdCBzeW1ib2wgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIFwiU3ltYm9sXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5kZWNvZGUoc3ltYm9sKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgZm9yIHRoZSBFUkMyMCB0b2tlbi5cbiAgICAgKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBmZXRjaCB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGZvciB0aGUgRVJDMjAgdG9rZW4uXG4gICAgICogSXQgY2FsbHMgdGhlIFwiRGVjaW1hbHNcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3QgYW5kIGRlY29kZXMgdGhlIHJldHVybmVkIGRhdGEuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgZm9yIHRoZSBFUkMyMCB0b2tlbi5cbiAgICAgKlxuICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAgICovXG4gICAgYXN5bmMgZGVjaW1hbHMoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZGVjaW1hbHNcIiwgdHJ1ZSkpLmZvcih0aGlzLmRlY2ltYWxzKTtcbiAgICAgICAgY29uc3QgZGVjaW1hbHMgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIFwiRGVjaW1hbHNcIik7XG4gICAgICAgIHJldHVybiBOdW1iZXIodGhpcy5kZWNvZGUoZGVjaW1hbHMpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSB0b3RhbCBzdXBwbHkgb2YgdGhlIEVSQzIwIHRva2VuLlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSB0b3RhbCBzdXBwbHkgb2YgdGhlIEVSQzIwIHRva2VuLlxuICAgICAqIEl0IGNhbGxzIHRoZSBcIlRvdGFsU3VwcGx5XCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IGFuZCBkZWNvZGVzIHRoZSByZXR1cm5lZCBkYXRhLlxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdG90YWwgc3VwcGx5IG9mIHRoZSBFUkMyMCB0b2tlbi5cbiAgICAgKlxuICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAgICovXG4gICAgYXN5bmMgdG90YWxTdXBwbHkoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidG90YWxTdXBwbHlcIiwgdHJ1ZSkpLmZvcih0aGlzLnRvdGFsU3VwcGx5KTtcbiAgICAgICAgY29uc3QgdG90YWwgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIFwiVG90YWxTdXBwbHlcIik7XG4gICAgICAgIHJldHVybiBOdW1iZXIodGhpcy5kZWNvZGUodG90YWwpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBiYWxhbmNlIG9mIHRoZSBFUkMyMCB0b2tlbiBmb3IgYSBzcGVjaWZpZWQgb3duZXIuXG4gICAgICpcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gZmV0Y2ggdGhlIGJhbGFuY2Ugb2YgdGhlIEVSQzIwIHRva2VuIGZvciBhIGdpdmVuIG93bmVyLlxuICAgICAqIEl0IGNhbGxzIHRoZSBcIkJhbGFuY2VPZlwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCB3aXRoIHRoZSBwcm92aWRlZCBvd25lcidzIGFkZHJlc3MgYXMgYSBwYXJhbWV0ZXIuXG4gICAgICogVGhlIHJldHVybmVkIGRhdGEgaXMgdGhlbiBkZWNvZGVkIGFuZCBjb252ZXJ0ZWQgdG8gYSBudW1iZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3duZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgRVJDMjAgdG9rZW4gb3duZXIuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBiYWxhbmNlIG9mIHRoZSBFUkMyMCB0b2tlbiBmb3IgdGhlIHNwZWNpZmllZCBvd25lci5cbiAgICAgKlxuICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAgICovXG4gICAgYXN5bmMgYmFsYW5jZU9mKG93bmVyLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJiYWxhbmNlXCIsIHRydWUpKS5mb3IodGhpcy5iYWxhbmNlT2YpO1xuICAgICAgICBjb25zdCBiYWxhbmNlID0gYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oY3R4LCBcIkJhbGFuY2VPZlwiLCBbXG4gICAgICAgICAgICBvd25lcixcbiAgICAgICAgXSk7XG4gICAgICAgIHJldHVybiBOdW1iZXIodGhpcy5kZWNvZGUoYmFsYW5jZSkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUcmFuc2ZlcnMgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byBhIHJlY2lwaWVudC5cbiAgICAgKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byB0cmFuc2ZlciBhIHNwZWNpZmllZCBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIGEgcmVjaXBpZW50LlxuICAgICAqIEl0IGNhbGxzIHRoZSBcIlRyYW5zZmVyXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIHJlY2lwaWVudCdzIGFkZHJlc3MgYW5kIHRoZSB0cmFuc2ZlciBhbW91bnQgYXMgcGFyYW1ldGVycy5cbiAgICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNoZWNrZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0byAtIFRoZSBhZGRyZXNzIG9mIHRoZSByZWNpcGllbnQuXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gdHJhbnNmZXIuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBgdHJ1ZWAgaWYgdGhlIHRyYW5zZmVyIHdhcyBzdWNjZXNzZnVsLCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAgICpcbiAgICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzIG9yIHRoZSBkZWNvZGluZyBwcm9jZXNzIGZhaWxzLlxuICAgICAqL1xuICAgIGFzeW5jIHRyYW5zZmVyKHRvLCB2YWx1ZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidHJhbnNmZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLnRyYW5zZmVyKTtcbiAgICAgICAgY29uc3QgdHJhbnNmZXJyZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBcIlRyYW5zZmVyXCIsIFtcbiAgICAgICAgICAgIHRvLFxuICAgICAgICAgICAgdmFsdWUudG9TdHJpbmcoKSxcbiAgICAgICAgXSk7XG4gICAgICAgIHJldHVybiB0aGlzLmRlY29kZSh0cmFuc2ZlcnJlZCkgPT09IFwidHJ1ZVwiID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUcmFuc2ZlcnMgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyBmcm9tIG9uZSBhY2NvdW50IHRvIGFub3RoZXIuXG4gICAgICpcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gdHJhbnNmZXIgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyBmcm9tIG9uZSBhY2NvdW50IHRvIGFub3RoZXIuXG4gICAgICogRm9yIHRoaXMgdHJhbnNmZXIgdG8gd29yayB0aGUgc3BlbmRlciAoIGFjY291bnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhpcyBmdW5jdGlvbiApIG5lZWQgdG8gaGF2ZSB0aGUgdmFsdWUgYXBwcm92ZWQgYXMgYW4gYWxsb3dhbmNlIGJ5IHRoZSBzZW5kZXIuXG4gICAgICogSXQgY2FsbHMgdGhlIFwiVHJhbnNmZXJGcm9tXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIHNlbmRlcidzIGFkZHJlc3MsIHJlY2lwaWVudCdzIGFkZHJlc3MsIGFuZCB0aGUgdHJhbnNmZXIgYW1vdW50IGFzIHBhcmFtZXRlcnMuXG4gICAgICogVGhlIHJldHVybmVkIGRhdGEgaXMgdGhlbiBkZWNvZGVkIGFuZCBjaGVja2VkIHRvIGRldGVybWluZSBpZiB0aGUgdHJhbnNmZXIgd2FzIHN1Y2Nlc3NmdWwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZnJvbSAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzZW5kZXIuXG4gICAgICogQHBhcmFtIHRvIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHJlY2lwaWVudC5cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byB0cmFuc2Zlci5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGB0cnVlYCBpZiB0aGUgdHJhbnNmZXIgd2FzIHN1Y2Nlc3NmdWwsIGFuZCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICAgKlxuICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAgICovXG4gICAgYXN5bmMgdHJhbnNmZXJGcm9tKGZyb20sIHRvLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcInRyYW5zZmVyRnJvbVwiLCB0aGlzLmNsYXNzLCBbXSwgdGhpcy5hZGFwdGVyLCB0aGlzLl9vdmVycmlkZXMgfHwge30pO1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5sb2dDdHgoY29udGV4dEFyZ3MuYXJncywgdGhpcy50cmFuc2ZlckZyb20pO1xuICAgICAgICBjb25zdCB0cmFuc2ZlcnJlZCA9IGF3YWl0IHRoaXMuYWRhcHRlci5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIFwiVHJhbnNmZXJGcm9tXCIsIFtmcm9tLCB0bywgdmFsdWUudG9TdHJpbmcoKV0pO1xuICAgICAgICByZXR1cm4gdGhpcy5kZWNvZGUodHJhbnNmZXJyZWQpID09PSBcInRydWVcIiA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQXBwcm92ZXMgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byBiZSBzcGVudCBieSBhIHNwZWNpZmllZCBzcGVuZGVyLlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGFwcHJvdmUgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyB0byBiZSBzcGVudCBieSBhIHNwZWNpZmllZCBzcGVuZGVyLlxuICAgICAqIEl0IGNhbGxzIHRoZSBcIkFwcHJvdmVcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3Qgd2l0aCB0aGUgc3BlbmRlcidzIGFkZHJlc3MgYW5kIHRoZSBhcHByb3ZhbCBhbW91bnQgYXMgcGFyYW1ldGVycy5cbiAgICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNoZWNrZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBhcHByb3ZhbCB3YXMgc3VjY2Vzc2Z1bC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzcGVuZGVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHNwZW5kZXIuXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gYXBwcm92ZSBmb3IgdGhlIHNwZW5kZXIuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBgdHJ1ZWAgaWYgdGhlIGFwcHJvdmFsIHdhcyBzdWNjZXNzZnVsLCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAgICpcbiAgICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzIG9yIHRoZSBkZWNvZGluZyBwcm9jZXNzIGZhaWxzLlxuICAgICAqL1xuICAgIGFzeW5jIGFwcHJvdmUoc3BlbmRlciwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXCJhcHByb3ZlXCIsIHRoaXMuY2xhc3MsIFtdLCB0aGlzLmFkYXB0ZXIsIHRoaXMuX292ZXJyaWRlcyB8fCB7fSk7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmFwcHJvdmUpO1xuICAgICAgICBjb25zdCBhcHByb3ZlZCA9IGF3YWl0IHRoaXMuYWRhcHRlci5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIFwiQXBwcm92ZVwiLCBbXG4gICAgICAgICAgICBzcGVuZGVyLFxuICAgICAgICAgICAgdmFsdWUudG9TdHJpbmcoKSxcbiAgICAgICAgXSk7XG4gICAgICAgIHJldHVybiB0aGlzLmRlY29kZShhcHByb3ZlZCkgPT09IFwidHJ1ZVwiID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGFsbG93YW5jZSBvZiBFUkMyMCB0b2tlbnMgdGhhdCB0aGUgc3BlY2lmaWVkIG93bmVyIGhhcyBhcHByb3ZlZCBmb3IgYSBzcGVuZGVyLlxuICAgICAqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBhbGxvd2FuY2Ugb2YgRVJDMjAgdG9rZW5zIHRoYXQgdGhlIHNwZWNpZmllZCBvd25lciBoYXMgYXBwcm92ZWQgZm9yIGEgc3BlbmRlci5cbiAgICAgKiBJdCBjYWxscyB0aGUgXCJBbGxvd2FuY2VcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3Qgd2l0aCB0aGUgb3duZXIncyBhZGRyZXNzIGFuZCB0aGUgc3BlbmRlcidzIGFkZHJlc3MgYXMgcGFyYW1ldGVycy5cbiAgICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNvbnZlcnRlZCB0byBhIG51bWJlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvd25lciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBFUkMyMCB0b2tlbiBvd25lci5cbiAgICAgKiBAcGFyYW0gc3BlbmRlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzcGVuZGVyLlxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgYWxsb3dhbmNlIG9mIEVSQzIwIHRva2VucyB0aGF0IHRoZSBzcGVjaWZpZWQgb3duZXIgaGFzIGFwcHJvdmVkIGZvciB0aGUgc3BlbmRlci5cbiAgICAgKlxuICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAgICovXG4gICAgYXN5bmMgYWxsb3dhbmNlKG93bmVyLCBzcGVuZGVyKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFwiYWxsb3dhbmNlXCIsIHRoaXMuY2xhc3MsIFtdLCB0aGlzLmFkYXB0ZXIsIHRoaXMuX292ZXJyaWRlcyB8fCB7fSk7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmFsbG93YW5jZSk7XG4gICAgICAgIGNvbnN0IGFsbG93YW5jZSA9IGF3YWl0IHRoaXMuYWRhcHRlci5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIFwiQWxsb3dhbmNlXCIsIFtcbiAgICAgICAgICAgIG93bmVyLFxuICAgICAgICAgICAgc3BlbmRlcixcbiAgICAgICAgXSk7XG4gICAgICAgIHJldHVybiBOdW1iZXIodGhpcy5kZWNvZGUoYWxsb3dhbmNlKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIHRoZSBFUkMyMCBjb250cmFjdCB3aXRoIHRoZSBwcm92aWRlZCB0b2tlbiBpbmZvcm1hdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBpbml0aWFsaXplIHRoZSBFUkMyMCBjb250cmFjdCB3aXRoIHRoZSBnaXZlbiB0b2tlbiBpbmZvcm1hdGlvbi5cbiAgICAgKiBJdCBjYWxscyB0aGUgXCJJbml0aWFsaXplXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIHNlcmlhbGl6ZWQgdG9rZW4gZGF0YSBhcyBhIHBhcmFtZXRlci5cbiAgICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIGNoZWNrZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBpbml0aWFsaXphdGlvbiB3YXMgc3VjY2Vzc2Z1bC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0b2tlbiAtIFRoZSBFUkMyMCB0b2tlbiBpbmZvcm1hdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb250cmFjdCB3aXRoLlxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYHRydWVgIGlmIHRoZSBpbml0aWFsaXphdGlvbiB3YXMgc3VjY2Vzc2Z1bCwgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgICAqXG4gICAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscyBvciB0aGUgZGVjb2RpbmcgcHJvY2VzcyBmYWlscy5cbiAgICAgKi9cbiAgICBhc3luYyBpbml0aWFsaXplKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFwiaW5pdGlhbGl6ZVwiLCB0aGlzLmNsYXNzLCBbXSwgdGhpcy5hZGFwdGVyLCB0aGlzLl9vdmVycmlkZXMgfHwge30pO1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5sb2dDdHgoY29udGV4dEFyZ3MuYXJncywgdGhpcy5pbml0aWFsaXplKTtcbiAgICAgICAgY29uc3QgaW5pdGlsaWF6ZWQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBcIkluaXRpYWxpemVcIiwgW0ZhYnJpY0VSQzIwQ2xpZW50UmVwb3NpdG9yeS5zZXJpYWxpemVyLnNlcmlhbGl6ZSh0b2tlbildKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVjb2RlKGluaXRpbGlhemVkKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgRVJDMjAgY29udHJhY3QgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAgICpcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBibG9ja2NoYWluIG5ldHdvcmsgdG8gdmVyaWZ5IGlmIHRoZSBFUkMyMCBjb250cmFjdCBoYXMgYmVlbiBpbml0aWFsaXplZC5cbiAgICAgKiBJdCBjYWxscyB0aGUgXCJDaGVja0luaXRpYWxpemVkXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0LCB3aGljaCBkb2VzIG5vdCByZXF1aXJlIGFueSBwYXJhbWV0ZXJzLlxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGluaXRpYWxpemF0aW9uIGNoZWNrIGlzIGNvbXBsZXRlZC5cbiAgICAgKlxuICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMuXG4gICAgICovXG4gICAgYXN5bmMgY2hlY2tJbml0aWFsaXplZCgpIHtcbiAgICAgICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXCJjaGVja0luaXRpYWxpemVkXCIsIHRoaXMuY2xhc3MsIFtdLCB0aGlzLmFkYXB0ZXIsIHRoaXMuX292ZXJyaWRlcyB8fCB7fSk7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmNoZWNrSW5pdGlhbGl6ZWQpO1xuICAgICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIFwiQ2hlY2tJbml0aWFsaXplZFwiKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWludHMgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2Vucy5cbiAgICAgKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoaXMgZnVuY3Rpb24gaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrY2hhaW4gbmV0d29yayB0byBtaW50IGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMuXG4gICAgICogSXQgY2FsbHMgdGhlIFwiTWludFwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCB3aXRoIHRoZSBtaW50aW5nIGFtb3VudCBhcyBhIHBhcmFtZXRlci5cbiAgICAgKiBUaGUgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGFueSB2YWx1ZSwgYnV0IGl0IHVwZGF0ZXMgdGhlIG1pbnRlcidzIG51bWJlciBvZiB0b2tlbnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYW1vdW50IC0gVGhlIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgdG8gbWludC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBtaW50aW5nIHByb2Nlc3MgaXMgY29tcGxldGVkLlxuICAgICAqXG4gICAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSB0cmFuc2FjdGlvbiBmYWlscy5cbiAgICAgKi9cbiAgICBhc3luYyBtaW50KGFtb3VudCkge1xuICAgICAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcIm1pbnRcIiwgdGhpcy5jbGFzcywgW10sIHRoaXMuYWRhcHRlciwgdGhpcy5fb3ZlcnJpZGVzIHx8IHt9KTtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KGNvbnRleHRBcmdzLmFyZ3MsIHRoaXMubWludCk7XG4gICAgICAgIGF3YWl0IHRoaXMuYWRhcHRlci5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIFwiTWludFwiLCBbYW1vdW50LnRvU3RyaW5nKCldKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQnVybnMgYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyBmcm9tIHRoZSBtaW50ZXIncyBhY2NvdW50LlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGJ1cm4gYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2Vucy5cbiAgICAgKiBJdCBjYWxscyB0aGUgXCJCdXJuXCIgdHJhbnNhY3Rpb24gb24gdGhlIHNtYXJ0IGNvbnRyYWN0IHdpdGggdGhlIGJ1cm5pbmcgYW1vdW50IGFzIGEgcGFyYW1ldGVyLlxuICAgICAqIFRoZSBmdW5jdGlvbiBkb2VzIG5vdCByZXR1cm4gYW55IHZhbHVlLCBidXQgaXQgZGVjcmVhc2VzIHRoZSBtaW50ZXIncyBudW1iZXIgb2YgdG9rZW5zLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIGJ1cm4uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYnVybmluZyBwcm9jZXNzIGlzIGNvbXBsZXRlZC5cbiAgICAgKlxuICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMuXG4gICAgICovXG4gICAgYXN5bmMgYnVybihhbW91bnQpIHtcbiAgICAgICAgY29uc3QgY29udGV4dEFyZ3MgPSBhd2FpdCBDb250ZXh0LmFyZ3MoXCJidXJuXCIsIHRoaXMuY2xhc3MsIFtdLCB0aGlzLmFkYXB0ZXIsIHRoaXMuX292ZXJyaWRlcyB8fCB7fSk7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmJ1cm4pO1xuICAgICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBcIkJ1cm5cIiwgW2Ftb3VudC50b1N0cmluZygpXSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEJ1cm5zIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBFUkMyMCB0b2tlbnMgZnJvbSBhIHNwZWNpZmllZCBhY2NvdW50LlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGJ1cm4gYSBzcGVjaWZpZWQgYW1vdW50IG9mIEVSQzIwIHRva2VucyBmcm9tIGEgZ2l2ZW4gYWNjb3VudC5cbiAgICAgKiBJdCBjYWxscyB0aGUgXCJCdXJuRnJvbVwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCB3aXRoIHRoZSBhY2NvdW50J3MgYWRkcmVzcyBhbmQgdGhlIGJ1cm5pbmcgYW1vdW50IGFzIHBhcmFtZXRlcnMuXG4gICAgICogVGhlIGZ1bmN0aW9uIGRvZXMgbm90IHJldHVybiBhbnkgdmFsdWUsIGJ1dCBpdCBkZWNyZWFzZXMgdGhlIHNwZWNpZmllZCBhY2NvdW50J3MgbnVtYmVyIG9mIHRva2Vucy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhY2NvdW50IC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGFjY291bnQgZnJvbSB3aGljaCB0byBidXJuIHRoZSBFUkMyMCB0b2tlbnMuXG4gICAgICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgRVJDMjAgdG9rZW5zIHRvIGJ1cm4uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYnVybmluZyBwcm9jZXNzIGlzIGNvbXBsZXRlZC5cbiAgICAgKlxuICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMuXG4gICAgICovXG4gICAgYXN5bmMgYnVybkZyb20oYWNjb3VudCwgYW1vdW50KSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRBcmdzID0gYXdhaXQgQ29udGV4dC5hcmdzKFwiYnVybkZyb21cIiwgdGhpcy5jbGFzcywgW10sIHRoaXMuYWRhcHRlciwgdGhpcy5fb3ZlcnJpZGVzIHx8IHt9KTtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KGNvbnRleHRBcmdzLmFyZ3MsIHRoaXMuYnVybkZyb20pO1xuICAgICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuc3VibWl0VHJhbnNhY3Rpb24oY3R4LCBcIkJ1cm5Gcm9tXCIsIFtcbiAgICAgICAgICAgIGFjY291bnQsXG4gICAgICAgICAgICBhbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgXSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgYmFsYW5jZSBvZiBFUkMyMCB0b2tlbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGllbnQncyBhY2NvdW50LlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBiYWxhbmNlIG9mIEVSQzIwIHRva2VucyBhc3NvY2lhdGVkIHdpdGggdGhlIGNsaWVudCdzIGFjY291bnQuXG4gICAgICogSXQgY2FsbHMgdGhlIFwiQ2xpZW50QWNjb3VudEJhbGFuY2VcIiB0cmFuc2FjdGlvbiBvbiB0aGUgc21hcnQgY29udHJhY3QsIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgYW55IHBhcmFtZXRlcnMuXG4gICAgICogVGhlIHJldHVybmVkIGRhdGEgaXMgdGhlbiBkZWNvZGVkIGFuZCBjb252ZXJ0ZWQgdG8gYSBudW1iZXIuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBiYWxhbmNlIG9mIEVSQzIwIHRva2VucyBhc3NvY2lhdGVkIHdpdGggdGhlIGNsaWVudCdzIGFjY291bnQuXG4gICAgICpcbiAgICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGZhaWxzIG9yIHRoZSBkZWNvZGluZyBwcm9jZXNzIGZhaWxzLlxuICAgICAqL1xuICAgIGFzeW5jIGNsaWVudEFjY291bnRCYWxhbmNlKCkge1xuICAgICAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcImFjY291bnRCYWxhbmNlXCIsIHRoaXMuY2xhc3MsIFtdLCB0aGlzLmFkYXB0ZXIsIHRoaXMuX292ZXJyaWRlcyB8fCB7fSk7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChjb250ZXh0QXJncy5hcmdzLCB0aGlzLmNsaWVudEFjY291bnRCYWxhbmNlKTtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplZEFjY291bnRCYWxhbmNlID0gYXdhaXQgdGhpcy5hZGFwdGVyLmV2YWx1YXRlVHJhbnNhY3Rpb24oY3R4LCBcIkNsaWVudEFjY291bnRCYWxhbmNlXCIpO1xuICAgICAgICByZXR1cm4gTnVtYmVyKHRoaXMuZGVjb2RlKHNlcmlhbGl6ZWRBY2NvdW50QmFsYW5jZSkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGNsaWVudCdzIGFjY291bnQgSUQgZnJvbSB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrLlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgYmxvY2tjaGFpbiBuZXR3b3JrIHRvIGZldGNoIHRoZSBjbGllbnQncyBhY2NvdW50IElELlxuICAgICAqIEl0IGNhbGxzIHRoZSBcIkNsaWVudEFjY291bnRJRFwiIHRyYW5zYWN0aW9uIG9uIHRoZSBzbWFydCBjb250cmFjdCwgd2hpY2ggZG9lcyBub3QgcmVxdWlyZSBhbnkgcGFyYW1ldGVycy5cbiAgICAgKiBUaGUgcmV0dXJuZWQgZGF0YSBpcyB0aGVuIGRlY29kZWQgYW5kIHJldHVybmVkIGFzIGEgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgY2xpZW50J3MgYWNjb3VudCBJRC5cbiAgICAgKlxuICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZmFpbHMgb3IgdGhlIGRlY29kaW5nIHByb2Nlc3MgZmFpbHMuXG4gICAgICovXG4gICAgYXN5bmMgY2xpZW50QWNjb3VudElEKCkge1xuICAgICAgICBjb25zdCBjb250ZXh0QXJncyA9IGF3YWl0IENvbnRleHQuYXJncyhcImFjY291bnRJZFwiLCB0aGlzLmNsYXNzLCBbXSwgdGhpcy5hZGFwdGVyLCB0aGlzLl9vdmVycmlkZXMgfHwge30pO1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5sb2dDdHgoY29udGV4dEFyZ3MuYXJncywgdGhpcy5jbGllbnRBY2NvdW50SUQpO1xuICAgICAgICBjb25zdCBjbGllbnRBY2NvdW50SUQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIFwiQ2xpZW50QWNjb3VudElEXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5kZWNvZGUoY2xpZW50QWNjb3VudElEKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lSbUZpY21salJWSkRNakJEYkdsbGJuUlNaWEJ2YzJsMGIzSjVMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDJOc2FXVnVkQzlsY21NeU1DOUdZV0p5YVdORlVrTXlNRU5zYVdWdWRGSmxjRzl6YVhSdmNua3VkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhGUVVGRkxITkNRVUZ6UWl4RlFVRkZMSFZEUVVGclF6dEJRVU51UlN4UFFVRlBMRVZCUVdNc1YwRkJWeXhGUVVGRkxEQkRRVUZ4UXp0QlFVTjJSU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZqTEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGRmJrVXNUMEZCVHl4RlFVRkZMR2RDUVVGblFpeEZRVUZGTERKRFFVRnpRenRCUVVOcVJTeFBRVUZQTEVWQlEwd3NUMEZCVHl4RlFVdFFMRkZCUVZFc1IwRkRWQ3hOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUTNoQ0xFOUJRVThzUlVGRlRDeGhRVUZoTEVkQlJXUXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVVZxUXpzN08wZEJSMGM3UVVGRFNDeE5RVUZOTEU5QlFVOHNNa0pCUlZnc1UwRkJVU3h6UWtGQmMwTTdZVUZETDBJc1pVRkJWU3hIUVVGSExFbEJRVWtzWjBKQlFXZENMRVZCUVVVc1FVRkJla0lzUTBGQk1FSTdZVUZMY0VNc1dVRkJUeXhIUVVGSExFbEJRVWtzVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4QlFVRXhRaXhEUVVFeVFqdEpRVVZxUkRzN096czdPenM3TzA5QlUwYzdTVUZEVFN4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVNMVFpeExRVUU0UWl4RlFVTTVRaXhMUVVGeFJDeEZRVU55UkN4RlFVRlpMRVZCUTFvc1IwRkJSeXhKUVVGclF6dFJRVVZ5UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExHVkJRV1U3V1VGRGRrSXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzYjBWQlFXOUZMRU5CUTNKRkxFTkJRVU03VVVGRFNpeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF6dFJRVU5xUlN4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVOVUxGbEJRVmtzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4TFFVRkxMRVZCUVVVc2EwSkJRV3RDTEVsQlFVa3NSVUZCUlN4RFFVTnFSU3hEUVVGRE8xRkJSVVlzUzBGQlN5eEhRVUZITEVOQlEwNHNUMEZCVHl4TFFVRkxMRXRCUVVzc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlEyNURMRU5CUVVNN1VVRkRjRUlzU1VGQlNTeFJRVUYxUXl4RFFVRkRPMUZCUlRWRExFbEJRVWtzUlVGQlJTeExRVUZMTEZOQlFWTXNSVUZCUlN4RFFVRkRPMWxCUTNKQ0xGRkJRVkVzUjBGQlJ5eFRRVUZUTEVOQlFVTTdVVUZEZGtJc1EwRkJRenRoUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRemRDTEZGQlFWRXNSMEZCUnl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVObUxFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlZ5eERRVU4yUlN4RFFVRkRPMUZCUTBvc1EwRkJRenRoUVVGTkxFTkJRVU03V1VGRFRpeFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkROVUlzUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRemRDTEVWQlFVVXNRMEZEVHl4RFFVRkRPMUZCUTJRc1EwRkJRenRSUVVORUxFMUJRVTBzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4bFFVRmxMRU5CUTNoRExFdEJRVXNzUlVGRFRDeExRVUZMTEVWQlEwd3NVVUZCVXl4RlFVTlVMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU0N4TlFVRk5MRU5CUVVNc1NVRkJaMEk3VVVGRGNrSXNUMEZCVHl3eVFrRkJNa0lzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRekZFTEVOQlFVTTdTVUZGUkN4WlFVRlpMRTlCUVZjN1VVRkRja0lzUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVd4RldDeGxRVUZWTEVkQlF6TkNMREpDUVVFeVFpeERRVUZETEZWQlFWVXNRMEZCUXp0SlFXdEZla01zUTBGQlF6dEpRVVZFT3pzN096czdPenM3TzA5QlZVYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzU1VGQmMwTTdVVUZEZGtRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFhRVUZYTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRemxFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUTJZc1EwRkJRenRSUVVOR0xFMUJRVTBzU1VGQlNTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4SFFVRkhMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRGRFVXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlF6TkNMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPMDlCVTBjN1NVRkRTQ3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NTVUZCYzBNN1VVRkRjRVFzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRek5GTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhIUVVGSExFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTTdVVUZEY2tVc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMGxCUXpkQ0xFTkJRVU03U1VGRlJEczdPenM3T3pzN08wOUJVMGM3U1VGRFNDeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1NVRkJjME03VVVGRGRFUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUXpkRUxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlEyUXNRMEZCUXp0UlFVTkdMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEhRVUZITEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRla1VzVDBGQlR5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzWkRMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPMDlCVTBjN1NVRkRTQ3hMUVVGTExFTkJRVU1zVjBGQlZ5eERRVU5tTEVkQlFVY3NTVUZCYzBNN1VVRkZla01zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4aFFVRmhMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlEyaEZMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRMnBDTEVOQlFVTTdVVUZEUml4TlFVRk5MRXRCUVVzc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eEZRVUZGTEdGQlFXRXNRMEZCUXl4RFFVRkRPMUZCUTNwRkxFOUJRVThzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU53UXl4RFFVRkRPMGxCUlVRN096czdPenM3T3pzN096czdUMEZoUnp0SlFVTklMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRMklzUzBGQllTeEZRVU5pTEVkQlFVY3NTVUZCYzBNN1VVRkZla01zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlF6VkVMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRMllzUTBGQlF6dFJRVU5HTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhIUVVGSExFVkJRVVVzVjBGQlZ5eEZRVUZGTzFsQlEzWkZMRXRCUVVzN1UwRkRUaXhEUVVGRExFTkJRVU03VVVGRFNDeFBRVUZQTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZEVNc1EwRkJRenRKUVVWRU96czdPenM3T3pzN096czdPenRQUVdOSE8wbEJRMGdzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZEV2l4RlFVRlZMRVZCUTFZc1MwRkJZU3hGUVVOaUxFZEJRVWNzU1VGQmMwTTdVVUZGZWtNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRemRFTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUTJRc1EwRkJRenRSUVVOR0xFMUJRVTBzVjBGQlZ5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SFFVRkhMRVZCUVVVc1ZVRkJWU3hGUVVGRk8xbEJRM2hGTEVWQlFVVTdXVUZEUml4TFFVRkxMRU5CUVVNc1VVRkJVU3hGUVVGRk8xTkJRMnBDTEVOQlFVTXNRMEZCUXp0UlFVTklMRTlCUVU4c1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNTMEZCU3l4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRPMGxCUXpWRUxFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdPenM3T3p0UFFXZENSenRKUVVOSUxFdEJRVXNzUTBGQlF5eFpRVUZaTEVOQlEyaENMRWxCUVZrc1JVRkRXaXhGUVVGVkxFVkJRMVlzUzBGQllUdFJRVVZpTEUxQlFVMHNWMEZCVnl4SFFVRkhMRTFCUVUwc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGRGNFTXNZMEZCWXl4RlFVTmtMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRMVlzUlVGQlJTeEZRVU5HTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUTFvc1NVRkJTU3hEUVVGRExGVkJRVlVzU1VGQlNTeEZRVUZGTEVOQlEzUkNMRU5CUVVNN1VVRkRSaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVOcVJTeE5RVUZOTEZkQlFWY3NSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zYVVKQlFXbENMRU5CUTNSRUxFZEJRVWNzUlVGRFNDeGpRVUZqTEVWQlEyUXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hGUVVGRkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4RFFVTTNRaXhEUVVGRE8xRkJSVVlzVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU03U1VGRE5VUXNRMEZCUXp0SlFVVkVPenM3T3pzN096czdPenM3TzA5QllVYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRV1VzUlVGQlJTeExRVUZoTzFGQlF6RkRMRTFCUVUwc1YwRkJWeXhIUVVGSExFMUJRVTBzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEY0VNc1UwRkJVeXhGUVVOVUxFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlExWXNSVUZCUlN4RlFVTkdMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRMW9zU1VGQlNTeERRVUZETEZWQlFWVXNTVUZCU1N4RlFVRkZMRU5CUTNSQ0xFTkJRVU03VVVGRFJpeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU0xUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUjBGQlJ5eEZRVUZGTEZOQlFWTXNSVUZCUlR0WlFVTndSU3hQUVVGUE8xbEJRMUFzUzBGQlN5eERRVUZETEZGQlFWRXNSVUZCUlR0VFFVTnFRaXhEUVVGRExFTkJRVU03VVVGRFNDeFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF6dEpRVU42UkN4RFFVRkRPMGxCUlVRN096czdPenM3T3pzN096czdPMDlCWTBjN1NVRkRTQ3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFXRXNSVUZCUlN4UFFVRmxPMUZCUXpWRExFMUJRVTBzVjBGQlZ5eEhRVUZITEUxQlFVMHNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkRjRU1zVjBGQlZ5eEZRVU5ZTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUTFZc1JVRkJSU3hGUVVOR0xFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlExb3NTVUZCU1N4RFFVRkRMRlZCUVZVc1NVRkJTU3hGUVVGRkxFTkJRM1JDTEVOQlFVTTdVVUZEUml4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTTVSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNSMEZCUnl4RlFVRkZMRmRCUVZjc1JVRkJSVHRaUVVOMlJTeExRVUZMTzFsQlEwd3NUMEZCVHp0VFFVTlNMRU5CUVVNc1EwRkJRenRSUVVOSUxFOUJRVThzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU40UXl4RFFVRkRPMGxCUlVRN096czdPenM3T3pzN096czdUMEZoUnp0SlFVTklMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQmFVSTdVVUZEYUVNc1RVRkJUU3hYUVVGWExFZEJRVWNzVFVGQlRTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVTndReXhaUVVGWkxFVkJRMW9zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZEVml4RlFVRkZMRVZCUTBZc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGRFdpeEpRVUZKTEVOQlFVTXNWVUZCVlN4SlFVRkpMRVZCUVVVc1EwRkRkRUlzUTBGQlF6dFJRVU5HTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlF5OUVMRTFCUVUwc1YwRkJWeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4cFFrRkJhVUlzUTBGRGRFUXNSMEZCUnl4RlFVTklMRmxCUVZrc1JVRkRXaXhEUVVGRExESkNRVUV5UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZETVVRc1EwRkJRenRSUVVWR0xFOUJRVThzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRelZFTEVOQlFVTTdTVUZGUkRzN096czdPenM3TzA5QlUwYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1owSkJRV2RDTzFGQlEzQkNMRTFCUVUwc1YwRkJWeXhIUVVGSExFMUJRVTBzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEY0VNc2EwSkJRV3RDTEVWQlEyeENMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRMVlzUlVGQlJTeEZRVU5HTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUTFvc1NVRkJTU3hEUVVGRExGVkJRVlVzU1VGQlNTeEZRVUZGTEVOQlEzUkNMRU5CUVVNN1VVRkRSaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETzFGQlEzSkZMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhIUVVGSExFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1EwRkJRenRKUVVOc1JTeERRVUZETzBsQlJVUTdPenM3T3pzN096czdPenM3VDBGaFJ6dEpRVU5JTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJZenRSUVVOMlFpeE5RVUZOTEZkQlFWY3NSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRM0JETEUxQlFVMHNSVUZEVGl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVOV0xFVkJRVVVzUlVGRFJpeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVTmFMRWxCUVVrc1EwRkJReXhWUVVGVkxFbEJRVWtzUlVGQlJTeERRVU4wUWl4RFFVRkRPMUZCUTBZc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRla1FzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVkQlFVY3NSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNwRkxFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdPMDlCV1VjN1NVRkRTQ3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFXTTdVVUZEZGtJc1RVRkJUU3hYUVVGWExFZEJRVWNzVFVGQlRTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVTndReXhOUVVGTkxFVkJRMDRzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZEVml4RlFVRkZMRVZCUTBZc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGRFdpeEpRVUZKTEVOQlFVTXNWVUZCVlN4SlFVRkpMRVZCUVVVc1EwRkRkRUlzUTBGQlF6dFJRVU5HTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEzcEVMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhIUVVGSExFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU42UlN4RFFVRkRPMGxCUlVRN096czdPenM3T3pzN096czdUMEZoUnp0SlFVTklMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlpTeEZRVUZGTEUxQlFXTTdVVUZETlVNc1RVRkJUU3hYUVVGWExFZEJRVWNzVFVGQlRTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVTndReXhWUVVGVkxFVkJRMVlzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZEVml4RlFVRkZMRVZCUTBZc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGRFdpeEpRVUZKTEVOQlFVTXNWVUZCVlN4SlFVRkpMRVZCUVVVc1EwRkRkRUlzUTBGQlF6dFJRVU5HTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF6ZEVMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhIUVVGSExFVkJRVVVzVlVGQlZTeEZRVUZGTzFsQlEzQkVMRTlCUVU4N1dVRkRVQ3hOUVVGTkxFTkJRVU1zVVVGQlVTeEZRVUZGTzFOQlEyeENMRU5CUVVNc1EwRkJRenRKUVVOTUxFTkJRVU03U1VGRlJEczdPenM3T3pzN096dFBRVlZITzBsQlEwZ3NTMEZCU3l4RFFVRkRMRzlDUVVGdlFqdFJRVU40UWl4TlFVRk5MRmRCUVZjc1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlEzQkRMR2RDUVVGblFpeEZRVU5vUWl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVOV0xFVkJRVVVzUlVGRFJpeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVTmFMRWxCUVVrc1EwRkJReXhWUVVGVkxFbEJRVWtzUlVGQlJTeERRVU4wUWl4RFFVRkRPMUZCUTBZc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUTBGQlF6dFJRVU42UlN4TlFVRk5MSGRDUVVGM1FpeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXh0UWtGQmJVSXNRMEZEY2tVc1IwRkJSeXhGUVVOSUxITkNRVUZ6UWl4RFFVTjJRaXhEUVVGRE8xRkJSVVlzVDBGQlR5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRka1FzUTBGQlF6dEpRVVZFT3pzN096czdPenM3TzA5QlZVYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1pVRkJaVHRSUVVOdVFpeE5RVUZOTEZkQlFWY3NSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRM0JETEZkQlFWY3NSVUZEV0N4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVOV0xFVkJRVVVzUlVGRFJpeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVTmFMRWxCUVVrc1EwRkJReXhWUVVGVkxFbEJRVWtzUlVGQlJTeERRVU4wUWl4RFFVRkRPMUZCUTBZc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1VVRkRjRVVzVFVGQlRTeGxRVUZsTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExHMUNRVUZ0UWl4RFFVTTFSQ3hIUVVGSExFVkJRMGdzYVVKQlFXbENMRU5CUTJ4Q0xFTkJRVU03VVVGRlJpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03U1VGRGRFTXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lFWmhZbkpwWTBOc2FXVnVkRkpsY0c5emFYUnZjbmtnZlNCbWNtOXRJRndpTGk0dlJtRmljbWxqUTJ4cFpXNTBVbVZ3YjNOcGRHOXllVndpTzF4dWFXMXdiM0owSUhzZ1JWSkRNakJVYjJ0bGJpd2dSVkpETWpCWFlXeHNaWFFnZlNCbWNtOXRJRndpTGk0dkxpNHZZMjl1ZEhKaFkzUnpMMlZ5WXpJd0wyMXZaR1ZzYzF3aU8xeHVhVzF3YjNKMElIc2dUVzlrWld3c0lGTmxjbWxoYkdsNlpYSWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJsWTI5eVlYUnZjaTEyWVd4cFpHRjBhVzl1WENJN1hHNXBiWEJ2Y25RZ2V5QkdZV0p5YVdORGJHbGxiblJCWkdGd2RHVnlJSDBnWm5KdmJTQmNJaTR1TDBaaFluSnBZME5zYVdWdWRFRmtZWEIwWlhKY0lqdGNibWx0Y0c5eWRDQjdJRU5zYVdWdWRGTmxjbWxoYkdsNlpYSWdmU0JtY205dElGd2lMaTR2TGk0dmMyaGhjbVZrTDBOc2FXVnVkRk5sY21saGJHbDZaWEpjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJRU52Ym5SbGVIUXNYRzRnSUVOdmJuUmxlSFJQWml4Y2JpQWdRMjl1ZEdWNGRIVmhiRUZ5WjNNc1hHNGdJRVYyWlc1MFNXUnpMRnh1SUNCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jc1hHNGdJRk5sY1hWbGJtTmxMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFSjFiR3REY25Wa1QzQmxjbUYwYVc5dVMyVjVjeXhjYmlBZ1NXNTBaWEp1WVd4RmNuSnZjaXhjYmlBZ1QzQmxjbUYwYVc5dVMyVjVjeXhjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCRGIyNXpkSEoxWTNSdmNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHbHZibHdpTzF4dUx5b3FYRzRnS2lCU1pYQnZjMmwwYjNKNUlHWnZjaUJwYm5SbGNtRmpkR2x1WnlCM2FYUm9JRVZTUXpJd0lHTnZiblJ5WVdOMGN5QnZiaUJoSUVoNWNHVnliR1ZrWjJWeUlFWmhZbkpwWXlCdVpYUjNiM0pyTGx4dUlDb2dSWGgwWlc1a2N5QjBhR1VnWW1GelpTQkdZV0p5YVdORGJHbGxiblJTWlhCdmMybDBiM0o1SUdOc1lYTnpJR0Z1WkNCMWRHbHNhWHBsY3lCMGFHVWdRMnhwWlc1MFUyVnlhV0ZzYVhwbGNpQm1iM0lnWkdGMFlTQnpaWEpwWVd4cGVtRjBhVzl1TGx4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1JtRmljbWxqUlZKRE1qQkRiR2xsYm5SU1pYQnZjMmwwYjNKNVBGeHVJQ0JCSUdWNGRHVnVaSE1nUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2l4Y2JqNGdaWGgwWlc1a2N5QkdZV0p5YVdORGJHbGxiblJTWlhCdmMybDBiM0o1UEVWU1F6SXdWMkZzYkdWMExDQkJQaUI3WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUhObGNtbGhiR2w2WlhJZ1BTQnVaWGNnUTJ4cFpXNTBVMlZ5YVdGc2FYcGxjaWdwTzF4dVhHNGdJSEJ5YjNSbFkzUmxaQ0J5WldGa2IyNXNlU0J6WlhKcFlXeHBlbVZ5T2lCVFpYSnBZV3hwZW1WeVBHRnVlVDRnUFZ4dUlDQWdJRVpoWW5KcFkwVlNRekl3UTJ4cFpXNTBVbVZ3YjNOcGRHOXllUzV6WlhKcFlXeHBlbVZ5TzF4dVhHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklHUmxZMjlrWlhJZ1BTQnVaWGNnVkdWNGRFUmxZMjlrWlhJb1hDSjFkR1k0WENJcE8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdUbTkwYVdacFpYTWdZV3hzSUc5aWMyVnlkbVZ5Y3lCdlppQmhiaUJsZG1WdWRDNWNiaUFnSUNvZ1FITjFiVzFoY25rZ1ZYQmtZWFJsY3lCaGJHd2djbVZuYVhOMFpYSmxaQ0J2WW5ObGNuWmxjbk1nZDJsMGFDQnBibVp2Y20xaGRHbHZiaUJoWW05MWRDQmhJR1JoZEdGaVlYTmxJR1YyWlc1MExseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZEdGaWJHVWdMU0JVYUdVZ2RHRmliR1VnYm1GdFpTQjNhR1Z5WlNCMGFHVWdaWFpsYm5RZ2IyTmpkWEp5WldRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDNCbGNtRjBhVzl1UzJWNWMzeENkV3hyUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE44YzNSeWFXNW5mU0JsZG1WdWRDQXRJRlJvWlNCMGVYQmxJRzltSUdWMlpXNTBJSFJvWVhRZ2IyTmpkWEp5WldRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3UlhabGJuUkpaSE45SUdsa0lDMGdWR2hsSUVsRUlHOXlJRWxFY3lCdlppQjBhR1VnWVdabVpXTjBaV1FnY21WamIzSmtjeTVjYmlBZ0lDb2dRSEJoY21GdElIc3VMaTVoYm5sYlhYMGdZWEpuY3lBdElFRmtaR2wwYVc5dVlXd2dZWEpuZFcxbGJuUnpMbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdFFjbTl0YVhObFBIWnZhV1ErZlNCQklIQnliMjFwYzJVZ2RHaGhkQ0J5WlhOdmJIWmxjeUIzYUdWdUlHRnNiQ0J2WW5ObGNuWmxjbk1nYUdGMlpTQmlaV1Z1SUc1dmRHbG1hV1ZrTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRKYm5SbGNtNWhiRVZ5Y205eWZTQkpaaUIwYUdVZ2IySnpaWEoyWlhJZ2FHRnVaR3hsY2lCcGN5QnViM1FnYVc1cGRHbGhiR2w2WldRdVhHNGdJQ0FxTDF4dUlDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCMWNHUmhkR1ZQWW5ObGNuWmxjbk04VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhjYmlBZ0lDQjBZV0pzWlRvZ1EyOXVjM1J5ZFdOMGIzSThUVDRnZkNCemRISnBibWNzWEc0Z0lDQWdaWFpsYm5RNklFOXdaWEpoZEdsdmJrdGxlWE1nZkNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTWdmQ0J6ZEhKcGJtY3NYRzRnSUNBZ2FXUTZJRVYyWlc1MFNXUnpMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEVOdmJuUmxlSFJQWmp4QlBqNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbTlpYzJWeWRtVnlTR0Z1Wkd4bGNpbGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0Z4dUlDQWdJQ0FnSUNCY0lrOWljMlZ5ZG1WeVNHRnVaR3hsY2lCdWIzUWdhVzVwZEdsaGJHbDZaV1F1SUVScFpDQjViM1VnY21WbmFYTjBaWElnWVc1NUlHOWljMlZ5ZG1GaWJHVnpQMXdpWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIaEJjbWR6SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG5Wd1pHRjBaVTlpYzJWeWRtVnljeWs3WEc0Z0lDQWdiRzluTG5abGNtSnZjMlVvWEc0Z0lDQWdJQ0JnVlhCa1lYUnBibWNnSkh0MGFHbHpMbTlpYzJWeWRtVnlTR0Z1Wkd4bGNpNWpiM1Z1ZENncGZTQnZZbk5sY25abGNuTWdabTl5SUNSN2RHaHBjMzFnWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSFJoWW14bElEMGdLRnh1SUNBZ0lDQWdkSGx3Wlc5bUlIUmhZbXhsSUQwOVBTQmNJbk4wY21sdVoxd2lJRDhnVFc5a1pXd3VaMlYwS0hSaFlteGxLU0E2SUhSaFlteGxYRzRnSUNBZ0tTQmhjeUJEYjI1emRISjFZM1J2Y2p4TlBqdGNiaUFnSUNCc1pYUWdjR0Z5YzJWa1NXUTZJSE4wY21sdVp5QjhJSE4wY21sdVoxdGRJSHdnZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnYVdZZ0tHbGtJRDA5UFNCMWJtUmxabWx1WldRcElIdGNiaUFnSUNBZ0lIQmhjbk5sWkVsa0lEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9RWEp5WVhrdWFYTkJjbkpoZVNocFpDa3BJSHRjYmlBZ0lDQWdJSEJoY25ObFpFbGtJRDBnYVdRdWJXRndLRnh1SUNBZ0lDQWdJQ0FvYVNrZ1BUNGdVMlZ4ZFdWdVkyVXVjR0Z5YzJWV1lXeDFaU2hOYjJSbGJDNXpaWEYxWlc1alpVWnZjaWgwWVdKc1pTa3VkSGx3WlN3Z2FTa2dZWE1nYzNSeWFXNW5YRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCd1lYSnpaV1JKWkNBOUlGTmxjWFZsYm1ObExuQmhjbk5sVm1Gc2RXVW9YRzRnSUNBZ0lDQWdJRTF2WkdWc0xuTmxjWFZsYm1ObFJtOXlLSFJoWW14bEtTNTBlWEJsTEZ4dUlDQWdJQ0FnSUNCcFpGeHVJQ0FnSUNBZ0tTQmhjeUJ6ZEhKcGJtYzdYRzRnSUNBZ2ZWeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWIySnpaWEoyWlhKSVlXNWtiR1Z5TG5Wd1pHRjBaVTlpYzJWeWRtVnljeWhjYmlBZ0lDQWdJSFJoWW14bExGeHVJQ0FnSUNBZ1pYWmxiblFzWEc0Z0lDQWdJQ0J3WVhKelpXUkpaQ0VzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRVpXTnZaR1Z6SUdFZ1ZXbHVkRGhCY25KaGVTQnBiblJ2SUdFZ2MzUnlhVzVuSUhWemFXNW5JSFJvWlNCVVpYaDBSR1ZqYjJSbGNpNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJR1JoZEdFZ0xTQlVhR1VnVldsdWREaEJjbkpoZVNCMGJ5QmtaV052WkdVdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUZSb1pTQmtaV052WkdWa0lITjBjbWx1Wnk1Y2JpQWdJQ292WEc0Z0lHUmxZMjlrWlNoa1lYUmhPaUJWYVc1ME9FRnljbUY1S1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdSbUZpY21salJWSkRNakJEYkdsbGJuUlNaWEJ2YzJsMGIzSjVMbVJsWTI5a1pYSXVaR1ZqYjJSbEtHUmhkR0VwTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9ZV1JoY0hSbGNqODZJRUVwSUh0Y2JpQWdJQ0J6ZFhCbGNpaGhaR0Z3ZEdWeUxDQkZVa015TUZkaGJHeGxkQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBjbWxsZG1WeklIUm9aU0J1WVcxbElHOW1JSFJvWlNCRlVrTXlNQ0IwYjJ0bGJpNWNiaUFnSUNwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dVhHNGdJQ0FxSUZSb2FYTWdablZ1WTNScGIyNGdhVzUwWlhKaFkzUnpJSGRwZEdnZ2RHaGxJR0pzYjJOclkyaGhhVzRnYm1WMGQyOXlheUIwYnlCbVpYUmphQ0IwYUdVZ2JtRnRaU0J2WmlCMGFHVWdSVkpETWpBZ2RHOXJaVzR1WEc0Z0lDQXFJRWwwSUdOaGJHeHpJSFJvWlNCY0lsUnZhMlZ1VG1GdFpWd2lJSFJ5WVc1ellXTjBhVzl1SUc5dUlIUm9aU0J6YldGeWRDQmpiMjUwY21GamRDQmhibVFnWkdWamIyUmxjeUIwYUdVZ2NtVjBkWEp1WldRZ1pHRjBZUzVjYmlBZ0lDcGNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UxQnliMjFwYzJVOGMzUnlhVzVuUG4wZ1FTQndjbTl0YVhObElIUm9ZWFFnY21WemIyeDJaWE1nZDJsMGFDQjBhR1VnYm1GdFpTQnZaaUIwYUdVZ1JWSkRNakFnZEc5clpXNHVYRzRnSUNBcVhHNGdJQ0FxSUVCMGFISnZkM01nZTBWeWNtOXlmU0JKWmlCMGFHVWdkSEpoYm5OaFkzUnBiMjRnWm1GcGJITWdiM0lnZEdobElHUmxZMjlrYVc1bklIQnliMk5sYzNNZ1ptRnBiSE11WEc0Z0lDQXFMMXh1SUNCaGMzbHVZeUIwYjJ0bGJrNWhiV1VvTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEVOdmJuUmxlSFJQWmp4QlBqNHBPaUJRY205dGFYTmxQSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRJSDBnUFNBb1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKMGIydGxiazVoYldWY0lpd2dkSEoxWlNrcExtWnZjaWhjYmlBZ0lDQWdJSFJvYVhNdWRHOXJaVzVPWVcxbFhHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQnVZVzFsSUQwZ1lYZGhhWFFnZEdocGN5NWhaR0Z3ZEdWeUxtVjJZV3gxWVhSbFZISmhibk5oWTNScGIyNG9ZM1I0TENCY0lsUnZhMlZ1VG1GdFpWd2lLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVrWldOdlpHVW9ibUZ0WlNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwY21sbGRtVnpJSFJvWlNCemVXMWliMndnYjJZZ2RHaGxJRVZTUXpJd0lIUnZhMlZ1TGx4dUlDQWdLbHh1SUNBZ0tpQlVhR2x6SUdaMWJtTjBhVzl1SUdsdWRHVnlZV04wY3lCM2FYUm9JSFJvWlNCaWJHOWphMk5vWVdsdUlHNWxkSGR2Y21zZ2RHOGdabVYwWTJnZ2RHaGxJSE41YldKdmJDQnZaaUIwYUdVZ1JWSkRNakFnZEc5clpXNHVYRzRnSUNBcUlFbDBJR05oYkd4eklIUm9aU0JjSWxONWJXSnZiRndpSUhSeVlXNXpZV04wYVc5dUlHOXVJSFJvWlNCemJXRnlkQ0JqYjI1MGNtRmpkQ0JoYm1RZ1pHVmpiMlJsY3lCMGFHVWdjbVYwZFhKdVpXUWdaR0YwWVM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMUJ5YjIxcGMyVThjM1J5YVc1blBuMGdRU0J3Y205dGFYTmxJSFJvWVhRZ2NtVnpiMngyWlhNZ2QybDBhQ0IwYUdVZ2MzbHRZbTlzSUc5bUlIUm9aU0JGVWtNeU1DQjBiMnRsYmk1Y2JpQWdJQ3BjYmlBZ0lDb2dRSFJvY205M2N5QjdSWEp5YjNKOUlFbG1JSFJvWlNCMGNtRnVjMkZqZEdsdmJpQm1ZV2xzY3lCdmNpQjBhR1VnWkdWamIyUnBibWNnY0hKdlkyVnpjeUJtWVdsc2N5NWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklITjViV0p2YkNndUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFEyOXVkR1Y0ZEU5bVBFRStQaWs2SUZCeWIyMXBjMlU4YzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGdnZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0luTjViV0p2YkZ3aUxDQjBjblZsS1NrdVptOXlLSFJvYVhNdWMzbHRZbTlzS1R0Y2JpQWdJQ0JqYjI1emRDQnplVzFpYjJ3Z1BTQmhkMkZwZENCMGFHbHpMbUZrWVhCMFpYSXVaWFpoYkhWaGRHVlVjbUZ1YzJGamRHbHZiaWhqZEhnc0lGd2lVM2x0WW05c1hDSXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVJsWTI5a1pTaHplVzFpYjJ3cE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhKcFpYWmxjeUIwYUdVZ2JuVnRZbVZ5SUc5bUlHUmxZMmx0WVd3Z2NHeGhZMlZ6SUdadmNpQjBhR1VnUlZKRE1qQWdkRzlyWlc0dVhHNGdJQ0FxWEc0Z0lDQXFJRlJvYVhNZ1puVnVZM1JwYjI0Z2FXNTBaWEpoWTNSeklIZHBkR2dnZEdobElHSnNiMk5yWTJoaGFXNGdibVYwZDI5eWF5QjBieUJtWlhSamFDQjBhR1VnYm5WdFltVnlJRzltSUdSbFkybHRZV3dnY0d4aFkyVnpJR1p2Y2lCMGFHVWdSVkpETWpBZ2RHOXJaVzR1WEc0Z0lDQXFJRWwwSUdOaGJHeHpJSFJvWlNCY0lrUmxZMmx0WVd4elhDSWdkSEpoYm5OaFkzUnBiMjRnYjI0Z2RHaGxJSE50WVhKMElHTnZiblJ5WVdOMElHRnVaQ0JrWldOdlpHVnpJSFJvWlNCeVpYUjFjbTVsWkNCa1lYUmhMbHh1SUNBZ0tseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1VISnZiV2x6WlR4dWRXMWlaWEkrZlNCQklIQnliMjFwYzJVZ2RHaGhkQ0J5WlhOdmJIWmxjeUIzYVhSb0lIUm9aU0J1ZFcxaVpYSWdiMllnWkdWamFXMWhiQ0J3YkdGalpYTWdabTl5SUhSb1pTQkZVa015TUNCMGIydGxiaTVjYmlBZ0lDcGNiaUFnSUNvZ1FIUm9jbTkzY3lCN1JYSnliM0o5SUVsbUlIUm9aU0IwY21GdWMyRmpkR2x2YmlCbVlXbHNjeUJ2Y2lCMGFHVWdaR1ZqYjJScGJtY2djSEp2WTJWemN5Qm1ZV2xzY3k1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUdSbFkybHRZV3h6S0M0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4RGIyNTBaWGgwVDJZOFFUNCtLVG9nVUhKdmJXbHpaVHh1ZFcxaVpYSStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ0I5SUQwZ0tHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVpHVmphVzFoYkhOY0lpd2dkSEoxWlNrcExtWnZjaWhjYmlBZ0lDQWdJSFJvYVhNdVpHVmphVzFoYkhOY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElHUmxZMmx0WVd4eklEMGdZWGRoYVhRZ2RHaHBjeTVoWkdGd2RHVnlMbVYyWVd4MVlYUmxWSEpoYm5OaFkzUnBiMjRvWTNSNExDQmNJa1JsWTJsdFlXeHpYQ0lwTzF4dUlDQWdJSEpsZEhWeWJpQk9kVzFpWlhJb2RHaHBjeTVrWldOdlpHVW9aR1ZqYVcxaGJITXBLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUnlhV1YyWlhNZ2RHaGxJSFJ2ZEdGc0lITjFjSEJzZVNCdlppQjBhR1VnUlZKRE1qQWdkRzlyWlc0dVhHNGdJQ0FxWEc0Z0lDQXFJRlJvYVhNZ1puVnVZM1JwYjI0Z2FXNTBaWEpoWTNSeklIZHBkR2dnZEdobElHSnNiMk5yWTJoaGFXNGdibVYwZDI5eWF5QjBieUJtWlhSamFDQjBhR1VnZEc5MFlXd2djM1Z3Y0d4NUlHOW1JSFJvWlNCRlVrTXlNQ0IwYjJ0bGJpNWNiaUFnSUNvZ1NYUWdZMkZzYkhNZ2RHaGxJRndpVkc5MFlXeFRkWEJ3YkhsY0lpQjBjbUZ1YzJGamRHbHZiaUJ2YmlCMGFHVWdjMjFoY25RZ1kyOXVkSEpoWTNRZ1lXNWtJR1JsWTI5a1pYTWdkR2hsSUhKbGRIVnlibVZrSUdSaGRHRXVYRzRnSUNBcVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0UWNtOXRhWE5sUEc1MWJXSmxjajU5SUVFZ2NISnZiV2x6WlNCMGFHRjBJSEpsYzI5c2RtVnpJSGRwZEdnZ2RHaGxJSFJ2ZEdGc0lITjFjSEJzZVNCdlppQjBhR1VnUlZKRE1qQWdkRzlyWlc0dVhHNGdJQ0FxWEc0Z0lDQXFJRUIwYUhKdmQzTWdlMFZ5Y205eWZTQkpaaUIwYUdVZ2RISmhibk5oWTNScGIyNGdabUZwYkhNZ2IzSWdkR2hsSUdSbFkyOWthVzVuSUhCeWIyTmxjM01nWm1GcGJITXVYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5QjBiM1JoYkZOMWNIQnNlU2hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhRMjl1ZEdWNGRFOW1QRUUrUGx4dUlDQXBPaUJRY205dGFYTmxQRzUxYldKbGNqNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRJSDBnUFNBb1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKMGIzUmhiRk4xY0hCc2VWd2lMQ0IwY25WbEtTa3VabTl5S0Z4dUlDQWdJQ0FnZEdocGN5NTBiM1JoYkZOMWNIQnNlVnh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnZEc5MFlXd2dQU0JoZDJGcGRDQjBhR2x6TG1Ga1lYQjBaWEl1WlhaaGJIVmhkR1ZVY21GdWMyRmpkR2x2YmloamRIZ3NJRndpVkc5MFlXeFRkWEJ3YkhsY0lpazdYRzRnSUNBZ2NtVjBkWEp1SUU1MWJXSmxjaWgwYUdsekxtUmxZMjlrWlNoMGIzUmhiQ2twTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSEpwWlhabGN5QjBhR1VnWW1Gc1lXNWpaU0J2WmlCMGFHVWdSVkpETWpBZ2RHOXJaVzRnWm05eUlHRWdjM0JsWTJsbWFXVmtJRzkzYm1WeUxseHVJQ0FnS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI1Y2JpQWdJQ29nVkdocGN5Qm1kVzVqZEdsdmJpQnBiblJsY21GamRITWdkMmwwYUNCMGFHVWdZbXh2WTJ0amFHRnBiaUJ1WlhSM2IzSnJJSFJ2SUdabGRHTm9JSFJvWlNCaVlXeGhibU5sSUc5bUlIUm9aU0JGVWtNeU1DQjBiMnRsYmlCbWIzSWdZU0JuYVhabGJpQnZkMjVsY2k1Y2JpQWdJQ29nU1hRZ1kyRnNiSE1nZEdobElGd2lRbUZzWVc1alpVOW1YQ0lnZEhKaGJuTmhZM1JwYjI0Z2IyNGdkR2hsSUhOdFlYSjBJR052Ym5SeVlXTjBJSGRwZEdnZ2RHaGxJSEJ5YjNacFpHVmtJRzkzYm1WeUozTWdZV1JrY21WemN5QmhjeUJoSUhCaGNtRnRaWFJsY2k1Y2JpQWdJQ29nVkdobElISmxkSFZ5Ym1Wa0lHUmhkR0VnYVhNZ2RHaGxiaUJrWldOdlpHVmtJR0Z1WkNCamIyNTJaWEowWldRZ2RHOGdZU0J1ZFcxaVpYSXVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0J2ZDI1bGNpQXRJRlJvWlNCaFpHUnlaWE56SUc5bUlIUm9aU0JGVWtNeU1DQjBiMnRsYmlCdmQyNWxjaTVjYmlBZ0lDcGNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UxQnliMjFwYzJVOGJuVnRZbVZ5UG4wZ1FTQndjbTl0YVhObElIUm9ZWFFnY21WemIyeDJaWE1nZDJsMGFDQjBhR1VnWW1Gc1lXNWpaU0J2WmlCMGFHVWdSVkpETWpBZ2RHOXJaVzRnWm05eUlIUm9aU0J6Y0dWamFXWnBaV1FnYjNkdVpYSXVYRzRnSUNBcVhHNGdJQ0FxSUVCMGFISnZkM01nZTBWeWNtOXlmU0JKWmlCMGFHVWdkSEpoYm5OaFkzUnBiMjRnWm1GcGJITWdiM0lnZEdobElHUmxZMjlrYVc1bklIQnliMk5sYzNNZ1ptRnBiSE11WEc0Z0lDQXFMMXh1SUNCaGMzbHVZeUJpWVd4aGJtTmxUMllvWEc0Z0lDQWdiM2R1WlhJNklITjBjbWx1Wnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4UTI5dWRHVjRkRTltUEVFK1BseHVJQ0FwT2lCUWNtOXRhWE5sUEc1MWJXSmxjajRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0SUgwZ1BTQW9ZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSmlZV3hoYm1ObFhDSXNJSFJ5ZFdVcEtTNW1iM0lvWEc0Z0lDQWdJQ0IwYUdsekxtSmhiR0Z1WTJWUFpseHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdZbUZzWVc1alpTQTlJR0YzWVdsMElIUm9hWE11WVdSaGNIUmxjaTVsZG1Gc2RXRjBaVlJ5WVc1ellXTjBhVzl1S0dOMGVDd2dYQ0pDWVd4aGJtTmxUMlpjSWl3Z1cxeHVJQ0FnSUNBZ2IzZHVaWElzWEc0Z0lDQWdYU2s3WEc0Z0lDQWdjbVYwZFhKdUlFNTFiV0psY2loMGFHbHpMbVJsWTI5a1pTaGlZV3hoYm1ObEtTazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVkhKaGJuTm1aWEp6SUdFZ2MzQmxZMmxtYVdWa0lHRnRiM1Z1ZENCdlppQkZVa015TUNCMGIydGxibk1nZEc4Z1lTQnlaV05wY0dsbGJuUXVYRzRnSUNBcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJseHVJQ0FnS2lCVWFHbHpJR1oxYm1OMGFXOXVJR2x1ZEdWeVlXTjBjeUIzYVhSb0lIUm9aU0JpYkc5amEyTm9ZV2x1SUc1bGRIZHZjbXNnZEc4Z2RISmhibk5tWlhJZ1lTQnpjR1ZqYVdacFpXUWdZVzF2ZFc1MElHOW1JRVZTUXpJd0lIUnZhMlZ1Y3lCMGJ5QmhJSEpsWTJsd2FXVnVkQzVjYmlBZ0lDb2dTWFFnWTJGc2JITWdkR2hsSUZ3aVZISmhibk5tWlhKY0lpQjBjbUZ1YzJGamRHbHZiaUJ2YmlCMGFHVWdjMjFoY25RZ1kyOXVkSEpoWTNRZ2QybDBhQ0IwYUdVZ2NtVmphWEJwWlc1MEozTWdZV1JrY21WemN5QmhibVFnZEdobElIUnlZVzV6Wm1WeUlHRnRiM1Z1ZENCaGN5QndZWEpoYldWMFpYSnpMbHh1SUNBZ0tpQlVhR1VnY21WMGRYSnVaV1FnWkdGMFlTQnBjeUIwYUdWdUlHUmxZMjlrWldRZ1lXNWtJR05vWldOclpXUWdkRzhnWkdWMFpYSnRhVzVsSUdsbUlIUm9aU0IwY21GdWMyWmxjaUIzWVhNZ2MzVmpZMlZ6YzJaMWJDNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSFJ2SUMwZ1ZHaGxJR0ZrWkhKbGMzTWdiMllnZEdobElISmxZMmx3YVdWdWRDNWNiaUFnSUNvZ1FIQmhjbUZ0SUhaaGJIVmxJQzBnVkdobElHRnRiM1Z1ZENCdlppQkZVa015TUNCMGIydGxibk1nZEc4Z2RISmhibk5tWlhJdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQR0p2YjJ4bFlXNCtmU0JCSUhCeWIyMXBjMlVnZEdoaGRDQnlaWE52YkhabGN5QjNhWFJvSUdCMGNuVmxZQ0JwWmlCMGFHVWdkSEpoYm5ObVpYSWdkMkZ6SUhOMVkyTmxjM05tZFd3c0lHRnVaQ0JnWm1Gc2MyVmdJRzkwYUdWeWQybHpaUzVjYmlBZ0lDcGNiaUFnSUNvZ1FIUm9jbTkzY3lCN1JYSnliM0o5SUVsbUlIUm9aU0IwY21GdWMyRmpkR2x2YmlCbVlXbHNjeUJ2Y2lCMGFHVWdaR1ZqYjJScGJtY2djSEp2WTJWemN5Qm1ZV2xzY3k1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUhSeVlXNXpabVZ5S0Z4dUlDQWdJSFJ2T2lCemRISnBibWNzWEc0Z0lDQWdkbUZzZFdVNklHNTFiV0psY2l4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4UTI5dWRHVjRkRTltUEVFK1BseHVJQ0FwT2lCUWNtOXRhWE5sUEdKdmIyeGxZVzQrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUNCOUlEMGdLR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lkSEpoYm5ObVpYSmNJaXdnZEhKMVpTa3BMbVp2Y2loY2JpQWdJQ0FnSUhSb2FYTXVkSEpoYm5ObVpYSmNiaUFnSUNBcE8xeHVJQ0FnSUdOdmJuTjBJSFJ5WVc1elptVnljbVZrSUQwZ1lYZGhhWFFnZEdocGN5NWhaR0Z3ZEdWeUxuTjFZbTFwZEZSeVlXNXpZV04wYVc5dUtHTjBlQ3dnWENKVWNtRnVjMlpsY2x3aUxDQmJYRzRnSUNBZ0lDQjBieXhjYmlBZ0lDQWdJSFpoYkhWbExuUnZVM1J5YVc1bktDa3NYRzRnSUNBZ1hTazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaR1ZqYjJSbEtIUnlZVzV6Wm1WeWNtVmtLU0E5UFQwZ1hDSjBjblZsWENJZ1B5QjBjblZsSURvZ1ptRnNjMlU3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1ZISmhibk5tWlhKeklHRWdjM0JsWTJsbWFXVmtJR0Z0YjNWdWRDQnZaaUJGVWtNeU1DQjBiMnRsYm5NZ1puSnZiU0J2Ym1VZ1lXTmpiM1Z1ZENCMGJ5QmhibTkwYUdWeUxseHVJQ0FnS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI1Y2JpQWdJQ29nVkdocGN5Qm1kVzVqZEdsdmJpQnBiblJsY21GamRITWdkMmwwYUNCMGFHVWdZbXh2WTJ0amFHRnBiaUJ1WlhSM2IzSnJJSFJ2SUhSeVlXNXpabVZ5SUdFZ2MzQmxZMmxtYVdWa0lHRnRiM1Z1ZENCdlppQkZVa015TUNCMGIydGxibk1nWm5KdmJTQnZibVVnWVdOamIzVnVkQ0IwYnlCaGJtOTBhR1Z5TGx4dUlDQWdLaUJHYjNJZ2RHaHBjeUIwY21GdWMyWmxjaUIwYnlCM2IzSnJJSFJvWlNCemNHVnVaR1Z5SUNnZ1lXTmpiM1Z1ZENCMGFHRjBJSGRwYkd3Z2RISnBaMmRsY2lCMGFHbHpJR1oxYm1OMGFXOXVJQ2tnYm1WbFpDQjBieUJvWVhabElIUm9aU0IyWVd4MVpTQmhjSEJ5YjNabFpDQmhjeUJoYmlCaGJHeHZkMkZ1WTJVZ1lua2dkR2hsSUhObGJtUmxjaTVjYmlBZ0lDb2dTWFFnWTJGc2JITWdkR2hsSUZ3aVZISmhibk5tWlhKR2NtOXRYQ0lnZEhKaGJuTmhZM1JwYjI0Z2IyNGdkR2hsSUhOdFlYSjBJR052Ym5SeVlXTjBJSGRwZEdnZ2RHaGxJSE5sYm1SbGNpZHpJR0ZrWkhKbGMzTXNJSEpsWTJsd2FXVnVkQ2R6SUdGa1pISmxjM01zSUdGdVpDQjBhR1VnZEhKaGJuTm1aWElnWVcxdmRXNTBJR0Z6SUhCaGNtRnRaWFJsY25NdVhHNGdJQ0FxSUZSb1pTQnlaWFIxY201bFpDQmtZWFJoSUdseklIUm9aVzRnWkdWamIyUmxaQ0JoYm1RZ1kyaGxZMnRsWkNCMGJ5QmtaWFJsY20xcGJtVWdhV1lnZEdobElIUnlZVzV6Wm1WeUlIZGhjeUJ6ZFdOalpYTnpablZzTGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ1puSnZiU0F0SUZSb1pTQmhaR1J5WlhOeklHOW1JSFJvWlNCelpXNWtaWEl1WEc0Z0lDQXFJRUJ3WVhKaGJTQjBieUF0SUZSb1pTQmhaR1J5WlhOeklHOW1JSFJvWlNCeVpXTnBjR2xsYm5RdVhHNGdJQ0FxSUVCd1lYSmhiU0IyWVd4MVpTQXRJRlJvWlNCaGJXOTFiblFnYjJZZ1JWSkRNakFnZEc5clpXNXpJSFJ2SUhSeVlXNXpabVZ5TGx4dUlDQWdLbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdVSEp2YldselpUeGliMjlzWldGdVBuMGdRU0J3Y205dGFYTmxJSFJvWVhRZ2NtVnpiMngyWlhNZ2QybDBhQ0JnZEhKMVpXQWdhV1lnZEdobElIUnlZVzV6Wm1WeUlIZGhjeUJ6ZFdOalpYTnpablZzTENCaGJtUWdZR1poYkhObFlDQnZkR2hsY25kcGMyVXVYRzRnSUNBcVhHNGdJQ0FxSUVCMGFISnZkM01nZTBWeWNtOXlmU0JKWmlCMGFHVWdkSEpoYm5OaFkzUnBiMjRnWm1GcGJITWdiM0lnZEdobElHUmxZMjlrYVc1bklIQnliMk5sYzNNZ1ptRnBiSE11WEc0Z0lDQXFMMXh1SUNCaGMzbHVZeUIwY21GdWMyWmxja1p5YjIwb1hHNGdJQ0FnWm5KdmJUb2djM1J5YVc1bkxGeHVJQ0FnSUhSdk9pQnpkSEpwYm1jc1hHNGdJQ0FnZG1Gc2RXVTZJRzUxYldKbGNseHVJQ0FwT2lCUWNtOXRhWE5sUEdKdmIyeGxZVzQrSUh0Y2JpQWdJQ0JqYjI1emRDQmpiMjUwWlhoMFFYSm5jeUE5SUdGM1lXbDBJRU52Ym5SbGVIUXVZWEpuY3loY2JpQWdJQ0FnSUZ3aWRISmhibk5tWlhKR2NtOXRYQ0lzWEc0Z0lDQWdJQ0IwYUdsekxtTnNZWE56TEZ4dUlDQWdJQ0FnVzEwc1hHNGdJQ0FnSUNCMGFHbHpMbUZrWVhCMFpYSXNYRzRnSUNBZ0lDQjBhR2x6TGw5dmRtVnljbWxrWlhNZ2ZId2dlMzFjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGpiMjUwWlhoMFFYSm5jeTVoY21kekxDQjBhR2x6TG5SeVlXNXpabVZ5Um5KdmJTazdYRzRnSUNBZ1kyOXVjM1FnZEhKaGJuTm1aWEp5WldRZ1BTQmhkMkZwZENCMGFHbHpMbUZrWVhCMFpYSXVjM1ZpYldsMFZISmhibk5oWTNScGIyNG9YRzRnSUNBZ0lDQmpkSGdzWEc0Z0lDQWdJQ0JjSWxSeVlXNXpabVZ5Um5KdmJWd2lMRnh1SUNBZ0lDQWdXMlp5YjIwc0lIUnZMQ0IyWVd4MVpTNTBiMU4wY21sdVp5Z3BYVnh1SUNBZ0lDazdYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVrWldOdlpHVW9kSEpoYm5ObVpYSnlaV1FwSUQwOVBTQmNJblJ5ZFdWY0lpQS9JSFJ5ZFdVZ09pQm1ZV3h6WlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJjSEJ5YjNabGN5QmhJSE53WldOcFptbGxaQ0JoYlc5MWJuUWdiMllnUlZKRE1qQWdkRzlyWlc1eklIUnZJR0psSUhOd1pXNTBJR0o1SUdFZ2MzQmxZMmxtYVdWa0lITndaVzVrWlhJdVhHNGdJQ0FxWEc0Z0lDQXFJRlJvYVhNZ1puVnVZM1JwYjI0Z2FXNTBaWEpoWTNSeklIZHBkR2dnZEdobElHSnNiMk5yWTJoaGFXNGdibVYwZDI5eWF5QjBieUJoY0hCeWIzWmxJR0VnYzNCbFkybG1hV1ZrSUdGdGIzVnVkQ0J2WmlCRlVrTXlNQ0IwYjJ0bGJuTWdkRzhnWW1VZ2MzQmxiblFnWW5rZ1lTQnpjR1ZqYVdacFpXUWdjM0JsYm1SbGNpNWNiaUFnSUNvZ1NYUWdZMkZzYkhNZ2RHaGxJRndpUVhCd2NtOTJaVndpSUhSeVlXNXpZV04wYVc5dUlHOXVJSFJvWlNCemJXRnlkQ0JqYjI1MGNtRmpkQ0IzYVhSb0lIUm9aU0J6Y0dWdVpHVnlKM01nWVdSa2NtVnpjeUJoYm1RZ2RHaGxJR0Z3Y0hKdmRtRnNJR0Z0YjNWdWRDQmhjeUJ3WVhKaGJXVjBaWEp6TGx4dUlDQWdLaUJVYUdVZ2NtVjBkWEp1WldRZ1pHRjBZU0JwY3lCMGFHVnVJR1JsWTI5a1pXUWdZVzVrSUdOb1pXTnJaV1FnZEc4Z1pHVjBaWEp0YVc1bElHbG1JSFJvWlNCaGNIQnliM1poYkNCM1lYTWdjM1ZqWTJWemMyWjFiQzVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUhOd1pXNWtaWElnTFNCVWFHVWdZV1JrY21WemN5QnZaaUIwYUdVZ2MzQmxibVJsY2k1Y2JpQWdJQ29nUUhCaGNtRnRJSFpoYkhWbElDMGdWR2hsSUdGdGIzVnVkQ0J2WmlCRlVrTXlNQ0IwYjJ0bGJuTWdkRzhnWVhCd2NtOTJaU0JtYjNJZ2RHaGxJSE53Wlc1a1pYSXVYRzRnSUNBcVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0UWNtOXRhWE5sUEdKdmIyeGxZVzQrZlNCQklIQnliMjFwYzJVZ2RHaGhkQ0J5WlhOdmJIWmxjeUIzYVhSb0lHQjBjblZsWUNCcFppQjBhR1VnWVhCd2NtOTJZV3dnZDJGeklITjFZMk5sYzNObWRXd3NJR0Z1WkNCZ1ptRnNjMlZnSUc5MGFHVnlkMmx6WlM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSFJvY205M2N5QjdSWEp5YjNKOUlFbG1JSFJvWlNCMGNtRnVjMkZqZEdsdmJpQm1ZV2xzY3lCdmNpQjBhR1VnWkdWamIyUnBibWNnY0hKdlkyVnpjeUJtWVdsc2N5NWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklHRndjSEp2ZG1Vb2MzQmxibVJsY2pvZ2MzUnlhVzVuTENCMllXeDFaVG9nYm5WdFltVnlLVG9nVUhKdmJXbHpaVHhpYjI5c1pXRnVQaUI3WEc0Z0lDQWdZMjl1YzNRZ1kyOXVkR1Y0ZEVGeVozTWdQU0JoZDJGcGRDQkRiMjUwWlhoMExtRnlaM01vWEc0Z0lDQWdJQ0JjSW1Gd2NISnZkbVZjSWl4Y2JpQWdJQ0FnSUhSb2FYTXVZMnhoYzNNc1hHNGdJQ0FnSUNCYlhTeGNiaUFnSUNBZ0lIUm9hWE11WVdSaGNIUmxjaXhjYmlBZ0lDQWdJSFJvYVhNdVgyOTJaWEp5YVdSbGN5QjhmQ0I3ZlZ4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGdnZlNBOUlIUm9hWE11Ykc5blEzUjRLR052Ym5SbGVIUkJjbWR6TG1GeVozTXNJSFJvYVhNdVlYQndjbTkyWlNrN1hHNGdJQ0FnWTI5dWMzUWdZWEJ3Y205MlpXUWdQU0JoZDJGcGRDQjBhR2x6TG1Ga1lYQjBaWEl1YzNWaWJXbDBWSEpoYm5OaFkzUnBiMjRvWTNSNExDQmNJa0Z3Y0hKdmRtVmNJaXdnVzF4dUlDQWdJQ0FnYzNCbGJtUmxjaXhjYmlBZ0lDQWdJSFpoYkhWbExuUnZVM1J5YVc1bktDa3NYRzRnSUNBZ1hTazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaR1ZqYjJSbEtHRndjSEp2ZG1Wa0tTQTlQVDBnWENKMGNuVmxYQ0lnUHlCMGNuVmxJRG9nWm1Gc2MyVTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGNtbGxkbVZ6SUhSb1pTQmhiR3h2ZDJGdVkyVWdiMllnUlZKRE1qQWdkRzlyWlc1eklIUm9ZWFFnZEdobElITndaV05wWm1sbFpDQnZkMjVsY2lCb1lYTWdZWEJ3Y205MlpXUWdabTl5SUdFZ2MzQmxibVJsY2k1Y2JpQWdJQ3BjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1WEc0Z0lDQXFJRlJvYVhNZ1puVnVZM1JwYjI0Z2FXNTBaWEpoWTNSeklIZHBkR2dnZEdobElHSnNiMk5yWTJoaGFXNGdibVYwZDI5eWF5QjBieUJtWlhSamFDQjBhR1VnWVd4c2IzZGhibU5sSUc5bUlFVlNRekl3SUhSdmEyVnVjeUIwYUdGMElIUm9aU0J6Y0dWamFXWnBaV1FnYjNkdVpYSWdhR0Z6SUdGd2NISnZkbVZrSUdadmNpQmhJSE53Wlc1a1pYSXVYRzRnSUNBcUlFbDBJR05oYkd4eklIUm9aU0JjSWtGc2JHOTNZVzVqWlZ3aUlIUnlZVzV6WVdOMGFXOXVJRzl1SUhSb1pTQnpiV0Z5ZENCamIyNTBjbUZqZENCM2FYUm9JSFJvWlNCdmQyNWxjaWR6SUdGa1pISmxjM01nWVc1a0lIUm9aU0J6Y0dWdVpHVnlKM01nWVdSa2NtVnpjeUJoY3lCd1lYSmhiV1YwWlhKekxseHVJQ0FnS2lCVWFHVWdjbVYwZFhKdVpXUWdaR0YwWVNCcGN5QjBhR1Z1SUdSbFkyOWtaV1FnWVc1a0lHTnZiblpsY25SbFpDQjBieUJoSUc1MWJXSmxjaTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUc5M2JtVnlJQzBnVkdobElHRmtaSEpsYzNNZ2IyWWdkR2hsSUVWU1F6SXdJSFJ2YTJWdUlHOTNibVZ5TGx4dUlDQWdLaUJBY0dGeVlXMGdjM0JsYm1SbGNpQXRJRlJvWlNCaFpHUnlaWE56SUc5bUlIUm9aU0J6Y0dWdVpHVnlMbHh1SUNBZ0tseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1VISnZiV2x6WlR4dWRXMWlaWEkrZlNCQklIQnliMjFwYzJVZ2RHaGhkQ0J5WlhOdmJIWmxjeUIzYVhSb0lIUm9aU0JoYkd4dmQyRnVZMlVnYjJZZ1JWSkRNakFnZEc5clpXNXpJSFJvWVhRZ2RHaGxJSE53WldOcFptbGxaQ0J2ZDI1bGNpQm9ZWE1nWVhCd2NtOTJaV1FnWm05eUlIUm9aU0J6Y0dWdVpHVnlMbHh1SUNBZ0tseHVJQ0FnS2lCQWRHaHliM2R6SUh0RmNuSnZjbjBnU1dZZ2RHaGxJSFJ5WVc1ellXTjBhVzl1SUdaaGFXeHpJRzl5SUhSb1pTQmtaV052WkdsdVp5QndjbTlqWlhOeklHWmhhV3h6TGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWVd4c2IzZGhibU5sS0c5M2JtVnlPaUJ6ZEhKcGJtY3NJSE53Wlc1a1pYSTZJSE4wY21sdVp5azZJRkJ5YjIxcGMyVThiblZ0WW1WeVBpQjdYRzRnSUNBZ1kyOXVjM1FnWTI5dWRHVjRkRUZ5WjNNZ1BTQmhkMkZwZENCRGIyNTBaWGgwTG1GeVozTW9YRzRnSUNBZ0lDQmNJbUZzYkc5M1lXNWpaVndpTEZ4dUlDQWdJQ0FnZEdocGN5NWpiR0Z6Y3l4Y2JpQWdJQ0FnSUZ0ZExGeHVJQ0FnSUNBZ2RHaHBjeTVoWkdGd2RHVnlMRnh1SUNBZ0lDQWdkR2hwY3k1ZmIzWmxjbkpwWkdWeklIeDhJSHQ5WEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ0I5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZMjl1ZEdWNGRFRnlaM011WVhKbmN5d2dkR2hwY3k1aGJHeHZkMkZ1WTJVcE8xeHVJQ0FnSUdOdmJuTjBJR0ZzYkc5M1lXNWpaU0E5SUdGM1lXbDBJSFJvYVhNdVlXUmhjSFJsY2k1emRXSnRhWFJVY21GdWMyRmpkR2x2YmloamRIZ3NJRndpUVd4c2IzZGhibU5sWENJc0lGdGNiaUFnSUNBZ0lHOTNibVZ5TEZ4dUlDQWdJQ0FnYzNCbGJtUmxjaXhjYmlBZ0lDQmRLVHRjYmlBZ0lDQnlaWFIxY200Z1RuVnRZbVZ5S0hSb2FYTXVaR1ZqYjJSbEtHRnNiRzkzWVc1alpTa3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVsdWFYUnBZV3hwZW1WeklIUm9aU0JGVWtNeU1DQmpiMjUwY21GamRDQjNhWFJvSUhSb1pTQndjbTkyYVdSbFpDQjBiMnRsYmlCcGJtWnZjbTFoZEdsdmJpNWNiaUFnSUNwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dVhHNGdJQ0FxSUZSb2FYTWdablZ1WTNScGIyNGdhVzUwWlhKaFkzUnpJSGRwZEdnZ2RHaGxJR0pzYjJOclkyaGhhVzRnYm1WMGQyOXlheUIwYnlCcGJtbDBhV0ZzYVhwbElIUm9aU0JGVWtNeU1DQmpiMjUwY21GamRDQjNhWFJvSUhSb1pTQm5hWFpsYmlCMGIydGxiaUJwYm1admNtMWhkR2x2Ymk1Y2JpQWdJQ29nU1hRZ1kyRnNiSE1nZEdobElGd2lTVzVwZEdsaGJHbDZaVndpSUhSeVlXNXpZV04wYVc5dUlHOXVJSFJvWlNCemJXRnlkQ0JqYjI1MGNtRmpkQ0IzYVhSb0lIUm9aU0J6WlhKcFlXeHBlbVZrSUhSdmEyVnVJR1JoZEdFZ1lYTWdZU0J3WVhKaGJXVjBaWEl1WEc0Z0lDQXFJRlJvWlNCeVpYUjFjbTVsWkNCa1lYUmhJR2x6SUhSb1pXNGdaR1ZqYjJSbFpDQmhibVFnWTJobFkydGxaQ0IwYnlCa1pYUmxjbTFwYm1VZ2FXWWdkR2hsSUdsdWFYUnBZV3hwZW1GMGFXOXVJSGRoY3lCemRXTmpaWE56Wm5Wc0xseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdkRzlyWlc0Z0xTQlVhR1VnUlZKRE1qQWdkRzlyWlc0Z2FXNW1iM0p0WVhScGIyNGdkRzhnYVc1cGRHbGhiR2w2WlNCMGFHVWdZMjl1ZEhKaFkzUWdkMmwwYUM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMUJ5YjIxcGMyVThZbTl2YkdWaGJqNTlJRUVnY0hKdmJXbHpaU0IwYUdGMElISmxjMjlzZG1WeklIZHBkR2dnWUhSeWRXVmdJR2xtSUhSb1pTQnBibWwwYVdGc2FYcGhkR2x2YmlCM1lYTWdjM1ZqWTJWemMyWjFiQ3dnWVc1a0lHQm1ZV3h6WldBZ2IzUm9aWEozYVhObExseHVJQ0FnS2x4dUlDQWdLaUJBZEdoeWIzZHpJSHRGY25KdmNuMGdTV1lnZEdobElIUnlZVzV6WVdOMGFXOXVJR1poYVd4eklHOXlJSFJvWlNCa1pXTnZaR2x1WnlCd2NtOWpaWE56SUdaaGFXeHpMbHh1SUNBZ0tpOWNiaUFnWVhONWJtTWdhVzVwZEdsaGJHbDZaU2gwYjJ0bGJqb2dSVkpETWpCVWIydGxiaWs2SUZCeWIyMXBjMlU4WW05dmJHVmhiajRnZTF4dUlDQWdJR052Ym5OMElHTnZiblJsZUhSQmNtZHpJRDBnWVhkaGFYUWdRMjl1ZEdWNGRDNWhjbWR6S0Z4dUlDQWdJQ0FnWENKcGJtbDBhV0ZzYVhwbFhDSXNYRzRnSUNBZ0lDQjBhR2x6TG1Oc1lYTnpMRnh1SUNBZ0lDQWdXMTBzWEc0Z0lDQWdJQ0IwYUdsekxtRmtZWEIwWlhJc1hHNGdJQ0FnSUNCMGFHbHpMbDl2ZG1WeWNtbGtaWE1nZkh3Z2UzMWNiaUFnSUNBcE8xeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNElIMGdQU0IwYUdsekxteHZaME4wZUNoamIyNTBaWGgwUVhKbmN5NWhjbWR6TENCMGFHbHpMbWx1YVhScFlXeHBlbVVwTzF4dUlDQWdJR052Ym5OMElHbHVhWFJwYkdsaGVtVmtJRDBnWVhkaGFYUWdkR2hwY3k1aFpHRndkR1Z5TG5OMVltMXBkRlJ5WVc1ellXTjBhVzl1S0Z4dUlDQWdJQ0FnWTNSNExGeHVJQ0FnSUNBZ1hDSkpibWwwYVdGc2FYcGxYQ0lzWEc0Z0lDQWdJQ0JiUm1GaWNtbGpSVkpETWpCRGJHbGxiblJTWlhCdmMybDBiM0o1TG5ObGNtbGhiR2w2WlhJdWMyVnlhV0ZzYVhwbEtIUnZhMlZ1S1YxY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVpHVmpiMlJsS0dsdWFYUnBiR2xoZW1Wa0tTQTlQVDBnWENKMGNuVmxYQ0lnUHlCMGNuVmxJRG9nWm1Gc2MyVTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTJobFkydHpJR2xtSUhSb1pTQkZVa015TUNCamIyNTBjbUZqZENCb1lYTWdZbVZsYmlCcGJtbDBhV0ZzYVhwbFpDNWNiaUFnSUNwY2JpQWdJQ29nVkdocGN5Qm1kVzVqZEdsdmJpQnBiblJsY21GamRITWdkMmwwYUNCMGFHVWdZbXh2WTJ0amFHRnBiaUJ1WlhSM2IzSnJJSFJ2SUhabGNtbG1lU0JwWmlCMGFHVWdSVkpETWpBZ1kyOXVkSEpoWTNRZ2FHRnpJR0psWlc0Z2FXNXBkR2xoYkdsNlpXUXVYRzRnSUNBcUlFbDBJR05oYkd4eklIUm9aU0JjSWtOb1pXTnJTVzVwZEdsaGJHbDZaV1JjSWlCMGNtRnVjMkZqZEdsdmJpQnZiaUIwYUdVZ2MyMWhjblFnWTI5dWRISmhZM1FzSUhkb2FXTm9JR1J2WlhNZ2JtOTBJSEpsY1hWcGNtVWdZVzU1SUhCaGNtRnRaWFJsY25NdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQSFp2YVdRK2ZTQkJJSEJ5YjIxcGMyVWdkR2hoZENCeVpYTnZiSFpsY3lCM2FHVnVJSFJvWlNCcGJtbDBhV0ZzYVhwaGRHbHZiaUJqYUdWamF5QnBjeUJqYjIxd2JHVjBaV1F1WEc0Z0lDQXFYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwVnljbTl5ZlNCSlppQjBhR1VnZEhKaGJuTmhZM1JwYjI0Z1ptRnBiSE11WEc0Z0lDQXFMMXh1SUNCaGMzbHVZeUJqYUdWamEwbHVhWFJwWVd4cGVtVmtLQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUdOdmJuUmxlSFJCY21keklEMGdZWGRoYVhRZ1EyOXVkR1Y0ZEM1aGNtZHpLRnh1SUNBZ0lDQWdYQ0pqYUdWamEwbHVhWFJwWVd4cGVtVmtYQ0lzWEc0Z0lDQWdJQ0IwYUdsekxtTnNZWE56TEZ4dUlDQWdJQ0FnVzEwc1hHNGdJQ0FnSUNCMGFHbHpMbUZrWVhCMFpYSXNYRzRnSUNBZ0lDQjBhR2x6TGw5dmRtVnljbWxrWlhNZ2ZId2dlMzFjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGpiMjUwWlhoMFFYSm5jeTVoY21kekxDQjBhR2x6TG1Ob1pXTnJTVzVwZEdsaGJHbDZaV1FwTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11WVdSaGNIUmxjaTVsZG1Gc2RXRjBaVlJ5WVc1ellXTjBhVzl1S0dOMGVDd2dYQ0pEYUdWamEwbHVhWFJwWVd4cGVtVmtYQ0lwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFMXBiblJ6SUdFZ2MzQmxZMmxtYVdWa0lHRnRiM1Z1ZENCdlppQkZVa015TUNCMGIydGxibk11WEc0Z0lDQXFYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZibHh1SUNBZ0tpQlVhR2x6SUdaMWJtTjBhVzl1SUdsdWRHVnlZV04wY3lCM2FYUm9JSFJvWlNCaWJHOWphMk5vWVdsdUlHNWxkSGR2Y21zZ2RHOGdiV2x1ZENCaElITndaV05wWm1sbFpDQmhiVzkxYm5RZ2IyWWdSVkpETWpBZ2RHOXJaVzV6TGx4dUlDQWdLaUJKZENCallXeHNjeUIwYUdVZ1hDSk5hVzUwWENJZ2RISmhibk5oWTNScGIyNGdiMjRnZEdobElITnRZWEowSUdOdmJuUnlZV04wSUhkcGRHZ2dkR2hsSUcxcGJuUnBibWNnWVcxdmRXNTBJR0Z6SUdFZ2NHRnlZVzFsZEdWeUxseHVJQ0FnS2lCVWFHVWdablZ1WTNScGIyNGdaRzlsY3lCdWIzUWdjbVYwZFhKdUlHRnVlU0IyWVd4MVpTd2dZblYwSUdsMElIVndaR0YwWlhNZ2RHaGxJRzFwYm5SbGNpZHpJRzUxYldKbGNpQnZaaUIwYjJ0bGJuTXVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0JoYlc5MWJuUWdMU0JVYUdVZ1lXMXZkVzUwSUc5bUlFVlNRekl3SUhSdmEyVnVjeUIwYnlCdGFXNTBMbHh1SUNBZ0tseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1VISnZiV2x6WlR4MmIybGtQbjBnUVNCd2NtOXRhWE5sSUhSb1lYUWdjbVZ6YjJ4MlpYTWdkMmhsYmlCMGFHVWdiV2x1ZEdsdVp5QndjbTlqWlhOeklHbHpJR052YlhCc1pYUmxaQzVjYmlBZ0lDcGNiaUFnSUNvZ1FIUm9jbTkzY3lCN1JYSnliM0o5SUVsbUlIUm9aU0IwY21GdWMyRmpkR2x2YmlCbVlXbHNjeTVjYmlBZ0lDb3ZYRzRnSUdGemVXNWpJRzFwYm5Rb1lXMXZkVzUwT2lCdWRXMWlaWElwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCamIyNTBaWGgwUVhKbmN5QTlJR0YzWVdsMElFTnZiblJsZUhRdVlYSm5jeWhjYmlBZ0lDQWdJRndpYldsdWRGd2lMRnh1SUNBZ0lDQWdkR2hwY3k1amJHRnpjeXhjYmlBZ0lDQWdJRnRkTEZ4dUlDQWdJQ0FnZEdocGN5NWhaR0Z3ZEdWeUxGeHVJQ0FnSUNBZ2RHaHBjeTVmYjNabGNuSnBaR1Z6SUh4OElIdDlYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVDQjlJRDBnZEdocGN5NXNiMmREZEhnb1kyOXVkR1Y0ZEVGeVozTXVZWEpuY3l3Z2RHaHBjeTV0YVc1MEtUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtRmtZWEIwWlhJdWMzVmliV2wwVkhKaGJuTmhZM1JwYjI0b1kzUjRMQ0JjSWsxcGJuUmNJaXdnVzJGdGIzVnVkQzUwYjFOMGNtbHVaeWdwWFNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRblZ5Ym5NZ1lTQnpjR1ZqYVdacFpXUWdZVzF2ZFc1MElHOW1JRVZTUXpJd0lIUnZhMlZ1Y3lCbWNtOXRJSFJvWlNCdGFXNTBaWEluY3lCaFkyTnZkVzUwTGx4dUlDQWdLbHh1SUNBZ0tpQlVhR2x6SUdaMWJtTjBhVzl1SUdsdWRHVnlZV04wY3lCM2FYUm9JSFJvWlNCaWJHOWphMk5vWVdsdUlHNWxkSGR2Y21zZ2RHOGdZblZ5YmlCaElITndaV05wWm1sbFpDQmhiVzkxYm5RZ2IyWWdSVkpETWpBZ2RHOXJaVzV6TGx4dUlDQWdLaUJKZENCallXeHNjeUIwYUdVZ1hDSkNkWEp1WENJZ2RISmhibk5oWTNScGIyNGdiMjRnZEdobElITnRZWEowSUdOdmJuUnlZV04wSUhkcGRHZ2dkR2hsSUdKMWNtNXBibWNnWVcxdmRXNTBJR0Z6SUdFZ2NHRnlZVzFsZEdWeUxseHVJQ0FnS2lCVWFHVWdablZ1WTNScGIyNGdaRzlsY3lCdWIzUWdjbVYwZFhKdUlHRnVlU0IyWVd4MVpTd2dZblYwSUdsMElHUmxZM0psWVhObGN5QjBhR1VnYldsdWRHVnlKM01nYm5WdFltVnlJRzltSUhSdmEyVnVjeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUdGdGIzVnVkQ0F0SUZSb1pTQmhiVzkxYm5RZ2IyWWdSVkpETWpBZ2RHOXJaVzV6SUhSdklHSjFjbTR1WEc0Z0lDQXFYRzRnSUNBcUlFQnlaWFIxY201eklIdFFjbTl0YVhObFBIWnZhV1ErZlNCQklIQnliMjFwYzJVZ2RHaGhkQ0J5WlhOdmJIWmxjeUIzYUdWdUlIUm9aU0JpZFhKdWFXNW5JSEJ5YjJObGMzTWdhWE1nWTI5dGNHeGxkR1ZrTGx4dUlDQWdLbHh1SUNBZ0tpQkFkR2h5YjNkeklIdEZjbkp2Y24wZ1NXWWdkR2hsSUhSeVlXNXpZV04wYVc5dUlHWmhhV3h6TGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWW5WeWJpaGhiVzkxYm5RNklHNTFiV0psY2lrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElHTnZiblJsZUhSQmNtZHpJRDBnWVhkaGFYUWdRMjl1ZEdWNGRDNWhjbWR6S0Z4dUlDQWdJQ0FnWENKaWRYSnVYQ0lzWEc0Z0lDQWdJQ0IwYUdsekxtTnNZWE56TEZ4dUlDQWdJQ0FnVzEwc1hHNGdJQ0FnSUNCMGFHbHpMbUZrWVhCMFpYSXNYRzRnSUNBZ0lDQjBhR2x6TGw5dmRtVnljbWxrWlhNZ2ZId2dlMzFjYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGpiMjUwWlhoMFFYSm5jeTVoY21kekxDQjBhR2x6TG1KMWNtNHBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVZV1JoY0hSbGNpNXpkV0p0YVhSVWNtRnVjMkZqZEdsdmJpaGpkSGdzSUZ3aVFuVnlibHdpTENCYllXMXZkVzUwTG5SdlUzUnlhVzVuS0NsZEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJDZFhKdWN5QmhJSE53WldOcFptbGxaQ0JoYlc5MWJuUWdiMllnUlZKRE1qQWdkRzlyWlc1eklHWnliMjBnWVNCemNHVmphV1pwWldRZ1lXTmpiM1Z1ZEM1Y2JpQWdJQ3BjYmlBZ0lDb2dWR2hwY3lCbWRXNWpkR2x2YmlCcGJuUmxjbUZqZEhNZ2QybDBhQ0IwYUdVZ1lteHZZMnRqYUdGcGJpQnVaWFIzYjNKcklIUnZJR0oxY200Z1lTQnpjR1ZqYVdacFpXUWdZVzF2ZFc1MElHOW1JRVZTUXpJd0lIUnZhMlZ1Y3lCbWNtOXRJR0VnWjJsMlpXNGdZV05qYjNWdWRDNWNiaUFnSUNvZ1NYUWdZMkZzYkhNZ2RHaGxJRndpUW5WeWJrWnliMjFjSWlCMGNtRnVjMkZqZEdsdmJpQnZiaUIwYUdVZ2MyMWhjblFnWTI5dWRISmhZM1FnZDJsMGFDQjBhR1VnWVdOamIzVnVkQ2R6SUdGa1pISmxjM01nWVc1a0lIUm9aU0JpZFhKdWFXNW5JR0Z0YjNWdWRDQmhjeUJ3WVhKaGJXVjBaWEp6TGx4dUlDQWdLaUJVYUdVZ1puVnVZM1JwYjI0Z1pHOWxjeUJ1YjNRZ2NtVjBkWEp1SUdGdWVTQjJZV3gxWlN3Z1luVjBJR2wwSUdSbFkzSmxZWE5sY3lCMGFHVWdjM0JsWTJsbWFXVmtJR0ZqWTI5MWJuUW5jeUJ1ZFcxaVpYSWdiMllnZEc5clpXNXpMbHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnWVdOamIzVnVkQ0F0SUZSb1pTQmhaR1J5WlhOeklHOW1JSFJvWlNCaFkyTnZkVzUwSUdaeWIyMGdkMmhwWTJnZ2RHOGdZblZ5YmlCMGFHVWdSVkpETWpBZ2RHOXJaVzV6TGx4dUlDQWdLaUJBY0dGeVlXMGdZVzF2ZFc1MElDMGdWR2hsSUdGdGIzVnVkQ0J2WmlCRlVrTXlNQ0IwYjJ0bGJuTWdkRzhnWW5WeWJpNWNiaUFnSUNwY2JpQWdJQ29nUUhKbGRIVnlibk1nZTFCeWIyMXBjMlU4ZG05cFpENTlJRUVnY0hKdmJXbHpaU0IwYUdGMElISmxjMjlzZG1WeklIZG9aVzRnZEdobElHSjFjbTVwYm1jZ2NISnZZMlZ6Y3lCcGN5QmpiMjF3YkdWMFpXUXVYRzRnSUNBcVhHNGdJQ0FxSUVCMGFISnZkM01nZTBWeWNtOXlmU0JKWmlCMGFHVWdkSEpoYm5OaFkzUnBiMjRnWm1GcGJITXVYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5QmlkWEp1Um5KdmJTaGhZMk52ZFc1ME9pQnpkSEpwYm1jc0lHRnRiM1Z1ZERvZ2JuVnRZbVZ5S1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ1kyOXVkR1Y0ZEVGeVozTWdQU0JoZDJGcGRDQkRiMjUwWlhoMExtRnlaM01vWEc0Z0lDQWdJQ0JjSW1KMWNtNUdjbTl0WENJc1hHNGdJQ0FnSUNCMGFHbHpMbU5zWVhOekxGeHVJQ0FnSUNBZ1cxMHNYRzRnSUNBZ0lDQjBhR2x6TG1Ga1lYQjBaWElzWEc0Z0lDQWdJQ0IwYUdsekxsOXZkbVZ5Y21sa1pYTWdmSHdnZTMxY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElIc2dZM1I0SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hqYjI1MFpYaDBRWEpuY3k1aGNtZHpMQ0IwYUdsekxtSjFjbTVHY205dEtUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtRmtZWEIwWlhJdWMzVmliV2wwVkhKaGJuTmhZM1JwYjI0b1kzUjRMQ0JjSWtKMWNtNUdjbTl0WENJc0lGdGNiaUFnSUNBZ0lHRmpZMjkxYm5Rc1hHNGdJQ0FnSUNCaGJXOTFiblF1ZEc5VGRISnBibWNvS1N4Y2JpQWdJQ0JkS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFJ5YVdWMlpYTWdkR2hsSUdKaGJHRnVZMlVnYjJZZ1JWSkRNakFnZEc5clpXNXpJR0Z6YzI5amFXRjBaV1FnZDJsMGFDQjBhR1VnWTJ4cFpXNTBKM01nWVdOamIzVnVkQzVjYmlBZ0lDcGNiaUFnSUNvZ1ZHaHBjeUJtZFc1amRHbHZiaUJwYm5SbGNtRmpkSE1nZDJsMGFDQjBhR1VnWW14dlkydGphR0ZwYmlCdVpYUjNiM0pySUhSdklHWmxkR05vSUhSb1pTQmlZV3hoYm1ObElHOW1JRVZTUXpJd0lIUnZhMlZ1Y3lCaGMzTnZZMmxoZEdWa0lIZHBkR2dnZEdobElHTnNhV1Z1ZENkeklHRmpZMjkxYm5RdVhHNGdJQ0FxSUVsMElHTmhiR3h6SUhSb1pTQmNJa05zYVdWdWRFRmpZMjkxYm5SQ1lXeGhibU5sWENJZ2RISmhibk5oWTNScGIyNGdiMjRnZEdobElITnRZWEowSUdOdmJuUnlZV04wTENCM2FHbGphQ0JrYjJWeklHNXZkQ0J5WlhGMWFYSmxJR0Z1ZVNCd1lYSmhiV1YwWlhKekxseHVJQ0FnS2lCVWFHVWdjbVYwZFhKdVpXUWdaR0YwWVNCcGN5QjBhR1Z1SUdSbFkyOWtaV1FnWVc1a0lHTnZiblpsY25SbFpDQjBieUJoSUc1MWJXSmxjaTVjYmlBZ0lDcGNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UxQnliMjFwYzJVOGJuVnRZbVZ5UG4wZ1FTQndjbTl0YVhObElIUm9ZWFFnY21WemIyeDJaWE1nZDJsMGFDQjBhR1VnWW1Gc1lXNWpaU0J2WmlCRlVrTXlNQ0IwYjJ0bGJuTWdZWE56YjJOcFlYUmxaQ0IzYVhSb0lIUm9aU0JqYkdsbGJuUW5jeUJoWTJOdmRXNTBMbHh1SUNBZ0tseHVJQ0FnS2lCQWRHaHliM2R6SUh0RmNuSnZjbjBnU1dZZ2RHaGxJSFJ5WVc1ellXTjBhVzl1SUdaaGFXeHpJRzl5SUhSb1pTQmtaV052WkdsdVp5QndjbTlqWlhOeklHWmhhV3h6TGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWTJ4cFpXNTBRV05qYjNWdWRFSmhiR0Z1WTJVb0tUb2dVSEp2YldselpUeHVkVzFpWlhJK0lIdGNiaUFnSUNCamIyNXpkQ0JqYjI1MFpYaDBRWEpuY3lBOUlHRjNZV2wwSUVOdmJuUmxlSFF1WVhKbmN5aGNiaUFnSUNBZ0lGd2lZV05qYjNWdWRFSmhiR0Z1WTJWY0lpeGNiaUFnSUNBZ0lIUm9hWE11WTJ4aGMzTXNYRzRnSUNBZ0lDQmJYU3hjYmlBZ0lDQWdJSFJvYVhNdVlXUmhjSFJsY2l4Y2JpQWdJQ0FnSUhSb2FYTXVYMjkyWlhKeWFXUmxjeUI4ZkNCN2ZWeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhnZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dOdmJuUmxlSFJCY21kekxtRnlaM01zSUhSb2FYTXVZMnhwWlc1MFFXTmpiM1Z1ZEVKaGJHRnVZMlVwTzF4dUlDQWdJR052Ym5OMElITmxjbWxoYkdsNlpXUkJZMk52ZFc1MFFtRnNZVzVqWlNBOUlHRjNZV2wwSUhSb2FYTXVZV1JoY0hSbGNpNWxkbUZzZFdGMFpWUnlZVzV6WVdOMGFXOXVLRnh1SUNBZ0lDQWdZM1I0TEZ4dUlDQWdJQ0FnWENKRGJHbGxiblJCWTJOdmRXNTBRbUZzWVc1alpWd2lYRzRnSUNBZ0tUdGNibHh1SUNBZ0lISmxkSFZ5YmlCT2RXMWlaWElvZEdocGN5NWtaV052WkdVb2MyVnlhV0ZzYVhwbFpFRmpZMjkxYm5SQ1lXeGhibU5sS1NrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwY21sbGRtVnpJSFJvWlNCamJHbGxiblFuY3lCaFkyTnZkVzUwSUVsRUlHWnliMjBnZEdobElHSnNiMk5yWTJoaGFXNGdibVYwZDI5eWF5NWNiaUFnSUNwY2JpQWdJQ29nVkdocGN5Qm1kVzVqZEdsdmJpQnBiblJsY21GamRITWdkMmwwYUNCMGFHVWdZbXh2WTJ0amFHRnBiaUJ1WlhSM2IzSnJJSFJ2SUdabGRHTm9JSFJvWlNCamJHbGxiblFuY3lCaFkyTnZkVzUwSUVsRUxseHVJQ0FnS2lCSmRDQmpZV3hzY3lCMGFHVWdYQ0pEYkdsbGJuUkJZMk52ZFc1MFNVUmNJaUIwY21GdWMyRmpkR2x2YmlCdmJpQjBhR1VnYzIxaGNuUWdZMjl1ZEhKaFkzUXNJSGRvYVdOb0lHUnZaWE1nYm05MElISmxjWFZwY21VZ1lXNTVJSEJoY21GdFpYUmxjbk11WEc0Z0lDQXFJRlJvWlNCeVpYUjFjbTVsWkNCa1lYUmhJR2x6SUhSb1pXNGdaR1ZqYjJSbFpDQmhibVFnY21WMGRYSnVaV1FnWVhNZ1lTQnpkSEpwYm1jdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQSE4wY21sdVp6NTlJRUVnY0hKdmJXbHpaU0IwYUdGMElISmxjMjlzZG1WeklIZHBkR2dnZEdobElHTnNhV1Z1ZENkeklHRmpZMjkxYm5RZ1NVUXVYRzRnSUNBcVhHNGdJQ0FxSUVCMGFISnZkM01nZTBWeWNtOXlmU0JKWmlCMGFHVWdkSEpoYm5OaFkzUnBiMjRnWm1GcGJITWdiM0lnZEdobElHUmxZMjlrYVc1bklIQnliMk5sYzNNZ1ptRnBiSE11WEc0Z0lDQXFMMXh1SUNCaGMzbHVZeUJqYkdsbGJuUkJZMk52ZFc1MFNVUW9LVG9nVUhKdmJXbHpaVHh6ZEhKcGJtYytJSHRjYmlBZ0lDQmpiMjV6ZENCamIyNTBaWGgwUVhKbmN5QTlJR0YzWVdsMElFTnZiblJsZUhRdVlYSm5jeWhjYmlBZ0lDQWdJRndpWVdOamIzVnVkRWxrWENJc1hHNGdJQ0FnSUNCMGFHbHpMbU5zWVhOekxGeHVJQ0FnSUNBZ1cxMHNYRzRnSUNBZ0lDQjBhR2x6TG1Ga1lYQjBaWElzWEc0Z0lDQWdJQ0IwYUdsekxsOXZkbVZ5Y21sa1pYTWdmSHdnZTMxY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElIc2dZM1I0SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hqYjI1MFpYaDBRWEpuY3k1aGNtZHpMQ0IwYUdsekxtTnNhV1Z1ZEVGalkyOTFiblJKUkNrN1hHNGdJQ0FnWTI5dWMzUWdZMnhwWlc1MFFXTmpiM1Z1ZEVsRUlEMGdZWGRoYVhRZ2RHaHBjeTVoWkdGd2RHVnlMbVYyWVd4MVlYUmxWSEpoYm5OaFkzUnBiMjRvWEc0Z0lDQWdJQ0JqZEhnc1hHNGdJQ0FnSUNCY0lrTnNhV1Z1ZEVGalkyOTFiblJKUkZ3aVhHNGdJQ0FnS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtUmxZMjlrWlNoamJHbGxiblJCWTJOdmRXNTBTVVFwTzF4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
|
|
@@ -15,5 +15,5 @@ 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=
|
|
19
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2VyYzIwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlEQUE4QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0ZhYnJpY0VSQzIwQ2xpZW50UmVwb3NpdG9yeVwiO1xuIl19
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUVBQWlEO0FBQ2pELHNVQUFzVSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0ZhYnJpY0VSQzIwQ2xpZW50UmVwb3NpdG9yeS5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12WTJ4cFpXNTBMMlZ5WXpJd0wybHVaR1Y0TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMR2xFUVVFNFF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMFpoWW5KcFkwVlNRekl3UTJ4cFpXNTBVbVZ3YjNOcGRHOXllVndpTzF4dUlsMTkiXX0=
|