@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
|
@@ -335,5 +335,5 @@ class FabricContractSequence extends core_1.Sequence {
|
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
337
|
exports.FabricContractSequence = FabricContractSequence;
|
|
338
|
-
//# sourceMappingURL=FabricContractSequence.js.map
|
|
339
|
-
//# sourceMappingURL=FabricContractSequence.js.map
|
|
338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RTZXF1ZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdHMvRmFicmljQ29udHJhY3RTZXF1ZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkQsT0FBTyxFQUlMLFFBQVEsRUFDUixhQUFhLEVBRWIsTUFBTSxFQUNOLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkNHO0FBQ0gsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFFBQVE7SUFDbEQ7OztPQUdHO0lBQ0gsWUFBWSxPQUF3QixFQUFFLE9BQStCO1FBQ25FLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ00sS0FBSyxDQUFDLE9BQU8sQ0FDcEIsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQ25CLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FDbEQsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLElBQUksYUFBa0IsQ0FBQztRQUN2QixNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUksR0FBNkIsQ0FBQyxzQkFBc0IsQ0FDdkUsTUFBTSxDQUFD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Q2hGLDhGQUE4RjtRQUM5RixNQUFNLFdBQVcsR0FBSSxHQUE2QixDQUFDLHNCQUFzQixDQUN2RSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUNmLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwRCxPQUFPO1FBQ1QsQ0FBQztRQUVELDBGQUEwRjtRQUMxRixJQUFJLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNoQyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ2xFLEdBQUcsQ0FBQyxJQUFJLENBQ04sd0JBQXdCLEdBQUcsQ0FBQyxFQUFFLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLDRCQUE0QixXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNwSSxDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgT3BlcmF0aW9uS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIEFkYXB0ZXIsXG4gIENvbnRleHQsXG4gIE1heWJlQ29udGV4dHVhbEFyZyxcbiAgU2VxdWVuY2UsXG4gIFNlcXVlbmNlTW9kZWwsXG4gIFNlcXVlbmNlT3B0aW9ucyxcbiAgU2VyaWFsLFxuICBVbnN1cHBvcnRlZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0Q29udGV4dCB9IGZyb20gXCIuL0NvbnRyYWN0Q29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBGYWJyaWNDb250cmFjdEFkYXB0ZXIgfSBmcm9tIFwiLi9Db250cmFjdEFkYXB0ZXJcIjtcbmltcG9ydCB7IENvdWNoREJLZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBzZXF1ZW5jZSBnZW5lcmF0aW9uXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBhIGZyYW1ld29yayBmb3IgZ2VuZXJhdGluZyBzZXF1ZW50aWFsIHZhbHVlcyAobGlrZSBwcmltYXJ5IGtleXMpIGluIHRoZSBwZXJzaXN0ZW5jZSBsYXllci5cbiAqIEltcGxlbWVudGF0aW9ucyBvZiB0aGlzIGNsYXNzIGhhbmRsZSB0aGUgc3BlY2lmaWNzIG9mIGhvdyBzZXF1ZW5jZXMgYXJlIHN0b3JlZCBhbmQgaW5jcmVtZW50ZWQgaW4gZGlmZmVyZW50XG4gKiBkYXRhYmFzZSBzeXN0ZW1zLlxuICogQHBhcmFtIHtTZXF1ZW5jZU9wdGlvbnN9IG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBzZXF1ZW5jZSBnZW5lcmF0b3JcbiAqIEBjbGFzcyBTZXF1ZW5jZVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEV4YW1wbGUgaW1wbGVtZW50YXRpb24gZm9yIGEgc3BlY2lmaWMgZGF0YWJhc2VcbiAqIGNsYXNzIFBvc3RncmVzU2VxdWVuY2UgZXh0ZW5kcyBTZXF1ZW5jZSB7XG4gKiAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNlcXVlbmNlT3B0aW9ucykge1xuICogICAgIHN1cGVyKG9wdGlvbnMpO1xuICogICB9XG4gKlxuICogICBhc3luYyBuZXh0KCk6IFByb21pc2U8bnVtYmVyPiB7XG4gKiAgICAgLy8gSW1wbGVtZW50YXRpb24gdG8gZ2V0IG5leHQgdmFsdWUgZnJvbSBQb3N0Z3JlU1FMIHNlcXVlbmNlXG4gKiAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5vcHRpb25zLmV4ZWN1dG9yLnJhdyhgU0VMRUNUIG5leHR2YWwoJyR7dGhpcy5vcHRpb25zLm5hbWV9JylgKTtcbiAqICAgICByZXR1cm4gcGFyc2VJbnQocmVzdWx0LnJvd3NbMF0ubmV4dHZhbCk7XG4gKiAgIH1cbiAqXG4gKiAgIGFzeW5jIGN1cnJlbnQoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAqICAgICAvLyBJbXBsZW1lbnRhdGlvbiB0byBnZXQgY3VycmVudCB2YWx1ZSBmcm9tIFBvc3RncmVTUUwgc2VxdWVuY2VcbiAqICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLm9wdGlvbnMuZXhlY3V0b3IucmF3KGBTRUxFQ1QgY3VycnZhbCgnJHt0aGlzLm9wdGlvbnMubmFtZX0nKWApO1xuICogICAgIHJldHVybiBwYXJzZUludChyZXN1bHQucm93c1swXS5jdXJydmFsKTtcbiAqICAgfVxuICpcbiAqICAgYXN5bmMgcmFuZ2UoY291bnQ6IG51bWJlcik6IFByb21pc2U8bnVtYmVyW10+IHtcbiAqICAgICAvLyBJbXBsZW1lbnRhdGlvbiB0byBnZXQgYSByYW5nZSBvZiB2YWx1ZXNcbiAqICAgICBjb25zdCB2YWx1ZXM6IG51bWJlcltdID0gW107XG4gKiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gKiAgICAgICB2YWx1ZXMucHVzaChhd2FpdCB0aGlzLm5leHQoKSk7XG4gKiAgICAgfVxuICogICAgIHJldHVybiB2YWx1ZXM7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiAvLyBVc2FnZVxuICogY29uc3Qgc2VxdWVuY2UgPSBuZXcgUG9zdGdyZXNTZXF1ZW5jZSh7XG4gKiAgIG5hbWU6ICd1c2VyX2lkX3NlcScsXG4gKiAgIGV4ZWN1dG9yOiBkYkV4ZWN1dG9yXG4gKiB9KTtcbiAqXG4gKiBjb25zdCBuZXh0SWQgPSBhd2FpdCBzZXF1ZW5jZS5uZXh0KCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NvbnRyYWN0U2VxdWVuY2UgZXh0ZW5kcyBTZXF1ZW5jZSB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBzZXF1ZW5jZSBpbnN0YW5jZVxuICAgKiBAc3VtbWFyeSBQcm90ZWN0ZWQgY29uc3RydWN0b3IgdGhhdCBpbml0aWFsaXplcyB0aGUgc2VxdWVuY2Ugd2l0aCB0aGUgcHJvdmlkZWQgb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9uczogU2VxdWVuY2VPcHRpb25zLCBhZGFwdGVyOiBBZGFwdGVyPGFueSwgYW55LCBhbnk+KSB7XG4gICAgc3VwZXIob3B0aW9ucywgYWRhcHRlcik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc2VxdWVuY2VcbiAgICogQHN1bW1hcnkgR2V0cyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc2VxdWVuY2UgZnJvbSBzdG9yYWdlLiBJZiB0aGUgc2VxdWVuY2VcbiAgICogZG9lc24ndCBleGlzdCB5ZXQsIGl0IHJldHVybnMgdGhlIGNvbmZpZ3VyZWQgc3RhcnRpbmcgdmFsdWUuXG4gICAqIEByZXR1cm4gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGN1cnJlbnQgc2VxdWVuY2UgdmFsdWVcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIGN1cnJlbnQoXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLlJFQUQsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jdXJyZW50KTtcbiAgICBsZXQgY2FjaGVkQ3VycmVudDogYW55O1xuICAgIGNvbnN0IHsgbmFtZSwgc3RhcnRXaXRoIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgYWRhcHRlck1ldGEgPSAoY3R4IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkuZ2V0U2VxdWVuY2VTZWdyZWdhdGlvbihcbiAgICAgIFN0cmluZyhuYW1lKVxuICAgICk7XG4gICAgdHJ5IHtcbiAgICAgIGNhY2hlZEN1cnJlbnQgPSBjdHguZ2V0RnJvbUNoaWxkcmVuKG5hbWUgYXMgYW55KTtcbiAgICAgIGlmIChjYWNoZWRDdXJyZW50ICE9PSB1bmRlZmluZWQgJiYgY2FjaGVkQ3VycmVudCAhPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2UoY2FjaGVkQ3VycmVudCk7XG4gICAgICBjb25zdCBzZXF1ZW5jZTogU2VxdWVuY2VNb2RlbCA9IGF3YWl0IHRoaXMucmVwby5yZWFkKG5hbWUgYXMgc3RyaW5nLCBjdHgpO1xuICAgICAgcmV0dXJuIHRoaXMucGFyc2Uoc2VxdWVuY2UuY3VycmVudCBhcyBzdHJpbmcgfCBudW1iZXIpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgIC8vIElmIHRoZSBzZXF1ZW5jZSBpcyBzdXBwb3NlZCB0byBsaXZlIGluIHByaXZhdGUvc2hhcmVkIGNvbGxlY3Rpb25zLFxuICAgICAgICAvLyByZWFkIGl0IGZyb20gdGhvc2UgY29sbGVjdGlvbnMgdXNpbmcgdGhlIGFkYXB0ZXIgKG5vdCB0aGUgc3R1YiBkaXJlY3RseSkuXG4gICAgICAgIGlmIChhZGFwdGVyTWV0YT8uY29sbGVjdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLmFkYXB0ZXIgYXMgdW5rbm93biBhcyBGYWJyaWNDb250cmFjdEFkYXB0ZXI7XG4gICAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKFNlcXVlbmNlTW9kZWwgYXMgYW55KTtcbiAgICAgICAgICBjb25zdCBwdWJsaWNLZXkgPSAoY3R4IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkuc3R1Yi5jcmVhdGVDb21wb3NpdGVLZXkoXG4gICAgICAgICAgICB0YWJsZU5hbWUsXG4gICAgICAgICAgICBbU3RyaW5nKG5hbWUpXVxuICAgICAgICAgICk7XG4gICAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgYWRhcHRlck1ldGEuY29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByaXZhdGVBZGFwdGVyID0gYWRhcHRlci5mb3JQcml2YXRlKGNvbCk7XG4gICAgICAgICAgICAgIGNvbnN0IHJhdyA9IGF3YWl0IChwcml2YXRlQWRhcHRlciBhcyBhbnkpLnJlYWRTdGF0ZShcbiAgICAgICAgICAgICAgICBwdWJsaWNLZXksXG4gICAgICAgICAgICAgICAgY3R4IGFzIGFueVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAocmF3ICYmIHJhdy5jdXJyZW50ICE9PSB1bmRlZmluZWQgJiYgcmF3LmN1cnJlbnQgIT09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2UocmF3LmN1cnJlbnQgYXMgYW55KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgLy8gZmFsbCB0aHJvdWdoIHRvIHJlZ3VsYXIgc3RhcnRXaXRoIGZhbGxiYWNrIGZvciBhbnkgcGFyc2UvSU8gZXJyb3JzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbG9nLmRlYnVnKFxuICAgICAgICAgICAgYFRyeWluZyB0byByZXNvbHZlIGN1cnJlbnQgc2VxdWVuY2UgJHtuYW1lfSB2YWx1ZSBmcm9tIGNvbnRleHQgdHJlZWBcbiAgICAgICAgICApO1xuICAgICAgICAgIGNhY2hlZEN1cnJlbnQgPSBjdHguZ2V0RnJvbUNoaWxkcmVuKG5hbWUgYXMgYW55KTtcbiAgICAgICAgICBpZiAoY2FjaGVkQ3VycmVudCAhPT0gdW5kZWZpbmVkICYmIGNhY2hlZEN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICAgICAgYFJldHJpZXZlZCBjYWNoZWQgY3VycmVudCB2YWx1ZSBmb3Igc2VxdWVuY2UgJHtuYW1lfTogJHtjYWNoZWRDdXJyZW50fWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIC8vIGZhbGwgdGhyb3VnaFxuICAgICAgICB9XG4gICAgICAgIGlmIChjYWNoZWRDdXJyZW50ID09PSB1bmRlZmluZWQgfHwgY2FjaGVkQ3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIGxvZy5pbmZvKGBObyBjYWNoZWQgdmFsdWUgZm9yIHNlcXVlbmNlICR7bmFtZX0gaW4gY29udGV4dGApO1xuICAgICAgICAgIGNhY2hlZEN1cnJlbnQgPSBzdGFydFdpdGg7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShjYWNoZWRDdXJyZW50KTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICBgRmFpbGVkIHRvIHBhcnNlIGluaXRpYWwgdmFsdWUgZm9yIHNlcXVlbmNlICR7c3RhcnRXaXRofTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byByZXRyaWV2ZSBjdXJyZW50IHZhbHVlIGZvciBzZXF1ZW5jZSAke25hbWV9OiAke2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluY3JlbWVudHMgdGhlIHNlcXVlbmNlIHZhbHVlXG4gICAqIEBzdW1tYXJ5IEluY3JlYXNlcyB0aGUgY3VycmVudCBzZXF1ZW5jZSB2YWx1ZSBieSB0aGUgc3BlY2lmaWVkIGFtb3VudCBhbmQgcGVyc2lzdHNcbiAgICogdGhlIG5ldyB2YWx1ZSB0byBzdG9yYWdlLiBUaGlzIG1ldGhvZCBoYW5kbGVzIGJvdGggbnVtZXJpYyBhbmQgQmlnSW50IHNlcXVlbmNlIHR5cGVzLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlciB8IGJpZ2ludH0gY3VycmVudCAtIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzZXF1ZW5jZVxuICAgKiBAcGFyYW0ge251bWJlcn0gW2NvdW50XSAtIE9wdGlvbmFsIGFtb3VudCB0byBpbmNyZW1lbnQgYnksIGRlZmF1bHRzIHRvIHRoZSBzZXF1ZW5jZSdzIGluY3JlbWVudEJ5IHZhbHVlXG4gICAqIEByZXR1cm4gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG5ldyBzZXF1ZW5jZSB2YWx1ZSBhZnRlciBpbmNyZW1lbnRpbmdcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBpbmNyZW1lbnQoXG4gICAgY291bnQ6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBjdHg6IENvbnRleHQ8YW55PlxuICApOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IGxvZyA9IGN0eC5sb2dnZXIuZm9yKHRoaXMuaW5jcmVtZW50KTtcbiAgICBjb25zdCB7IHR5cGUsIGluY3JlbWVudEJ5LCBuYW1lIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgaWYgKCFuYW1lKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNlcXVlbmNlIG5hbWUgaXMgcmVxdWlyZWRcIik7XG4gICAgbG9nLmluZm8oYE9idGFpbmluZyBzZXF1ZW5jZSBsb2NrIGZvciBzZXF1ZW5jZSAke25hbWV9YCk7XG4gICAgLy8gcmV0dXJuIEZhYnJpY0NvbnRyYWN0U2VxdWVuY2UubG9jay5leGVjdXRlKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB0b0luY3JlbWVudEJ5ID0gY291bnQgfHwgaW5jcmVtZW50Qnk7XG4gICAgaWYgKHRvSW5jcmVtZW50QnkgJSBpbmNyZW1lbnRCeSAhPT0gMClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgVmFsdWUgdG8gaW5jcmVtZW50IGRvZXMgbm90IGNvbnNpZGVyIHRoZSBpbmNyZW1lbnRCeSBzZXR0aW5nOiAke2luY3JlbWVudEJ5fWBcbiAgICAgICk7XG4gICAgY29uc3QgdHlwZU5hbWUgPVxuICAgICAgdHlwZW9mIHR5cGUgPT09IFwiZnVuY3Rpb25cIiAmJiAodHlwZSBhcyBhbnkpPy5uYW1lXG4gICAgICAgID8gKHR5cGUgYXMgYW55KS5uYW1lXG4gICAgICAgIDogdHlwZTtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBhd2FpdCB0aGlzLmN1cnJlbnQoY3R4KTtcblxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHVybkFuZENhY2hlKHJlczogU2VxdWVuY2VNb2RlbCB8IFByb21pc2U8U2VxdWVuY2VNb2RlbD4pIHtcbiAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSByZXMgPSBhd2FpdCByZXM7XG4gICAgICBsb2dcbiAgICAgICAgLmZvcihyZXR1cm5BbmRDYWNoZSlcbiAgICAgICAgLmluZm8oYFN0b3JpbmcgbmV3ICR7bmFtZX0gc2VxIHZhbHVlIGluIGNhY2hlOiAke3Jlcy5jdXJyZW50fWApO1xuICAgICAgY3R4LmNhY2hlLnB1dChuYW1lIGFzIHN0cmluZywgcmVzLmN1cnJlbnQpO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBjb25zdCBwZXJmb3JtVXBzZXJ0ID0gYXN5bmMgKFxuICAgICAgbmV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50XG4gICAgKTogUHJvbWlzZTxTZXF1ZW5jZU1vZGVsPiA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgcmV0dXJuQW5kQ2FjaGUoXG4gICAgICAgICAgdGhpcy5yZXBvLnVwZGF0ZShuZXcgU2VxdWVuY2VNb2RlbCh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pLCBjdHgpXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHJldHVybkFuZENhY2hlKFxuICAgICAgICAgICAgdGhpcy5yZXBvLmNyZWF0ZShcbiAgICAgICAgICAgICAgbmV3IFNlcXVlbmNlTW9kZWwoeyBpZDogbmFtZSwgY3VycmVudDogbmV4dCB9KSxcbiAgICAgICAgICAgICAgY3R4XG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBpbmNyZW1lbnRTZXJpYWwgPSBhc3luYyAoXG4gICAgICBiYXNlOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnRcbiAgICApOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4gPT4ge1xuICAgICAgc3dpdGNoICh0eXBlTmFtZSkge1xuICAgICAgICBjYXNlIE51bWJlci5uYW1lOlxuICAgICAgICAgIHJldHVybiAodGhpcy5wYXJzZShiYXNlKSBhcyBudW1iZXIpICsgdG9JbmNyZW1lbnRCeTtcbiAgICAgICAgY2FzZSBCaWdJbnQubmFtZTpcbiAgICAgICAgICByZXR1cm4gKHRoaXMucGFyc2UoYmFzZSkgYXMgYmlnaW50KSArIEJpZ0ludCh0b0luY3JlbWVudEJ5KTtcbiAgICAgICAgY2FzZSBTdHJpbmcubmFtZTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShiYXNlKTtcbiAgICAgICAgY2FzZSBcInNlcmlhbFwiOlxuICAgICAgICAgIHJldHVybiBhd2FpdCBQcm9taXNlLnJlc29sdmUoXG4gICAgICAgICAgICBTZXJpYWwuaW5zdGFuY2UuZ2VuZXJhdGUoYmFzZSBhcyBzdHJpbmcpXG4gICAgICAgICAgKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNob3VsZCBuZXZlciBoYXBwZW5cIik7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIENoZWNrIGlmIG1vZGVsIGlzIGZ1bGx5IHNlZ3JlZ2F0ZWQg4oCUIHNlcXVlbmNlIGdvZXMgT05MWSB0byBwcml2YXRlIGNvbGxlY3Rpb25zLlxuICAgIC8vIFByZWZlciB0aGUgZXhwbGljaXQgcGVyLXNlcXVlbmNlIG1ldGFkYXRhIHdoZW4gYXZhaWxhYmxlOyBvdGhlcndpc2UgZmFsbCBiYWNrIHRvXG4gICAgLy8gdGhlIGNvbnRleHQncyByZWdpc3RlcmVkIHJlYWQgY29sbGVjdGlvbnMgKGNvdmVycyBlYXJseSBwayBnZW5lcmF0aW9uIHBhdGhzKS5cbiAgICBjb25zdCBhZGFwdGVyTWV0YSA9IChjdHggYXMgRmFicmljQ29udHJhY3RDb250ZXh0KS5nZXRTZXF1ZW5jZVNlZ3JlZ2F0aW9uKFxuICAgICAgbmFtZVxuICAgICk7XG4gICAgY29uc3QgZmFsbGJhY2tDb2xsZWN0aW9ucyA9IChjdHggYXMgRmFicmljQ29udHJhY3RDb250ZXh0KVxuICAgICAgLmdldFJlYWRDb2xsZWN0aW9ucygpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGNvbnN0IGVmZmVjdGl2ZUNvbGxlY3Rpb25zID1cbiAgICAgIGFkYXB0ZXJNZXRhPy5jb2xsZWN0aW9ucz8ubGVuZ3RoID8gYWRhcHRlck1ldGEuY29sbGVjdGlvbnMgOiBmYWxsYmFja0NvbGxlY3Rpb25zO1xuICAgIGNvbnN0IGVmZmVjdGl2ZUZ1bGx5U2VncmVnYXRlZCA9XG4gICAgICAoYWRhcHRlck1ldGE/LmZ1bGx5U2VncmVnYXRlZCA/PyAoY3R4IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkuaXNGdWxseVNlZ3JlZ2F0ZWQpICYmXG4gICAgICBlZmZlY3RpdmVDb2xsZWN0aW9ucy5sZW5ndGggPiAwO1xuXG4gICAgbGV0IG5leHQ6IGFueTtcbiAgICBpZiAodHlwZU5hbWUgPT09IFwidXVpZFwiKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgICAgYHV1aWQgcGsgZ2VuZXJhdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCB1c2luZyBAdXVpZCBhbmQgYSBkZXRlcm1pbmlzdGljIHNlZWRgXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0ID0gYXdhaXQgaW5jcmVtZW50U2VyaWFsKGN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGVmZmVjdGl2ZUZ1bGx5U2VncmVnYXRlZCkge1xuICAgICAgY29uc3Qgc2VxTW9kZWwgPSBuZXcgU2VxdWVuY2VNb2RlbCh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pO1xuICAgICAgYXdhaXQgdGhpcy53cml0ZVNlcXVlbmNlVG9Db2xsZWN0aW9ucyhcbiAgICAgICAgY3R4LFxuICAgICAgICBzZXFNb2RlbCxcbiAgICAgICAgZWZmZWN0aXZlQ29sbGVjdGlvbnNcbiAgICAgICk7XG4gICAgICBsb2cuZGVidWcoXG4gICAgICAgIGBTZXF1ZW5jZS5pbmNyZW1lbnQgKHByaXZhdGUtb25seSkgJHtuYW1lfSBjdXJyZW50PSR7Y3VycmVudFZhbHVlIGFzIGFueX0gbmV4dD0ke25leHQgYXMgYW55fWBcbiAgICAgICk7XG4gICAgICBjdHguY2FjaGUucHV0KG5hbWUgYXMgc3RyaW5nLCBuZXh0KTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH1cblxuICAgIGNvbnN0IHNlcSA9IGF3YWl0IHBlcmZvcm1VcHNlcnQobmV4dCk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYFNlcXVlbmNlLmluY3JlbWVudCAke25hbWV9IGN1cnJlbnQ9JHtjdXJyZW50VmFsdWUgYXMgYW55fSBuZXh0PSR7bmV4dCBhcyBhbnl9YFxuICAgICk7XG5cbiAgICAvLyBSZXBsaWNhdGUgc2VxdWVuY2UgdG8gc2VncmVnYXRlZCBjb2xsZWN0aW9ucyBpZiBtb2RlbCB1c2VzIHByaXZhdGUvc2hhcmVkIGRhdGEuXG4gICAgLy8gV2hlbiBtZXRhZGF0YSBpc24ndCBhdmFpbGFibGUsIGZhbGwgYmFjayB0byB0aGUgY29udGV4dCdzIHJlZ2lzdGVyZWQgcmVhZCBjb2xsZWN0aW9ucy5cbiAgICBpZiAoZWZmZWN0aXZlQ29sbGVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICBhd2FpdCB0aGlzLndyaXRlU2VxdWVuY2VUb0NvbGxlY3Rpb25zKGN0eCwgc2VxLCBlZmZlY3RpdmVDb2xsZWN0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlcS5jdXJyZW50IGFzIHN0cmluZyB8IG51bWJlciB8IGJpZ2ludDtcbiAgICAvLyB9LCBuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRW5zdXJlcyB0aGUgc2VxdWVuY2UgZXhpc3RzIGFuZCBpcyBhdCBsZWFzdCBhIGdpdmVuIHZhbHVlXG4gICAqIEBzdW1tYXJ5IEZhYnJpYyBuZWVkcyB0byByZXNwZWN0IHNlZ3JlZ2F0ZWQvcHJpdmF0ZS9zaGFyZWQgc3RvcmFnZSBydWxlcyB3aGVuIGNyZWF0aW5nXG4gICAqIHNlcXVlbmNlcyAoZm9yIGV4YW1wbGUgZm9yIHBlcnNpc3RlbnQgQHZlcnNpb24odHJ1ZSkgYW5kIEBzZXF1ZW5jZSgpKS5cbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIGVuc3VyZUF0TGVhc3QoXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IHsgY3R4LCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIE9wZXJhdGlvbktleXMuVVBEQVRFLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZW5zdXJlQXRMZWFzdCk7XG4gICAgY29uc3QgeyBuYW1lIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgaWYgKCFuYW1lKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNlcXVlbmNlIG5hbWUgaXMgcmVxdWlyZWRcIik7XG5cbiAgICBjb25zdCBkZXNpcmVkID0gdGhpcy5wYXJzZSh2YWx1ZSk7XG5cbiAgICBjb25zdCBncmVhdGVyVGhhbiA9IChcbiAgICAgIGE6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCxcbiAgICAgIGI6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludFxuICAgICk6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKHR5cGVvZiBhID09PSBcImJpZ2ludFwiIHx8IHR5cGVvZiBiID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgIHJldHVybiBCaWdJbnQoYSBhcyBhbnkpID4gQmlnSW50KGIgYXMgYW55KTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgYSA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgYiA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICByZXR1cm4gTnVtYmVyKGEpID4gTnVtYmVyKGIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZyhhKSA+IFN0cmluZyhiKTtcbiAgICB9O1xuXG4gICAgY29uc3QgYWRhcHRlck1ldGEgPSAoY3R4IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkuZ2V0U2VxdWVuY2VTZWdyZWdhdGlvbihcbiAgICAgIFN0cmluZyhuYW1lKVxuICAgICk7XG4gICAgY29uc3QgaXNGdWxseVNlZ3JlZ2F0ZWQgPVxuICAgICAgYWRhcHRlck1ldGEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgYWRhcHRlck1ldGEuZnVsbHlTZWdyZWdhdGVkICYmXG4gICAgICBhZGFwdGVyTWV0YS5jb2xsZWN0aW9ucy5sZW5ndGggPiAwO1xuXG4gICAgY29uc3QgcmVhZEV4aXN0aW5nID0gYXN5bmMgKCk6IFByb21pc2U8U2VxdWVuY2VNb2RlbCB8IHVuZGVmaW5lZD4gPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVwby5yZWFkKG5hbWUgYXMgc3RyaW5nLCBjdHgpO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgd3JpdGVQcml2YXRlID0gYXN5bmMgKFxuICAgICAgc2VxTW9kZWw6IFNlcXVlbmNlTW9kZWwsXG4gICAgICBjb2xsZWN0aW9uczogc3RyaW5nW11cbiAgICApID0+IHtcbiAgICAgIGF3YWl0IHRoaXMud3JpdGVTZXF1ZW5jZVRvQ29sbGVjdGlvbnMoY3R4LCBzZXFNb2RlbCwgY29sbGVjdGlvbnMpO1xuICAgICAgY3R4LmNhY2hlLnB1dChuYW1lIGFzIHN0cmluZywgc2VxTW9kZWwuY3VycmVudCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwc2VydFB1YmxpYyA9IGFzeW5jIChuZXh0OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlcG8udXBkYXRlKFxuICAgICAgICAgIG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IG5leHQgfSksXG4gICAgICAgICAgY3R4XG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVwby5jcmVhdGUoXG4gICAgICAgICAgICBuZXcgU2VxdWVuY2VNb2RlbCh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pLFxuICAgICAgICAgICAgY3R4XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHJlYWRFeGlzdGluZygpO1xuICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgIGNvbnN0IHNlcU1vZGVsID0gbmV3IFNlcXVlbmNlTW9kZWwoeyBpZDogbmFtZSwgY3VycmVudDogZGVzaXJlZCB9KTtcbiAgICAgIGlmIChpc0Z1bGx5U2VncmVnYXRlZCkge1xuICAgICAgICBhd2FpdCB3cml0ZVByaXZhdGUoc2VxTW9kZWwsIGFkYXB0ZXJNZXRhIS5jb2xsZWN0aW9ucyk7XG4gICAgICAgIHJldHVybiBkZXNpcmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IHVwc2VydFB1YmxpYyhkZXNpcmVkKTtcbiAgICAgIGF3YWl0IHRoaXMucmVwbGljYXRlVG9TZWdyZWdhdGVkQ29sbGVjdGlvbnMoY3R4LCBjcmVhdGVkKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlKGNyZWF0ZWQuY3VycmVudCBhcyBhbnkpO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnBhcnNlKGV4aXN0aW5nLmN1cnJlbnQgYXMgYW55KTtcbiAgICBpZiAoIWdyZWF0ZXJUaGFuKGRlc2lyZWQsIGN1cnJlbnQpKSB7XG4gICAgICByZXR1cm4gY3VycmVudDtcbiAgICB9XG5cbiAgICBjb25zdCBzZXFNb2RlbCA9IG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IGRlc2lyZWQgfSk7XG4gICAgaWYgKGlzRnVsbHlTZWdyZWdhdGVkKSB7XG4gICAgICBhd2FpdCB3cml0ZVByaXZhdGUoc2VxTW9kZWwsIGFkYXB0ZXJNZXRhIS5jb2xsZWN0aW9ucyk7XG4gICAgICBsb2cuZGVidWcoXG4gICAgICAgIGBTZXF1ZW5jZS5lbnN1cmVBdExlYXN0IChwcml2YXRlLW9ubHkpICR7bmFtZX0gY3VycmVudD0ke2N1cnJlbnQgYXMgYW55fSBkZXNpcmVkPSR7ZGVzaXJlZCBhcyBhbnl9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiBkZXNpcmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB1cHNlcnRQdWJsaWMoZGVzaXJlZCk7XG4gICAgYXdhaXQgdGhpcy5yZXBsaWNhdGVUb1NlZ3JlZ2F0ZWRDb2xsZWN0aW9ucyhjdHgsIHVwZGF0ZWQpO1xuICAgIHJldHVybiB0aGlzLnBhcnNlKHVwZGF0ZWQuY3VycmVudCBhcyBhbnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXBsaWNhdGVzIHRoZSBzZXF1ZW5jZSB0byBhbGwgc2VncmVnYXRlZCBjb2xsZWN0aW9uc1xuICAgKiBAc3VtbWFyeSBXaGVuIGEgbW9kZWwgdXNlcyBwcml2YXRlRGF0YSBvciBzaGFyZWREYXRhIGRlY29yYXRvcnMsIGl0cyBzZXF1ZW5jZSBtdXN0IGJlXG4gICAqIHJlcGxpY2F0ZWQgdG8gYWxsIGNvbGxlY3Rpb25zIHRoZSBtb2RlbCBpcyBzdG9yZWQgaW4uIFRoaXMgZW5zdXJlcyBjbGllbnRzIHdpdGggYWNjZXNzXG4gICAqIHRvIG9ubHkgb25lIGNvbGxlY3Rpb24gY2FuIHN0aWxsIHJlYWQgdGhlIG1vZGVsJ3Mgc2VxdWVuY2UsIHdoaWxlIGNsaWVudHMgd2l0aG91dFxuICAgKiBhY2Nlc3MgdG8gYW55IGNvbGxlY3Rpb24gd29uJ3Qgc2VlIHRoZSBzZXF1ZW5jZSBvbiB0aGUgcHVibGljIGNoYWluLlxuICAgKiBAcGFyYW0ge0NvbnRleHQ8YW55Pn0gY3R4IC0gVGhlIGV4ZWN1dGlvbiBjb250ZXh0XG4gICAqIEBwYXJhbSB7U2VxdWVuY2VNb2RlbH0gc2VxIC0gVGhlIHNlcXVlbmNlIG1vZGVsIHRvIHJlcGxpY2F0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB3cml0ZVNlcXVlbmNlVG9Db2xsZWN0aW9ucyhcbiAgICBjdHg6IENvbnRleHQ8YW55PixcbiAgICBzZXE6IFNlcXVlbmNlTW9kZWwsXG4gICAgY29sbGVjdGlvbnM6IHN0cmluZ1tdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGxvZyA9IGN0eC5sb2dnZXIuZm9yKHRoaXMud3JpdGVTZXF1ZW5jZVRvQ29sbGVjdGlvbnMpO1xuICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLmFkYXB0ZXIgYXMgdW5rbm93biBhcyBGYWJyaWNDb250cmFjdEFkYXB0ZXI7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKFNlcXVlbmNlTW9kZWwgYXMgYW55KTtcbiAgICBjb25zdCBjb21wb3NlZEtleSA9IChjdHggYXMgRmFicmljQ29udHJhY3RDb250ZXh0KS5zdHViLmNyZWF0ZUNvbXBvc2l0ZUtleShcbiAgICAgIHRhYmxlTmFtZSxcbiAgICAgIFtTdHJpbmcoc2VxLmlkKV1cbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwcml2YXRlQWRhcHRlciA9IGFkYXB0ZXIuZm9yUHJpdmF0ZShjb2xsZWN0aW9uKTtcbiAgICAgICAgY29uc3QgcmVjb3JkID0ge1xuICAgICAgICAgIFtDb3VjaERCS2V5cy5UQUJMRV06IHRhYmxlTmFtZSxcbiAgICAgICAgICBpZDogc2VxLmlkLFxuICAgICAgICAgIGN1cnJlbnQ6IHNlcS5jdXJyZW50LFxuICAgICAgICB9O1xuICAgICAgICBhd2FpdCBwcml2YXRlQWRhcHRlcltcInB1dFN0YXRlXCJdKGNvbXBvc2VkS2V5LCByZWNvcmQsIGN0eCBhcyBhbnkpO1xuICAgICAgICBsb2cuZGVidWcoYFNlcXVlbmNlICR7c2VxLmlkfSB3cml0dGVuIHRvIGNvbGxlY3Rpb24gJHtjb2xsZWN0aW9ufWApO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICBsb2cud2FybihcbiAgICAgICAgICBgRmFpbGVkIHRvIHdyaXRlIHNlcXVlbmNlICR7c2VxLmlkfSB0byBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn06ICR7ZX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXBsaWNhdGVUb1NlZ3JlZ2F0ZWRDb2xsZWN0aW9ucyhcbiAgICBjdHg6IENvbnRleHQ8YW55PixcbiAgICBzZXE6IFNlcXVlbmNlTW9kZWxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVXNlIGFkYXB0ZXIgbWV0YWRhdGEgaW5zdGVhZCBvZiBjdHguZ2V0UmVhZENvbGxlY3Rpb25zKCkgYmVjYXVzZSB0aGUgU2VxdWVuY2VcbiAgICAvLyBjcmVhdGVzIGl0cyBvd24gY29udGV4dCB2aWEgbG9nQ3R4LCBsb3NpbmcgY29sbGVjdGlvbnMgc2V0IGJ5IGV4dHJhY3RTZWdyZWdhdGVkQ29sbGVjdGlvbnMuXG4gICAgY29uc3QgYWRhcHRlck1ldGEgPSAoY3R4IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkuZ2V0U2VxdWVuY2VTZWdyZWdhdGlvbihcbiAgICAgIFN0cmluZyhzZXEuaWQpXG4gICAgKTtcblxuICAgIGlmICghYWRhcHRlck1ldGEgfHwgIWFkYXB0ZXJNZXRhLmNvbGxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE9ubHkgcmVwbGljYXRlIGZvciBub24tZnVsbHktc2VncmVnYXRlZCBtb2RlbHMgKGZ1bGx5IHNlZ3JlZ2F0ZWQgaXMgaGFuZGxlZCBzZXBhcmF0ZWx5KVxuICAgIGlmIChhZGFwdGVyTWV0YS5mdWxseVNlZ3JlZ2F0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyLmZvcih0aGlzLnJlcGxpY2F0ZVRvU2VncmVnYXRlZENvbGxlY3Rpb25zKTtcbiAgICBsb2cuaW5mbyhcbiAgICAgIGBSZXBsaWNhdGluZyBzZXF1ZW5jZSAke3NlcS5pZH0gdG8gJHthZGFwdGVyTWV0YS5jb2xsZWN0aW9ucy5sZW5ndGh9IHNlZ3JlZ2F0ZWQgY29sbGVjdGlvbnM6ICR7YWRhcHRlck1ldGEuY29sbGVjdGlvbnMuam9pbihcIiwgXCIpfWBcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy53cml0ZVNlcXVlbmNlVG9Db2xsZWN0aW9ucyhjdHgsIHNlcSwgYWRhcHRlck1ldGEuY29sbGVjdGlvbnMpO1xuICB9XG59XG4iXX0=
|
|
339
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RTZXF1ZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkZhYnJpY0NvbnRyYWN0U2VxdWVuY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQXVGO0FBQ3ZGLHlFQUF1RDtBQUN2RCx5Q0FBb0Y7QUFDcEYsdURBQW9EO0FBQ3BEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Q0c7QUFDSCxNQUFhLHNCQUF1QixTQUFRLGVBQVE7SUFDaEQ7OztPQUdHO0lBQ0gsWUFBWSxPQUFPLEVBQUUsT0FBTztRQUN4QixLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLDZCQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRixJQUFJLGFBQWEsQ0FBQztRQUNsQixNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQztZQUNELGFBQWEsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFDLElBQUksYUFBYSxLQUFLLFNBQVMsSUFBSSxhQUFhLEtBQUssSUFBSTtnQkFDckQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sUUFBUSxHQUFHLE1BQU0s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RCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNsRSxHQUFHLENBQUMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLENBQUMsRUFBRSxPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSw0QkFBNEIsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlJLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdFLENBQUM7Q0FDSjtBQTFSRCx3REEwUkM7QUFDRCw4OG1DQUE4OG1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgT3BlcmF0aW9uS2V5cywgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgU2VxdWVuY2UsIFNlcXVlbmNlTW9kZWwsIFNlcmlhbCwgVW5zdXBwb3J0ZWRFcnJvciwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvdWNoREJLZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3Igc2VxdWVuY2UgZ2VuZXJhdGlvblxuICogQHN1bW1hcnkgUHJvdmlkZXMgYSBmcmFtZXdvcmsgZm9yIGdlbmVyYXRpbmcgc2VxdWVudGlhbCB2YWx1ZXMgKGxpa2UgcHJpbWFyeSBrZXlzKSBpbiB0aGUgcGVyc2lzdGVuY2UgbGF5ZXIuXG4gKiBJbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBjbGFzcyBoYW5kbGUgdGhlIHNwZWNpZmljcyBvZiBob3cgc2VxdWVuY2VzIGFyZSBzdG9yZWQgYW5kIGluY3JlbWVudGVkIGluIGRpZmZlcmVudFxuICogZGF0YWJhc2Ugc3lzdGVtcy5cbiAqIEBwYXJhbSB7U2VxdWVuY2VPcHRpb25zfSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgc2VxdWVuY2UgZ2VuZXJhdG9yXG4gKiBAY2xhc3MgU2VxdWVuY2VcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBFeGFtcGxlIGltcGxlbWVudGF0aW9uIGZvciBhIHNwZWNpZmljIGRhdGFiYXNlXG4gKiBjbGFzcyBQb3N0Z3Jlc1NlcXVlbmNlIGV4dGVuZHMgU2VxdWVuY2Uge1xuICogICBjb25zdHJ1Y3RvcihvcHRpb25zOiBTZXF1ZW5jZU9wdGlvbnMpIHtcbiAqICAgICBzdXBlcihvcHRpb25zKTtcbiAqICAgfVxuICpcbiAqICAgYXN5bmMgbmV4dCgpOiBQcm9taXNlPG51bWJlcj4ge1xuICogICAgIC8vIEltcGxlbWVudGF0aW9uIHRvIGdldCBuZXh0IHZhbHVlIGZyb20gUG9zdGdyZVNRTCBzZXF1ZW5jZVxuICogICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMub3B0aW9ucy5leGVjdXRvci5yYXcoYFNFTEVDVCBuZXh0dmFsKCcke3RoaXMub3B0aW9ucy5uYW1lfScpYCk7XG4gKiAgICAgcmV0dXJuIHBhcnNlSW50KHJlc3VsdC5yb3dzWzBdLm5leHR2YWwpO1xuICogICB9XG4gKlxuICogICBhc3luYyBjdXJyZW50KCk6IFByb21pc2U8bnVtYmVyPiB7XG4gKiAgICAgLy8gSW1wbGVtZW50YXRpb24gdG8gZ2V0IGN1cnJlbnQgdmFsdWUgZnJvbSBQb3N0Z3JlU1FMIHNlcXVlbmNlXG4gKiAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5vcHRpb25zLmV4ZWN1dG9yLnJhdyhgU0VMRUNUIGN1cnJ2YWwoJyR7dGhpcy5vcHRpb25zLm5hbWV9JylgKTtcbiAqICAgICByZXR1cm4gcGFyc2VJbnQocmVzdWx0LnJvd3NbMF0uY3VycnZhbCk7XG4gKiAgIH1cbiAqXG4gKiAgIGFzeW5jIHJhbmdlKGNvdW50OiBudW1iZXIpOiBQcm9taXNlPG51bWJlcltdPiB7XG4gKiAgICAgLy8gSW1wbGVtZW50YXRpb24gdG8gZ2V0IGEgcmFuZ2Ugb2YgdmFsdWVzXG4gKiAgICAgY29uc3QgdmFsdWVzOiBudW1iZXJbXSA9IFtdO1xuICogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICogICAgICAgdmFsdWVzLnB1c2goYXdhaXQgdGhpcy5uZXh0KCkpO1xuICogICAgIH1cbiAqICAgICByZXR1cm4gdmFsdWVzO1xuICogICB9XG4gKiB9XG4gKlxuICogLy8gVXNhZ2VcbiAqIGNvbnN0IHNlcXVlbmNlID0gbmV3IFBvc3RncmVzU2VxdWVuY2Uoe1xuICogICBuYW1lOiAndXNlcl9pZF9zZXEnLFxuICogICBleGVjdXRvcjogZGJFeGVjdXRvclxuICogfSk7XG4gKlxuICogY29uc3QgbmV4dElkID0gYXdhaXQgc2VxdWVuY2UubmV4dCgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDb250cmFjdFNlcXVlbmNlIGV4dGVuZHMgU2VxdWVuY2Uge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IHNlcXVlbmNlIGluc3RhbmNlXG4gICAgICogQHN1bW1hcnkgUHJvdGVjdGVkIGNvbnN0cnVjdG9yIHRoYXQgaW5pdGlhbGl6ZXMgdGhlIHNlcXVlbmNlIHdpdGggdGhlIHByb3ZpZGVkIG9wdGlvbnNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zLCBhZGFwdGVyKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIGFkYXB0ZXIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzZXF1ZW5jZVxuICAgICAqIEBzdW1tYXJ5IEdldHMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNlcXVlbmNlIGZyb20gc3RvcmFnZS4gSWYgdGhlIHNlcXVlbmNlXG4gICAgICogZG9lc24ndCBleGlzdCB5ZXQsIGl0IHJldHVybnMgdGhlIGNvbmZpZ3VyZWQgc3RhcnRpbmcgdmFsdWUuXG4gICAgICogQHJldHVybiBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgY3VycmVudCBzZXF1ZW5jZSB2YWx1ZVxuICAgICAqL1xuICAgIGFzeW5jIGN1cnJlbnQoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgT3BlcmF0aW9uS2V5cy5SRUFELCB0cnVlKSkuZm9yKHRoaXMuY3VycmVudCk7XG4gICAgICAgIGxldCBjYWNoZWRDdXJyZW50O1xuICAgICAgICBjb25zdCB7IG5hbWUsIHN0YXJ0V2l0aCB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCBhZGFwdGVyTWV0YSA9IGN0eC5nZXRTZXF1ZW5jZVNlZ3JlZ2F0aW9uKFN0cmluZyhuYW1lKSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjYWNoZWRDdXJyZW50ID0gY3R4LmdldEZyb21DaGlsZHJlbihuYW1lKTtcbiAgICAgICAgICAgIGlmIChjYWNoZWRDdXJyZW50ICE9PSB1bmRlZmluZWQgJiYgY2FjaGVkQ3VycmVudCAhPT0gbnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShjYWNoZWRDdXJyZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHNlcXVlbmNlID0gYXdhaXQgdGhpcy5yZXBvLnJlYWQobmFtZSwgY3R4KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlKHNlcXVlbmNlLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgc2VxdWVuY2UgaXMgc3VwcG9zZWQgdG8gbGl2ZSBpbiBwcml2YXRlL3NoYXJlZCBjb2xsZWN0aW9ucyxcbiAgICAgICAgICAgICAgICAvLyByZWFkIGl0IGZyb20gdGhvc2UgY29sbGVjdGlvbnMgdXNpbmcgdGhlIGFkYXB0ZXIgKG5vdCB0aGUgc3R1YiBkaXJlY3RseSkuXG4gICAgICAgICAgICAgICAgaWYgKGFkYXB0ZXJNZXRhPy5jb2xsZWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLmFkYXB0ZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShTZXF1ZW5jZU1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHVibGljS2V5ID0gY3R4LnN0dWIuY3JlYXRlQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgW1N0cmluZyhuYW1lKV0pO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiBhZGFwdGVyTWV0YS5jb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcml2YXRlQWRhcHRlciA9IGFkYXB0ZXIuZm9yUHJpdmF0ZShjb2wpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhdyA9IGF3YWl0IHByaXZhdGVBZGFwdGVyLnJlYWRTdGF0ZShwdWJsaWNLZXksIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJhdyAmJiByYXcuY3VycmVudCAhPT0gdW5kZWZpbmVkICYmIHJhdy5jdXJyZW50ICE9PSBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShyYXcuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZhbGwgdGhyb3VnaCB0byByZWd1bGFyIHN0YXJ0V2l0aCBmYWxsYmFjayBmb3IgYW55IHBhcnNlL0lPIGVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgVHJ5aW5nIHRvIHJlc29sdmUgY3VycmVudCBzZXF1ZW5jZSAke25hbWV9IHZhbHVlIGZyb20gY29udGV4dCB0cmVlYCk7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlZEN1cnJlbnQgPSBjdHguZ2V0RnJvbUNoaWxkcmVuKG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkQ3VycmVudCAhPT0gdW5kZWZpbmVkICYmIGNhY2hlZEN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUmV0cmlldmVkIGNhY2hlZCBjdXJyZW50IHZhbHVlIGZvciBzZXF1ZW5jZSAke25hbWV9OiAke2NhY2hlZEN1cnJlbnR9YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBmYWxsIHRocm91Z2hcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNhY2hlZEN1cnJlbnQgPT09IHVuZGVmaW5lZCB8fCBjYWNoZWRDdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKGBObyBjYWNoZWQgdmFsdWUgZm9yIHNlcXVlbmNlICR7bmFtZX0gaW4gY29udGV4dGApO1xuICAgICAgICAgICAgICAgICAgICBjYWNoZWRDdXJyZW50ID0gc3RhcnRXaXRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShjYWNoZWRDdXJyZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBwYXJzZSBpbml0aWFsIHZhbHVlIGZvciBzZXF1ZW5jZSAke3N0YXJ0V2l0aH06ICR7ZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIHJldHJpZXZlIGN1cnJlbnQgdmFsdWUgZm9yIHNlcXVlbmNlICR7bmFtZX06ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5jcmVtZW50cyB0aGUgc2VxdWVuY2UgdmFsdWVcbiAgICAgKiBAc3VtbWFyeSBJbmNyZWFzZXMgdGhlIGN1cnJlbnQgc2VxdWVuY2UgdmFsdWUgYnkgdGhlIHNwZWNpZmllZCBhbW91bnQgYW5kIHBlcnNpc3RzXG4gICAgICogdGhlIG5ldyB2YWx1ZSB0byBzdG9yYWdlLiBUaGlzIG1ldGhvZCBoYW5kbGVzIGJvdGggbnVtZXJpYyBhbmQgQmlnSW50IHNlcXVlbmNlIHR5cGVzLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50fSBjdXJyZW50IC0gVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNlcXVlbmNlXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtjb3VudF0gLSBPcHRpb25hbCBhbW91bnQgdG8gaW5jcmVtZW50IGJ5LCBkZWZhdWx0cyB0byB0aGUgc2VxdWVuY2UncyBpbmNyZW1lbnRCeSB2YWx1ZVxuICAgICAqIEByZXR1cm4gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG5ldyBzZXF1ZW5jZSB2YWx1ZSBhZnRlciBpbmNyZW1lbnRpbmdcbiAgICAgKi9cbiAgICBhc3luYyBpbmNyZW1lbnQoY291bnQsIGN0eCkge1xuICAgICAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyLmZvcih0aGlzLmluY3JlbWVudCk7XG4gICAgICAgIGNvbnN0IHsgdHlwZSwgaW5jcmVtZW50QnksIG5hbWUgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTZXF1ZW5jZSBuYW1lIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICBsb2cuaW5mbyhgT2J0YWluaW5nIHNlcXVlbmNlIGxvY2sgZm9yIHNlcXVlbmNlICR7bmFtZX1gKTtcbiAgICAgICAgLy8gcmV0dXJuIEZhYnJpY0NvbnRyYWN0U2VxdWVuY2UubG9jay5leGVjdXRlKGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgdG9JbmNyZW1lbnRCeSA9IGNvdW50IHx8IGluY3JlbWVudEJ5O1xuICAgICAgICBpZiAodG9JbmNyZW1lbnRCeSAlIGluY3JlbWVudEJ5ICE9PSAwKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYFZhbHVlIHRvIGluY3JlbWVudCBkb2VzIG5vdCBjb25zaWRlciB0aGUgaW5jcmVtZW50Qnkgc2V0dGluZzogJHtpbmNyZW1lbnRCeX1gKTtcbiAgICAgICAgY29uc3QgdHlwZU5hbWUgPSB0eXBlb2YgdHlwZSA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGU/Lm5hbWVcbiAgICAgICAgICAgID8gdHlwZS5uYW1lXG4gICAgICAgICAgICA6IHR5cGU7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGF3YWl0IHRoaXMuY3VycmVudChjdHgpO1xuICAgICAgICBhc3luYyBmdW5jdGlvbiByZXR1cm5BbmRDYWNoZShyZXMpIHtcbiAgICAgICAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKVxuICAgICAgICAgICAgICAgIHJlcyA9IGF3YWl0IHJlcztcbiAgICAgICAgICAgIGxvZ1xuICAgICAgICAgICAgICAgIC5mb3IocmV0dXJuQW5kQ2FjaGUpXG4gICAgICAgICAgICAgICAgLmluZm8oYFN0b3JpbmcgbmV3ICR7bmFtZX0gc2VxIHZhbHVlIGluIGNhY2hlOiAke3Jlcy5jdXJyZW50fWApO1xuICAgICAgICAgICAgY3R4LmNhY2hlLnB1dChuYW1lLCByZXMuY3VycmVudCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBlcmZvcm1VcHNlcnQgPSBhc3luYyAobmV4dCkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgcmV0dXJuQW5kQ2FjaGUodGhpcy5yZXBvLnVwZGF0ZShuZXcgU2VxdWVuY2VNb2RlbCh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pLCBjdHgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCByZXR1cm5BbmRDYWNoZSh0aGlzLnJlcG8uY3JlYXRlKG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IG5leHQgfSksIGN0eCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBpbmNyZW1lbnRTZXJpYWwgPSBhc3luYyAoYmFzZSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlTmFtZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgTnVtYmVyLm5hbWU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlKGJhc2UpICsgdG9JbmNyZW1lbnRCeTtcbiAgICAgICAgICAgICAgICBjYXNlIEJpZ0ludC5uYW1lOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShiYXNlKSArIEJpZ0ludCh0b0luY3JlbWVudEJ5KTtcbiAgICAgICAgICAgICAgICBjYXNlIFN0cmluZy5uYW1lOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShiYXNlKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwic2VyaWFsXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBQcm9taXNlLnJlc29sdmUoU2VyaWFsLmluc3RhbmNlLmdlbmVyYXRlKGJhc2UpKTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNob3VsZCBuZXZlciBoYXBwZW5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIENoZWNrIGlmIG1vZGVsIGlzIGZ1bGx5IHNlZ3JlZ2F0ZWQg4oCUIHNlcXVlbmNlIGdvZXMgT05MWSB0byBwcml2YXRlIGNvbGxlY3Rpb25zLlxuICAgICAgICAvLyBQcmVmZXIgdGhlIGV4cGxpY2l0IHBlci1zZXF1ZW5jZSBtZXRhZGF0YSB3aGVuIGF2YWlsYWJsZTsgb3RoZXJ3aXNlIGZhbGwgYmFjayB0b1xuICAgICAgICAvLyB0aGUgY29udGV4dCdzIHJlZ2lzdGVyZWQgcmVhZCBjb2xsZWN0aW9ucyAoY292ZXJzIGVhcmx5IHBrIGdlbmVyYXRpb24gcGF0aHMpLlxuICAgICAgICBjb25zdCBhZGFwdGVyTWV0YSA9IGN0eC5nZXRTZXF1ZW5jZVNlZ3JlZ2F0aW9uKG5hbWUpO1xuICAgICAgICBjb25zdCBmYWxsYmFja0NvbGxlY3Rpb25zID0gY3R4XG4gICAgICAgICAgICAuZ2V0UmVhZENvbGxlY3Rpb25zKClcbiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gICAgICAgIGNvbnN0IGVmZmVjdGl2ZUNvbGxlY3Rpb25zID0gYWRhcHRlck1ldGE/LmNvbGxlY3Rpb25zPy5sZW5ndGggPyBhZGFwdGVyTWV0YS5jb2xsZWN0aW9ucyA6IGZhbGxiYWNrQ29sbGVjdGlvbnM7XG4gICAgICAgIGNvbnN0IGVmZmVjdGl2ZUZ1bGx5U2VncmVnYXRlZCA9IChhZGFwdGVyTWV0YT8uZnVsbHlTZWdyZWdhdGVkID8/IGN0eC5pc0Z1bGx5U2VncmVnYXRlZCkgJiZcbiAgICAgICAgICAgIGVmZmVjdGl2ZUNvbGxlY3Rpb25zLmxlbmd0aCA+IDA7XG4gICAgICAgIGxldCBuZXh0O1xuICAgICAgICBpZiAodHlwZU5hbWUgPT09IFwidXVpZFwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihgdXVpZCBwayBnZW5lcmF0aW9uIGlzIG9ubHkgc3VwcG9ydGVkIHVzaW5nIEB1dWlkIGFuZCBhIGRldGVybWluaXN0aWMgc2VlZGApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbmV4dCA9IGF3YWl0IGluY3JlbWVudFNlcmlhbChjdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlZmZlY3RpdmVGdWxseVNlZ3JlZ2F0ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlcU1vZGVsID0gbmV3IFNlcXVlbmNlTW9kZWwoeyBpZDogbmFtZSwgY3VycmVudDogbmV4dCB9KTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMud3JpdGVTZXF1ZW5jZVRvQ29sbGVjdGlvbnMoY3R4LCBzZXFNb2RlbCwgZWZmZWN0aXZlQ29sbGVjdGlvbnMpO1xuICAgICAgICAgICAgbG9nLmRlYnVnKGBTZXF1ZW5jZS5pbmNyZW1lbnQgKHByaXZhdGUtb25seSkgJHtuYW1lfSBjdXJyZW50PSR7Y3VycmVudFZhbHVlfSBuZXh0PSR7bmV4dH1gKTtcbiAgICAgICAgICAgIGN0eC5jYWNoZS5wdXQobmFtZSwgbmV4dCk7XG4gICAgICAgICAgICByZXR1cm4gbmV4dDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXEgPSBhd2FpdCBwZXJmb3JtVXBzZXJ0KG5leHQpO1xuICAgICAgICBsb2cuZGVidWcoYFNlcXVlbmNlLmluY3JlbWVudCAke25hbWV9IGN1cnJlbnQ9JHtjdXJyZW50VmFsdWV9IG5leHQ9JHtuZXh0fWApO1xuICAgICAgICAvLyBSZXBsaWNhdGUgc2VxdWVuY2UgdG8gc2VncmVnYXRlZCBjb2xsZWN0aW9ucyBpZiBtb2RlbCB1c2VzIHByaXZhdGUvc2hhcmVkIGRhdGEuXG4gICAgICAgIC8vIFdoZW4gbWV0YWRhdGEgaXNuJ3QgYXZhaWxhYmxlLCBmYWxsIGJhY2sgdG8gdGhlIGNvbnRleHQncyByZWdpc3RlcmVkIHJlYWQgY29sbGVjdGlvbnMuXG4gICAgICAgIGlmIChlZmZlY3RpdmVDb2xsZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMud3JpdGVTZXF1ZW5jZVRvQ29sbGVjdGlvbnMoY3R4LCBzZXEsIGVmZmVjdGl2ZUNvbGxlY3Rpb25zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VxLmN1cnJlbnQ7XG4gICAgICAgIC8vIH0sIG5hbWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW5zdXJlcyB0aGUgc2VxdWVuY2UgZXhpc3RzIGFuZCBpcyBhdCBsZWFzdCBhIGdpdmVuIHZhbHVlXG4gICAgICogQHN1bW1hcnkgRmFicmljIG5lZWRzIHRvIHJlc3BlY3Qgc2VncmVnYXRlZC9wcml2YXRlL3NoYXJlZCBzdG9yYWdlIHJ1bGVzIHdoZW4gY3JlYXRpbmdcbiAgICAgKiBzZXF1ZW5jZXMgKGZvciBleGFtcGxlIGZvciBwZXJzaXN0ZW50IEB2ZXJzaW9uKHRydWUpIGFuZCBAc2VxdWVuY2UoKSkuXG4gICAgICovXG4gICAgYXN5bmMgZW5zdXJlQXRMZWFzdCh2YWx1ZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgT3BlcmF0aW9uS2V5cy5VUERBVEUsIHRydWUpKS5mb3IodGhpcy5lbnN1cmVBdExlYXN0KTtcbiAgICAgICAgY29uc3QgeyBuYW1lIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGlmICghbmFtZSlcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2VxdWVuY2UgbmFtZSBpcyByZXF1aXJlZFwiKTtcbiAgICAgICAgY29uc3QgZGVzaXJlZCA9IHRoaXMucGFyc2UodmFsdWUpO1xuICAgICAgICBjb25zdCBncmVhdGVyVGhhbiA9IChhLCBiKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGEgPT09IFwiYmlnaW50XCIgfHwgdHlwZW9mIGIgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gQmlnSW50KGEpID4gQmlnSW50KGIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBhID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiBiID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlcihhKSA+IE51bWJlcihiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoYSkgPiBTdHJpbmcoYik7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGFkYXB0ZXJNZXRhID0gY3R4LmdldFNlcXVlbmNlU2VncmVnYXRpb24oU3RyaW5nKG5hbWUpKTtcbiAgICAgICAgY29uc3QgaXNGdWxseVNlZ3JlZ2F0ZWQgPSBhZGFwdGVyTWV0YSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBhZGFwdGVyTWV0YS5mdWxseVNlZ3JlZ2F0ZWQgJiZcbiAgICAgICAgICAgIGFkYXB0ZXJNZXRhLmNvbGxlY3Rpb25zLmxlbmd0aCA+IDA7XG4gICAgICAgIGNvbnN0IHJlYWRFeGlzdGluZyA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVwby5yZWFkKG5hbWUsIGN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB3cml0ZVByaXZhdGUgPSBhc3luYyAoc2VxTW9kZWwsIGNvbGxlY3Rpb25zKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLndyaXRlU2VxdWVuY2VUb0NvbGxlY3Rpb25zKGN0eCwgc2VxTW9kZWwsIGNvbGxlY3Rpb25zKTtcbiAgICAgICAgICAgIGN0eC5jYWNoZS5wdXQobmFtZSwgc2VxTW9kZWwuY3VycmVudCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHVwc2VydFB1YmxpYyA9IGFzeW5jIChuZXh0KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlcG8udXBkYXRlKG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IG5leHQgfSksIGN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5yZXBvLmNyZWF0ZShuZXcgU2VxdWVuY2VNb2RlbCh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pLCBjdHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHJlYWRFeGlzdGluZygpO1xuICAgICAgICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgICAgICAgICBjb25zdCBzZXFNb2RlbCA9IG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IGRlc2lyZWQgfSk7XG4gICAgICAgICAgICBpZiAoaXNGdWxseVNlZ3JlZ2F0ZWQpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZVByaXZhdGUoc2VxTW9kZWwsIGFkYXB0ZXJNZXRhLmNvbGxlY3Rpb25zKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVzaXJlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCB1cHNlcnRQdWJsaWMoZGVzaXJlZCk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJlcGxpY2F0ZVRvU2VncmVnYXRlZENvbGxlY3Rpb25zKGN0eCwgY3JlYXRlZCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShjcmVhdGVkLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnBhcnNlKGV4aXN0aW5nLmN1cnJlbnQpO1xuICAgICAgICBpZiAoIWdyZWF0ZXJUaGFuKGRlc2lyZWQsIGN1cnJlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXFNb2RlbCA9IG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IGRlc2lyZWQgfSk7XG4gICAgICAgIGlmIChpc0Z1bGx5U2VncmVnYXRlZCkge1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVQcml2YXRlKHNlcU1vZGVsLCBhZGFwdGVyTWV0YS5jb2xsZWN0aW9ucyk7XG4gICAgICAgICAgICBsb2cuZGVidWcoYFNlcXVlbmNlLmVuc3VyZUF0TGVhc3QgKHByaXZhdGUtb25seSkgJHtuYW1lfSBjdXJyZW50PSR7Y3VycmVudH0gZGVzaXJlZD0ke2Rlc2lyZWR9YCk7XG4gICAgICAgICAgICByZXR1cm4gZGVzaXJlZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdXBzZXJ0UHVibGljKGRlc2lyZWQpO1xuICAgICAgICBhd2FpdCB0aGlzLnJlcGxpY2F0ZVRvU2VncmVnYXRlZENvbGxlY3Rpb25zKGN0eCwgdXBkYXRlZCk7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlKHVwZGF0ZWQuY3VycmVudCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXBsaWNhdGVzIHRoZSBzZXF1ZW5jZSB0byBhbGwgc2VncmVnYXRlZCBjb2xsZWN0aW9uc1xuICAgICAqIEBzdW1tYXJ5IFdoZW4gYSBtb2RlbCB1c2VzIHByaXZhdGVEYXRhIG9yIHNoYXJlZERhdGEgZGVjb3JhdG9ycywgaXRzIHNlcXVlbmNlIG11c3QgYmVcbiAgICAgKiByZXBsaWNhdGVkIHRvIGFsbCBjb2xsZWN0aW9ucyB0aGUgbW9kZWwgaXMgc3RvcmVkIGluLiBUaGlzIGVuc3VyZXMgY2xpZW50cyB3aXRoIGFjY2Vzc1xuICAgICAqIHRvIG9ubHkgb25lIGNvbGxlY3Rpb24gY2FuIHN0aWxsIHJlYWQgdGhlIG1vZGVsJ3Mgc2VxdWVuY2UsIHdoaWxlIGNsaWVudHMgd2l0aG91dFxuICAgICAqIGFjY2VzcyB0byBhbnkgY29sbGVjdGlvbiB3b24ndCBzZWUgdGhlIHNlcXVlbmNlIG9uIHRoZSBwdWJsaWMgY2hhaW4uXG4gICAgICogQHBhcmFtIHtDb250ZXh0PGFueT59IGN0eCAtIFRoZSBleGVjdXRpb24gY29udGV4dFxuICAgICAqIEBwYXJhbSB7U2VxdWVuY2VNb2RlbH0gc2VxIC0gVGhlIHNlcXVlbmNlIG1vZGVsIHRvIHJlcGxpY2F0ZVxuICAgICAqL1xuICAgIGFzeW5jIHdyaXRlU2VxdWVuY2VUb0NvbGxlY3Rpb25zKGN0eCwgc2VxLCBjb2xsZWN0aW9ucykge1xuICAgICAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyLmZvcih0aGlzLndyaXRlU2VxdWVuY2VUb0NvbGxlY3Rpb25zKTtcbiAgICAgICAgY29uc3QgYWRhcHRlciA9IHRoaXMuYWRhcHRlcjtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKFNlcXVlbmNlTW9kZWwpO1xuICAgICAgICBjb25zdCBjb21wb3NlZEtleSA9IGN0eC5zdHViLmNyZWF0ZUNvbXBvc2l0ZUtleSh0YWJsZU5hbWUsIFtTdHJpbmcoc2VxLmlkKV0pO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgY29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJpdmF0ZUFkYXB0ZXIgPSBhZGFwdGVyLmZvclByaXZhdGUoY29sbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0ge1xuICAgICAgICAgICAgICAgICAgICBbQ291Y2hEQktleXMuVEFCTEVdOiB0YWJsZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBzZXEuaWQsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHNlcS5jdXJyZW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYXdhaXQgcHJpdmF0ZUFkYXB0ZXJbXCJwdXRTdGF0ZVwiXShjb21wb3NlZEtleSwgcmVjb3JkLCBjdHgpO1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgU2VxdWVuY2UgJHtzZXEuaWR9IHdyaXR0ZW4gdG8gY29sbGVjdGlvbiAke2NvbGxlY3Rpb259YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGxvZy53YXJuKGBGYWlsZWQgdG8gd3JpdGUgc2VxdWVuY2UgJHtzZXEuaWR9IHRvIGNvbGxlY3Rpb24gJHtjb2xsZWN0aW9ufTogJHtlfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHJlcGxpY2F0ZVRvU2VncmVnYXRlZENvbGxlY3Rpb25zKGN0eCwgc2VxKSB7XG4gICAgICAgIC8vIFVzZSBhZGFwdGVyIG1ldGFkYXRhIGluc3RlYWQgb2YgY3R4LmdldFJlYWRDb2xsZWN0aW9ucygpIGJlY2F1c2UgdGhlIFNlcXVlbmNlXG4gICAgICAgIC8vIGNyZWF0ZXMgaXRzIG93biBjb250ZXh0IHZpYSBsb2dDdHgsIGxvc2luZyBjb2xsZWN0aW9ucyBzZXQgYnkgZXh0cmFjdFNlZ3JlZ2F0ZWRDb2xsZWN0aW9ucy5cbiAgICAgICAgY29uc3QgYWRhcHRlck1ldGEgPSBjdHguZ2V0U2VxdWVuY2VTZWdyZWdhdGlvbihTdHJpbmcoc2VxLmlkKSk7XG4gICAgICAgIGlmICghYWRhcHRlck1ldGEgfHwgIWFkYXB0ZXJNZXRhLmNvbGxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgcmVwbGljYXRlIGZvciBub24tZnVsbHktc2VncmVnYXRlZCBtb2RlbHMgKGZ1bGx5IHNlZ3JlZ2F0ZWQgaXMgaGFuZGxlZCBzZXBhcmF0ZWx5KVxuICAgICAgICBpZiAoYWRhcHRlck1ldGEuZnVsbHlTZWdyZWdhdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbG9nID0gY3R4LmxvZ2dlci5mb3IodGhpcy5yZXBsaWNhdGVUb1NlZ3JlZ2F0ZWRDb2xsZWN0aW9ucyk7XG4gICAgICAgIGxvZy5pbmZvKGBSZXBsaWNhdGluZyBzZXF1ZW5jZSAke3NlcS5pZH0gdG8gJHthZGFwdGVyTWV0YS5jb2xsZWN0aW9ucy5sZW5ndGh9IHNlZ3JlZ2F0ZWQgY29sbGVjdGlvbnM6ICR7YWRhcHRlck1ldGEuY29sbGVjdGlvbnMuam9pbihcIiwgXCIpfWApO1xuICAgICAgICBhd2FpdCB0aGlzLndyaXRlU2VxdWVuY2VUb0NvbGxlY3Rpb25zKGN0eCwgc2VxLCBhZGFwdGVyTWV0YS5jb2xsZWN0aW9ucyk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUm1GaWNtbGpRMjl1ZEhKaFkzUlRaWEYxWlc1alpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDNOeVl5OWpiMjUwY21GamRITXZSbUZpY21salEyOXVkSEpoWTNSVFpYRjFaVzVqWlM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hQUVVGUExFVkJRMHdzWVVGQllTeEZRVU5pTEdGQlFXRXNSVUZEWWl4aFFVRmhMRWRCUTJRc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVTnFReXhQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGRGRrUXNUMEZCVHl4RlFVbE1MRkZCUVZFc1JVRkRVaXhoUVVGaExFVkJSV0lzVFVGQlRTeEZRVU5PTEdkQ1FVRm5RaXhIUVVOcVFpeE5RVUZOTEdkQ1FVRm5RaXhEUVVGRE8wRkJSM2hDTEU5QlFVOHNSVUZCUlN4WFFVRlhMRVZCUVVVc1RVRkJUU3gxUWtGQmRVSXNRMEZCUXp0QlFVVndSRHM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMGRCTmtOSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEhOQ1FVRjFRaXhUUVVGUkxGRkJRVkU3U1VGRGJFUTdPenRQUVVkSE8wbEJRMGdzV1VGQldTeFBRVUYzUWl4RlFVRkZMRTlCUVN0Q08xRkJRMjVGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRE1VSXNRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTAwc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGRGNFSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRMjVDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzWVVGQllTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRiRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JDTEVsQlFVa3NZVUZCYTBJc1EwRkJRenRSUVVOMlFpeE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTTdVVUZEZWtNc1RVRkJUU3hYUVVGWExFZEJRVWtzUjBGQk5rSXNRMEZCUXl4elFrRkJjMElzUTBGRGRrVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVOaUxFTkJRVU03VVVGRFJpeEpRVUZKTEVOQlFVTTdXVUZEU0N4aFFVRmhMRWRCUVVjc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZYTEVOQlFVTXNRMEZCUXp0WlFVTnFSQ3hKUVVGSkxHRkJRV0VzUzBGQlN5eFRRVUZUTEVsQlFVa3NZVUZCWVN4TFFVRkxMRWxCUVVrN1owSkJRM1pFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFpRVU51UXl4TlFVRk5MRkZCUVZFc1IwRkJhMElzVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGakxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZETVVVc1QwRkJUeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRXdRaXhEUVVGRExFTkJRVU03VVVGRGVrUXNRMEZCUXp0UlFVRkRMRTlCUVU4c1EwRkJUU3hGUVVGRkxFTkJRVU03V1VGRGFFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1lVRkJZU3hGUVVGRkxFTkJRVU03WjBKQlF5OUNMSEZGUVVGeFJUdG5Ra0ZEY2tVc05FVkJRVFJGTzJkQ1FVTTFSU3hKUVVGSkxGZEJRVmNzUlVGQlJTeFhRVUZYTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNN2IwSkJRM0pETEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVFeVF5eERRVUZETzI5Q1FVTnFSU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMR0ZCUVc5Q0xFTkJRVU1zUTBGQlF6dHZRa0ZEZUVRc1RVRkJUU3hUUVVGVExFZEJRVWtzUjBGQk5rSXNRMEZCUXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlEzUkZMRk5CUVZNc1JVRkRWQ3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVTm1MRU5CUVVNN2IwSkJRMFlzUzBGQlN5eE5RVUZOTEVkQlFVY3NTVUZCU1N4WFFVRlhMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03ZDBKQlF6RkRMRWxCUVVrc1EwRkJRenMwUWtGRFNDeE5RVUZOTEdOQlFXTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZET3pSQ1FVTXZReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eE5RVUZQTEdOQlFYTkNMRU5CUVVNc1UwRkJVeXhEUVVOcVJDeFRRVUZUTEVWQlExUXNSMEZCVlN4RFFVTllMRU5CUVVNN05FSkJRMFlzU1VGQlNTeEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRTlCUVU4c1MwRkJTeXhUUVVGVExFbEJRVWtzUjBGQlJ5eERRVUZETEU5QlFVOHNTMEZCU3l4SlFVRkpPMmREUVVNeFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRV01zUTBGQlF5eERRVUZETzNkQ1FVTXhReXhEUVVGRE8zZENRVUZETEU5QlFVOHNSMEZCVVN4RlFVRkZMRU5CUVVNN05FSkJRMnhDTEVsQlFVa3NSMEZCUnl4WlFVRlpMR0ZCUVdFN1owTkJRVVVzVTBGQlV6czBRa0ZETTBNc2NVVkJRWEZGTzNkQ1FVTjJSU3hEUVVGRE8yOUNRVU5JTEVOQlFVTTdaMEpCUTBnc1EwRkJRenRuUWtGRFJDeEpRVUZKTEVOQlFVTTdiMEpCUTBnc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGRFVDeHpRMEZCYzBNc1NVRkJTU3d3UWtGQk1FSXNRMEZEY2tVc1EwRkJRenR2UWtGRFJpeGhRVUZoTEVkQlFVY3NSMEZCUnl4RFFVRkRMR1ZCUVdVc1EwRkJReXhKUVVGWExFTkJRVU1zUTBGQlF6dHZRa0ZEYWtRc1NVRkJTU3hoUVVGaExFdEJRVXNzVTBGQlV5eEpRVUZKTEdGQlFXRXNTMEZCU3l4SlFVRkpMRVZCUVVVc1EwRkJRenQzUWtGRE1VUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3dyUTBGQkswTXNTVUZCU1N4TFFVRkxMR0ZCUVdFc1JVRkJSU3hEUVVONFJTeERRVUZETzI5Q1FVTktMRU5CUVVNN2IwSkJRMFFzTmtSQlFUWkVPMmRDUVVNdlJDeERRVUZETzJkQ1FVRkRMRTlCUVU4c1EwRkJWU3hGUVVGRkxFTkJRVU03YjBKQlEzQkNMR1ZCUVdVN1owSkJRMnBDTEVOQlFVTTdaMEpCUTBRc1NVRkJTU3hoUVVGaExFdEJRVXNzVTBGQlV5eEpRVUZKTEdGQlFXRXNTMEZCU3l4SlFVRkpMRVZCUVVVc1EwRkJRenR2UWtGRE1VUXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhuUTBGQlowTXNTVUZCU1N4aFFVRmhMRU5CUVVNc1EwRkJRenR2UWtGRE5VUXNZVUZCWVN4SFFVRkhMRk5CUVZNc1EwRkJRenRuUWtGRE5VSXNRMEZCUXp0blFrRkRSQ3hKUVVGSkxFTkJRVU03YjBKQlEwZ3NUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzJkQ1FVTnVReXhEUVVGRE8yZENRVUZETEU5QlFVOHNRMEZCVFN4RlFVRkZMRU5CUVVNN2IwSkJRMmhDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUTNKQ0xEaERRVUU0UXl4VFFVRlRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRMmhGTEVOQlFVTTdaMEpCUTBvc1EwRkJRenRaUVVOSUxFTkJRVU03V1VGRFJDeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXhwUkVGQmFVUXNTVUZCU1N4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVNNVJDeERRVUZETzFGQlEwb3NRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN096dFBRVTlITzBsQlEyZENMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRMmhETEV0QlFYbENMRVZCUTNwQ0xFZEJRV2xDTzFGQlJXcENMRTFCUVUwc1IwRkJSeXhIUVVGSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU16UXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxGZEJRVmNzUlVGQlJTeEpRVUZKTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRE8xRkJRMnBFTEVsQlFVa3NRMEZCUXl4SlFVRkpPMWxCUVVVc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2QwTkJRWGRETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRla1FzTWtSQlFUSkVPMUZCUXpORUxFMUJRVTBzWVVGQllTeEhRVUZITEV0QlFVc3NTVUZCU1N4WFFVRlhMRU5CUVVNN1VVRkRNME1zU1VGQlNTeGhRVUZoTEVkQlFVY3NWMEZCVnl4TFFVRkxMRU5CUVVNN1dVRkRia01zVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZEY2tJc2FVVkJRV2xGTEZkQlFWY3NSVUZCUlN4RFFVTXZSU3hEUVVGRE8xRkJRMG9zVFVGQlRTeFJRVUZSTEVkQlExb3NUMEZCVHl4SlFVRkpMRXRCUVVzc1ZVRkJWU3hKUVVGTExFbEJRVmtzUlVGQlJTeEpRVUZKTzFsQlF5OURMRU5CUVVNc1EwRkJSU3hKUVVGWkxFTkJRVU1zU1VGQlNUdFpRVU53UWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRE8xRkJRMWdzVFVGQlRTeFpRVUZaTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJUZERMRXRCUVVzc1ZVRkJWU3hqUVVGakxFTkJRVU1zUjBGQk1rTTdXVUZEZGtVc1NVRkJTU3hIUVVGSExGbEJRVmtzVDBGQlR6dG5Ra0ZCUlN4SFFVRkhMRWRCUVVjc1RVRkJUU3hIUVVGSExFTkJRVU03V1VGRE5VTXNSMEZCUnp0cFFrRkRRU3hIUVVGSExFTkJRVU1zWTBGQll5eERRVUZETzJsQ1FVTnVRaXhKUVVGSkxFTkJRVU1zWlVGQlpTeEpRVUZKTEhkQ1FVRjNRaXhIUVVGSExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTnNSU3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRmpMRVZCUVVVc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFsQlF6TkRMRTlCUVU4c1IwRkJSeXhEUVVGRE8xRkJRMklzUTBGQlF6dFJRVVZFTEUxQlFVMHNZVUZCWVN4SFFVRkhMRXRCUVVzc1JVRkRla0lzU1VGQk9FSXNSVUZEVGl4RlFVRkZPMWxCUXpGQ0xFbEJRVWtzUTBGQlF6dG5Ra0ZEU0N4UFFVRlBMRTFCUVUwc1kwRkJZeXhEUVVONlFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxHRkJRV0VzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUTNSRkxFTkJRVU03V1VGRFNpeERRVUZETzFsQlFVTXNUMEZCVHl4RFFVRk5MRVZCUVVVc1EwRkJRenRuUWtGRGFFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1lVRkJZU3hGUVVGRkxFTkJRVU03YjBKQlF5OUNMRTlCUVU4c1RVRkJUU3hqUVVGakxFTkJRM3BDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVOa0xFbEJRVWtzWVVGQllTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNSVUZET1VNc1IwRkJSeXhEUVVOS0xFTkJRMFlzUTBGQlF6dG5Ra0ZEU2l4RFFVRkRPMmRDUVVORUxFMUJRVTBzUTBGQlF5eERRVUZETzFsQlExWXNRMEZCUXp0UlFVTklMRU5CUVVNc1EwRkJRenRSUVVWR0xFMUJRVTBzWlVGQlpTeEhRVUZITEV0QlFVc3NSVUZETTBJc1NVRkJPRUlzUlVGRFN5eEZRVUZGTzFsQlEzSkRMRkZCUVZFc1VVRkJVU3hGUVVGRkxFTkJRVU03WjBKQlEycENMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWs3YjBKQlEyUXNUMEZCVVN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQldTeEhRVUZITEdGQlFXRXNRMEZCUXp0blFrRkRkRVFzUzBGQlN5eE5RVUZOTEVOQlFVTXNTVUZCU1R0dlFrRkRaQ3hQUVVGUkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRlpMRWRCUVVjc1RVRkJUU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzJkQ1FVTTVSQ3hMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTzI5Q1FVTmtMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRNVUlzUzBGQlN5eFJRVUZSTzI5Q1FVTllMRTlCUVU4c1RVRkJUU3hQUVVGUExFTkJRVU1zVDBGQlR5eERRVU14UWl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZqTEVOQlFVTXNRMEZEZWtNc1EwRkJRenRuUWtGRFNqdHZRa0ZEUlN4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1dVRkRia1FzUTBGQlF6dFJRVU5JTEVOQlFVTXNRMEZCUXp0UlFVVkdMR3RHUVVGclJqdFJRVU5zUml4dFJrRkJiVVk3VVVGRGJrWXNaMFpCUVdkR08xRkJRMmhHTEUxQlFVMHNWMEZCVnl4SFFVRkpMRWRCUVRaQ0xFTkJRVU1zYzBKQlFYTkNMRU5CUTNaRkxFbEJRVWtzUTBGRFRDeERRVUZETzFGQlEwWXNUVUZCVFN4dFFrRkJiVUlzUjBGQlNTeEhRVUUyUWp0aFFVTjJSQ3hyUWtGQmEwSXNSVUZCUlR0aFFVTndRaXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEYmtJc1RVRkJUU3h2UWtGQmIwSXNSMEZEZUVJc1YwRkJWeXhGUVVGRkxGZEJRVmNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRE8xRkJRMjVHTEUxQlFVMHNkMEpCUVhkQ0xFZEJRelZDTEVOQlFVTXNWMEZCVnl4RlFVRkZMR1ZCUVdVc1NVRkJTeXhIUVVFMlFpeERRVUZETEdsQ1FVRnBRaXhEUVVGRE8xbEJRMnhHTEc5Q1FVRnZRaXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGYkVNc1NVRkJTU3hKUVVGVExFTkJRVU03VVVGRFpDeEpRVUZKTEZGQlFWRXNTMEZCU3l4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVONFFpeE5RVUZOTEVsQlFVa3NaMEpCUVdkQ0xFTkJRM2hDTERKRlFVRXlSU3hEUVVNMVJTeERRVUZETzFGQlEwb3NRMEZCUXp0aFFVRk5MRU5CUVVNN1dVRkRUaXhKUVVGSkxFZEJRVWNzVFVGQlRTeGxRVUZsTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkROME1zUTBGQlF6dFJRVVZFTEVsQlFVa3NkMEpCUVhkQ0xFVkJRVVVzUTBGQlF6dFpRVU0zUWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxHRkJRV0VzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTTdXVUZEYUVVc1RVRkJUU3hKUVVGSkxFTkJRVU1zTUVKQlFUQkNMRU5CUTI1RExFZEJRVWNzUlVGRFNDeFJRVUZSTEVWQlExSXNiMEpCUVc5Q0xFTkJRM0pDTEVOQlFVTTdXVUZEUml4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVOUUxIRkRRVUZ4UXl4SlFVRkpMRmxCUVZrc1dVRkJiVUlzVTBGQlV5eEpRVUZYTEVWQlFVVXNRMEZETDBZc1EwRkJRenRaUVVOR0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVdNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU53UXl4UFFVRlBMRWxCUVVrc1EwRkJRenRSUVVOa0xFTkJRVU03VVVGRlJDeE5RVUZOTEVkQlFVY3NSMEZCUnl4TlFVRk5MR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU4wUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVOUUxITkNRVUZ6UWl4SlFVRkpMRmxCUVZrc1dVRkJiVUlzVTBGQlV5eEpRVUZYTEVWQlFVVXNRMEZEYUVZc1EwRkJRenRSUVVWR0xHdEdRVUZyUmp0UlFVTnNSaXg1UmtGQmVVWTdVVUZEZWtZc1NVRkJTU3h2UWtGQmIwSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVOb1F5eE5RVUZOTEVsQlFVa3NRMEZCUXl3d1FrRkJNRUlzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRzlDUVVGdlFpeERRVUZETEVOQlFVTTdVVUZEZUVVc1EwRkJRenRSUVVWRUxFOUJRVThzUjBGQlJ5eERRVUZETEU5QlFXMURMRU5CUVVNN1VVRkRMME1zV1VGQldUdEpRVU5rTEVOQlFVTTdTVUZGUkRzN096dFBRVWxITzBsQlEwMHNTMEZCU3l4RFFVRkRMR0ZCUVdFc1EwRkRNVUlzUzBGQkswSXNSVUZETDBJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlEyNUNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGNFUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFGQlF6RkNMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRPMUZCUXpsQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTzFsQlFVVXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4RFFVRkRPMUZCUldoRkxFMUJRVTBzVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRmJFTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1EwRkRiRUlzUTBGQk1rSXNSVUZETTBJc1EwRkJNa0lzUlVGRGJFSXNSVUZCUlR0WlFVTllMRWxCUVVrc1QwRkJUeXhEUVVGRExFdEJRVXNzVVVGQlVTeEpRVUZKTEU5QlFVOHNRMEZCUXl4TFFVRkxMRkZCUVZFc1JVRkJSU3hEUVVGRE8yZENRVU51UkN4UFFVRlBMRTFCUVUwc1EwRkJReXhEUVVGUkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNN1dVRkROME1zUTBGQlF6dFpRVU5FTEVsQlFVa3NUMEZCVHl4RFFVRkRMRXRCUVVzc1VVRkJVU3hKUVVGSkxFOUJRVThzUTBGQlF5eExRVUZMTEZGQlFWRXNSVUZCUlN4RFFVRkRPMmRDUVVOdVJDeFBRVUZQTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZETDBJc1EwRkJRenRaUVVORUxFOUJRVThzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU12UWl4RFFVRkRMRU5CUVVNN1VVRkZSaXhOUVVGTkxGZEJRVmNzUjBGQlNTeEhRVUUyUWl4RFFVRkRMSE5DUVVGelFpeERRVU4yUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRMklzUTBGQlF6dFJRVU5HTEUxQlFVMHNhVUpCUVdsQ0xFZEJRM0pDTEZkQlFWY3NTMEZCU3l4VFFVRlRPMWxCUTNwQ0xGZEJRVmNzUTBGQlF5eGxRVUZsTzFsQlF6TkNMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVnlReXhOUVVGTkxGbEJRVmtzUjBGQlJ5eExRVUZMTEVsQlFYZERMRVZCUVVVN1dVRkRiRVVzU1VGQlNTeERRVUZETzJkQ1FVTklMRTlCUVU4c1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRmpMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRGJrUXNRMEZCUXp0WlFVRkRMRTlCUVU4c1EwRkJUU3hGUVVGRkxFTkJRVU03WjBKQlEyaENMRWxCUVVrc1EwRkJReXhaUVVGWkxHRkJRV0U3YjBKQlFVVXNUMEZCVHl4VFFVRlRMRU5CUVVNN1owSkJRMnBFTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTFZc1EwRkJRenRSUVVOSUxFTkJRVU1zUTBGQlF6dFJRVVZHTEUxQlFVMHNXVUZCV1N4SFFVRkhMRXRCUVVzc1JVRkRlRUlzVVVGQmRVSXNSVUZEZGtJc1YwRkJjVUlzUlVGRGNrSXNSVUZCUlR0WlFVTkdMRTFCUVUwc1NVRkJTU3hEUVVGRExEQkNRVUV3UWl4RFFVRkRMRWRCUVVjc1JVRkJSU3hSUVVGUkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZEYkVVc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCWXl4RlFVRkZMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU5zUkN4RFFVRkRMRU5CUVVNN1VVRkZSaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eExRVUZMTEVWQlFVVXNTVUZCT0VJc1JVRkJSU3hGUVVGRk8xbEJRelZFTEVsQlFVa3NRMEZCUXp0blFrRkRTQ3hQUVVGUExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUXpOQ0xFbEJRVWtzWVVGQllTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNSVUZET1VNc1IwRkJSeXhEUVVOS0xFTkJRVU03V1VGRFNpeERRVUZETzFsQlFVTXNUMEZCVHl4RFFVRk5MRVZCUVVVc1EwRkJRenRuUWtGRGFFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1lVRkJZU3hGUVVGRkxFTkJRVU03YjBKQlF5OUNMRTlCUVU4c1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZETTBJc1NVRkJTU3hoUVVGaExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGQlF5eEZRVU01UXl4SFFVRkhMRU5CUTBvc1EwRkJRenRuUWtGRFNpeERRVUZETzJkQ1FVTkVMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRMVlzUTBGQlF6dFJRVU5JTEVOQlFVTXNRMEZCUXp0UlFVVkdMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzV1VGQldTeEZRVUZGTEVOQlFVTTdVVUZEZEVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEyUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hoUVVGaExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETzFsQlEyNUZMRWxCUVVrc2FVSkJRV2xDTEVWQlFVVXNRMEZCUXp0blFrRkRkRUlzVFVGQlRTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RlFVRkZMRmRCUVZrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dG5Ra0ZEZGtRc1QwRkJUeXhQUVVGUExFTkJRVU03V1VGRGFrSXNRMEZCUXp0WlFVTkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUXpWRExFMUJRVTBzU1VGQlNTeERRVUZETEdkRFFVRm5ReXhEUVVGRExFZEJRVWNzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVTXhSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTlCUVdNc1EwRkJReXhEUVVGRE8xRkJRelZETEVOQlFVTTdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRmpMRU5CUVVNc1EwRkJRenRSUVVOd1JDeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTlCUVU4c1JVRkJSU3hQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEyNURMRTlCUVU4c1QwRkJUeXhEUVVGRE8xRkJRMnBDTEVOQlFVTTdVVUZGUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxHRkJRV0VzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEYmtVc1NVRkJTU3hwUWtGQmFVSXNSVUZCUlN4RFFVRkRPMWxCUTNSQ0xFMUJRVTBzV1VGQldTeERRVUZETEZGQlFWRXNSVUZCUlN4WFFVRlpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03V1VGRGRrUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3g1UTBGQmVVTXNTVUZCU1N4WlFVRlpMRTlCUVdNc1dVRkJXU3hQUVVGakxFVkJRVVVzUTBGRGNFY3NRMEZCUXp0WlFVTkdMRTlCUVU4c1QwRkJUeXhEUVVGRE8xRkJRMnBDTEVOQlFVTTdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTTFReXhOUVVGTkxFbEJRVWtzUTBGQlF5eG5RMEZCWjBNc1EwRkJReXhIUVVGSExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETVVRc1QwRkJUeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRmpMRU5CUVVNc1EwRkJRenRKUVVNMVF5eERRVUZETzBsQlJVUTdPenM3T3pzN08wOUJVVWM3U1VGRFN5eExRVUZMTEVOQlFVTXNNRUpCUVRCQ0xFTkJRM1JETEVkQlFXbENMRVZCUTJwQ0xFZEJRV3RDTEVWQlEyeENMRmRCUVhGQ08xRkJSWEpDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl3d1FrRkJNRUlzUTBGQlF5eERRVUZETzFGQlF6VkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUV5UXl4RFFVRkRPMUZCUTJwRkxFMUJRVTBzVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1lVRkJiMElzUTBGQlF5eERRVUZETzFGQlEzaEVMRTFCUVUwc1YwRkJWeXhIUVVGSkxFZEJRVFpDTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVU40UlN4VFFVRlRMRVZCUTFRc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUTJwQ0xFTkJRVU03VVVGRlJpeExRVUZMTEUxQlFVMHNWVUZCVlN4SlFVRkpMRmRCUVZjc1JVRkJSU3hEUVVGRE8xbEJRM0pETEVsQlFVa3NRMEZCUXp0blFrRkRTQ3hOUVVGTkxHTkJRV01zUjBGQlJ5eFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8yZENRVU4wUkN4TlFVRk5MRTFCUVUwc1IwRkJSenR2UWtGRFlpeERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hUUVVGVE8yOUNRVU01UWl4RlFVRkZMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVU3YjBKQlExWXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkJReXhQUVVGUE8ybENRVU55UWl4RFFVRkRPMmRDUVVOR0xFMUJRVTBzWTBGQll5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRmRCUVZjc1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlZTeERRVUZETEVOQlFVTTdaMEpCUTJ4RkxFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4SFFVRkhMRU5CUVVNc1JVRkJSU3d3UWtGQk1FSXNWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVOMFJTeERRVUZETzFsQlFVTXNUMEZCVHl4RFFVRlZMRVZCUVVVc1EwRkJRenRuUWtGRGNFSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkRUaXcwUWtGQk5FSXNSMEZCUnl4RFFVRkRMRVZCUVVVc2EwSkJRV3RDTEZWQlFWVXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkRka1VzUTBGQlF6dFpRVU5LTEVOQlFVTTdVVUZEU0N4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWUExFdEJRVXNzUTBGQlF5eG5RMEZCWjBNc1EwRkROVU1zUjBGQmFVSXNSVUZEYWtJc1IwRkJhMEk3VVVGRmJFSXNaMFpCUVdkR08xRkJRMmhHTERoR1FVRTRSanRSUVVNNVJpeE5RVUZOTEZkQlFWY3NSMEZCU1N4SFFVRTJRaXhEUVVGRExITkNRVUZ6UWl4RFFVTjJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVTm1MRU5CUVVNN1VVRkZSaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVZjc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFpRVU53UkN4UFFVRlBPMUZCUTFRc1EwRkJRenRSUVVWRUxEQkdRVUV3Ump0UlFVTXhSaXhKUVVGSkxGZEJRVmNzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0WlFVTm9ReXhQUVVGUE8xRkJRMVFzUTBGQlF6dFJRVVZFTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4blEwRkJaME1zUTBGQlF5eERRVUZETzFGQlEyeEZMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRMDRzZDBKQlFYZENMRWRCUVVjc1EwRkJReXhGUVVGRkxFOUJRVThzVjBGQlZ5eERRVUZETEZkQlFWY3NRMEZCUXl4TlFVRk5MRFJDUVVFMFFpeFhRVUZYTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVU53U1N4RFFVRkRPMUZCUlVZc1RVRkJUU3hKUVVGSkxFTkJRVU1zTUVKQlFUQkNMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeFhRVUZYTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1NVRkRNMFVzUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0Y2JpQWdTVzUwWlhKdVlXeEZjbkp2Y2l4Y2JpQWdUbTkwUm05MWJtUkZjbkp2Y2l4Y2JpQWdUM0JsY21GMGFXOXVTMlY1Y3l4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5Qk5iMlJsYkNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEc5eUxYWmhiR2xrWVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFRmtZWEIwWlhJc1hHNGdJRU52Ym5SbGVIUXNYRzRnSUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnl4Y2JpQWdVMlZ4ZFdWdVkyVXNYRzRnSUZObGNYVmxibU5sVFc5a1pXd3NYRzRnSUZObGNYVmxibU5sVDNCMGFXOXVjeXhjYmlBZ1UyVnlhV0ZzTEZ4dUlDQlZibk4xY0hCdmNuUmxaRVZ5Y205eUxGeHVmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZENCOUlHWnliMjBnWENJdUwwTnZiblJ5WVdOMFEyOXVkR1Y0ZEZ3aU8xeHVhVzF3YjNKMElIUjVjR1VnZXlCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSWdmU0JtY205dElGd2lMaTlEYjI1MGNtRmpkRUZrWVhCMFpYSmNJanRjYm1sdGNHOXlkQ0I3SUVOdmRXTm9SRUpMWlhseklIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OW1iM0l0WTI5MVkyaGtZbHdpTzF4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJCWW5OMGNtRmpkQ0JpWVhObElHTnNZWE56SUdadmNpQnpaWEYxWlc1alpTQm5aVzVsY21GMGFXOXVYRzRnS2lCQWMzVnRiV0Z5ZVNCUWNtOTJhV1JsY3lCaElHWnlZVzFsZDI5eWF5Qm1iM0lnWjJWdVpYSmhkR2x1WnlCelpYRjFaVzUwYVdGc0lIWmhiSFZsY3lBb2JHbHJaU0J3Y21sdFlYSjVJR3RsZVhNcElHbHVJSFJvWlNCd1pYSnphWE4wWlc1alpTQnNZWGxsY2k1Y2JpQXFJRWx0Y0d4bGJXVnVkR0YwYVc5dWN5QnZaaUIwYUdseklHTnNZWE56SUdoaGJtUnNaU0IwYUdVZ2MzQmxZMmxtYVdOeklHOW1JR2h2ZHlCelpYRjFaVzVqWlhNZ1lYSmxJSE4wYjNKbFpDQmhibVFnYVc1amNtVnRaVzUwWldRZ2FXNGdaR2xtWm1WeVpXNTBYRzRnS2lCa1lYUmhZbUZ6WlNCemVYTjBaVzF6TGx4dUlDb2dRSEJoY21GdElIdFRaWEYxWlc1alpVOXdkR2x2Ym5OOUlHOXdkR2x2Ym5NZ0xTQkRiMjVtYVdkMWNtRjBhVzl1SUc5d2RHbHZibk1nWm05eUlIUm9aU0J6WlhGMVpXNWpaU0JuWlc1bGNtRjBiM0pjYmlBcUlFQmpiR0Z6Y3lCVFpYRjFaVzVqWlZ4dUlDb2dRR1Y0WVcxd2JHVmNiaUFxSUdCZ1lIUjVjR1Z6WTNKcGNIUmNiaUFxSUM4dklFVjRZVzF3YkdVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnWm05eUlHRWdjM0JsWTJsbWFXTWdaR0YwWVdKaGMyVmNiaUFxSUdOc1lYTnpJRkJ2YzNSbmNtVnpVMlZ4ZFdWdVkyVWdaWGgwWlc1a2N5QlRaWEYxWlc1alpTQjdYRzRnS2lBZ0lHTnZibk4wY25WamRHOXlLRzl3ZEdsdmJuTTZJRk5sY1hWbGJtTmxUM0IwYVc5dWN5a2dlMXh1SUNvZ0lDQWdJSE4xY0dWeUtHOXdkR2x2Ym5NcE8xeHVJQ29nSUNCOVhHNGdLbHh1SUNvZ0lDQmhjM2x1WXlCdVpYaDBLQ2s2SUZCeWIyMXBjMlU4Ym5WdFltVnlQaUI3WEc0Z0tpQWdJQ0FnTHk4Z1NXMXdiR1Z0Wlc1MFlYUnBiMjRnZEc4Z1oyVjBJRzVsZUhRZ2RtRnNkV1VnWm5KdmJTQlFiM04wWjNKbFUxRk1JSE5sY1hWbGJtTmxYRzRnS2lBZ0lDQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ1lYZGhhWFFnZEdocGN5NXZjSFJwYjI1ekxtVjRaV04xZEc5eUxuSmhkeWhnVTBWTVJVTlVJRzVsZUhSMllXd29KeVI3ZEdocGN5NXZjSFJwYjI1ekxtNWhiV1Y5SnlsZ0tUdGNiaUFxSUNBZ0lDQnlaWFIxY200Z2NHRnljMlZKYm5Rb2NtVnpkV3gwTG5KdmQzTmJNRjB1Ym1WNGRIWmhiQ2s3WEc0Z0tpQWdJSDFjYmlBcVhHNGdLaUFnSUdGemVXNWpJR04xY25KbGJuUW9LVG9nVUhKdmJXbHpaVHh1ZFcxaVpYSStJSHRjYmlBcUlDQWdJQ0F2THlCSmJYQnNaVzFsYm5SaGRHbHZiaUIwYnlCblpYUWdZM1Z5Y21WdWRDQjJZV3gxWlNCbWNtOXRJRkJ2YzNSbmNtVlRVVXdnYzJWeGRXVnVZMlZjYmlBcUlDQWdJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQmhkMkZwZENCMGFHbHpMbTl3ZEdsdmJuTXVaWGhsWTNWMGIzSXVjbUYzS0dCVFJVeEZRMVFnWTNWeWNuWmhiQ2duSkh0MGFHbHpMbTl3ZEdsdmJuTXVibUZ0WlgwbktXQXBPMXh1SUNvZ0lDQWdJSEpsZEhWeWJpQndZWEp6WlVsdWRDaHlaWE4xYkhRdWNtOTNjMXN3WFM1amRYSnlkbUZzS1R0Y2JpQXFJQ0FnZlZ4dUlDcGNiaUFxSUNBZ1lYTjVibU1nY21GdVoyVW9ZMjkxYm5RNklHNTFiV0psY2lrNklGQnliMjFwYzJVOGJuVnRZbVZ5VzEwK0lIdGNiaUFxSUNBZ0lDQXZMeUJKYlhCc1pXMWxiblJoZEdsdmJpQjBieUJuWlhRZ1lTQnlZVzVuWlNCdlppQjJZV3gxWlhOY2JpQXFJQ0FnSUNCamIyNXpkQ0IyWVd4MVpYTTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdLaUFnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmpiM1Z1ZERzZ2FTc3JLU0I3WEc0Z0tpQWdJQ0FnSUNCMllXeDFaWE11Y0hWemFDaGhkMkZwZENCMGFHbHpMbTVsZUhRb0tTazdYRzRnS2lBZ0lDQWdmVnh1SUNvZ0lDQWdJSEpsZEhWeWJpQjJZV3gxWlhNN1hHNGdLaUFnSUgxY2JpQXFJSDFjYmlBcVhHNGdLaUF2THlCVmMyRm5aVnh1SUNvZ1kyOXVjM1FnYzJWeGRXVnVZMlVnUFNCdVpYY2dVRzl6ZEdkeVpYTlRaWEYxWlc1alpTaDdYRzRnS2lBZ0lHNWhiV1U2SUNkMWMyVnlYMmxrWDNObGNTY3NYRzRnS2lBZ0lHVjRaV04xZEc5eU9pQmtZa1Y0WldOMWRHOXlYRzRnS2lCOUtUdGNiaUFxWEc0Z0tpQmpiMjV6ZENCdVpYaDBTV1FnUFNCaGQyRnBkQ0J6WlhGMVpXNWpaUzV1WlhoMEtDazdYRzRnS2lCZ1lHQmNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRVpoWW5KcFkwTnZiblJ5WVdOMFUyVnhkV1Z1WTJVZ1pYaDBaVzVrY3lCVFpYRjFaVzVqWlNCN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1EzSmxZWFJsY3lCaElHNWxkeUJ6WlhGMVpXNWpaU0JwYm5OMFlXNWpaVnh1SUNBZ0tpQkFjM1Z0YldGeWVTQlFjbTkwWldOMFpXUWdZMjl1YzNSeWRXTjBiM0lnZEdoaGRDQnBibWwwYVdGc2FYcGxjeUIwYUdVZ2MyVnhkV1Z1WTJVZ2QybDBhQ0IwYUdVZ2NISnZkbWxrWldRZ2IzQjBhVzl1YzF4dUlDQWdLaTljYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iM0IwYVc5dWN6b2dVMlZ4ZFdWdVkyVlBjSFJwYjI1ekxDQmhaR0Z3ZEdWeU9pQkJaR0Z3ZEdWeVBHRnVlU3dnWVc1NUxDQmhibmsrS1NCN1hHNGdJQ0FnYzNWd1pYSW9iM0IwYVc5dWN5d2dZV1JoY0hSbGNpazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGSmxkSEpwWlhabGN5QjBhR1VnWTNWeWNtVnVkQ0IyWVd4MVpTQnZaaUIwYUdVZ2MyVnhkV1Z1WTJWY2JpQWdJQ29nUUhOMWJXMWhjbmtnUjJWMGN5QjBhR1VnWTNWeWNtVnVkQ0IyWVd4MVpTQnZaaUIwYUdVZ2MyVnhkV1Z1WTJVZ1puSnZiU0J6ZEc5eVlXZGxMaUJKWmlCMGFHVWdjMlZ4ZFdWdVkyVmNiaUFnSUNvZ1pHOWxjMjRuZENCbGVHbHpkQ0I1WlhRc0lHbDBJSEpsZEhWeWJuTWdkR2hsSUdOdmJtWnBaM1Z5WldRZ2MzUmhjblJwYm1jZ2RtRnNkV1V1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdRU0J3Y205dGFYTmxJSFJvWVhRZ2NtVnpiMngyWlhNZ2RHOGdkR2hsSUdOMWNuSmxiblFnYzJWeGRXVnVZMlVnZG1Gc2RXVmNiaUFnSUNvdlhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklHTjFjbkpsYm5Rb1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4emRISnBibWNnZkNCdWRXMWlaWElnZkNCaWFXZHBiblErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUN3Z2JHOW5JSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JQY0dWeVlYUnBiMjVMWlhsekxsSkZRVVFzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NWpkWEp5Wlc1MEtUdGNiaUFnSUNCc1pYUWdZMkZqYUdWa1EzVnljbVZ1ZERvZ1lXNTVPMXh1SUNBZ0lHTnZibk4wSUhzZ2JtRnRaU3dnYzNSaGNuUlhhWFJvSUgwZ1BTQjBhR2x6TG05d2RHbHZibk03WEc0Z0lDQWdZMjl1YzNRZ1lXUmhjSFJsY2sxbGRHRWdQU0FvWTNSNElHRnpJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZENrdVoyVjBVMlZ4ZFdWdVkyVlRaV2R5WldkaGRHbHZiaWhjYmlBZ0lDQWdJRk4wY21sdVp5aHVZVzFsS1Z4dUlDQWdJQ2s3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdOaFkyaGxaRU4xY25KbGJuUWdQU0JqZEhndVoyVjBSbkp2YlVOb2FXeGtjbVZ1S0c1aGJXVWdZWE1nWVc1NUtUdGNiaUFnSUNBZ0lHbG1JQ2hqWVdOb1pXUkRkWEp5Wlc1MElDRTlQU0IxYm1SbFptbHVaV1FnSmlZZ1kyRmphR1ZrUTNWeWNtVnVkQ0FoUFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWNHRnljMlVvWTJGamFHVmtRM1Z5Y21WdWRDazdYRzRnSUNBZ0lDQmpiMjV6ZENCelpYRjFaVzVqWlRvZ1UyVnhkV1Z1WTJWTmIyUmxiQ0E5SUdGM1lXbDBJSFJvYVhNdWNtVndieTV5WldGa0tHNWhiV1VnWVhNZ2MzUnlhVzVuTENCamRIZ3BPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Y0dGeWMyVW9jMlZ4ZFdWdVkyVXVZM1Z5Y21WdWRDQmhjeUJ6ZEhKcGJtY2dmQ0J1ZFcxaVpYSXBPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVTZJR0Z1ZVNrZ2UxeHVJQ0FnSUNBZ2FXWWdLR1VnYVc1emRHRnVZMlZ2WmlCT2IzUkdiM1Z1WkVWeWNtOXlLU0I3WEc0Z0lDQWdJQ0FnSUM4dklFbG1JSFJvWlNCelpYRjFaVzVqWlNCcGN5QnpkWEJ3YjNObFpDQjBieUJzYVhabElHbHVJSEJ5YVhaaGRHVXZjMmhoY21Wa0lHTnZiR3hsWTNScGIyNXpMRnh1SUNBZ0lDQWdJQ0F2THlCeVpXRmtJR2wwSUdaeWIyMGdkR2h2YzJVZ1kyOXNiR1ZqZEdsdmJuTWdkWE5wYm1jZ2RHaGxJR0ZrWVhCMFpYSWdLRzV2ZENCMGFHVWdjM1IxWWlCa2FYSmxZM1JzZVNrdVhHNGdJQ0FnSUNBZ0lHbG1JQ2hoWkdGd2RHVnlUV1YwWVQ4dVkyOXNiR1ZqZEdsdmJuTS9MbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR0ZrWVhCMFpYSWdQU0IwYUdsekxtRmtZWEIwWlhJZ1lYTWdkVzVyYm05M2JpQmhjeUJHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RHRmliR1ZPWVcxbElEMGdUVzlrWld3dWRHRmliR1ZPWVcxbEtGTmxjWFZsYm1ObFRXOWtaV3dnWVhNZ1lXNTVLVHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3ZFdKc2FXTkxaWGtnUFNBb1kzUjRJR0Z6SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDa3VjM1IxWWk1amNtVmhkR1ZEYjIxd2IzTnBkR1ZMWlhrb1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwWVdKc1pVNWhiV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmJVM1J5YVc1bktHNWhiV1VwWFZ4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCamIyd2diMllnWVdSaGNIUmxjazFsZEdFdVkyOXNiR1ZqZEdsdmJuTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIQnlhWFpoZEdWQlpHRndkR1Z5SUQwZ1lXUmhjSFJsY2k1bWIzSlFjbWwyWVhSbEtHTnZiQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElISmhkeUE5SUdGM1lXbDBJQ2h3Y21sMllYUmxRV1JoY0hSbGNpQmhjeUJoYm5rcExuSmxZV1JUZEdGMFpTaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndkV0pzYVdOTFpYa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1I0SUdGeklHRnVlVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY21GM0lDWW1JSEpoZHk1amRYSnlaVzUwSUNFOVBTQjFibVJsWm1sdVpXUWdKaVlnY21GM0xtTjFjbkpsYm5RZ0lUMDlJRzUxYkd3cFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjR0Z5YzJVb2NtRjNMbU4xY25KbGJuUWdZWE1nWVc1NUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNqb2dZVzU1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGxjbklnYVc1emRHRnVZMlZ2WmlCT2IzUkdiM1Z1WkVWeWNtOXlLU0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnWm1Gc2JDQjBhSEp2ZFdkb0lIUnZJSEpsWjNWc1lYSWdjM1JoY25SWGFYUm9JR1poYkd4aVlXTnJJR1p2Y2lCaGJua2djR0Z5YzJVdlNVOGdaWEp5YjNKelhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdiRzluTG1SbFluVm5LRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lGUnllV2x1WnlCMGJ5QnlaWE52YkhabElHTjFjbkpsYm5RZ2MyVnhkV1Z1WTJVZ0pIdHVZVzFsZlNCMllXeDFaU0JtY205dElHTnZiblJsZUhRZ2RISmxaV0JjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQWdJR05oWTJobFpFTjFjbkpsYm5RZ1BTQmpkSGd1WjJWMFJuSnZiVU5vYVd4a2NtVnVLRzVoYldVZ1lYTWdZVzU1S1R0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvWTJGamFHVmtRM1Z5Y21WdWRDQWhQVDBnZFc1a1pXWnBibVZrSUNZbUlHTmhZMmhsWkVOMWNuSmxiblFnSVQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZRkpsZEhKcFpYWmxaQ0JqWVdOb1pXUWdZM1Z5Y21WdWRDQjJZV3gxWlNCbWIzSWdjMlZ4ZFdWdVkyVWdKSHR1WVcxbGZUb2dKSHRqWVdOb1pXUkRkWEp5Wlc1MGZXQmNiaUFnSUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUM4dklHVnpiR2x1ZEMxa2FYTmhZbXhsTFc1bGVIUXRiR2x1WlNCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtOHRkVzUxYzJWa0xYWmhjbk5jYmlBZ0lDQWdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUdaaGJHd2dkR2h5YjNWbmFGeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNoallXTm9aV1JEZFhKeVpXNTBJRDA5UFNCMWJtUmxabWx1WldRZ2ZId2dZMkZqYUdWa1EzVnljbVZ1ZENBOVBUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR3h2Wnk1cGJtWnZLR0JPYnlCallXTm9aV1FnZG1Gc2RXVWdabTl5SUhObGNYVmxibU5sSUNSN2JtRnRaWDBnYVc0Z1kyOXVkR1Y0ZEdBcE8xeHVJQ0FnSUNBZ0lDQWdJR05oWTJobFpFTjFjbkpsYm5RZ1BTQnpkR0Z5ZEZkcGRHZzdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1d1lYSnpaU2hqWVdOb1pXUkRkWEp5Wlc1MEtUdGNiaUFnSUNBZ0lDQWdmU0JqWVhSamFDQW9aVG9nWVc1NUtTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJQ0FnSUNCZ1JtRnBiR1ZrSUhSdklIQmhjbk5sSUdsdWFYUnBZV3dnZG1Gc2RXVWdabTl5SUhObGNYVmxibU5sSUNSN2MzUmhjblJYYVhSb2ZUb2dKSHRsZldCY2JpQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNiaUFnSUNBZ0lDQWdZRVpoYVd4bFpDQjBieUJ5WlhSeWFXVjJaU0JqZFhKeVpXNTBJSFpoYkhWbElHWnZjaUJ6WlhGMVpXNWpaU0FrZTI1aGJXVjlPaUFrZTJWOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVsdVkzSmxiV1Z1ZEhNZ2RHaGxJSE5sY1hWbGJtTmxJSFpoYkhWbFhHNGdJQ0FxSUVCemRXMXRZWEo1SUVsdVkzSmxZWE5sY3lCMGFHVWdZM1Z5Y21WdWRDQnpaWEYxWlc1alpTQjJZV3gxWlNCaWVTQjBhR1VnYzNCbFkybG1hV1ZrSUdGdGIzVnVkQ0JoYm1RZ2NHVnljMmx6ZEhOY2JpQWdJQ29nZEdobElHNWxkeUIyWVd4MVpTQjBieUJ6ZEc5eVlXZGxMaUJVYUdseklHMWxkR2h2WkNCb1lXNWtiR1Z6SUdKdmRHZ2diblZ0WlhKcFl5QmhibVFnUW1sblNXNTBJSE5sY1hWbGJtTmxJSFI1Y0dWekxseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJXSmxjaUI4SUdKcFoybHVkSDBnWTNWeWNtVnVkQ0F0SUZSb1pTQmpkWEp5Wlc1MElIWmhiSFZsSUc5bUlIUm9aU0J6WlhGMVpXNWpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyTnZkVzUwWFNBdElFOXdkR2x2Ym1Gc0lHRnRiM1Z1ZENCMGJ5QnBibU55WlcxbGJuUWdZbmtzSUdSbFptRjFiSFJ6SUhSdklIUm9aU0J6WlhGMVpXNWpaU2R6SUdsdVkzSmxiV1Z1ZEVKNUlIWmhiSFZsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdRU0J3Y205dGFYTmxJSFJvWVhRZ2NtVnpiMngyWlhNZ2RHOGdkR2hsSUc1bGR5QnpaWEYxWlc1alpTQjJZV3gxWlNCaFpuUmxjaUJwYm1OeVpXMWxiblJwYm1kY2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCcGJtTnlaVzFsYm5Rb1hHNGdJQ0FnWTI5MWJuUTZJRzUxYldKbGNpQjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQmpkSGc2SUVOdmJuUmxlSFE4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhOMGNtbHVaeUI4SUc1MWJXSmxjaUI4SUdKcFoybHVkRDRnZTF4dUlDQWdJR052Ym5OMElHeHZaeUE5SUdOMGVDNXNiMmRuWlhJdVptOXlLSFJvYVhNdWFXNWpjbVZ0Wlc1MEtUdGNiaUFnSUNCamIyNXpkQ0I3SUhSNWNHVXNJR2x1WTNKbGJXVnVkRUo1TENCdVlXMWxJSDBnUFNCMGFHbHpMbTl3ZEdsdmJuTTdYRzRnSUNBZ2FXWWdLQ0Z1WVcxbEtTQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY0lsTmxjWFZsYm1ObElHNWhiV1VnYVhNZ2NtVnhkV2x5WldSY0lpazdYRzRnSUNBZ2JHOW5MbWx1Wm04b1lFOWlkR0ZwYm1sdVp5QnpaWEYxWlc1alpTQnNiMk5ySUdadmNpQnpaWEYxWlc1alpTQWtlMjVoYldWOVlDazdYRzRnSUNBZ0x5OGdjbVYwZFhKdUlFWmhZbkpwWTBOdmJuUnlZV04wVTJWeGRXVnVZMlV1Ykc5amF5NWxlR1ZqZFhSbEtHRnplVzVqSUNncElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCMGIwbHVZM0psYldWdWRFSjVJRDBnWTI5MWJuUWdmSHdnYVc1amNtVnRaVzUwUW5rN1hHNGdJQ0FnYVdZZ0tIUnZTVzVqY21WdFpXNTBRbmtnSlNCcGJtTnlaVzFsYm5SQ2VTQWhQVDBnTUNsY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JnVm1Gc2RXVWdkRzhnYVc1amNtVnRaVzUwSUdSdlpYTWdibTkwSUdOdmJuTnBaR1Z5SUhSb1pTQnBibU55WlcxbGJuUkNlU0J6WlhSMGFXNW5PaUFrZTJsdVkzSmxiV1Z1ZEVKNWZXQmNiaUFnSUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnZEhsd1pVNWhiV1VnUFZ4dUlDQWdJQ0FnZEhsd1pXOW1JSFI1Y0dVZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWlBbUppQW9kSGx3WlNCaGN5QmhibmtwUHk1dVlXMWxYRzRnSUNBZ0lDQWdJRDhnS0hSNWNHVWdZWE1nWVc1NUtTNXVZVzFsWEc0Z0lDQWdJQ0FnSURvZ2RIbHdaVHRjYmlBZ0lDQmpiMjV6ZENCamRYSnlaVzUwVm1Gc2RXVWdQU0JoZDJGcGRDQjBhR2x6TG1OMWNuSmxiblFvWTNSNEtUdGNibHh1SUNBZ0lHRnplVzVqSUdaMWJtTjBhVzl1SUhKbGRIVnlia0Z1WkVOaFkyaGxLSEpsY3pvZ1UyVnhkV1Z1WTJWTmIyUmxiQ0I4SUZCeWIyMXBjMlU4VTJWeGRXVnVZMlZOYjJSbGJENHBJSHRjYmlBZ0lDQWdJR2xtSUNoeVpYTWdhVzV6ZEdGdVkyVnZaaUJRY205dGFYTmxLU0J5WlhNZ1BTQmhkMkZwZENCeVpYTTdYRzRnSUNBZ0lDQnNiMmRjYmlBZ0lDQWdJQ0FnTG1admNpaHlaWFIxY201QmJtUkRZV05vWlNsY2JpQWdJQ0FnSUNBZ0xtbHVabThvWUZOMGIzSnBibWNnYm1WM0lDUjdibUZ0WlgwZ2MyVnhJSFpoYkhWbElHbHVJR05oWTJobE9pQWtlM0psY3k1amRYSnlaVzUwZldBcE8xeHVJQ0FnSUNBZ1kzUjRMbU5oWTJobExuQjFkQ2h1WVcxbElHRnpJSE4wY21sdVp5d2djbVZ6TG1OMWNuSmxiblFwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsY3p0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQndaWEptYjNKdFZYQnpaWEowSUQwZ1lYTjVibU1nS0Z4dUlDQWdJQ0FnYm1WNGREb2djM1J5YVc1bklId2diblZ0WW1WeUlId2dZbWxuYVc1MFhHNGdJQ0FnS1RvZ1VISnZiV2x6WlR4VFpYRjFaVzVqWlUxdlpHVnNQaUE5UGlCN1hHNGdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZWGRoYVhRZ2NtVjBkWEp1UVc1a1EyRmphR1VvWEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV5WlhCdkxuVndaR0YwWlNodVpYY2dVMlZ4ZFdWdVkyVk5iMlJsYkNoN0lHbGtPaUJ1WVcxbExDQmpkWEp5Wlc1ME9pQnVaWGgwSUgwcExDQmpkSGdwWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOUlHTmhkR05vSUNobE9pQmhibmtwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1VnYVc1emRHRnVZMlZ2WmlCT2IzUkdiM1Z1WkVWeWNtOXlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGM1lXbDBJSEpsZEhWeWJrRnVaRU5oWTJobEtGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXlaWEJ2TG1OeVpXRjBaU2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdibVYzSUZObGNYVmxibU5sVFc5a1pXd29leUJwWkRvZ2JtRnRaU3dnWTNWeWNtVnVkRG9nYm1WNGRDQjlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1I0WEc0Z0lDQWdJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCbE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwN1hHNWNiaUFnSUNCamIyNXpkQ0JwYm1OeVpXMWxiblJUWlhKcFlXd2dQU0JoYzNsdVl5QW9YRzRnSUNBZ0lDQmlZWE5sT2lCemRISnBibWNnZkNCdWRXMWlaWElnZkNCaWFXZHBiblJjYmlBZ0lDQXBPaUJRY205dGFYTmxQSE4wY21sdVp5QjhJRzUxYldKbGNpQjhJR0pwWjJsdWRENGdQVDRnZTF4dUlDQWdJQ0FnYzNkcGRHTm9JQ2gwZVhCbFRtRnRaU2tnZTF4dUlDQWdJQ0FnSUNCallYTmxJRTUxYldKbGNpNXVZVzFsT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBb2RHaHBjeTV3WVhKelpTaGlZWE5sS1NCaGN5QnVkVzFpWlhJcElDc2dkRzlKYm1OeVpXMWxiblJDZVR0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JDYVdkSmJuUXVibUZ0WlRwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z0tIUm9hWE11Y0dGeWMyVW9ZbUZ6WlNrZ1lYTWdZbWxuYVc1MEtTQXJJRUpwWjBsdWRDaDBiMGx1WTNKbGJXVnVkRUo1S1R0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JUZEhKcGJtY3VibUZ0WlRwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV3WVhKelpTaGlZWE5sS1R0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSW5ObGNtbGhiRndpT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGQyRnBkQ0JRY205dGFYTmxMbkpsYzI5c2RtVW9YRzRnSUNBZ0lDQWdJQ0FnSUNCVFpYSnBZV3d1YVc1emRHRnVZMlV1WjJWdVpYSmhkR1VvWW1GelpTQmhjeUJ6ZEhKcGJtY3BYRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY0lsTm9iM1ZzWkNCdVpYWmxjaUJvWVhCd1pXNWNJaWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVHRjYmx4dUlDQWdJQzh2SUVOb1pXTnJJR2xtSUcxdlpHVnNJR2x6SUdaMWJHeDVJSE5sWjNKbFoyRjBaV1FnNG9DVUlITmxjWFZsYm1ObElHZHZaWE1nVDA1TVdTQjBieUJ3Y21sMllYUmxJR052Ykd4bFkzUnBiMjV6TGx4dUlDQWdJQzh2SUZCeVpXWmxjaUIwYUdVZ1pYaHdiR2xqYVhRZ2NHVnlMWE5sY1hWbGJtTmxJRzFsZEdGa1lYUmhJSGRvWlc0Z1lYWmhhV3hoWW14bE95QnZkR2hsY25kcGMyVWdabUZzYkNCaVlXTnJJSFJ2WEc0Z0lDQWdMeThnZEdobElHTnZiblJsZUhRbmN5QnlaV2RwYzNSbGNtVmtJSEpsWVdRZ1kyOXNiR1ZqZEdsdmJuTWdLR052ZG1WeWN5QmxZWEpzZVNCd2F5Qm5aVzVsY21GMGFXOXVJSEJoZEdoektTNWNiaUFnSUNCamIyNXpkQ0JoWkdGd2RHVnlUV1YwWVNBOUlDaGpkSGdnWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBLUzVuWlhSVFpYRjFaVzVqWlZObFozSmxaMkYwYVc5dUtGeHVJQ0FnSUNBZ2JtRnRaVnh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnWm1Gc2JHSmhZMnREYjJ4c1pXTjBhVzl1Y3lBOUlDaGpkSGdnWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBLVnh1SUNBZ0lDQWdMbWRsZEZKbFlXUkRiMnhzWldOMGFXOXVjeWdwWEc0Z0lDQWdJQ0F1Wm1sc2RHVnlLRUp2YjJ4bFlXNHBPMXh1SUNBZ0lHTnZibk4wSUdWbVptVmpkR2wyWlVOdmJHeGxZM1JwYjI1eklEMWNiaUFnSUNBZ0lHRmtZWEIwWlhKTlpYUmhQeTVqYjJ4c1pXTjBhVzl1Y3o4dWJHVnVaM1JvSUQ4Z1lXUmhjSFJsY2sxbGRHRXVZMjlzYkdWamRHbHZibk1nT2lCbVlXeHNZbUZqYTBOdmJHeGxZM1JwYjI1ek8xeHVJQ0FnSUdOdmJuTjBJR1ZtWm1WamRHbDJaVVoxYkd4NVUyVm5jbVZuWVhSbFpDQTlYRzRnSUNBZ0lDQW9ZV1JoY0hSbGNrMWxkR0UvTG1aMWJHeDVVMlZuY21WbllYUmxaQ0EvUHlBb1kzUjRJR0Z6SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDa3VhWE5HZFd4c2VWTmxaM0psWjJGMFpXUXBJQ1ltWEc0Z0lDQWdJQ0JsWm1abFkzUnBkbVZEYjJ4c1pXTjBhVzl1Y3k1c1pXNW5kR2dnUGlBd08xeHVYRzRnSUNBZ2JHVjBJRzVsZUhRNklHRnVlVHRjYmlBZ0lDQnBaaUFvZEhsd1pVNWhiV1VnUFQwOUlGd2lkWFZwWkZ3aUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dWVzV6ZFhCd2IzSjBaV1JGY25KdmNpaGNiaUFnSUNBZ0lDQWdZSFYxYVdRZ2NHc2daMlZ1WlhKaGRHbHZiaUJwY3lCdmJteDVJSE4xY0hCdmNuUmxaQ0IxYzJsdVp5QkFkWFZwWkNCaGJtUWdZU0JrWlhSbGNtMXBibWx6ZEdsaklITmxaV1JnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnVaWGgwSUQwZ1lYZGhhWFFnYVc1amNtVnRaVzUwVTJWeWFXRnNLR04xY25KbGJuUldZV3gxWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHVm1abVZqZEdsMlpVWjFiR3g1VTJWbmNtVm5ZWFJsWkNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYzJWeFRXOWtaV3dnUFNCdVpYY2dVMlZ4ZFdWdVkyVk5iMlJsYkNoN0lHbGtPaUJ1WVcxbExDQmpkWEp5Wlc1ME9pQnVaWGgwSUgwcE8xeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NTNjbWwwWlZObGNYVmxibU5sVkc5RGIyeHNaV04wYVc5dWN5aGNiaUFnSUNBZ0lDQWdZM1I0TEZ4dUlDQWdJQ0FnSUNCelpYRk5iMlJsYkN4Y2JpQWdJQ0FnSUNBZ1pXWm1aV04wYVhabFEyOXNiR1ZqZEdsdmJuTmNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnNiMmN1WkdWaWRXY29YRzRnSUNBZ0lDQWdJR0JUWlhGMVpXNWpaUzVwYm1OeVpXMWxiblFnS0hCeWFYWmhkR1V0YjI1c2VTa2dKSHR1WVcxbGZTQmpkWEp5Wlc1MFBTUjdZM1Z5Y21WdWRGWmhiSFZsSUdGeklHRnVlWDBnYm1WNGREMGtlMjVsZUhRZ1lYTWdZVzU1ZldCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCamRIZ3VZMkZqYUdVdWNIVjBLRzVoYldVZ1lYTWdjM1J5YVc1bkxDQnVaWGgwS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhoME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSE5sY1NBOUlHRjNZV2wwSUhCbGNtWnZjbTFWY0hObGNuUW9ibVY0ZENrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0Z4dUlDQWdJQ0FnWUZObGNYVmxibU5sTG1sdVkzSmxiV1Z1ZENBa2UyNWhiV1Y5SUdOMWNuSmxiblE5Skh0amRYSnlaVzUwVm1Gc2RXVWdZWE1nWVc1NWZTQnVaWGgwUFNSN2JtVjRkQ0JoY3lCaGJubDlZRnh1SUNBZ0lDazdYRzVjYmlBZ0lDQXZMeUJTWlhCc2FXTmhkR1VnYzJWeGRXVnVZMlVnZEc4Z2MyVm5jbVZuWVhSbFpDQmpiMnhzWldOMGFXOXVjeUJwWmlCdGIyUmxiQ0IxYzJWeklIQnlhWFpoZEdVdmMyaGhjbVZrSUdSaGRHRXVYRzRnSUNBZ0x5OGdWMmhsYmlCdFpYUmhaR0YwWVNCcGMyNG5kQ0JoZG1GcGJHRmliR1VzSUdaaGJHd2dZbUZqYXlCMGJ5QjBhR1VnWTI5dWRHVjRkQ2R6SUhKbFoybHpkR1Z5WldRZ2NtVmhaQ0JqYjJ4c1pXTjBhVzl1Y3k1Y2JpQWdJQ0JwWmlBb1pXWm1aV04wYVhabFEyOXNiR1ZqZEdsdmJuTXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbmR5YVhSbFUyVnhkV1Z1WTJWVWIwTnZiR3hsWTNScGIyNXpLR04wZUN3Z2MyVnhMQ0JsWm1abFkzUnBkbVZEYjJ4c1pXTjBhVzl1Y3lrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSE5sY1M1amRYSnlaVzUwSUdGeklITjBjbWx1WnlCOElHNTFiV0psY2lCOElHSnBaMmx1ZER0Y2JpQWdJQ0F2THlCOUxDQnVZVzFsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUlc1emRYSmxjeUIwYUdVZ2MyVnhkV1Z1WTJVZ1pYaHBjM1J6SUdGdVpDQnBjeUJoZENCc1pXRnpkQ0JoSUdkcGRtVnVJSFpoYkhWbFhHNGdJQ0FxSUVCemRXMXRZWEo1SUVaaFluSnBZeUJ1WldWa2N5QjBieUJ5WlhOd1pXTjBJSE5sWjNKbFoyRjBaV1F2Y0hKcGRtRjBaUzl6YUdGeVpXUWdjM1J2Y21GblpTQnlkV3hsY3lCM2FHVnVJR055WldGMGFXNW5YRzRnSUNBcUlITmxjWFZsYm1ObGN5QW9abTl5SUdWNFlXMXdiR1VnWm05eUlIQmxjbk5wYzNSbGJuUWdRSFpsY25OcGIyNG9kSEoxWlNrZ1lXNWtJRUJ6WlhGMVpXNWpaU2dwS1M1Y2JpQWdJQ292WEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUdWdWMzVnlaVUYwVEdWaGMzUW9YRzRnSUNBZ2RtRnNkV1U2SUhOMGNtbHVaeUI4SUc1MWJXSmxjaUI4SUdKcFoybHVkQ3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSE4wY21sdVp5QjhJRzUxYldKbGNpQjhJR0pwWjJsdWRENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRMQ0JzYjJjZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lFOXdaWEpoZEdsdmJrdGxlWE11VlZCRVFWUkZMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVpXNXpkWEpsUVhSTVpXRnpkQ2s3WEc0Z0lDQWdZMjl1YzNRZ2V5QnVZVzFsSUgwZ1BTQjBhR2x6TG05d2RHbHZibk03WEc0Z0lDQWdhV1lnS0NGdVlXMWxLU0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNJbE5sY1hWbGJtTmxJRzVoYldVZ2FYTWdjbVZ4ZFdseVpXUmNJaWs3WEc1Y2JpQWdJQ0JqYjI1emRDQmtaWE5wY21Wa0lEMGdkR2hwY3k1d1lYSnpaU2gyWVd4MVpTazdYRzVjYmlBZ0lDQmpiMjV6ZENCbmNtVmhkR1Z5VkdoaGJpQTlJQ2hjYmlBZ0lDQWdJR0U2SUhOMGNtbHVaeUI4SUc1MWJXSmxjaUI4SUdKcFoybHVkQ3hjYmlBZ0lDQWdJR0k2SUhOMGNtbHVaeUI4SUc1MWJXSmxjaUI4SUdKcFoybHVkRnh1SUNBZ0lDazZJR0p2YjJ4bFlXNGdQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCaElEMDlQU0JjSW1KcFoybHVkRndpSUh4OElIUjVjR1Z2WmlCaUlEMDlQU0JjSW1KcFoybHVkRndpS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCQ2FXZEpiblFvWVNCaGN5QmhibmtwSUQ0Z1FtbG5TVzUwS0dJZ1lYTWdZVzU1S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ1lTQTlQVDBnWENKdWRXMWlaWEpjSWlCOGZDQjBlWEJsYjJZZ1lpQTlQVDBnWENKdWRXMWlaWEpjSWlrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1RuVnRZbVZ5S0dFcElENGdUblZ0WW1WeUtHSXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlGTjBjbWx1WnloaEtTQStJRk4wY21sdVp5aGlLVHRjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdZMjl1YzNRZ1lXUmhjSFJsY2sxbGRHRWdQU0FvWTNSNElHRnpJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZENrdVoyVjBVMlZ4ZFdWdVkyVlRaV2R5WldkaGRHbHZiaWhjYmlBZ0lDQWdJRk4wY21sdVp5aHVZVzFsS1Z4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ2FYTkdkV3hzZVZObFozSmxaMkYwWldRZ1BWeHVJQ0FnSUNBZ1lXUmhjSFJsY2sxbGRHRWdJVDA5SUhWdVpHVm1hVzVsWkNBbUpseHVJQ0FnSUNBZ1lXUmhjSFJsY2sxbGRHRXVablZzYkhsVFpXZHlaV2RoZEdWa0lDWW1YRzRnSUNBZ0lDQmhaR0Z3ZEdWeVRXVjBZUzVqYjJ4c1pXTjBhVzl1Y3k1c1pXNW5kR2dnUGlBd08xeHVYRzRnSUNBZ1kyOXVjM1FnY21WaFpFVjRhWE4wYVc1bklEMGdZWE41Ym1NZ0tDazZJRkJ5YjIxcGMyVThVMlZ4ZFdWdVkyVk5iMlJsYkNCOElIVnVaR1ZtYVc1bFpENGdQVDRnZTF4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRjNZV2wwSUhSb2FYTXVjbVZ3Ynk1eVpXRmtLRzVoYldVZ1lYTWdjM1J5YVc1bkxDQmpkSGdwTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlRvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaGxJR2x1YzNSaGJtTmxiMllnVG05MFJtOTFibVJGY25KdmNpa2djbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ1pUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOU8xeHVYRzRnSUNBZ1kyOXVjM1FnZDNKcGRHVlFjbWwyWVhSbElEMGdZWE41Ym1NZ0tGeHVJQ0FnSUNBZ2MyVnhUVzlrWld3NklGTmxjWFZsYm1ObFRXOWtaV3dzWEc0Z0lDQWdJQ0JqYjJ4c1pXTjBhVzl1Y3pvZ2MzUnlhVzVuVzExY2JpQWdJQ0FwSUQwK0lIdGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXVkM0pwZEdWVFpYRjFaVzVqWlZSdlEyOXNiR1ZqZEdsdmJuTW9ZM1I0TENCelpYRk5iMlJsYkN3Z1kyOXNiR1ZqZEdsdmJuTXBPMXh1SUNBZ0lDQWdZM1I0TG1OaFkyaGxMbkIxZENodVlXMWxJR0Z6SUhOMGNtbHVaeXdnYzJWeFRXOWtaV3d1WTNWeWNtVnVkQ2s3WEc0Z0lDQWdmVHRjYmx4dUlDQWdJR052Ym5OMElIVndjMlZ5ZEZCMVlteHBZeUE5SUdGemVXNWpJQ2h1WlhoME9pQnpkSEpwYm1jZ2ZDQnVkVzFpWlhJZ2ZDQmlhV2RwYm5RcElEMCtJSHRjYmlBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGQyRnBkQ0IwYUdsekxuSmxjRzh1ZFhCa1lYUmxLRnh1SUNBZ0lDQWdJQ0FnSUc1bGR5QlRaWEYxWlc1alpVMXZaR1ZzS0hzZ2FXUTZJRzVoYldVc0lHTjFjbkpsYm5RNklHNWxlSFFnZlNrc1hHNGdJQ0FnSUNBZ0lDQWdZM1I0WEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOUlHTmhkR05vSUNobE9pQmhibmtwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1VnYVc1emRHRnVZMlZ2WmlCT2IzUkdiM1Z1WkVWeWNtOXlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGM1lXbDBJSFJvYVhNdWNtVndieTVqY21WaGRHVW9YRzRnSUNBZ0lDQWdJQ0FnSUNCdVpYY2dVMlZ4ZFdWdVkyVk5iMlJsYkNoN0lHbGtPaUJ1WVcxbExDQmpkWEp5Wlc1ME9pQnVaWGgwSUgwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWTNSNFhHNGdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCMGFISnZkeUJsTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDA3WEc1Y2JpQWdJQ0JqYjI1emRDQmxlR2x6ZEdsdVp5QTlJR0YzWVdsMElISmxZV1JGZUdsemRHbHVaeWdwTzF4dUlDQWdJR2xtSUNnaFpYaHBjM1JwYm1jcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhObGNVMXZaR1ZzSUQwZ2JtVjNJRk5sY1hWbGJtTmxUVzlrWld3b2V5QnBaRG9nYm1GdFpTd2dZM1Z5Y21WdWREb2daR1Z6YVhKbFpDQjlLVHRjYmlBZ0lDQWdJR2xtSUNocGMwWjFiR3g1VTJWbmNtVm5ZWFJsWkNrZ2UxeHVJQ0FnSUNBZ0lDQmhkMkZwZENCM2NtbDBaVkJ5YVhaaGRHVW9jMlZ4VFc5a1pXd3NJR0ZrWVhCMFpYSk5aWFJoSVM1amIyeHNaV04wYVc5dWN5azdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmtaWE5wY21Wa08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1kyOXVjM1FnWTNKbFlYUmxaQ0E5SUdGM1lXbDBJSFZ3YzJWeWRGQjFZbXhwWXloa1pYTnBjbVZrS1R0Y2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtVndiR2xqWVhSbFZHOVRaV2R5WldkaGRHVmtRMjlzYkdWamRHbHZibk1vWTNSNExDQmpjbVZoZEdWa0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkJoY25ObEtHTnlaV0YwWldRdVkzVnljbVZ1ZENCaGN5QmhibmtwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5RZ1BTQjBhR2x6TG5CaGNuTmxLR1Y0YVhOMGFXNW5MbU4xY25KbGJuUWdZWE1nWVc1NUtUdGNiaUFnSUNCcFppQW9JV2R5WldGMFpYSlVhR0Z1S0dSbGMybHlaV1FzSUdOMWNuSmxiblFwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWTNWeWNtVnVkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCelpYRk5iMlJsYkNBOUlHNWxkeUJUWlhGMVpXNWpaVTF2WkdWc0tIc2dhV1E2SUc1aGJXVXNJR04xY25KbGJuUTZJR1JsYzJseVpXUWdmU2s3WEc0Z0lDQWdhV1lnS0dselJuVnNiSGxUWldkeVpXZGhkR1ZrS1NCN1hHNGdJQ0FnSUNCaGQyRnBkQ0IzY21sMFpWQnlhWFpoZEdVb2MyVnhUVzlrWld3c0lHRmtZWEIwWlhKTlpYUmhJUzVqYjJ4c1pXTjBhVzl1Y3lrN1hHNGdJQ0FnSUNCc2IyY3VaR1ZpZFdjb1hHNGdJQ0FnSUNBZ0lHQlRaWEYxWlc1alpTNWxibk4xY21WQmRFeGxZWE4wSUNod2NtbDJZWFJsTFc5dWJIa3BJQ1I3Ym1GdFpYMGdZM1Z5Y21WdWREMGtlMk4xY25KbGJuUWdZWE1nWVc1NWZTQmtaWE5wY21Wa1BTUjdaR1Z6YVhKbFpDQmhjeUJoYm5sOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCa1pYTnBjbVZrTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElIVndaR0YwWldRZ1BTQmhkMkZwZENCMWNITmxjblJRZFdKc2FXTW9aR1Z6YVhKbFpDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXlaWEJzYVdOaGRHVlViMU5sWjNKbFoyRjBaV1JEYjJ4c1pXTjBhVzl1Y3loamRIZ3NJSFZ3WkdGMFpXUXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkJoY25ObEtIVndaR0YwWldRdVkzVnljbVZ1ZENCaGN5QmhibmtwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJTWlhCc2FXTmhkR1Z6SUhSb1pTQnpaWEYxWlc1alpTQjBieUJoYkd3Z2MyVm5jbVZuWVhSbFpDQmpiMnhzWldOMGFXOXVjMXh1SUNBZ0tpQkFjM1Z0YldGeWVTQlhhR1Z1SUdFZ2JXOWtaV3dnZFhObGN5QndjbWwyWVhSbFJHRjBZU0J2Y2lCemFHRnlaV1JFWVhSaElHUmxZMjl5WVhSdmNuTXNJR2wwY3lCelpYRjFaVzVqWlNCdGRYTjBJR0psWEc0Z0lDQXFJSEpsY0d4cFkyRjBaV1FnZEc4Z1lXeHNJR052Ykd4bFkzUnBiMjV6SUhSb1pTQnRiMlJsYkNCcGN5QnpkRzl5WldRZ2FXNHVJRlJvYVhNZ1pXNXpkWEpsY3lCamJHbGxiblJ6SUhkcGRHZ2dZV05qWlhOelhHNGdJQ0FxSUhSdklHOXViSGtnYjI1bElHTnZiR3hsWTNScGIyNGdZMkZ1SUhOMGFXeHNJSEpsWVdRZ2RHaGxJRzF2WkdWc0ozTWdjMlZ4ZFdWdVkyVXNJSGRvYVd4bElHTnNhV1Z1ZEhNZ2QybDBhRzkxZEZ4dUlDQWdLaUJoWTJObGMzTWdkRzhnWVc1NUlHTnZiR3hsWTNScGIyNGdkMjl1SjNRZ2MyVmxJSFJvWlNCelpYRjFaVzVqWlNCdmJpQjBhR1VnY0hWaWJHbGpJR05vWVdsdUxseHVJQ0FnS2lCQWNHRnlZVzBnZTBOdmJuUmxlSFE4WVc1NVBuMGdZM1I0SUMwZ1ZHaGxJR1Y0WldOMWRHbHZiaUJqYjI1MFpYaDBYRzRnSUNBcUlFQndZWEpoYlNCN1UyVnhkV1Z1WTJWTmIyUmxiSDBnYzJWeElDMGdWR2hsSUhObGNYVmxibU5sSUcxdlpHVnNJSFJ2SUhKbGNHeHBZMkYwWlZ4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUIzY21sMFpWTmxjWFZsYm1ObFZHOURiMnhzWldOMGFXOXVjeWhjYmlBZ0lDQmpkSGc2SUVOdmJuUmxlSFE4WVc1NVBpeGNiaUFnSUNCelpYRTZJRk5sY1hWbGJtTmxUVzlrWld3c1hHNGdJQ0FnWTI5c2JHVmpkR2x2Ym5NNklITjBjbWx1WjF0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUd4dlp5QTlJR04wZUM1c2IyZG5aWEl1Wm05eUtIUm9hWE11ZDNKcGRHVlRaWEYxWlc1alpWUnZRMjlzYkdWamRHbHZibk1wTzF4dUlDQWdJR052Ym5OMElHRmtZWEIwWlhJZ1BTQjBhR2x6TG1Ga1lYQjBaWElnWVhNZ2RXNXJibTkzYmlCaGN5QkdZV0p5YVdORGIyNTBjbUZqZEVGa1lYQjBaWEk3WEc0Z0lDQWdZMjl1YzNRZ2RHRmliR1ZPWVcxbElEMGdUVzlrWld3dWRHRmliR1ZPWVcxbEtGTmxjWFZsYm1ObFRXOWtaV3dnWVhNZ1lXNTVLVHRjYmlBZ0lDQmpiMjV6ZENCamIyMXdiM05sWkV0bGVTQTlJQ2hqZEhnZ1lYTWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwS1M1emRIVmlMbU55WldGMFpVTnZiWEJ2YzJsMFpVdGxlU2hjYmlBZ0lDQWdJSFJoWW14bFRtRnRaU3hjYmlBZ0lDQWdJRnRUZEhKcGJtY29jMlZ4TG1sa0tWMWNiaUFnSUNBcE8xeHVYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQmpiMnhzWldOMGFXOXVJRzltSUdOdmJHeGxZM1JwYjI1ektTQjdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3Y21sMllYUmxRV1JoY0hSbGNpQTlJR0ZrWVhCMFpYSXVabTl5VUhKcGRtRjBaU2hqYjJ4c1pXTjBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY21WamIzSmtJRDBnZTF4dUlDQWdJQ0FnSUNBZ0lGdERiM1ZqYUVSQ1MyVjVjeTVVUVVKTVJWMDZJSFJoWW14bFRtRnRaU3hjYmlBZ0lDQWdJQ0FnSUNCcFpEb2djMlZ4TG1sa0xGeHVJQ0FnSUNBZ0lDQWdJR04xY25KbGJuUTZJSE5sY1M1amRYSnlaVzUwTEZ4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQmhkMkZwZENCd2NtbDJZWFJsUVdSaGNIUmxjbHRjSW5CMWRGTjBZWFJsWENKZEtHTnZiWEJ2YzJWa1MyVjVMQ0J5WldOdmNtUXNJR04wZUNCaGN5QmhibmtwTzF4dUlDQWdJQ0FnSUNCc2IyY3VaR1ZpZFdjb1lGTmxjWFZsYm1ObElDUjdjMlZ4TG1sa2ZTQjNjbWwwZEdWdUlIUnZJR052Ykd4bFkzUnBiMjRnSkh0amIyeHNaV04wYVc5dWZXQXBPMXh1SUNBZ0lDQWdmU0JqWVhSamFDQW9aVG9nZFc1cmJtOTNiaWtnZTF4dUlDQWdJQ0FnSUNCc2IyY3VkMkZ5YmloY2JpQWdJQ0FnSUNBZ0lDQmdSbUZwYkdWa0lIUnZJSGR5YVhSbElITmxjWFZsYm1ObElDUjdjMlZ4TG1sa2ZTQjBieUJqYjJ4c1pXTjBhVzl1SUNSN1kyOXNiR1ZqZEdsdmJuMDZJQ1I3WlgxZ1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCeVpYQnNhV05oZEdWVWIxTmxaM0psWjJGMFpXUkRiMnhzWldOMGFXOXVjeWhjYmlBZ0lDQmpkSGc2SUVOdmJuUmxlSFE4WVc1NVBpeGNiaUFnSUNCelpYRTZJRk5sY1hWbGJtTmxUVzlrWld4Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ0x5OGdWWE5sSUdGa1lYQjBaWElnYldWMFlXUmhkR0VnYVc1emRHVmhaQ0J2WmlCamRIZ3VaMlYwVW1WaFpFTnZiR3hsWTNScGIyNXpLQ2tnWW1WallYVnpaU0IwYUdVZ1UyVnhkV1Z1WTJWY2JpQWdJQ0F2THlCamNtVmhkR1Z6SUdsMGN5QnZkMjRnWTI5dWRHVjRkQ0IyYVdFZ2JHOW5RM1I0TENCc2IzTnBibWNnWTI5c2JHVmpkR2x2Ym5NZ2MyVjBJR0o1SUdWNGRISmhZM1JUWldkeVpXZGhkR1ZrUTI5c2JHVmpkR2x2Ym5NdVhHNGdJQ0FnWTI5dWMzUWdZV1JoY0hSbGNrMWxkR0VnUFNBb1kzUjRJR0Z6SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDa3VaMlYwVTJWeGRXVnVZMlZUWldkeVpXZGhkR2x2YmloY2JpQWdJQ0FnSUZOMGNtbHVaeWh6WlhFdWFXUXBYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHbG1JQ2doWVdSaGNIUmxjazFsZEdFZ2ZId2dJV0ZrWVhCMFpYSk5aWFJoTG1OdmJHeGxZM1JwYjI1ekxteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUU5dWJIa2djbVZ3YkdsallYUmxJR1p2Y2lCdWIyNHRablZzYkhrdGMyVm5jbVZuWVhSbFpDQnRiMlJsYkhNZ0tHWjFiR3g1SUhObFozSmxaMkYwWldRZ2FYTWdhR0Z1Wkd4bFpDQnpaWEJoY21GMFpXeDVLVnh1SUNBZ0lHbG1JQ2hoWkdGd2RHVnlUV1YwWVM1bWRXeHNlVk5sWjNKbFoyRjBaV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCc2IyY2dQU0JqZEhndWJHOW5aMlZ5TG1admNpaDBhR2x6TG5KbGNHeHBZMkYwWlZSdlUyVm5jbVZuWVhSbFpFTnZiR3hsWTNScGIyNXpLVHRjYmlBZ0lDQnNiMmN1YVc1bWJ5aGNiaUFnSUNBZ0lHQlNaWEJzYVdOaGRHbHVaeUJ6WlhGMVpXNWpaU0FrZTNObGNTNXBaSDBnZEc4Z0pIdGhaR0Z3ZEdWeVRXVjBZUzVqYjJ4c1pXTjBhVzl1Y3k1c1pXNW5kR2g5SUhObFozSmxaMkYwWldRZ1kyOXNiR1ZqZEdsdmJuTTZJQ1I3WVdSaGNIUmxjazFsZEdFdVkyOXNiR1ZqZEdsdmJuTXVhbTlwYmloY0lpd2dYQ0lwZldCY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1M2NtbDBaVk5sY1hWbGJtTmxWRzlEYjJ4c1pXTjBhVzl1Y3loamRIZ3NJSE5sY1N3Z1lXUmhjSFJsY2sxbGRHRXVZMjlzYkdWamRHbHZibk1wTzF4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
|
|
@@ -177,5 +177,5 @@ class FabricStatement extends for_couchdb_2.CouchDBStatement {
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
exports.FabricStatement = FabricStatement;
|
|
180
|
-
//# sourceMappingURL=FabricContractStatement.js.map
|
|
181
|
-
//# sourceMappingURL=FabricContractStatement.js.map
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RTdGF0ZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RzL0ZhYnJpY0NvbnRyYWN0U3RhdGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGVBQWUsR0FLaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUVMLFNBQVMsRUFJVCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsWUFBWSxHQUNiLGtDQUE2QjtBQUU5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLE9BQU8sZUFBb0MsU0FBUSxnQkFJeEQ7SUFDQyxZQUNFLE9BQXlELEVBQ3pELFNBQWlDO1FBRWpDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVrQixLQUFLLENBQUMsZUFBZSxDQUN0QyxNQUFXLEVBQ1gsR0FBRyxJQUErQztRQUVsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUN6QixPQUFPLENBQ3FDLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNO1lBQ2hDLE1BQU0sSUFBSSxhQUFhLENBQ3JCLDhDQUE4QyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQ2hFLENBQUM7UUFDSixPQUFPLEtBQUss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TSxDQUFDO1lBQ25FLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksVUFBVSxDQUFDLENBQVUsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb3VjaERCQWRhcHRlcixcbiAgQ291Y2hEQkdyb3VwT3BlcmF0b3IsXG4gIENvdWNoREJLZXlzLFxuICBDb3VjaERCT3BlcmF0b3IsXG4gIENvdWNoREJRdWVyeUxpbWl0LFxuICBNYW5nb09wZXJhdG9yLFxuICBNYW5nb1F1ZXJ5LFxuICBNYW5nb1NlbGVjdG9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0Q29udGV4dCB9IGZyb20gXCIuL0NvbnRyYWN0Q29udGV4dFwiO1xuaW1wb3J0IHsgQ291Y2hEQlN0YXRlbWVudCB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7XG4gIEFkYXB0ZXJGbGFncyxcbiAgQ29uZGl0aW9uLFxuICBDb250ZXh0dWFsQXJncyxcbiAgTWF5YmVDb250ZXh0dWFsQXJnLFxuICBPcmRlckRpcmVjdGlvbixcbiAgUXVlcnlFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHtcbiAgYXBwbHlNaXJyb3JGbGFncyxcbiAgYXBwbHlTZWdyZWdhdGlvbkZsYWdzLFxuICBleHRyYWN0TXNwSWQsXG59IGZyb20gXCIuLi9zaGFyZWQvZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTdGF0ZW1lbnQgd3JhcHBlciBmb3IgZXhlY3V0aW5nIE1hbmdvIHF1ZXJpZXMgd2l0aGluIEZhYnJpYyBjb250cmFjdHNcbiAqIEBzdW1tYXJ5IEJyaWRnZXMgQ291Y2hEQi1zdHlsZSBxdWVyaWVzIHRvIEZhYnJpYyB2aWEgdGhlIEZhYnJpY0NvbnRyYWN0QWRhcHRlciwgaGFuZGxpbmcgaWRlbnRpdHkgYW5kIHByaW1hcnkga2V5IHByb2plY3Rpb24gd2hlbiBuZWVkZWQuXG4gKiBAdGVtcGxhdGUgTSAtIE1vZGVsIHR5cGUgdGhpcyBzdGF0ZW1lbnQgb3BlcmF0ZXMgb25cbiAqIEB0ZW1wbGF0ZSBSIC0gUmVzdWx0IHR5cGUgcmV0dXJuZWQgYnkgdGhlIHN0YXRlbWVudFxuICogQHBhcmFtIHtGYWJyaWNDb250cmFjdEFkYXB0ZXJ9IGFkYXB0ZXIgLSBUaGUgRmFicmljIGNvbnRyYWN0IGFkYXB0ZXIgdXNlZCBmb3IgcmF3IGV4ZWN1dGlvblxuICogQHBhcmFtIHtGYWJyaWNDb250cmFjdENvbnRleHR9IGN0eCAtIFRoZSBGYWJyaWMgY29udHJhY3QgY29udGV4dCBjYXJyeWluZyBzdHViIGFuZCBpZGVudGl0eVxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBGYWJyaWNTdGF0ZW1lbnRcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzdG10ID0gbmV3IEZhYnJpY1N0YXRlbWVudDxNeU1vZGVsLCBNeU1vZGVsW10+KGFkYXB0ZXIsIGN0eCk7XG4gKiBjb25zdCByZXN1bHQgPSBhd2FpdCBzdG10LnJhdzxNeU1vZGVsW10+KHsgc2VsZWN0b3I6IHsgdHlwZTogJ015TW9kZWwnIH0gfSk7XG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBTdGF0ZW1lbnRcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlclxuICogICBwYXJ0aWNpcGFudCBMZWRnZXJcbiAqICAgQXBwLT4+U3RhdGVtZW50OiByYXcoeyBzZWxlY3RvciB9KVxuICogICBTdGF0ZW1lbnQtPj5BZGFwdGVyOiBhZGFwdGVyLnJhdyhtYW5nbywgdHJ1ZSwgY3R4KVxuICogICBBZGFwdGVyLT4+TGVkZ2VyOiBFdmFsdWF0ZSBxdWVyeVxuICogICBBZGFwdGVyLS0+PlN0YXRlbWVudDogcm93c1xuICogICBTdGF0ZW1lbnQtLT4+QXBwOiBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY1N0YXRlbWVudDxNIGV4dGVuZHMgTW9kZWwsIFI+IGV4dGVuZHMgQ291Y2hEQlN0YXRlbWVudDxcbiAgTSxcbiAgQ291Y2hEQkFkYXB0ZXI8YW55LCB2b2lkLCBGYWJyaWNDb250cmFjdENvbnRleHQ+LFxuICBSXG4+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgYWRhcHRlcjogQ291Y2hEQkFkYXB0ZXI8YW55LCB2b2lkLCBGYWJyaWNDb250cmFjdENvbnRleHQ+LFxuICAgIG92ZXJyaWRlcz86IFBhcnRpYWw8QWRhcHRlckZsYWdzPlxuICApIHtcbiAgICBzdXBlcihhZGFwdGVyKTtcbiAgICBpZiAob3ZlcnJpZGVzKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlcyA9IG92ZXJyaWRlcztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZXhlY3V0aW9uUHJlZml4KFxuICAgIG1ldGhvZDogYW55LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICkge1xuICAgIGNvbnN0IG5ld0FyZ3MgPSBhcmdzLmZpbHRlcihcbiAgICAgIEJvb2xlYW5cbiAgICApIGFzIE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQ+O1xuICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gbmV3QXJncy5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYFJlY2VpdmVkIGFuIHVuZGVmaW5lZCBpbiB0aGUgcGFnaW5hdG9yIGZvciAke21ldGhvZH06ICR7YXJnc31gXG4gICAgICApO1xuICAgIHJldHVybiBzdXBlci5leGVjdXRpb25QcmVmaXgobWV0aG9kLCAuLi5hcmdzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBidWlsZCgpOiBNYW5nb1F1ZXJ5IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5idWlsZCk7XG4gICAgdGhpcy5tYW51YWxBZ2dyZWdhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICBjb25zdCBhZ2dyZWdhdGVJbmZvID0gdGhpcy5idWlsZEFnZ3JlZ2F0ZUluZm8oKTtcbiAgICBpZiAoYWdncmVnYXRlSW5mbykge1xuICAgICAgaWYgKHRoaXMuc2hvdWxkVXNlTWFudWFsQWdncmVnYXRpb24oKSkge1xuICAgICAgICB0aGlzLm1hbnVhbEFnZ3JlZ2F0aW9uID0gYWdncmVnYXRlSW5mbztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUFnZ3JlZ2F0ZVF1ZXJ5KGFnZ3JlZ2F0ZUluZm8pO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWxlY3RvcnM6IE1hbmdvU2VsZWN0b3IgPSB7fTtcbiAgICBzZWxlY3RvcnNbQ291Y2hEQktleXMuVEFCTEVdID0ge307XG4gICAgc2VsZWN0b3JzW0NvdWNoREJLZXlzLlRBQkxFXSA9IE1vZGVsLnRhYmxlTmFtZSh0aGlzLmZyb21TZWxlY3Rvcik7XG4gICAgY29uc3QgcXVlcnk6IE1hbmdvUXVlcnkgPSB7IHNlbGVjdG9yOiBzZWxlY3RvcnMgfTtcbiAgICBpZiAodGhpcy5zZWxlY3RTZWxlY3RvcikgcXVlcnkuZmllbGRzID0gdGhpcy5zZWxlY3RTZWxlY3RvciBhcyBzdHJpbmdbXTtcblxuICAgIGlmICh0aGlzLndoZXJlQ29uZGl0aW9uKSB7XG4gICAgICBjb25zdCBjb25kaXRpb246IE1hbmdvU2VsZWN0b3IgPSB0aGlzLnBhcnNlQ29uZGl0aW9uKFxuICAgICAgICBDb25kaXRpb24uYW5kKFxuICAgICAgICAgIHRoaXMud2hlcmVDb25kaXRpb24sXG4gICAgICAgICAgQ29uZGl0aW9uLmF0dHJpYnV0ZTxNPihDb3VjaERCS2V5cy5UQUJMRSBhcyBrZXlvZiBNKS5lcShcbiAgICAgICAgICAgIHF1ZXJ5LnNlbGVjdG9yW0NvdWNoREJLZXlzLlRBQkxFXVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKS5zZWxlY3RvcjtcbiAgICAgIGNvbnN0IHNlbGVjdG9yS2V5cyA9IE9iamVjdC5rZXlzKGNvbmRpdGlvbikgYXMgTWFuZ29PcGVyYXRvcltdO1xuICAgICAgaWYgKFxuICAgICAgICBzZWxlY3RvcktleXMubGVuZ3RoID09PSAxICYmXG4gICAgICAgIE9iamVjdC52YWx1ZXMoQ291Y2hEQkdyb3VwT3BlcmF0b3IpLmluZGV4T2Yoc2VsZWN0b3JLZXlzWzBdKSAhPT0gLTFcbiAgICAgIClcbiAgICAgICAgc3dpdGNoIChzZWxlY3RvcktleXNbMF0pIHtcbiAgICAgICAgICBjYXNlIENvdWNoREJHcm91cE9wZXJhdG9yLkFORDpcbiAgICAgICAgICAgIGNvbmRpdGlvbltDb3VjaERCR3JvdXBPcGVyYXRvci5BTkRdID0gW1xuICAgICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbltDb3VjaERCR3JvdXBPcGVyYXRvci5BTkRdIGFzIE1hbmdvU2VsZWN0b3JcbiAgICAgICAgICAgICAgKS5yZWR1Y2UoKGFjY3VtOiBNYW5nb1NlbGVjdG9yW10sIHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbCk7XG4gICAgICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoICE9PSAxKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIlRvbyBtYW55IGtleXMgaW4gcXVlcnkgc2VsZWN0b3IuIHNob3VsZCBiZSBvbmVcIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBrID0ga2V5c1swXTtcbiAgICAgICAgICAgICAgICBpZiAoayA9PT0gQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EKVxuICAgICAgICAgICAgICAgICAgYWNjdW0ucHVzaCguLi4odmFsW2tdIGFzIGFueVtdKSk7XG4gICAgICAgICAgICAgICAgZWxzZSBhY2N1bS5wdXNoKHZhbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICAgICAgICB9LCBbXSksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3IgPSBjb25kaXRpb247XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIENvdWNoREJHcm91cE9wZXJhdG9yLk9SOiB7XG4gICAgICAgICAgICBjb25zdCBzOiBSZWNvcmQ8YW55LCBhbnk+ID0ge307XG4gICAgICAgICAgICBzW0NvdWNoREJHcm91cE9wZXJhdG9yLkFORF0gPSBbXG4gICAgICAgICAgICAgIGNvbmRpdGlvbixcbiAgICAgICAgICAgICAgLi4uT2JqZWN0LmVudHJpZXMocXVlcnkuc2VsZWN0b3IpLm1hcCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPGFueSwgYW55PiA9IHt9O1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIHF1ZXJ5LnNlbGVjdG9yID0gcztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBzaG91bGQgYmUgaW1wb3NzaWJsZVwiKTtcbiAgICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbmRpdGlvbikuZm9yRWFjaCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgIGlmIChxdWVyeS5zZWxlY3RvcltrZXldKVxuICAgICAgICAgICAgbG9nLndhcm4oXG4gICAgICAgICAgICAgIGBBICR7a2V5fSBxdWVyeSBwYXJhbSBpcyBhYm91dCB0byBiZSBvdmVycmlkZGVuOiAke3F1ZXJ5LnNlbGVjdG9yW2tleV19IGJ5ICR7dmFsfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgcXVlcnkuc2VsZWN0b3Jba2V5XSA9IHZhbDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3JkZXJCeVNlbGVjdG9ycz8ubGVuZ3RoKSB7XG4gICAgICBxdWVyeS5zb3J0ID0gcXVlcnkuc29ydCB8fCBbXTtcbiAgICAgIHF1ZXJ5LnNlbGVjdG9yID0gcXVlcnkuc2VsZWN0b3IgfHwgKHt9IGFzIE1hbmdvU2VsZWN0b3IpO1xuICAgICAgZm9yIChjb25zdCBbc2VsZWN0b3JLZXksIGRpcmVjdGlvbl0gb2YgdGhpcy5vcmRlckJ5U2VsZWN0b3JzKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gc2VsZWN0b3JLZXkgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCByZWM6IFJlY29yZDxzdHJpbmcsIE9yZGVyRGlyZWN0aW9uPiA9IHt9O1xuICAgICAgICByZWNbc2VsZWN0b3JdID0gZGlyZWN0aW9uIGFzIE9yZGVyRGlyZWN0aW9uO1xuICAgICAgICAocXVlcnkuc29ydCBhcyBSZWNvcmQ8c3RyaW5nLCBPcmRlckRpcmVjdGlvbj5bXSkucHVzaChyZWMpO1xuICAgICAgICBpZiAoIXF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSkge1xuICAgICAgICAgIHF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSA9IHt9IGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgICAgICAgKHF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSBhcyBNYW5nb1NlbGVjdG9yKVtDb3VjaERCT3BlcmF0b3IuQklHR0VSXSA9XG4gICAgICAgICAgICBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGFzTWFudWFsQWdncmVnYXRlID0gISF0aGlzLm1hbnVhbEFnZ3JlZ2F0aW9uO1xuICAgIGlmICh0aGlzLmxpbWl0U2VsZWN0b3IpIHtcbiAgICAgIHF1ZXJ5LmxpbWl0ID0gdGhpcy5saW1pdFNlbGVjdG9yO1xuICAgIH0gZWxzZSBpZiAoIWhhc01hbnVhbEFnZ3JlZ2F0ZSkge1xuICAgICAgLy8gbG9nLndhcm4oXG4gICAgICAvLyAgIGBObyBsaW1pdCBzZWxlY3RvciBkZWZpbmVkLiBVc2luZyBkZWZhdWx0IGNvdWNoZGIgbGltaXQgb2YgJHtDb3VjaERCUXVlcnlMaW1pdH1gXG4gICAgICAvLyApO1xuICAgICAgLy8gcXVlcnkubGltaXQgPSBDb3VjaERCUXVlcnlMaW1pdDtcbiAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vZmZzZXRTZWxlY3RvcikgcXVlcnkuc2tpcCA9IHRoaXMub2Zmc2V0U2VsZWN0b3I7XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBleGVjdXRlKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8Uj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZXhlY3V0ZSk7XG5cbiAgICBjb25zdCBtc3AgPSBleHRyYWN0TXNwSWQoY3R4LmlkZW50aXR5KTtcblxuICAgIGNvbnN0IHsgcHJpdmF0ZUNvbHMsIHNoYXJlZENvbHMgfSA9IE1vZGVsLmNvbGxlY3Rpb25zRm9yKHRoaXMuZnJvbVNlbGVjdG9yKTtcbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgIFsuLi5wcml2YXRlQ29scywgLi4uc2hhcmVkQ29sc10ubWFwKChjKSA9PlxuICAgICAgICAgICAgdHlwZW9mIGMgPT09IFwic3RyaW5nXCIgPyBjIDogYyh0aGlzLmZyb21TZWxlY3RvciwgbXNwLCBjdHgpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApLFxuICAgIF07XG5cbiAgICBhcHBseVNlZ3JlZ2F0aW9uRmxhZ3MobmV3IHRoaXMuZnJvbVNlbGVjdG9yKCksIGNvbGxlY3Rpb25zLCBjdHgpO1xuICAgIGF3YWl0IGFwcGx5TWlycm9yRmxhZ3ModGhpcy5mcm9tU2VsZWN0b3IsIG1zcCwgY3R4KTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5wcmVwYXJlZCkgcmV0dXJuIHRoaXMuZXhlY3V0ZVByZXBhcmVkKC4uLihhcmdzIGFzIGFueSkpO1xuICAgICAgbG9nLnNpbGx5KGBCdWlsZGluZyByYXcgc3RhdGVtZW50Li4uYCk7XG4gICAgICBjb25zdCBxdWVyeSA9IHRoaXMuYnVpbGQoKTtcbiAgICAgIGxvZy5zaWxseShgZXhlY3V0aW5nIHJhdyBzdGF0ZW1lbnRgKTtcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSAoYXdhaXQgdGhpcy5yYXc8Uj4oXG4gICAgICAgIHF1ZXJ5LFxuICAgICAgICB0cnVlLFxuICAgICAgICAuLi4oY3R4QXJncyBhcyBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+KVxuICAgICAgKSkgYXMgdW5rbm93biBhcyBSO1xuICAgICAgaWYgKHRoaXMuaGFzQWdncmVnYXRpb24oKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5zZWxlY3RTZWxlY3Rvcikge1xuICAgICAgICBpZiAodGhpcy5ncm91cEJ5U2VsZWN0b3JzPy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBncm91cGVkID0gdGhpcy5yZXZlcnRHcm91cGVkUmVzdWx0cyhcbiAgICAgICAgICAgIHJlc3VsdHMsXG4gICAgICAgICAgICAocikgPT4gdGhpcy5wcm9jZXNzUmVjb3JkKHIsIGN0eClcbiAgICAgICAgICApIGFzIFI7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmFwcGx5QWZ0ZXJIYW5kbGVyc1RvUmVzdWx0KGdyb3VwZWQsIGN0eCkpIGFzIFI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0cykpIHtcbiAgICAgICAgICBjb25zdCBtYXBwZWQgPSByZXN1bHRzLm1hcCgocikgPT4gdGhpcy5wcm9jZXNzUmVjb3JkKHIsIGN0eCkpIGFzIHVua25vd24gYXMgUjtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuYXBwbHlBZnRlckhhbmRsZXJzVG9SZXN1bHQobWFwcGVkLCBjdHgpKSBhcyBSO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNpbmdsZSA9IHRoaXMucHJvY2Vzc1JlY29yZChyZXN1bHRzLCBjdHgpIGFzIHVua25vd24gYXMgUjtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmFwcGx5QWZ0ZXJIYW5kbGVyc1RvUmVzdWx0KHNpbmdsZSwgY3R4KSkgYXMgUjtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RTdGF0ZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJGYWJyaWNDb250cmFjdFN0YXRlbWVudC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBNEY7QUFDNUYseUVBQXVEO0FBQ3ZELHVEQUF5RDtBQUN6RCx5Q0FBd0Q7QUFDeEQsMkRBQXdEO0FBQ3hELDZEQUFtRztBQUNuRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsOEJBQWdCO0lBQ2pELFlBQVksT0FBTyxFQUFFLFNBQVM7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNO1lBQzlCLE1BQU0sSUFBSSw2QkFBYSxDQUFDLDhDQUE4QyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RixPQUFPLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELEtBQUs7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNoRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLElBQUks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QUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3RGLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDakUsQ0FBQztnQkFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDekIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDOUQsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNoRSxDQUFDO2dCQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEUsQ0FBQztZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1AsTUFBTSxJQUFJLGlCQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQWhKRCwwQ0FnSkM7QUFDRCxzcG5CQUFzcG5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ291Y2hEQkdyb3VwT3BlcmF0b3IsIENvdWNoREJLZXlzLCBDb3VjaERCT3BlcmF0b3IsIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDb3VjaERCU3RhdGVtZW50IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgQ29uZGl0aW9uLCBRdWVyeUVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgYXBwbHlNaXJyb3JGbGFncywgYXBwbHlTZWdyZWdhdGlvbkZsYWdzLCBleHRyYWN0TXNwSWQsIH0gZnJvbSBcIi4vLi4vc2hhcmVkL2RlY29yYXRvcnMuanNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0YXRlbWVudCB3cmFwcGVyIGZvciBleGVjdXRpbmcgTWFuZ28gcXVlcmllcyB3aXRoaW4gRmFicmljIGNvbnRyYWN0c1xuICogQHN1bW1hcnkgQnJpZGdlcyBDb3VjaERCLXN0eWxlIHF1ZXJpZXMgdG8gRmFicmljIHZpYSB0aGUgRmFicmljQ29udHJhY3RBZGFwdGVyLCBoYW5kbGluZyBpZGVudGl0eSBhbmQgcHJpbWFyeSBrZXkgcHJvamVjdGlvbiB3aGVuIG5lZWRlZC5cbiAqIEB0ZW1wbGF0ZSBNIC0gTW9kZWwgdHlwZSB0aGlzIHN0YXRlbWVudCBvcGVyYXRlcyBvblxuICogQHRlbXBsYXRlIFIgLSBSZXN1bHQgdHlwZSByZXR1cm5lZCBieSB0aGUgc3RhdGVtZW50XG4gKiBAcGFyYW0ge0ZhYnJpY0NvbnRyYWN0QWRhcHRlcn0gYWRhcHRlciAtIFRoZSBGYWJyaWMgY29udHJhY3QgYWRhcHRlciB1c2VkIGZvciByYXcgZXhlY3V0aW9uXG4gKiBAcGFyYW0ge0ZhYnJpY0NvbnRyYWN0Q29udGV4dH0gY3R4IC0gVGhlIEZhYnJpYyBjb250cmFjdCBjb250ZXh0IGNhcnJ5aW5nIHN0dWIgYW5kIGlkZW50aXR5XG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEZhYnJpY1N0YXRlbWVudFxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHN0bXQgPSBuZXcgRmFicmljU3RhdGVtZW50PE15TW9kZWwsIE15TW9kZWxbXT4oYWRhcHRlciwgY3R4KTtcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0bXQucmF3PE15TW9kZWxbXT4oeyBzZWxlY3RvcjogeyB0eXBlOiAnTXlNb2RlbCcgfSB9KTtcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQXBwXG4gKiAgIHBhcnRpY2lwYW50IFN0YXRlbWVudFxuICogICBwYXJ0aWNpcGFudCBBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IExlZGdlclxuICogICBBcHAtPj5TdGF0ZW1lbnQ6IHJhdyh7IHNlbGVjdG9yIH0pXG4gKiAgIFN0YXRlbWVudC0+PkFkYXB0ZXI6IGFkYXB0ZXIucmF3KG1hbmdvLCB0cnVlLCBjdHgpXG4gKiAgIEFkYXB0ZXItPj5MZWRnZXI6IEV2YWx1YXRlIHF1ZXJ5XG4gKiAgIEFkYXB0ZXItLT4+U3RhdGVtZW50OiByb3dzXG4gKiAgIFN0YXRlbWVudC0tPj5BcHA6IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgRmFicmljU3RhdGVtZW50IGV4dGVuZHMgQ291Y2hEQlN0YXRlbWVudCB7XG4gICAgY29uc3RydWN0b3IoYWRhcHRlciwgb3ZlcnJpZGVzKSB7XG4gICAgICAgIHN1cGVyKGFkYXB0ZXIpO1xuICAgICAgICBpZiAob3ZlcnJpZGVzKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJyaWRlcyA9IG92ZXJyaWRlcztcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBleGVjdXRpb25QcmVmaXgobWV0aG9kLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IG5ld0FyZ3MgPSBhcmdzLmZpbHRlcihCb29sZWFuKTtcbiAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9PSBuZXdBcmdzLmxlbmd0aClcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBSZWNlaXZlZCBhbiB1bmRlZmluZWQgaW4gdGhlIHBhZ2luYXRvciBmb3IgJHttZXRob2R9OiAke2FyZ3N9YCk7XG4gICAgICAgIHJldHVybiBzdXBlci5leGVjdXRpb25QcmVmaXgobWV0aG9kLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYnVpbGQoKSB7XG4gICAgICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmJ1aWxkKTtcbiAgICAgICAgdGhpcy5tYW51YWxBZ2dyZWdhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgYWdncmVnYXRlSW5mbyA9IHRoaXMuYnVpbGRBZ2dyZWdhdGVJbmZvKCk7XG4gICAgICAgIGlmIChhZ2dyZWdhdGVJbmZvKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRVc2VNYW51YWxBZ2dyZWdhdGlvbigpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYW51YWxBZ2dyZWdhdGlvbiA9IGFnZ3JlZ2F0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVBZ2dyZWdhdGVRdWVyeShhZ2dyZWdhdGVJbmZvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWxlY3RvcnMgPSB7fTtcbiAgICAgICAgc2VsZWN0b3JzW0NvdWNoREJLZXlzLlRBQkxFXSA9IHt9O1xuICAgICAgICBzZWxlY3RvcnNbQ291Y2hEQktleXMuVEFCTEVdID0gTW9kZWwudGFibGVOYW1lKHRoaXMuZnJvbVNlbGVjdG9yKTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSB7IHNlbGVjdG9yOiBzZWxlY3RvcnMgfTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0U2VsZWN0b3IpXG4gICAgICAgICAgICBxdWVyeS5maWVsZHMgPSB0aGlzLnNlbGVjdFNlbGVjdG9yO1xuICAgICAgICBpZiAodGhpcy53aGVyZUNvbmRpdGlvbikge1xuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uID0gdGhpcy5wYXJzZUNvbmRpdGlvbihDb25kaXRpb24uYW5kKHRoaXMud2hlcmVDb25kaXRpb24sIENvbmRpdGlvbi5hdHRyaWJ1dGUoQ291Y2hEQktleXMuVEFCTEUpLmVxKHF1ZXJ5LnNlbGVjdG9yW0NvdWNoREJLZXlzLlRBQkxFXSkpKS5zZWxlY3RvcjtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdG9yS2V5cyA9IE9iamVjdC5rZXlzKGNvbmRpdGlvbik7XG4gICAgICAgICAgICBpZiAoc2VsZWN0b3JLZXlzLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoQ291Y2hEQkdyb3VwT3BlcmF0b3IpLmluZGV4T2Yoc2VsZWN0b3JLZXlzWzBdKSAhPT0gLTEpXG4gICAgICAgICAgICAgICAgc3dpdGNoIChzZWxlY3RvcktleXNbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb3VjaERCR3JvdXBPcGVyYXRvci5BTkQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25bQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKGNvbmRpdGlvbltDb3VjaERCR3JvdXBPcGVyYXRvci5BTkRdKS5yZWR1Y2UoKGFjY3VtLCB2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCAhPT0gMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRvbyBtYW55IGtleXMgaW4gcXVlcnkgc2VsZWN0b3IuIHNob3VsZCBiZSBvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGsgPSBrZXlzWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoayA9PT0gQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjdW0ucHVzaCguLi52YWxba10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2N1bS5wdXNoKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBbXSksXG4gICAgICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3IgPSBjb25kaXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb3VjaERCR3JvdXBPcGVyYXRvci5PUjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgc1tDb3VjaERCR3JvdXBPcGVyYXRvci5BTkRdID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5PYmplY3QuZW50cmllcyhxdWVyeS5zZWxlY3RvcikubWFwKChba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeS5zZWxlY3RvciA9IHM7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBzaG91bGQgYmUgaW1wb3NzaWJsZVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhjb25kaXRpb24pLmZvckVhY2goKFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXJ5LnNlbGVjdG9yW2tleV0pXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybihgQSAke2tleX0gcXVlcnkgcGFyYW0gaXMgYWJvdXQgdG8gYmUgb3ZlcnJpZGRlbjogJHtxdWVyeS5zZWxlY3RvcltrZXldfSBieSAke3ZhbH1gKTtcbiAgICAgICAgICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3Jba2V5XSA9IHZhbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcmRlckJ5U2VsZWN0b3JzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHF1ZXJ5LnNvcnQgPSBxdWVyeS5zb3J0IHx8IFtdO1xuICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3IgPSBxdWVyeS5zZWxlY3RvciB8fCB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW3NlbGVjdG9yS2V5LCBkaXJlY3Rpb25dIG9mIHRoaXMub3JkZXJCeVNlbGVjdG9ycykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdG9yID0gc2VsZWN0b3JLZXk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjID0ge307XG4gICAgICAgICAgICAgICAgcmVjW3NlbGVjdG9yXSA9IGRpcmVjdGlvbjtcbiAgICAgICAgICAgICAgICBxdWVyeS5zb3J0LnB1c2gocmVjKTtcbiAgICAgICAgICAgICAgICBpZiAoIXF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSkge1xuICAgICAgICAgICAgICAgICAgICBxdWVyeS5zZWxlY3RvcltzZWxlY3Rvcl0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3Jbc2VsZWN0b3JdW0NvdWNoREJPcGVyYXRvci5CSUdHRVJdID1cbiAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhhc01hbnVhbEFnZ3JlZ2F0ZSA9ICEhdGhpcy5tYW51YWxBZ2dyZWdhdGlvbjtcbiAgICAgICAgaWYgKHRoaXMubGltaXRTZWxlY3Rvcikge1xuICAgICAgICAgICAgcXVlcnkubGltaXQgPSB0aGlzLmxpbWl0U2VsZWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWhhc01hbnVhbEFnZ3JlZ2F0ZSkge1xuICAgICAgICAgICAgLy8gbG9nLndhcm4oXG4gICAgICAgICAgICAvLyAgIGBObyBsaW1pdCBzZWxlY3RvciBkZWZpbmVkLiBVc2luZyBkZWZhdWx0IGNvdWNoZGIgbGltaXQgb2YgJHtDb3VjaERCUXVlcnlMaW1pdH1gXG4gICAgICAgICAgICAvLyApO1xuICAgICAgICAgICAgLy8gcXVlcnkubGltaXQgPSBDb3VjaERCUXVlcnlMaW1pdDtcbiAgICAgICAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vZmZzZXRTZWxlY3RvcilcbiAgICAgICAgICAgIHF1ZXJ5LnNraXAgPSB0aGlzLm9mZnNldFNlbGVjdG9yO1xuICAgICAgICByZXR1cm4gcXVlcnk7XG4gICAgfVxuICAgIGFzeW5jIGV4ZWN1dGUoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4LCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmV4ZWN1dGUpO1xuICAgICAgICBjb25zdCBtc3AgPSBleHRyYWN0TXNwSWQoY3R4LmlkZW50aXR5KTtcbiAgICAgICAgY29uc3QgeyBwcml2YXRlQ29scywgc2hhcmVkQ29scyB9ID0gTW9kZWwuY29sbGVjdGlvbnNGb3IodGhpcy5mcm9tU2VsZWN0b3IpO1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9ucyA9IFtcbiAgICAgICAgICAgIC4uLm5ldyBTZXQoYXdhaXQgUHJvbWlzZS5hbGwoWy4uLnByaXZhdGVDb2xzLCAuLi5zaGFyZWRDb2xzXS5tYXAoKGMpID0+IHR5cGVvZiBjID09PSBcInN0cmluZ1wiID8gYyA6IGModGhpcy5mcm9tU2VsZWN0b3IsIG1zcCwgY3R4KSkpKSxcbiAgICAgICAgXTtcbiAgICAgICAgYXBwbHlTZWdyZWdhdGlvbkZsYWdzKG5ldyB0aGlzLmZyb21TZWxlY3RvcigpLCBjb2xsZWN0aW9ucywgY3R4KTtcbiAgICAgICAgYXdhaXQgYXBwbHlNaXJyb3JGbGFncyh0aGlzLmZyb21TZWxlY3RvciwgbXNwLCBjdHgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJlcGFyZWQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVByZXBhcmVkKC4uLmFyZ3MpO1xuICAgICAgICAgICAgbG9nLnNpbGx5KGBCdWlsZGluZyByYXcgc3RhdGVtZW50Li4uYCk7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMuYnVpbGQoKTtcbiAgICAgICAgICAgIGxvZy5zaWxseShgZXhlY3V0aW5nIHJhdyBzdGF0ZW1lbnRgKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSAoYXdhaXQgdGhpcy5yYXcocXVlcnksIHRydWUsIC4uLmN0eEFyZ3MpKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0FnZ3JlZ2F0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RTZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwQnlTZWxlY3RvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cGVkID0gdGhpcy5yZXZlcnRHcm91cGVkUmVzdWx0cyhyZXN1bHRzLCAocikgPT4gdGhpcy5wcm9jZXNzUmVjb3JkKHIsIGN0eCkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuYXBwbHlBZnRlckhhbmRsZXJzVG9SZXN1bHQoZ3JvdXBlZCwgY3R4KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcHBlZCA9IHJlc3VsdHMubWFwKChyKSA9PiB0aGlzLnByb2Nlc3NSZWNvcmQociwgY3R4KSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5hcHBseUFmdGVySGFuZGxlcnNUb1Jlc3VsdChtYXBwZWQsIGN0eCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzaW5nbGUgPSB0aGlzLnByb2Nlc3NSZWNvcmQocmVzdWx0cywgY3R4KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuYXBwbHlBZnRlckhhbmRsZXJzVG9SZXN1bHQoc2luZ2xlLCBjdHgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJtRmljbWxqUTI5dWRISmhZM1JUZEdGMFpXMWxiblF1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOXpjbU12WTI5dWRISmhZM1J6TDBaaFluSnBZME52Ym5SeVlXTjBVM1JoZEdWdFpXNTBMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGRlRDeHZRa0ZCYjBJc1JVRkRjRUlzVjBGQlZ5eEZRVU5ZTEdWQlFXVXNSMEZMYUVJc1RVRkJUU3gxUWtGQmRVSXNRMEZCUXp0QlFVTXZRaXhQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGRmRrUXNUMEZCVHl4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEUxQlFVMHNkVUpCUVhWQ0xFTkJRVU03UVVGRGVrUXNUMEZCVHl4RlFVVk1MRk5CUVZNc1JVRkpWQ3hWUVVGVkxFZEJRMWdzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVONFFpeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZGZUVRc1QwRkJUeXhGUVVOTUxHZENRVUZuUWl4RlFVTm9RaXh4UWtGQmNVSXNSVUZEY2tJc1dVRkJXU3hIUVVOaUxHdERRVUUyUWp0QlFVVTVRanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN1IwRjFRa2M3UVVGRFNDeE5RVUZOTEU5QlFVOHNaVUZCYjBNc1UwRkJVU3huUWtGSmVFUTdTVUZEUXl4WlFVTkZMRTlCUVhsRUxFVkJRM3BFTEZOQlFXbERPMUZCUldwRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTm1MRWxCUVVrc1UwRkJVeXhGUVVGRkxFTkJRVU03V1VGRFpDeEpRVUZKTEVOQlFVTXNVMEZCVXl4SFFVRkhMRk5CUVZNc1EwRkJRenRSUVVNM1FpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVnJRaXhMUVVGTExFTkJRVU1zWlVGQlpTeERRVU4wUXl4TlFVRlhMRVZCUTFnc1IwRkJSeXhKUVVFclF6dFJRVVZzUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVU42UWl4UFFVRlBMRU5CUTNGRExFTkJRVU03VVVGREwwTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hMUVVGTExFOUJRVThzUTBGQlF5eE5RVUZOTzFsQlEyaERMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRM0pDTERoRFFVRTRReXhOUVVGTkxFdEJRVXNzU1VGQlNTeEZRVUZGTEVOQlEyaEZMRU5CUVVNN1VVRkRTaXhQUVVGUExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGFFUXNRMEZCUXp0SlFVVnJRaXhMUVVGTE8xRkJRM1JDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOeVF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzVTBGQlV5eERRVUZETzFGQlEyNURMRTFCUVUwc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hEUVVGRE8xRkJRMmhFTEVsQlFVa3NZVUZCWVN4RlFVRkZMRU5CUVVNN1dVRkRiRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNNRUpCUVRCQ0xFVkJRVVVzUlVGQlJTeERRVUZETzJkQ1FVTjBReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWRCUVVjc1lVRkJZU3hEUVVGRE8xbEJRM3BETEVOQlFVTTdhVUpCUVUwc1EwRkJRenRuUWtGRFRpeFBRVUZQTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0WlFVTnNSQ3hEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVU5FTEUxQlFVMHNVMEZCVXl4SFFVRnJRaXhGUVVGRkxFTkJRVU03VVVGRGNFTXNVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEYkVNc1UwRkJVeXhEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVTnNSU3hOUVVGTkxFdEJRVXNzUjBGQlpTeEZRVUZGTEZGQlFWRXNSVUZCUlN4VFFVRlRMRVZCUVVVc1EwRkJRenRSUVVOc1JDeEpRVUZKTEVsQlFVa3NRMEZCUXl4alFVRmpPMWxCUVVVc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCTUVJc1EwRkJRenRSUVVWNFJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRaUVVONFFpeE5RVUZOTEZOQlFWTXNSMEZCYTBJc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGRGJFUXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkRXQ3hKUVVGSkxFTkJRVU1zWTBGQll5eEZRVU51UWl4VFFVRlRMRU5CUVVNc1UwRkJVeXhEUVVGSkxGZEJRVmNzUTBGQlF5eExRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVOeVJDeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGRGJFTXNRMEZEUml4RFFVTkdMRU5CUVVNc1VVRkJVU3hEUVVGRE8xbEJRMWdzVFVGQlRTeFpRVUZaTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVzlDTEVOQlFVTTdXVUZETDBRc1NVRkRSU3haUVVGWkxFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTTdaMEpCUTNwQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzJkQ1FVVnVSU3hSUVVGUkxGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMjlDUVVONFFpeExRVUZMTEc5Q1FVRnZRaXhEUVVGRExFZEJRVWM3ZDBKQlF6TkNMRk5CUVZNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSenMwUWtGRGNFTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVOa0xGTkJRVk1zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhIUVVGSExFTkJRV3RDTEVOQlEzSkVMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUzBGQmMwSXNSVUZCUlN4SFFVRlJMRVZCUVVVc1JVRkJSVHRuUTBGRE5VTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0blEwRkRPVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNN2IwTkJRMjVDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUTJJc1owUkJRV2RFTEVOQlEycEVMRU5CUVVNN1owTkJRMG9zVFVGQlRTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yZERRVU5zUWl4SlFVRkpMRU5CUVVNc1MwRkJTeXh2UWtGQmIwSXNRMEZCUXl4SFFVRkhPMjlEUVVOb1F5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlZ5eERRVUZETEVOQlFVTTdPMjlEUVVNNVFpeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yZERRVU55UWl4UFFVRlBMRXRCUVVzc1EwRkJRenMwUWtGRFppeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRPM2xDUVVOUUxFTkJRVU03ZDBKQlEwWXNTMEZCU3l4RFFVRkRMRkZCUVZFc1IwRkJSeXhUUVVGVExFTkJRVU03ZDBKQlF6TkNMRTFCUVUwN2IwSkJRMUlzUzBGQlN5eHZRa0ZCYjBJc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzNkQ1FVTTNRaXhOUVVGTkxFTkJRVU1zUjBGQmNVSXNSVUZCUlN4RFFVRkRPM2RDUVVNdlFpeERRVUZETEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVYzdORUpCUXpWQ0xGTkJRVk03TkVKQlExUXNSMEZCUnl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4RlFVRkZPMmREUVVOdVJDeE5RVUZOTEUxQlFVMHNSMEZCY1VJc1JVRkJSU3hEUVVGRE8yZERRVU53UXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzJkRFFVTnNRaXhQUVVGUExFMUJRVTBzUTBGQlF6czBRa0ZEYUVJc1EwRkJReXhEUVVGRE8zbENRVU5JTEVOQlFVTTdkMEpCUTBZc1MwRkJTeXhEUVVGRExGRkJRVkVzUjBGQlJ5eERRVUZETEVOQlFVTTdkMEpCUTI1Q0xFMUJRVTA3YjBKQlExSXNRMEZCUXp0dlFrRkRSRHQzUWtGRFJTeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMREpDUVVFeVFpeERRVUZETEVOQlFVTTdaMEpCUTJwRUxFTkJRVU03YVVKQlEwVXNRMEZCUXp0blFrRkRTaXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRVZCUVVVN2IwSkJReTlETEVsQlFVa3NTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU03ZDBKQlEzSkNMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRMDRzUzBGQlN5eEhRVUZITERKRFFVRXlReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVOdVJpeERRVUZETzI5Q1FVTktMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMmRDUVVNMVFpeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTk1MRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJSVVFzU1VGQlNTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTTdXVUZEYkVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTXNTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJRenRaUVVNNVFpeExRVUZMTEVOQlFVTXNVVUZCVVN4SFFVRkhMRXRCUVVzc1EwRkJReXhSUVVGUkxFbEJRVXNzUlVGQmIwSXNRMEZCUXp0WlFVTjZSQ3hMUVVGTExFMUJRVTBzUTBGQlF5eFhRVUZYTEVWQlFVVXNVMEZCVXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNN1owSkJRemRFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRmRCUVhGQ0xFTkJRVU03WjBKQlEzWkRMRTFCUVUwc1IwRkJSeXhIUVVGdFF5eEZRVUZGTEVOQlFVTTdaMEpCUXk5RExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4VFFVRXlRaXhEUVVGRE8yZENRVU16UXl4TFFVRkxMRU5CUVVNc1NVRkJlVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1owSkJRek5FTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEVOQlFVTTdiMEpCUXpsQ0xFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1JVRkJiVUlzUTBGQlF6dHZRa0ZET1VNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFXMUNMRU5CUVVNc1pVRkJaU3hEUVVGRExFMUJRVTBzUTBGQlF6dDNRa0ZEYWtVc1NVRkJTU3hEUVVGRE8yZENRVU5VTEVOQlFVTTdXVUZEU0N4RFFVRkRPMUZCUTBnc1EwRkJRenRSUVVWRUxFMUJRVTBzYTBKQlFXdENMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRSUVVOd1JDeEpRVUZKTEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1EwRkJRenRaUVVOMlFpeExRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU03VVVGRGJrTXNRMEZCUXp0aFFVRk5MRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMWxCUXk5Q0xGbEJRVms3V1VGRFdpeHhSa0ZCY1VZN1dVRkRja1lzUzBGQlN6dFpRVU5NTEcxRFFVRnRRenRaUVVOdVF5eGhRVUZoTzFGQlEyWXNRMEZCUXp0UlFVVkVMRWxCUVVrc1NVRkJTU3hEUVVGRExHTkJRV003V1VGQlJTeExRVUZMTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU03VVVGRk1VUXNUMEZCVHl4TFFVRkxMRU5CUVVNN1NVRkRaaXhEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZEY0VJc1IwRkJSeXhKUVVFclF6dFJRVVZzUkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkZPVVFzVFVGQlRTeEhRVUZITEVkQlFVY3NXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVVYyUXl4TlFVRk5MRVZCUVVVc1YwRkJWeXhGUVVGRkxGVkJRVlVzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlF6VkZMRTFCUVUwc1YwRkJWeXhIUVVGSE8xbEJRMnhDTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUTFJc1RVRkJUU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVU5tTEVOQlFVTXNSMEZCUnl4WFFVRlhMRVZCUVVVc1IwRkJSeXhWUVVGVkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVONFF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVTXpSQ3hEUVVOR0xFTkJRMFk3VTBGRFJpeERRVUZETzFGQlJVWXNjVUpCUVhGQ0xFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRVZCUVVVc1YwRkJWeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEycEZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGY0VRc1NVRkJTU3hEUVVGRE8xbEJRMGdzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVR0blFrRkJSU3hQUVVGUExFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNSMEZCU1N4SlFVRlpMRU5CUVVNc1EwRkJRenRaUVVOcVJTeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMREpDUVVFeVFpeERRVUZETEVOQlFVTTdXVUZEZGtNc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMWxCUXpOQ0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF6dFpRVU55UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZETjBJc1MwRkJTeXhGUVVOTUxFbEJRVWtzUlVGRFNpeEhRVUZKTEU5QlFXbEVMRU5CUTNSRUxFTkJRV2xDTEVOQlFVTTdXVUZEYmtJc1NVRkJTU3hKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEVWQlFVVXNRMEZCUXp0blFrRkRNVUlzVDBGQlR5eFBRVUZQTEVOQlFVTTdXVUZEYWtJc1EwRkJRenRaUVVORUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1owSkJRM3BDTEVsQlFVa3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEUxQlFVMHNSVUZCUlN4RFFVRkRPMjlDUVVOc1F5eE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVOQlEzWkRMRTlCUVU4c1JVRkRVQ3hEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlF6ZENMRU5CUVVNN2IwSkJRMUFzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMREJDUVVFd1FpeERRVUZETEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJUU3hEUVVGRE8yZENRVU53UlN4RFFVRkRPMmRDUVVORUxFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRE8yOUNRVU16UWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJhVUlzUTBGQlF6dHZRa0ZET1VVc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETERCQ1FVRXdRaXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCVFN4RFFVRkRPMmRDUVVOdVJTeERRVUZETzJkQ1FVTkVMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkJhVUlzUTBGQlF6dG5Ra0ZEYUVVc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETERCQ1FVRXdRaXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCVFN4RFFVRkRPMWxCUTI1RkxFTkJRVU03V1VGRFJDeFBRVUZQTEU5QlFVOHNRMEZCUXp0UlFVTnFRaXhEUVVGRE8xRkJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0WlFVTndRaXhOUVVGTkxFbEJRVWtzVlVGQlZTeERRVUZETEVOQlFWVXNRMEZCUXl4RFFVRkRPMUZCUTI1RExFTkJRVU03U1VGRFNDeERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMXh1SUNCRGIzVmphRVJDUVdSaGNIUmxjaXhjYmlBZ1EyOTFZMmhFUWtkeWIzVndUM0JsY21GMGIzSXNYRzRnSUVOdmRXTm9SRUpMWlhsekxGeHVJQ0JEYjNWamFFUkNUM0JsY21GMGIzSXNYRzRnSUVOdmRXTm9SRUpSZFdWeWVVeHBiV2wwTEZ4dUlDQk5ZVzVuYjA5d1pYSmhkRzl5TEZ4dUlDQk5ZVzVuYjFGMVpYSjVMRnh1SUNCTllXNW5iMU5sYkdWamRHOXlMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJadmNpMWpiM1ZqYUdSaVhDSTdYRzVwYlhCdmNuUWdleUJOYjJSbGJDQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHOXlMWFpoYkdsa1lYUnBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ0I5SUdaeWIyMGdYQ0l1TDBOdmJuUnlZV04wUTI5dWRHVjRkRndpTzF4dWFXMXdiM0owSUhzZ1EyOTFZMmhFUWxOMFlYUmxiV1Z1ZENCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlptOXlMV052ZFdOb1pHSmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFRmtZWEIwWlhKR2JHRm5jeXhjYmlBZ1EyOXVaR2wwYVc5dUxGeHVJQ0JEYjI1MFpYaDBkV0ZzUVhKbmN5eGNiaUFnVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuTEZ4dUlDQlBjbVJsY2tScGNtVmpkR2x2Yml4Y2JpQWdVWFZsY25sRmNuSnZjaXhjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCSmJuUmxjbTVoYkVWeWNtOXlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWWkxa1pXTnZjbUYwYjNKelhDSTdYRzVwYlhCdmNuUWdleUJEYjI1emRISjFZM1J2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1lYQndiSGxOYVhKeWIzSkdiR0ZuY3l4Y2JpQWdZWEJ3YkhsVFpXZHlaV2RoZEdsdmJrWnNZV2R6TEZ4dUlDQmxlSFJ5WVdOMFRYTndTV1FzWEc1OUlHWnliMjBnWENJdUxpOXphR0Z5WldRdlpHVmpiM0poZEc5eWMxd2lPMXh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQlRkR0YwWlcxbGJuUWdkM0poY0hCbGNpQm1iM0lnWlhobFkzVjBhVzVuSUUxaGJtZHZJSEYxWlhKcFpYTWdkMmwwYUdsdUlFWmhZbkpwWXlCamIyNTBjbUZqZEhOY2JpQXFJRUJ6ZFcxdFlYSjVJRUp5YVdSblpYTWdRMjkxWTJoRVFpMXpkSGxzWlNCeGRXVnlhV1Z6SUhSdklFWmhZbkpwWXlCMmFXRWdkR2hsSUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpd2dhR0Z1Wkd4cGJtY2dhV1JsYm5ScGRIa2dZVzVrSUhCeWFXMWhjbmtnYTJWNUlIQnliMnBsWTNScGIyNGdkMmhsYmlCdVpXVmtaV1F1WEc0Z0tpQkFkR1Z0Y0d4aGRHVWdUU0F0SUUxdlpHVnNJSFI1Y0dVZ2RHaHBjeUJ6ZEdGMFpXMWxiblFnYjNCbGNtRjBaWE1nYjI1Y2JpQXFJRUIwWlcxd2JHRjBaU0JTSUMwZ1VtVnpkV3gwSUhSNWNHVWdjbVYwZFhKdVpXUWdZbmtnZEdobElITjBZWFJsYldWdWRGeHVJQ29nUUhCaGNtRnRJSHRHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhKOUlHRmtZWEIwWlhJZ0xTQlVhR1VnUm1GaWNtbGpJR052Ym5SeVlXTjBJR0ZrWVhCMFpYSWdkWE5sWkNCbWIzSWdjbUYzSUdWNFpXTjFkR2x2Ymx4dUlDb2dRSEJoY21GdElIdEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFI5SUdOMGVDQXRJRlJvWlNCR1lXSnlhV01nWTI5dWRISmhZM1FnWTI5dWRHVjRkQ0JqWVhKeWVXbHVaeUJ6ZEhWaUlHRnVaQ0JwWkdWdWRHbDBlVnh1SUNvZ1FISmxkSFZ5YmlCN2RtOXBaSDFjYmlBcUlFQmpiR0Z6Y3lCR1lXSnlhV05UZEdGMFpXMWxiblJjYmlBcUlFQmxlR0Z0Y0d4bFhHNGdLaUJqYjI1emRDQnpkRzEwSUQwZ2JtVjNJRVpoWW5KcFkxTjBZWFJsYldWdWREeE5lVTF2WkdWc0xDQk5lVTF2WkdWc1cxMCtLR0ZrWVhCMFpYSXNJR04wZUNrN1hHNGdLaUJqYjI1emRDQnlaWE4xYkhRZ1BTQmhkMkZwZENCemRHMTBMbkpoZHp4TmVVMXZaR1ZzVzEwK0tIc2djMlZzWldOMGIzSTZJSHNnZEhsd1pUb2dKMDE1VFc5a1pXd25JSDBnZlNrN1hHNGdLaUJBYldWeWJXRnBaRnh1SUNvZ2MyVnhkV1Z1WTJWRWFXRm5jbUZ0WEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUVGd2NGeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQlRkR0YwWlcxbGJuUmNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdRV1JoY0hSbGNseHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQk1aV1JuWlhKY2JpQXFJQ0FnUVhCd0xUNCtVM1JoZEdWdFpXNTBPaUJ5WVhjb2V5QnpaV3hsWTNSdmNpQjlLVnh1SUNvZ0lDQlRkR0YwWlcxbGJuUXRQajVCWkdGd2RHVnlPaUJoWkdGd2RHVnlMbkpoZHlodFlXNW5ieXdnZEhKMVpTd2dZM1I0S1Z4dUlDb2dJQ0JCWkdGd2RHVnlMVDQrVEdWa1oyVnlPaUJGZG1Gc2RXRjBaU0J4ZFdWeWVWeHVJQ29nSUNCQlpHRndkR1Z5TFMwK1BsTjBZWFJsYldWdWREb2djbTkzYzF4dUlDb2dJQ0JUZEdGMFpXMWxiblF0TFQ0K1FYQndPaUJ0YjJSbGJITmNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRVpoWW5KcFkxTjBZWFJsYldWdWREeE5JR1Y0ZEdWdVpITWdUVzlrWld3c0lGSStJR1Y0ZEdWdVpITWdRMjkxWTJoRVFsTjBZWFJsYldWdWREeGNiaUFnVFN4Y2JpQWdRMjkxWTJoRVFrRmtZWEIwWlhJOFlXNTVMQ0IyYjJsa0xDQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFErTEZ4dUlDQlNYRzQrSUh0Y2JpQWdZMjl1YzNSeWRXTjBiM0lvWEc0Z0lDQWdZV1JoY0hSbGNqb2dRMjkxWTJoRVFrRmtZWEIwWlhJOFlXNTVMQ0IyYjJsa0xDQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFErTEZ4dUlDQWdJRzkyWlhKeWFXUmxjejg2SUZCaGNuUnBZV3c4UVdSaGNIUmxja1pzWVdkelBseHVJQ0FwSUh0Y2JpQWdJQ0J6ZFhCbGNpaGhaR0Z3ZEdWeUtUdGNiaUFnSUNCcFppQW9iM1psY25KcFpHVnpLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtOTJaWEp5YVdSbGN5QTlJRzkyWlhKeWFXUmxjenRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnYjNabGNuSnBaR1VnWVhONWJtTWdaWGhsWTNWMGFXOXVVSEpsWm1sNEtGeHVJQ0FnSUcxbGRHaHZaRG9nWVc1NUxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStYRzRnSUNrZ2UxeHVJQ0FnSUdOdmJuTjBJRzVsZDBGeVozTWdQU0JoY21kekxtWnBiSFJsY2loY2JpQWdJQ0FnSUVKdmIyeGxZVzVjYmlBZ0lDQXBJR0Z6SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStPMXh1SUNBZ0lHbG1JQ2hoY21kekxteGxibWQwYUNBaFBUMGdibVYzUVhKbmN5NXNaVzVuZEdncFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWUZKbFkyVnBkbVZrSUdGdUlIVnVaR1ZtYVc1bFpDQnBiaUIwYUdVZ2NHRm5hVzVoZEc5eUlHWnZjaUFrZTIxbGRHaHZaSDA2SUNSN1lYSm5jMzFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSEpsZEhWeWJpQnpkWEJsY2k1bGVHVmpkWFJwYjI1UWNtVm1hWGdvYldWMGFHOWtMQ0F1TGk1aGNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCdmRtVnljbWxrWlNCaWRXbHNaQ2dwT2lCTllXNW5iMUYxWlhKNUlIdGNiaUFnSUNCamIyNXpkQ0JzYjJjZ1BTQjBhR2x6TG14dlp5NW1iM0lvZEdocGN5NWlkV2xzWkNrN1hHNGdJQ0FnZEdocGN5NXRZVzUxWVd4QloyZHlaV2RoZEdsdmJpQTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQmpiMjV6ZENCaFoyZHlaV2RoZEdWSmJtWnZJRDBnZEdocGN5NWlkV2xzWkVGblozSmxaMkYwWlVsdVptOG9LVHRjYmlBZ0lDQnBaaUFvWVdkbmNtVm5ZWFJsU1c1bWJ5a2dlMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVjMmh2ZFd4a1ZYTmxUV0Z1ZFdGc1FXZG5jbVZuWVhScGIyNG9LU2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbTFoYm5WaGJFRm5aM0psWjJGMGFXOXVJRDBnWVdkbmNtVm5ZWFJsU1c1bWJ6dGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbU55WldGMFpVRm5aM0psWjJGMFpWRjFaWEo1S0dGblozSmxaMkYwWlVsdVptOHBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCamIyNXpkQ0J6Wld4bFkzUnZjbk02SUUxaGJtZHZVMlZzWldOMGIzSWdQU0I3ZlR0Y2JpQWdJQ0J6Wld4bFkzUnZjbk5iUTI5MVkyaEVRa3RsZVhNdVZFRkNURVZkSUQwZ2UzMDdYRzRnSUNBZ2MyVnNaV04wYjNKelcwTnZkV05vUkVKTFpYbHpMbFJCUWt4RlhTQTlJRTF2WkdWc0xuUmhZbXhsVG1GdFpTaDBhR2x6TG1aeWIyMVRaV3hsWTNSdmNpazdYRzRnSUNBZ1kyOXVjM1FnY1hWbGNuazZJRTFoYm1kdlVYVmxjbmtnUFNCN0lITmxiR1ZqZEc5eU9pQnpaV3hsWTNSdmNuTWdmVHRjYmlBZ0lDQnBaaUFvZEdocGN5NXpaV3hsWTNSVFpXeGxZM1J2Y2lrZ2NYVmxjbmt1Wm1sbGJHUnpJRDBnZEdocGN5NXpaV3hsWTNSVFpXeGxZM1J2Y2lCaGN5QnpkSEpwYm1kYlhUdGNibHh1SUNBZ0lHbG1JQ2gwYUdsekxuZG9aWEpsUTI5dVpHbDBhVzl1S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYjI1a2FYUnBiMjQ2SUUxaGJtZHZVMlZzWldOMGIzSWdQU0IwYUdsekxuQmhjbk5sUTI5dVpHbDBhVzl1S0Z4dUlDQWdJQ0FnSUNCRGIyNWthWFJwYjI0dVlXNWtLRnh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVkMmhsY21WRGIyNWthWFJwYjI0c1hHNGdJQ0FnSUNBZ0lDQWdRMjl1WkdsMGFXOXVMbUYwZEhKcFluVjBaVHhOUGloRGIzVmphRVJDUzJWNWN5NVVRVUpNUlNCaGN5QnJaWGx2WmlCTktTNWxjU2hjYmlBZ0lDQWdJQ0FnSUNBZ0lIRjFaWEo1TG5ObGJHVmpkRzl5VzBOdmRXTm9SRUpMWlhsekxsUkJRa3hGWFZ4dUlDQWdJQ0FnSUNBZ0lDbGNiaUFnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdLUzV6Wld4bFkzUnZjanRjYmlBZ0lDQWdJR052Ym5OMElITmxiR1ZqZEc5eVMyVjVjeUE5SUU5aWFtVmpkQzVyWlhsektHTnZibVJwZEdsdmJpa2dZWE1nVFdGdVoyOVBjR1Z5WVhSdmNsdGRPMXh1SUNBZ0lDQWdhV1lnS0Z4dUlDQWdJQ0FnSUNCelpXeGxZM1J2Y2t0bGVYTXViR1Z1WjNSb0lEMDlQU0F4SUNZbVhHNGdJQ0FnSUNBZ0lFOWlhbVZqZEM1MllXeDFaWE1vUTI5MVkyaEVRa2R5YjNWd1QzQmxjbUYwYjNJcExtbHVaR1Y0VDJZb2MyVnNaV04wYjNKTFpYbHpXekJkS1NBaFBUMGdMVEZjYmlBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ0FnYzNkcGRHTm9JQ2h6Wld4bFkzUnZja3RsZVhOYk1GMHBJSHRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRU52ZFdOb1JFSkhjbTkxY0U5d1pYSmhkRzl5TGtGT1JEcGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJtUnBkR2x2Ymx0RGIzVmphRVJDUjNKdmRYQlBjR1Z5WVhSdmNpNUJUa1JkSUQwZ1cxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBdUxpNVBZbXBsWTNRdWRtRnNkV1Z6S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJtUnBkR2x2Ymx0RGIzVmphRVJDUjNKdmRYQlBjR1Z5WVhSdmNpNUJUa1JkSUdGeklFMWhibWR2VTJWc1pXTjBiM0pjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdLUzV5WldSMVkyVW9LR0ZqWTNWdE9pQk5ZVzVuYjFObGJHVmpkRzl5VzEwc0lIWmhiRG9nWVc1NUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdhMlY1Y3lBOUlFOWlhbVZqZEM1clpYbHpLSFpoYkNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR3RsZVhNdWJHVnVaM1JvSUNFOVBTQXhLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCY0lsUnZieUJ0WVc1NUlHdGxlWE1nYVc0Z2NYVmxjbmtnYzJWc1pXTjBiM0l1SUhOb2IzVnNaQ0JpWlNCdmJtVmNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JySUQwZ2EyVjVjMXN3WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9heUE5UFQwZ1EyOTFZMmhFUWtkeWIzVndUM0JsY21GMGIzSXVRVTVFS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lXTmpkVzB1Y0hWemFDZ3VMaTRvZG1Gc1cydGRJR0Z6SUdGdWVWdGRLU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQmhZMk4xYlM1d2RYTm9LSFpoYkNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGalkzVnRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlMQ0JiWFNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjWFZsY25rdWMyVnNaV04wYjNJZ1BTQmpiMjVrYVhScGIyNDdYRzRnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRU52ZFdOb1JFSkhjbTkxY0U5d1pYSmhkRzl5TGs5U09pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J6T2lCU1pXTnZjbVE4WVc1NUxDQmhibmsrSUQwZ2UzMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCelcwTnZkV05vUkVKSGNtOTFjRTl3WlhKaGRHOXlMa0ZPUkYwZ1BTQmJYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibVJwZEdsdmJpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVUMkpxWldOMExtVnVkSEpwWlhNb2NYVmxjbmt1YzJWc1pXTjBiM0lwTG0xaGNDZ29XMnRsZVN3Z2RtRnNYU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhKbGMzVnNkRG9nVW1WamIzSmtQR0Z1ZVN3Z1lXNTVQaUE5SUh0OU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjM1ZzZEZ0clpYbGRJRDBnZG1Gc08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSDBwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIRjFaWEo1TG5ObGJHVmpkRzl5SUQwZ2N6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRndpVkdocGN5QnphRzkxYkdRZ1ltVWdhVzF3YjNOemFXSnNaVndpS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUU5aWFtVmpkQzVsYm5SeWFXVnpLR052Ym1ScGRHbHZiaWt1Wm05eVJXRmphQ2dvVzJ0bGVTd2dkbUZzWFNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaHhkV1Z5ZVM1elpXeGxZM1J2Y2x0clpYbGRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2JHOW5MbmRoY200b1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdCQklDUjdhMlY1ZlNCeGRXVnllU0J3WVhKaGJTQnBjeUJoWW05MWRDQjBieUJpWlNCdmRtVnljbWxrWkdWdU9pQWtlM0YxWlhKNUxuTmxiR1ZqZEc5eVcydGxlVjE5SUdKNUlDUjdkbUZzZldCY2JpQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2NYVmxjbmt1YzJWc1pXTjBiM0piYTJWNVhTQTlJSFpoYkR0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdWIzSmtaWEpDZVZObGJHVmpkRzl5Y3o4dWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCeGRXVnllUzV6YjNKMElEMGdjWFZsY25rdWMyOXlkQ0I4ZkNCYlhUdGNiaUFnSUNBZ0lIRjFaWEo1TG5ObGJHVmpkRzl5SUQwZ2NYVmxjbmt1YzJWc1pXTjBiM0lnZkh3Z0tIdDlJR0Z6SUUxaGJtZHZVMlZzWldOMGIzSXBPMXh1SUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JiYzJWc1pXTjBiM0pMWlhrc0lHUnBjbVZqZEdsdmJsMGdiMllnZEdocGN5NXZjbVJsY2tKNVUyVnNaV04wYjNKektTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElITmxiR1ZqZEc5eUlEMGdjMlZzWldOMGIzSkxaWGtnWVhNZ2MzUnlhVzVuTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J5WldNNklGSmxZMjl5WkR4emRISnBibWNzSUU5eVpHVnlSR2x5WldOMGFXOXVQaUE5SUh0OU8xeHVJQ0FnSUNBZ0lDQnlaV05iYzJWc1pXTjBiM0pkSUQwZ1pHbHlaV04wYVc5dUlHRnpJRTl5WkdWeVJHbHlaV04wYVc5dU8xeHVJQ0FnSUNBZ0lDQW9jWFZsY25rdWMyOXlkQ0JoY3lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JQY21SbGNrUnBjbVZqZEdsdmJqNWJYU2t1Y0hWemFDaHlaV01wTzF4dUlDQWdJQ0FnSUNCcFppQW9JWEYxWlhKNUxuTmxiR1ZqZEc5eVczTmxiR1ZqZEc5eVhTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhGMVpYSjVMbk5sYkdWamRHOXlXM05sYkdWamRHOXlYU0E5SUh0OUlHRnpJRTFoYm1kdlUyVnNaV04wYjNJN1hHNGdJQ0FnSUNBZ0lDQWdLSEYxWlhKNUxuTmxiR1ZqZEc5eVczTmxiR1ZqZEc5eVhTQmhjeUJOWVc1bmIxTmxiR1ZqZEc5eUtWdERiM1ZqYUVSQ1QzQmxjbUYwYjNJdVFrbEhSMFZTWFNBOVhHNGdJQ0FnSUNBZ0lDQWdJQ0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYUdGelRXRnVkV0ZzUVdkbmNtVm5ZWFJsSUQwZ0lTRjBhR2x6TG0xaGJuVmhiRUZuWjNKbFoyRjBhVzl1TzF4dUlDQWdJR2xtSUNoMGFHbHpMbXhwYldsMFUyVnNaV04wYjNJcElIdGNiaUFnSUNBZ0lIRjFaWEo1TG14cGJXbDBJRDBnZEdocGN5NXNhVzFwZEZObGJHVmpkRzl5TzF4dUlDQWdJSDBnWld4elpTQnBaaUFvSVdoaGMwMWhiblZoYkVGblozSmxaMkYwWlNrZ2UxeHVJQ0FnSUNBZ0x5OGdiRzluTG5kaGNtNG9YRzRnSUNBZ0lDQXZMeUFnSUdCT2J5QnNhVzFwZENCelpXeGxZM1J2Y2lCa1pXWnBibVZrTGlCVmMybHVaeUJrWldaaGRXeDBJR052ZFdOb1pHSWdiR2x0YVhRZ2IyWWdKSHREYjNWamFFUkNVWFZsY25sTWFXMXBkSDFnWEc0Z0lDQWdJQ0F2THlBcE8xeHVJQ0FnSUNBZ0x5OGdjWFZsY25rdWJHbHRhWFFnUFNCRGIzVmphRVJDVVhWbGNubE1hVzFwZER0Y2JpQWdJQ0FnSUM4dklHUnZJRzV2ZEdocGJtZGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9kR2hwY3k1dlptWnpaWFJUWld4bFkzUnZjaWtnY1hWbGNua3VjMnRwY0NBOUlIUm9hWE11YjJabWMyVjBVMlZzWldOMGIzSTdYRzVjYmlBZ0lDQnlaWFIxY200Z2NYVmxjbms3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJsZUdWamRYUmxLRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFErWEc0Z0lDazZJRkJ5YjIxcGMyVThVajRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIZ3NJR04wZUVGeVozTWdmU0E5SUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVaWGhsWTNWMFpTazdYRzVjYmlBZ0lDQmpiMjV6ZENCdGMzQWdQU0JsZUhSeVlXTjBUWE53U1dRb1kzUjRMbWxrWlc1MGFYUjVLVHRjYmx4dUlDQWdJR052Ym5OMElIc2djSEpwZG1GMFpVTnZiSE1zSUhOb1lYSmxaRU52YkhNZ2ZTQTlJRTF2WkdWc0xtTnZiR3hsWTNScGIyNXpSbTl5S0hSb2FYTXVabkp2YlZObGJHVmpkRzl5S1R0Y2JpQWdJQ0JqYjI1emRDQmpiMnhzWldOMGFXOXVjeUE5SUZ0Y2JpQWdJQ0FnSUM0dUxtNWxkeUJUWlhRb1hHNGdJQ0FnSUNBZ0lHRjNZV2wwSUZCeWIyMXBjMlV1WVd4c0tGeHVJQ0FnSUNBZ0lDQWdJRnN1TGk1d2NtbDJZWFJsUTI5c2N5d2dMaTR1YzJoaGNtVmtRMjlzYzEwdWJXRndLQ2hqS1NBOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pXOW1JR01nUFQwOUlGd2ljM1J5YVc1blhDSWdQeUJqSURvZ1l5aDBhR2x6TG1aeWIyMVRaV3hsWTNSdmNpd2diWE53TENCamRIZ3BYRzRnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBcExGeHVJQ0FnSUYwN1hHNWNiaUFnSUNCaGNIQnNlVk5sWjNKbFoyRjBhVzl1Um14aFozTW9ibVYzSUhSb2FYTXVabkp2YlZObGJHVmpkRzl5S0Nrc0lHTnZiR3hsWTNScGIyNXpMQ0JqZEhncE8xeHVJQ0FnSUdGM1lXbDBJR0Z3Y0d4NVRXbHljbTl5Um14aFozTW9kR2hwY3k1bWNtOXRVMlZzWldOMGIzSXNJRzF6Y0N3Z1kzUjRLVHRjYmx4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1d2NtVndZWEpsWkNrZ2NtVjBkWEp1SUhSb2FYTXVaWGhsWTNWMFpWQnlaWEJoY21Wa0tDNHVMaWhoY21keklHRnpJR0Z1ZVNrcE8xeHVJQ0FnSUNBZ2JHOW5Mbk5wYkd4NUtHQkNkV2xzWkdsdVp5QnlZWGNnYzNSaGRHVnRaVzUwTGk0dVlDazdYRzRnSUNBZ0lDQmpiMjV6ZENCeGRXVnllU0E5SUhSb2FYTXVZblZwYkdRb0tUdGNiaUFnSUNBZ0lHeHZaeTV6YVd4c2VTaGdaWGhsWTNWMGFXNW5JSEpoZHlCemRHRjBaVzFsYm5SZ0tUdGNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzVnNkSE1nUFNBb1lYZGhhWFFnZEdocGN5NXlZWGM4VWo0b1hHNGdJQ0FnSUNBZ0lIRjFaWEo1TEZ4dUlDQWdJQ0FnSUNCMGNuVmxMRnh1SUNBZ0lDQWdJQ0F1TGk0b1kzUjRRWEpuY3lCaGN5QkRiMjUwWlhoMGRXRnNRWEpuY3p4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStLVnh1SUNBZ0lDQWdLU2tnWVhNZ2RXNXJibTkzYmlCaGN5QlNPMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVhR0Z6UVdkbmNtVm5ZWFJwYjI0b0tTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4MGN6dGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHbG1JQ2doZEdocGN5NXpaV3hsWTNSVFpXeGxZM1J2Y2lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NW5jbTkxY0VKNVUyVnNaV04wYjNKelB5NXNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQm5jbTkxY0dWa0lEMGdkR2hwY3k1eVpYWmxjblJIY205MWNHVmtVbVZ6ZFd4MGN5aGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGMzVnNkSE1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQW9jaWtnUFQ0Z2RHaHBjeTV3Y205alpYTnpVbVZqYjNKa0tISXNJR04wZUNsY2JpQWdJQ0FnSUNBZ0lDQXBJR0Z6SUZJN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDaGhkMkZwZENCMGFHbHpMbUZ3Y0d4NVFXWjBaWEpJWVc1a2JHVnljMVJ2VW1WemRXeDBLR2R5YjNWd1pXUXNJR04wZUNrcElHRnpJRkk3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLRUZ5Y21GNUxtbHpRWEp5WVhrb2NtVnpkV3gwY3lrcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnRZWEJ3WldRZ1BTQnlaWE4xYkhSekxtMWhjQ2dvY2lrZ1BUNGdkR2hwY3k1d2NtOWpaWE56VW1WamIzSmtLSElzSUdOMGVDa3BJR0Z6SUhWdWEyNXZkMjRnWVhNZ1VqdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElIUm9hWE11WVhCd2JIbEJablJsY2toaGJtUnNaWEp6Vkc5U1pYTjFiSFFvYldGd2NHVmtMQ0JqZEhncEtTQmhjeUJTTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUhOcGJtZHNaU0E5SUhSb2FYTXVjSEp2WTJWemMxSmxZMjl5WkNoeVpYTjFiSFJ6TENCamRIZ3BJR0Z6SUhWdWEyNXZkMjRnWVhNZ1VqdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDaGhkMkZwZENCMGFHbHpMbUZ3Y0d4NVFXWjBaWEpJWVc1a2JHVnljMVJ2VW1WemRXeDBLSE5wYm1kc1pTd2dZM1I0S1NrZ1lYTWdVanRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhSek8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dVNklIVnVhMjV2ZDI0cElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QlJkV1Z5ZVVWeWNtOXlLR1VnWVhNZ1JYSnliM0lwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
|
|
@@ -149,5 +149,5 @@ exports.MigrationContract = MigrationContract = MigrationContract_1 = __decorate
|
|
|
149
149
|
}),
|
|
150
150
|
__metadata("design:paramtypes", [])
|
|
151
151
|
], MigrationContract);
|
|
152
|
-
//# sourceMappingURL=MigrationContract.js.map
|
|
153
|
-
//# sourceMappingURL=MigrationContract.js.map
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uQ29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RzL01pZ3JhdGlvbkNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsT0FBTyxJQUFJLEdBQUcsRUFDZCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFdBQVcsR0FDWixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBZSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsT0FBTyxFQUdQLGNBQWMsRUFDZCxlQUFlLEdBQ2hCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUVMLHFCQUFxQixHQUN0Qiw2QkFBMEI7QUFDM0IsT0FBTyxFQUNMLGFBQWEsRUFFYixtQkFBbUIsR0FDcEIsNkJBQXdCO0FBQ3pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSx3QkFBbUI7QUFNNUMsSUFBTSxpQkFBaUIseUJBQXZCLE1BQU0saUJBQWtCLFNBQVEsUUFBUTtJQUs3QztRQUNFLEtBQUssQ0FBQyxtQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUh0QixnQkFBVyxHQUFZLEtBQUssQ0FBQztJQUl2QyxDQUFDO0lBRUQsSUFBYyxPQUFPO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDO2dCQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQVEsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO29CQUNoQixNQUFNLElBQUksYUFBYSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7Z0JBQ25FLDZEQUE2RDtZQUMvRCxDQUFDO1lBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztn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QUFZLE9BQU8sQ0FBQztZQUFFLE9BQU8sVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0YsQ0FBQTtBQXZLTztJQURMLFdBQVcsRUFBRTs7cUNBRUgsR0FBRzs7Z0RBb0RiO0FBakZVLGlCQUFpQjtJQUo3QixJQUFJLENBQUM7UUFDSixLQUFLLEVBQUUsbUJBQW1CO1FBQzFCLFdBQVcsRUFBRSx1Q0FBdUM7S0FDckQsQ0FBQzs7R0FDVyxpQkFBaUIsQ0FtTTdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29udGV4dCBhcyBDdHgsXG4gIENvbnRyYWN0LFxuICBJbmZvLFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHtcbiAgQWRhcHRlcixcbiAgTWF5YmVDb250ZXh0dWFsQXJnLFxuICBNZXRob2RPck9wZXJhdGlvbixcbiAgTWlncmF0aW9uRXJyb3IsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNaWdyYXRpb24gfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIEZhYnJpY0NvbnRleHR1YWxpemVkQXJncyxcbiAgRmFicmljQ29udHJhY3RBZGFwdGVyLFxufSBmcm9tIFwiLi9Db250cmFjdEFkYXB0ZXJcIjtcbmltcG9ydCB7XG4gIEZhYnJpY0ZsYXZvdXIsXG4gIGhlYWx0aGNoZWNrLFxuICBNaXNzaW5nQ29udGV4dEVycm9yLFxufSBmcm9tIFwiLi4vc2hhcmVkL2luZGV4XCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdENvbnRleHQgfSBmcm9tIFwiLi9Db250cmFjdENvbnRleHRcIjtcbmltcG9ydCB7IFZFUlNJT04sIFBBQ0tBR0VfTkFNRSB9IGZyb20gXCIuLi92ZXJzaW9uXCI7XG5cbkBJbmZvKHtcbiAgdGl0bGU6IFwiTWlncmF0aW9uQ29udHJhY3RcIixcbiAgZGVzY3JpcHRpb246IFwiQ29udHJhY3QgZm9yIG1hbmFnaW5nIGRhdGEgbWlncmF0aW9uc1wiLFxufSlcbmV4cG9ydCBjbGFzcyBNaWdyYXRpb25Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHtcbiAgcHJpdmF0ZSBfYWRhcHRlcj86IEZhYnJpY0NvbnRyYWN0QWRhcHRlcjtcblxuICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihNaWdyYXRpb25Db250cmFjdC5uYW1lKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgYWRhcHRlcigpIHtcbiAgICBpZiAoIXRoaXMuX2FkYXB0ZXIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuX2FkYXB0ZXIgPSBBZGFwdGVyLmdldChGYWJyaWNGbGF2b3VyKSBhcyBhbnk7XG4gICAgICAgIGlmICghdGhpcy5fYWRhcHRlcilcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgZmFpbGVkIHRvIGxvYWQgYWRhcHRlci4gaW5zdGFudGlhdGlvbmApO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhpcy5fYWRhcHRlciA9IG5ldyBGYWJyaWNDb250cmFjdEFkYXB0ZXIoKTtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gaW5zdGFudGlhdGUgYWRhcHRlcjogJHtlfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyO1xuICB9XG5cbiAgQFRyYW5zYWN0aW9uKClcbiAgYXN5bmMgbWlncmF0ZShcbiAgICBjb250ZXh0OiBDdHgsXG4gICAgcmVmZXJlbmNlOiBzdHJpbmcsXG4gICAgbWlncmF0aW9uQXJncz86IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsZXQgYXJnejogYW55W10gPSBbXTtcbiAgICBpZiAobWlncmF0aW9uQXJncykge1xuICAgICAgYXJneiA9IEpTT04ucGFyc2UobWlncmF0aW9uQXJncykgYXMgYW55O1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFyZ3opKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWlncmF0aW9uIGFyZ3VtZW50cyBtdXN0IGJlIGFuIGFycmF5XCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB7IGxvZywgY3R4LCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJneiwgY29udGV4dF0sIFBlcnNpc3RlbmNlS2V5cy5NSUdSQVRJT04sIHRydWUpXG4gICAgKS5mb3IodGhpcy5taWdyYXRlKTtcblxuICAgIGNvbnN0IG1pZ3JhdGlvbnMgPSB0aGlzLmdldFJlZ2lzdGVyZWRNaWdyYXRpb25zKGN0eCk7XG5cbiAgICBjb25zdCBtaWdyYXRpb25NZXRhID0gbWlncmF0aW9ucy5maW5kKChtKSA9PiBtLnJlZmVyZW5jZSA9PT0gcmVmZXJlbmNlKTtcblxuICAgIGlmICghbWlncmF0aW9uTWV0YSkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE1pZ3JhdGlvbiAke3JlZmVyZW5jZX0gbm90IGZvdW5kYCk7XG4gICAgfVxuXG4gICAgbG9nLnZlcmJvc2UoYG1pZ3JhdGlvbiAke3JlZmVyZW5jZX0gZm91bmRgKTtcbiAgICBjb25zdCBNaWdyYXRpb25DbGFzczogQ29uc3RydWN0b3I8TWlncmF0aW9uPGFueSwgYW55Pj4gPVxuICAgICAgbWlncmF0aW9uTWV0YS5jbGFzcztcbiAgICBjb25zdCBtID0gbmV3IE1pZ3JhdGlvbkNsYXNzKCk7XG4gICAgLy8gRm9yIEZhYnJpYywgdXNlIHRoZSBjb250ZXh0IGFzIHRoZSBxdWVyeSBydW5uZXJcbiAgICBjb25zdCBxcjogYW55ID0gY3R4O1xuXG4gICAgdHJ5IHtcbiAgICAgIGxvZy52ZXJib3NlKGBtaWdyYXRpb24gJHtyZWZlcmVuY2V9IHVwYCk7XG4gICAgICBhd2FpdCBtLnVwKHFyLCB0aGlzLmFkYXB0ZXIsIC4uLmN0eEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBNaWdyYXRpb25FcnJvcihcbiAgICAgICAgYGZhaWxlZCB0byBpbml0aWFsaXplIG1pZ3JhdGlvbiAke20ucmVmZXJlbmNlfTogJHtlfWBcbiAgICAgICk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBsb2cudmVyYm9zZShgbWlncmF0aW9uICR7cmVmZXJlbmNlfSBtaWdyYXRlYCk7XG4gICAgICBhd2FpdCBtLm1pZ3JhdGUocXIsIHRoaXMuYWRhcHRlciwgLi4uY3R4QXJncyk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IE1pZ3JhdGlvbkVycm9yKGBmYWlsZWQgdG8gbWlncmF0ZSAke20ucmVmZXJlbmNlfTogJHtlfWApO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgbG9nLnZlcmJvc2UoYG1pZ3JhdGlvbiAke3JlZmVyZW5jZX0gZG93bmApO1xuICAgICAgYXdhaXQgbS5kb3duKHFyLCB0aGlzLmFkYXB0ZXIsIC4uLmN0eEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBNaWdyYXRpb25FcnJvcihcbiAgICAgICAgYGZhaWxlZCB0byBjb25jbHVkZSBtaWdyYXRpb24gJHttLnJlZmVyZW5jZX06ICR7ZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRSZWdpc3RlcmVkTWlncmF0aW9ucyhjb250ZXh0OiBGYWJyaWNDb250cmFjdENvbnRleHQpOiBBcnJheTx7XG4gICAgY2xhc3M6IGFueTtcbiAgICByZWZlcmVuY2U6IHN0cmluZztcbiAgICBmbGF2b3VyOiBzdHJpbmc7XG4gIH0+IHtcbiAgICBjb25zdCBtaWdyYXRpb25zOiBBcnJheTx7XG4gICAgICBjbGFzczogYW55O1xuICAgICAgcmVmZXJlbmNlOiBzdHJpbmc7XG4gICAgICBmbGF2b3VyOiBzdHJpbmc7XG4gICAgfT4gPSBbXTtcblxuICAgIGNvbnN0IG1pZ3JhdGlvbkxpc3QgPSAoTWV0YWRhdGEgYXMgYW55KS5taWdyYXRpb25zKCk7XG5cbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBNaWdyYXRpb25DbGFzc10gb2YgbWlncmF0aW9uTGlzdCkge1xuICAgICAgY29uc3QgbWV0YSA9IE1ldGFkYXRhLmdldChNaWdyYXRpb25DbGFzcywgUGVyc2lzdGVuY2VLZXlzLk1JR1JBVElPTik7XG5cbiAgICAgIGlmICghbWV0YSkgY29udGludWU7XG5cbiAgICAgIGlmIChtZXRhLmZsYXZvdXIgIT09IEZhYnJpY0ZsYXZvdXIpIGNvbnRpbnVlO1xuXG4gICAgICBtaWdyYXRpb25zLnB1c2goe1xuICAgICAgICBjbGFzczogTWlncmF0aW9uQ2xhc3MsXG4gICAgICAgIHJlZmVyZW5jZTogbWV0YS5yZWZlcmVuY2UsXG4gICAgICAgIGZsYXZvdXI6IG1ldGEuZmxhdm91cixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtaWdyYXRpb25zO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGluaXQoY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoW2N0eF0sIFBlcnNpc3RlbmNlS2V5cy5JTklUSUFMSVpBVElPTiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmluaXQpO1xuICAgIGxvZy5pbmZvKGBSdW5uaW5nIGNvbnRyYWN0ICR7dGhpcy5nZXROYW1lKCl9IGluaXRpYWxpemF0aW9uLi4uYCk7XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgbG9nLmluZm8oYENvbnRyYWN0IGluaXRpYWxpemF0aW9uIGNvbXBsZXRlZC5gKTtcbiAgfVxuXG4gIGFzeW5jIGhlYWx0aGNoZWNrKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0XG4gICk6IFByb21pc2U8c3RyaW5nIHwgaGVhbHRoY2hlY2s+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFtjdHhdLCBcImhlYWx0aGNoZWNrXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmhlYWx0aGNoZWNrXG4gICAgKTtcbiAgICBsb2cuaW5mbyhgUnVubmluZyBIZWFsdGhjaGVjazogJHt0aGlzLmluaXRpYWxpemVkfS4uLmApO1xuICAgIHJldHVybiB7XG4gICAgICBoZWFsdGhjaGVjazogdGhpcy5pbml0aWFsaXplZCxcbiAgICAgIHZlcnNpb246IFZFUlNJT04sXG4gICAgICBwYWNrYWdlOiBQQUNLQUdFX05BTUUsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsb2dDdHg8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRFxuICApOiBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPjtcbiAgcHJvdGVjdGVkIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiBmYWxzZVxuICApOiBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPjtcbiAgcHJvdGVjdGVkIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiB0cnVlXG4gICk6IFByb21pc2U8XG4gICAgRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT5cbiAgPjtcbiAgcHJvdGVjdGVkIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiBib29sZWFuID0gZmFsc2VcbiAgKTpcbiAgICB8IFByb21pc2U8XG4gICAgICAgIEZhYnJpY0NvbnRleHR1YWxpemVkQXJnczxBUkdTLCBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2U+XG4gICAgICA+XG4gICAgfCBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPiB7XG4gICAgY29uc3QgY3R4ID0gYXJncy5wb3AoKTtcbiAgICBpZiAoIWN0eCB8fCAhY3R4LnN0dWIpIHtcbiAgICAgIHRocm93IG5ldyBNaXNzaW5nQ29udGV4dEVycm9yKGBObyB2YWxpZCBjb250ZXh0IHByb3ZpZGVkLi4uYCk7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRleHR1YWxpemVkID0gdGhpcy5hZGFwdGVyW1wibG9nQ3R4XCJdKFxuICAgICAgW3VuZGVmaW5lZCwgLi4uYXJnc10gYXMgYW55LFxuICAgICAgb3BlcmF0aW9uLFxuICAgICAgYWxsb3dDcmVhdGUgYXMgYW55LFxuICAgICAgY3R4XG4gICAgKSBhc1xuICAgICAgfCBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPlxuICAgICAgfCBQcm9taXNlPFxuICAgICAgICAgIEZhYnJpY0NvbnRleHR1YWxpemVkQXJnczxBUkdTLCBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2U+XG4gICAgICAgID47XG4gICAgZnVuY3Rpb24gc3F1YXNoQXJncyhjdHg6IEZhYnJpY0NvbnRleHR1YWxpemVkQXJncykge1xuICAgICAgY3R4LmN0eEFyZ3Muc2hpZnQoKTsgLy8gcmVtb3ZlcyBhZGRlZCBtb2RlbCB0byBhcmdzXG4gICAgICByZXR1cm4gY3R4IGFzIGFueTtcbiAgICB9XG5cbiAgICBpZiAoIShjb250ZXh0dWFsaXplZCBpbnN0YW5jZW9mIFByb21pc2UpKSByZXR1cm4gc3F1YXNoQXJncyhjb250ZXh0dWFsaXplZCk7XG4gICAgcmV0dXJuIGNvbnRleHR1YWxpemVkLnRoZW4oc3F1YXNoQXJncyk7XG4gIH1cbn1cbiJdfQ==
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uQ29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJNaWdyYXRpb25Db250cmFjdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJO0lBQ2pGLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0gsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFVBQVU7UUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQzs7UUFDMUgsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFB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QU8sVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0osQ0FBQztBQWNPLDhDQUFpQjtBQWIxQixVQUFVLENBQUM7SUFDUCxJQUFBLGlDQUFXLEdBQUU7SUFDYixVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztJQUNuQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyw2QkFBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RCxVQUFVLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDO0NBQzNDLEVBQUUsaUJBQWlCLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCw0QkFBQSxpQkFBaUIsR0FBRyxtQkFBbUIsR0FBRyxVQUFVLENBQUM7SUFDakQsSUFBQSwwQkFBSSxFQUFDO1FBQ0QsS0FBSyxFQUFFLG1CQUFtQjtRQUMxQixXQUFXLEVBQUUsdUNBQXVDO0tBQ3ZELENBQUM7SUFDRixVQUFVLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO0NBQ3RDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUV0QiwweGVBQTB4ZSIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG52YXIgTWlncmF0aW9uQ29udHJhY3RfMTtcbmltcG9ydCB7IENvbnRleHQgYXMgQ3R4LCBDb250cmFjdCwgSW5mbywgVHJhbnNhY3Rpb24sIH0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBBZGFwdGVyLCBNaWdyYXRpb25FcnJvciwgUGVyc2lzdGVuY2VLZXlzLCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RBZGFwdGVyLCB9IGZyb20gXCIuL0NvbnRyYWN0QWRhcHRlci5qc1wiO1xuaW1wb3J0IHsgRmFicmljRmxhdm91ciwgTWlzc2luZ0NvbnRleHRFcnJvciwgfSBmcm9tIFwiLi8uLi9zaGFyZWQvaW5kZXguanNcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IFZFUlNJT04sIFBBQ0tBR0VfTkFNRSB9IGZyb20gXCIuLy4uL3ZlcnNpb24uanNcIjtcbmxldCBNaWdyYXRpb25Db250cmFjdCA9IE1pZ3JhdGlvbkNvbnRyYWN0XzEgPSBjbGFzcyBNaWdyYXRpb25Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoTWlncmF0aW9uQ29udHJhY3RfMS5uYW1lKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH1cbiAgICBnZXQgYWRhcHRlcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9hZGFwdGVyKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkYXB0ZXIgPSBBZGFwdGVyLmdldChGYWJyaWNGbGF2b3VyKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2FkYXB0ZXIpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBmYWlsZWQgdG8gbG9hZCBhZGFwdGVyLiBpbnN0YW50aWF0aW9uYCk7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGFwdGVyID0gbmV3IEZhYnJpY0NvbnRyYWN0QWRhcHRlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIGluc3RhbnRpYXRlIGFkYXB0ZXI6ICR7ZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXI7XG4gICAgfVxuICAgIGFzeW5jIG1pZ3JhdGUoY29udGV4dCwgcmVmZXJlbmNlLCBtaWdyYXRpb25BcmdzKSB7XG4gICAgICAgIGxldCBhcmd6ID0gW107XG4gICAgICAgIGlmIChtaWdyYXRpb25BcmdzKSB7XG4gICAgICAgICAgICBhcmd6ID0gSlNPTi5wYXJzZShtaWdyYXRpb25BcmdzKTtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShhcmd6KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWlncmF0aW9uIGFyZ3VtZW50cyBtdXN0IGJlIGFuIGFycmF5XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJneiwgY29udGV4dF0sIFBlcnNpc3RlbmNlS2V5cy5NSUdSQVRJT04sIHRydWUpKS5mb3IodGhpcy5taWdyYXRlKTtcbiAgICAgICAgY29uc3QgbWlncmF0aW9ucyA9IHRoaXMuZ2V0UmVnaXN0ZXJlZE1pZ3JhdGlvbnMoY3R4KTtcbiAgICAgICAgY29uc3QgbWlncmF0aW9uTWV0YSA9IG1pZ3JhdGlvbnMuZmluZCgobSkgPT4gbS5yZWZlcmVuY2UgPT09IHJlZmVyZW5jZSk7XG4gICAgICAgIGlmICghbWlncmF0aW9uTWV0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE1pZ3JhdGlvbiAke3JlZmVyZW5jZX0gbm90IGZvdW5kYCk7XG4gICAgICAgIH1cbiAgICAgICAgbG9nLnZlcmJvc2UoYG1pZ3JhdGlvbiAke3JlZmVyZW5jZX0gZm91bmRgKTtcbiAgICAgICAgY29uc3QgTWlncmF0aW9uQ2xhc3MgPSBtaWdyYXRpb25NZXRhLmNsYXNzO1xuICAgICAgICBjb25zdCBtID0gbmV3IE1pZ3JhdGlvbkNsYXNzKCk7XG4gICAgICAgIC8vIEZvciBGYWJyaWMsIHVzZSB0aGUgY29udGV4dCBhcyB0aGUgcXVlcnkgcnVubmVyXG4gICAgICAgIGNvbnN0IHFyID0gY3R4O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbG9nLnZlcmJvc2UoYG1pZ3JhdGlvbiAke3JlZmVyZW5jZX0gdXBgKTtcbiAgICAgICAgICAgIGF3YWl0IG0udXAocXIsIHRoaXMuYWRhcHRlciwgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBNaWdyYXRpb25FcnJvcihgZmFpbGVkIHRvIGluaXRpYWxpemUgbWlncmF0aW9uICR7bS5yZWZlcmVuY2V9OiAke2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxvZy52ZXJib3NlKGBtaWdyYXRpb24gJHtyZWZlcmVuY2V9IG1pZ3JhdGVgKTtcbiAgICAgICAgICAgIGF3YWl0IG0ubWlncmF0ZShxciwgdGhpcy5hZGFwdGVyLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1pZ3JhdGlvbkVycm9yKGBmYWlsZWQgdG8gbWlncmF0ZSAke20ucmVmZXJlbmNlfTogJHtlfWApO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cudmVyYm9zZShgbWlncmF0aW9uICR7cmVmZXJlbmNlfSBkb3duYCk7XG4gICAgICAgICAgICBhd2FpdCBtLmRvd24ocXIsIHRoaXMuYWRhcHRlciwgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBNaWdyYXRpb25FcnJvcihgZmFpbGVkIHRvIGNvbmNsdWRlIG1pZ3JhdGlvbiAke20ucmVmZXJlbmNlfTogJHtlfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldFJlZ2lzdGVyZWRNaWdyYXRpb25zKGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgbWlncmF0aW9ucyA9IFtdO1xuICAgICAgICBjb25zdCBtaWdyYXRpb25MaXN0ID0gTWV0YWRhdGEubWlncmF0aW9ucygpO1xuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBNaWdyYXRpb25DbGFzc10gb2YgbWlncmF0aW9uTGlzdCkge1xuICAgICAgICAgICAgY29uc3QgbWV0YSA9IE1ldGFkYXRhLmdldChNaWdyYXRpb25DbGFzcywgUGVyc2lzdGVuY2VLZXlzLk1JR1JBVElPTik7XG4gICAgICAgICAgICBpZiAoIW1ldGEpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBpZiAobWV0YS5mbGF2b3VyICE9PSBGYWJyaWNGbGF2b3VyKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgbWlncmF0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICBjbGFzczogTWlncmF0aW9uQ2xhc3MsXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlOiBtZXRhLnJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBmbGF2b3VyOiBtZXRhLmZsYXZvdXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWlncmF0aW9ucztcbiAgICB9XG4gICAgYXN5bmMgaW5pdChjdHgpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbY3R4XSwgUGVyc2lzdGVuY2VLZXlzLklOSVRJQUxJWkFUSU9OLCB0cnVlKSkuZm9yKHRoaXMuaW5pdCk7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIGNvbnRyYWN0ICR7dGhpcy5nZXROYW1lKCl9IGluaXRpYWxpemF0aW9uLi4uYCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICBsb2cuaW5mbyhgQ29udHJhY3QgaW5pdGlhbGl6YXRpb24gY29tcGxldGVkLmApO1xuICAgIH1cbiAgICBhc3luYyBoZWFsdGhjaGVjayhjdHgpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbY3R4XSwgXCJoZWFsdGhjaGVja1wiLCB0cnVlKSkuZm9yKHRoaXMuaGVhbHRoY2hlY2spO1xuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBIZWFsdGhjaGVjazogJHt0aGlzLmluaXRpYWxpemVkfS4uLmApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhbHRoY2hlY2s6IHRoaXMuaW5pdGlhbGl6ZWQsXG4gICAgICAgICAgICB2ZXJzaW9uOiBWRVJTSU9OLFxuICAgICAgICAgICAgcGFja2FnZTogUEFDS0FHRV9OQU1FLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBsb2dDdHgoYXJncywgb3BlcmF0aW9uLCBhbGxvd0NyZWF0ZSA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IGFyZ3MucG9wKCk7XG4gICAgICAgIGlmICghY3R4IHx8ICFjdHguc3R1Yikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdDb250ZXh0RXJyb3IoYE5vIHZhbGlkIGNvbnRleHQgcHJvdmlkZWQuLi5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250ZXh0dWFsaXplZCA9IHRoaXMuYWRhcHRlcltcImxvZ0N0eFwiXShbdW5kZWZpbmVkLCAuLi5hcmdzXSwgb3BlcmF0aW9uLCBhbGxvd0NyZWF0ZSwgY3R4KTtcbiAgICAgICAgZnVuY3Rpb24gc3F1YXNoQXJncyhjdHgpIHtcbiAgICAgICAgICAgIGN0eC5jdHhBcmdzLnNoaWZ0KCk7IC8vIHJlbW92ZXMgYWRkZWQgbW9kZWwgdG8gYXJnc1xuICAgICAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShjb250ZXh0dWFsaXplZCBpbnN0YW5jZW9mIFByb21pc2UpKVxuICAgICAgICAgICAgcmV0dXJuIHNxdWFzaEFyZ3MoY29udGV4dHVhbGl6ZWQpO1xuICAgICAgICByZXR1cm4gY29udGV4dHVhbGl6ZWQudGhlbihzcXVhc2hBcmdzKTtcbiAgICB9XG59O1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ3R4LCBTdHJpbmcsIFN0cmluZ10pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgTWlncmF0aW9uQ29udHJhY3QucHJvdG90eXBlLCBcIm1pZ3JhdGVcIiwgbnVsbCk7XG5NaWdyYXRpb25Db250cmFjdCA9IE1pZ3JhdGlvbkNvbnRyYWN0XzEgPSBfX2RlY29yYXRlKFtcbiAgICBJbmZvKHtcbiAgICAgICAgdGl0bGU6IFwiTWlncmF0aW9uQ29udHJhY3RcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQ29udHJhY3QgZm9yIG1hbmFnaW5nIGRhdGEgbWlncmF0aW9uc1wiLFxuICAgIH0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbXSlcbl0sIE1pZ3JhdGlvbkNvbnRyYWN0KTtcbmV4cG9ydCB7IE1pZ3JhdGlvbkNvbnRyYWN0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lUV2xuY21GMGFXOXVRMjl1ZEhKaFkzUXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk5emNtTXZZMjl1ZEhKaFkzUnpMMDFwWjNKaGRHbHZia052Ym5SeVlXTjBMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3UVVGQlFTeFBRVUZQTEVWQlEwd3NUMEZCVHl4SlFVRkpMRWRCUVVjc1JVRkRaQ3hSUVVGUkxFVkJRMUlzU1VGQlNTeEZRVU5LTEZkQlFWY3NSMEZEV2l4TlFVRk5MSEZDUVVGeFFpeERRVUZETzBGQlF6ZENMRTlCUVU4c1JVRkJaU3hSUVVGUkxFVkJRVVVzVFVGQlRTeHpRa0ZCYzBJc1EwRkJRenRCUVVNM1JDeFBRVUZQTEVWQlEwd3NUMEZCVHl4RlFVZFFMR05CUVdNc1JVRkRaQ3hsUVVGbExFZEJRMmhDTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGRmVFSXNUMEZCVHl4RlFVVk1MSEZDUVVGeFFpeEhRVU4wUWl3MlFrRkJNRUk3UVVGRE0wSXNUMEZCVHl4RlFVTk1MR0ZCUVdFc1JVRkZZaXh0UWtGQmJVSXNSMEZEY0VJc05rSkJRWGRDTzBGQlEzcENMRTlCUVU4c1JVRkJSU3hoUVVGaExFVkJRVVVzVFVGQlRTeDVRa0ZCZVVJc1EwRkJRenRCUVVWNFJDeFBRVUZQTEVWQlFVVXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSU3gzUWtGQmJVSTdRVUZOTlVNc1NVRkJUU3hwUWtGQmFVSXNlVUpCUVhaQ0xFMUJRVTBzYVVKQlFXdENMRk5CUVZFc1VVRkJVVHRKUVVzM1F6dFJRVU5GTEV0QlFVc3NRMEZCUXl4dFFrRkJhVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVaDBRaXhuUWtGQlZ5eEhRVUZaTEV0QlFVc3NRMEZCUXp0SlFVbDJReXhEUVVGRE8wbEJSVVFzU1VGQll5eFBRVUZQTzFGQlEyNUNMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdXVUZEYmtJc1NVRkJTU3hEUVVGRE8yZENRVU5JTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFWRXNRMEZCUXp0blFrRkRiRVFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJPMjlDUVVOb1FpeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMSFZEUVVGMVF5eERRVUZETEVOQlFVTTdaMEpCUTI1RkxEWkVRVUUyUkR0WlFVTXZSQ3hEUVVGRE8xbEJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzU1VGQlNTeERRVUZETzI5Q1FVTklMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzU1VGQlNTeHhRa0ZCY1VJc1JVRkJSU3hEUVVGRE8yZENRVU01UXl4RFFVRkRPMmRDUVVGRExFOUJRVThzUTBGQlZTeEZRVUZGTEVOQlFVTTdiMEpCUTNCQ0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNhME5CUVd0RExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTJwRkxFTkJRVU03V1VGRFNDeERRVUZETzFGQlEwZ3NRMEZCUXp0UlFVTkVMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dEpRVU4yUWl4RFFVRkRPMGxCUjBzc1FVRkJUaXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVU5ZTEU5QlFWa3NSVUZEV2l4VFFVRnBRaXhGUVVOcVFpeGhRVUZ6UWp0UlFVVjBRaXhKUVVGSkxFbEJRVWtzUjBGQlZTeEZRVUZGTEVOQlFVTTdVVUZEY2tJc1NVRkJTU3hoUVVGaExFVkJRVVVzUTBGQlF6dFpRVU5zUWl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGhRVUZoTEVOQlFWRXNRMEZCUXp0WlFVTjRReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRE8yZENRVU42UWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExITkRRVUZ6UXl4RFFVRkRMRU5CUVVNN1dVRkRiRVVzUTBGQlF6dFJRVU5JTEVOQlFVTTdVVUZEUkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTTFRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1JVRkJSU3hQUVVGUExFTkJRVU1zUlVGQlJTeGxRVUZsTEVOQlFVTXNVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVOMlJTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRmNFSXNUVUZCVFN4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExIVkNRVUYxUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSWEpFTEUxQlFVMHNZVUZCWVN4SFFVRkhMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEVOQlFVTTdVVUZGZUVVc1NVRkJTU3hEUVVGRExHRkJRV0VzUlVGQlJTeERRVUZETzFsQlEyNUNMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zWVVGQllTeFRRVUZUTEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUXpsRUxFTkJRVU03VVVGRlJDeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1UwRkJVeXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU0xUXl4TlFVRk5MR05CUVdNc1IwRkRiRUlzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXp0UlFVTjBRaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEdOQlFXTXNSVUZCUlN4RFFVRkRPMUZCUXk5Q0xHdEVRVUZyUkR0UlFVTnNSQ3hOUVVGTkxFVkJRVVVzUjBGQlVTeEhRVUZITEVOQlFVTTdVVUZGY0VJc1NVRkJTU3hEUVVGRE8xbEJRMGdzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhMRk5CUVZNc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRGVrTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRE0wTXNRMEZCUXp0UlFVRkRMRTlCUVU4c1EwRkJWU3hGUVVGRkxFTkJRVU03V1VGRGNFSXNUVUZCVFN4SlFVRkpMR05CUVdNc1EwRkRkRUlzYTBOQlFXdERMRU5CUVVNc1EwRkJReXhUUVVGVExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlEzUkVMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJRMFFzU1VGQlNTeERRVUZETzFsQlEwZ3NSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhoUVVGaExGTkJRVk1zVlVGQlZTeERRVUZETEVOQlFVTTdXVUZET1VNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEYUVRc1EwRkJRenRSUVVGRExFOUJRVThzUTBGQlZTeEZRVUZGTEVOQlFVTTdXVUZEY0VJc1RVRkJUU3hKUVVGSkxHTkJRV01zUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRExGTkJRVk1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTNKRkxFTkJRVU03VVVGRFJDeEpRVUZKTEVOQlFVTTdXVUZEU0N4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzVTBGQlV5eFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVTXpReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RlFVRkZMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTTNReXhEUVVGRE8xRkJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0WlFVTndRaXhOUVVGTkxFbEJRVWtzWTBGQll5eERRVU4wUWl4blEwRkJaME1zUTBGQlF5eERRVUZETEZOQlFWTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkRjRVFzUTBGQlF6dFJRVU5LTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlZNc2RVSkJRWFZDTEVOQlFVTXNUMEZCT0VJN1VVRkxPVVFzVFVGQlRTeFZRVUZWTEVkQlNWZ3NSVUZCUlN4RFFVRkRPMUZCUlZJc1RVRkJUU3hoUVVGaExFZEJRVWtzVVVGQlowSXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRSUVVWeVJDeExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1kwRkJZeXhEUVVGRExFbEJRVWtzWVVGQllTeEZRVUZGTEVOQlFVTTdXVUZEYmtRc1RVRkJUU3hKUVVGSkxFZEJRVWNzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4alFVRmpMRVZCUVVVc1pVRkJaU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFsQlJYSkZMRWxCUVVrc1EwRkJReXhKUVVGSk8yZENRVUZGTEZOQlFWTTdXVUZGY0VJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVDBGQlR5eExRVUZMTEdGQlFXRTdaMEpCUVVVc1UwRkJVenRaUVVVM1F5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRPMmRDUVVOa0xFdEJRVXNzUlVGQlJTeGpRVUZqTzJkQ1FVTnlRaXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEZOQlFWTTdaMEpCUTNwQ0xFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVHp0aFFVTjBRaXhEUVVGRExFTkJRVU03VVVGRFRDeERRVUZETzFGQlJVUXNUMEZCVHl4VlFVRlZMRU5CUVVNN1NVRkRjRUlzUTBGQlF6dEpRVVZUTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJaME03VVVGRGJrUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRMlFzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzWlVGQlpTeERRVUZETEdOQlFXTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRMMFFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMnBDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc2IwSkJRVzlDTEVOQlFVTXNRMEZCUXp0UlFVTnFSU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVTjRRaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEc5RFFVRnZReXhEUVVGRExFTkJRVU03U1VGRGFrUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRMllzUjBGQlowTTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVU5xUlN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVOcVFpeERRVUZETzFGQlEwWXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXgzUWtGQmQwSXNTVUZCU1N4RFFVRkRMRmRCUVZjc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVFUXNUMEZCVHp0WlFVTk1MRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU1zVjBGQlZ6dFpRVU0zUWl4UFFVRlBMRVZCUVVVc1QwRkJUenRaUVVOb1FpeFBRVUZQTEVWQlFVVXNXVUZCV1R0VFFVTjBRaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVEpDVXl4TlFVRk5MRU5CU1dRc1NVRkJjVVFzUlVGRGNrUXNVMEZCYVVJc1JVRkRha0lzWTBGQmRVSXNTMEZCU3p0UlFVMDFRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRka0lzU1VGQlNTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFpRVU4wUWl4TlFVRk5MRWxCUVVrc2JVSkJRVzFDTEVOQlFVTXNPRUpCUVRoQ0xFTkJRVU1zUTBGQlF6dFJRVU5vUlN4RFFVRkRPMUZCUTBRc1RVRkJUU3hqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkRNME1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVZFc1JVRkRNMElzVTBGQlV5eEZRVU5VTEZkQlFXdENMRVZCUTJ4Q0xFZEJRVWNzUTBGTFFTeERRVUZETzFGQlEwNHNVMEZCVXl4VlFVRlZMRU5CUVVNc1IwRkJOa0k3V1VGREwwTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETERoQ1FVRTRRanRaUVVOdVJDeFBRVUZQTEVkQlFWVXNRMEZCUXp0UlFVTndRaXhEUVVGRE8xRkJSVVFzU1VGQlNTeERRVUZETEVOQlFVTXNZMEZCWXl4WlFVRlpMRTlCUVU4c1EwRkJRenRaUVVGRkxFOUJRVThzVlVGQlZTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMUZCUXpWRkxFOUJRVThzWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRKUVVONlF5eERRVUZETzBOQlEwWXNRMEZCUVR0QlFYWkxUenRKUVVSTUxGZEJRVmNzUlVGQlJUczdjVU5CUlVnc1IwRkJSenM3WjBSQmIwUmlPMEZCYWtaVkxHbENRVUZwUWp0SlFVbzNRaXhKUVVGSkxFTkJRVU03VVVGRFNpeExRVUZMTEVWQlFVVXNiVUpCUVcxQ08xRkJRekZDTEZkQlFWY3NSVUZCUlN4MVEwRkJkVU03UzBGRGNrUXNRMEZCUXpzN1IwRkRWeXhwUWtGQmFVSXNRMEZ0VFRkQ0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdGNiaUFnUTI5dWRHVjRkQ0JoY3lCRGRIZ3NYRzRnSUVOdmJuUnlZV04wTEZ4dUlDQkpibVp2TEZ4dUlDQlVjbUZ1YzJGamRHbHZiaXhjYm4wZ1puSnZiU0JjSW1aaFluSnBZeTFqYjI1MGNtRmpkQzFoY0dsY0lqdGNibWx0Y0c5eWRDQjdJRU52Ym5OMGNuVmpkRzl5TENCTlpYUmhaR0YwWVNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1FXUmhjSFJsY2l4Y2JpQWdUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5MRnh1SUNCTlpYUm9iMlJQY2s5d1pYSmhkR2x2Yml4Y2JpQWdUV2xuY21GMGFXOXVSWEp5YjNJc1hHNGdJRkJsY25OcGMzUmxibU5sUzJWNWN5eGNibjBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJOYVdkeVlYUnBiMjRnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFWmhZbkpwWTBOdmJuUmxlSFIxWVd4cGVtVmtRWEpuY3l4Y2JpQWdSbUZpY21salEyOXVkSEpoWTNSQlpHRndkR1Z5TEZ4dWZTQm1jbTl0SUZ3aUxpOURiMjUwY21GamRFRmtZWEIwWlhKY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVaaFluSnBZMFpzWVhadmRYSXNYRzRnSUdobFlXeDBhR05vWldOckxGeHVJQ0JOYVhOemFXNW5RMjl1ZEdWNGRFVnljbTl5TEZ4dWZTQm1jbTl0SUZ3aUxpNHZjMmhoY21Wa0wybHVaR1Y0WENJN1hHNXBiWEJ2Y25RZ2V5QkpiblJsY201aGJFVnljbTl5SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUWdmU0JtY205dElGd2lMaTlEYjI1MGNtRmpkRU52Ym5SbGVIUmNJanRjYm1sdGNHOXlkQ0I3SUZaRlVsTkpUMDRzSUZCQlEwdEJSMFZmVGtGTlJTQjlJR1p5YjIwZ1hDSXVMaTkyWlhKemFXOXVYQ0k3WEc1Y2JrQkpibVp2S0h0Y2JpQWdkR2wwYkdVNklGd2lUV2xuY21GMGFXOXVRMjl1ZEhKaFkzUmNJaXhjYmlBZ1pHVnpZM0pwY0hScGIyNDZJRndpUTI5dWRISmhZM1FnWm05eUlHMWhibUZuYVc1bklHUmhkR0VnYldsbmNtRjBhVzl1YzF3aUxGeHVmU2xjYm1WNGNHOXlkQ0JqYkdGemN5Qk5hV2R5WVhScGIyNURiMjUwY21GamRDQmxlSFJsYm1SeklFTnZiblJ5WVdOMElIdGNiaUFnY0hKcGRtRjBaU0JmWVdSaGNIUmxjajg2SUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNqdGNibHh1SUNCd2NtOTBaV04wWldRZ2FXNXBkR2xoYkdsNlpXUTZJR0p2YjJ4bFlXNGdQU0JtWVd4elpUdGNibHh1SUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQnpkWEJsY2loTmFXZHlZWFJwYjI1RGIyNTBjbUZqZEM1dVlXMWxLVHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCblpYUWdZV1JoY0hSbGNpZ3BJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVYMkZrWVhCMFpYSXBJSHRjYmlBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WDJGa1lYQjBaWElnUFNCQlpHRndkR1Z5TG1kbGRDaEdZV0p5YVdOR2JHRjJiM1Z5S1NCaGN5Qmhibms3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hkR2hwY3k1ZllXUmhjSFJsY2lsY2JpQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loZ1ptRnBiR1ZrSUhSdklHeHZZV1FnWVdSaGNIUmxjaTRnYVc1emRHRnVkR2xoZEdsdmJtQXBPMXh1SUNBZ0lDQWdJQ0F2THlCbGMyeHBiblF0WkdsellXSnNaUzF1WlhoMExXeHBibVVnUUhSNWNHVnpZM0pwY0hRdFpYTnNhVzUwTDI1dkxYVnVkWE5sWkMxMllYSnpYRzRnSUNBZ0lDQjlJR05oZEdOb0lDaGxPaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NWZZV1JoY0hSbGNpQTlJRzVsZHlCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSW9LVHRjYmlBZ0lDQWdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHQkdZV2xzWldRZ2RHOGdhVzV6ZEdGdWRHbGhkR1VnWVdSaGNIUmxjam9nSkh0bGZXQXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDloWkdGd2RHVnlPMXh1SUNCOVhHNWNiaUFnUUZSeVlXNXpZV04wYVc5dUtDbGNiaUFnWVhONWJtTWdiV2xuY21GMFpTaGNiaUFnSUNCamIyNTBaWGgwT2lCRGRIZ3NYRzRnSUNBZ2NtVm1aWEpsYm1ObE9pQnpkSEpwYm1jc1hHNGdJQ0FnYldsbmNtRjBhVzl1UVhKbmN6ODZJSE4wY21sdVoxeHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQnNaWFFnWVhKbmVqb2dZVzU1VzEwZ1BTQmJYVHRjYmlBZ0lDQnBaaUFvYldsbmNtRjBhVzl1UVhKbmN5a2dlMXh1SUNBZ0lDQWdZWEpuZWlBOUlFcFRUMDR1Y0dGeWMyVW9iV2xuY21GMGFXOXVRWEpuY3lrZ1lYTWdZVzU1TzF4dUlDQWdJQ0FnYVdZZ0tDRkJjbkpoZVM1cGMwRnljbUY1S0dGeVozb3BLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRndpVFdsbmNtRjBhVzl1SUdGeVozVnRaVzUwY3lCdGRYTjBJR0psSUdGdUlHRnljbUY1WENJcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQjdJR3h2Wnl3Z1kzUjRMQ0JqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYkxpNHVZWEpuZWl3Z1kyOXVkR1Y0ZEYwc0lGQmxjbk5wYzNSbGJtTmxTMlY1Y3k1TlNVZFNRVlJKVDA0c0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTV0YVdkeVlYUmxLVHRjYmx4dUlDQWdJR052Ym5OMElHMXBaM0poZEdsdmJuTWdQU0IwYUdsekxtZGxkRkpsWjJsemRHVnlaV1JOYVdkeVlYUnBiMjV6S0dOMGVDazdYRzVjYmlBZ0lDQmpiMjV6ZENCdGFXZHlZWFJwYjI1TlpYUmhJRDBnYldsbmNtRjBhVzl1Y3k1bWFXNWtLQ2h0S1NBOVBpQnRMbkpsWm1WeVpXNWpaU0E5UFQwZ2NtVm1aWEpsYm1ObEtUdGNibHh1SUNBZ0lHbG1JQ2doYldsbmNtRjBhVzl1VFdWMFlTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1lFMXBaM0poZEdsdmJpQWtlM0psWm1WeVpXNWpaWDBnYm05MElHWnZkVzVrWUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1lHMXBaM0poZEdsdmJpQWtlM0psWm1WeVpXNWpaWDBnWm05MWJtUmdLVHRjYmlBZ0lDQmpiMjV6ZENCTmFXZHlZWFJwYjI1RGJHRnpjem9nUTI5dWMzUnlkV04wYjNJOFRXbG5jbUYwYVc5dVBHRnVlU3dnWVc1NVBqNGdQVnh1SUNBZ0lDQWdiV2xuY21GMGFXOXVUV1YwWVM1amJHRnpjenRjYmlBZ0lDQmpiMjV6ZENCdElEMGdibVYzSUUxcFozSmhkR2x2YmtOc1lYTnpLQ2s3WEc0Z0lDQWdMeThnUm05eUlFWmhZbkpwWXl3Z2RYTmxJSFJvWlNCamIyNTBaWGgwSUdGeklIUm9aU0J4ZFdWeWVTQnlkVzV1WlhKY2JpQWdJQ0JqYjI1emRDQnhjam9nWVc1NUlEMGdZM1I0TzF4dVhHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHeHZaeTUyWlhKaWIzTmxLR0J0YVdkeVlYUnBiMjRnSkh0eVpXWmxjbVZ1WTJWOUlIVndZQ2s3WEc0Z0lDQWdJQ0JoZDJGcGRDQnRMblZ3S0hGeUxDQjBhR2x6TG1Ga1lYQjBaWElzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dVNklIVnVhMjV2ZDI0cElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5Qk5hV2R5WVhScGIyNUZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1lHWmhhV3hsWkNCMGJ5QnBibWwwYVdGc2FYcGxJRzFwWjNKaGRHbHZiaUFrZTIwdWNtVm1aWEpsYm1ObGZUb2dKSHRsZldCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCc2IyY3VkbVZ5WW05elpTaGdiV2xuY21GMGFXOXVJQ1I3Y21WbVpYSmxibU5sZlNCdGFXZHlZWFJsWUNrN1hHNGdJQ0FnSUNCaGQyRnBkQ0J0TG0xcFozSmhkR1VvY1hJc0lIUm9hWE11WVdSaGNIUmxjaXdnTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFMXBaM0poZEdsdmJrVnljbTl5S0dCbVlXbHNaV1FnZEc4Z2JXbG5jbUYwWlNBa2UyMHVjbVZtWlhKbGJtTmxmVG9nSkh0bGZXQXBPMXh1SUNBZ0lIMWNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdiRzluTG5abGNtSnZjMlVvWUcxcFozSmhkR2x2YmlBa2UzSmxabVZ5Wlc1alpYMGdaRzkzYm1BcE8xeHVJQ0FnSUNBZ1lYZGhhWFFnYlM1a2IzZHVLSEZ5TENCMGFHbHpMbUZrWVhCMFpYSXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1U2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCTmFXZHlZWFJwYjI1RmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWUdaaGFXeGxaQ0IwYnlCamIyNWpiSFZrWlNCdGFXZHlZWFJwYjI0Z0pIdHRMbkpsWm1WeVpXNWpaWDA2SUNSN1pYMWdYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhSU1pXZHBjM1JsY21Wa1RXbG5jbUYwYVc5dWN5aGpiMjUwWlhoME9pQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFwT2lCQmNuSmhlVHg3WEc0Z0lDQWdZMnhoYzNNNklHRnVlVHRjYmlBZ0lDQnlaV1psY21WdVkyVTZJSE4wY21sdVp6dGNiaUFnSUNCbWJHRjJiM1Z5T2lCemRISnBibWM3WEc0Z0lIMCtJSHRjYmlBZ0lDQmpiMjV6ZENCdGFXZHlZWFJwYjI1ek9pQkJjbkpoZVR4N1hHNGdJQ0FnSUNCamJHRnpjem9nWVc1NU8xeHVJQ0FnSUNBZ2NtVm1aWEpsYm1ObE9pQnpkSEpwYm1jN1hHNGdJQ0FnSUNCbWJHRjJiM1Z5T2lCemRISnBibWM3WEc0Z0lDQWdmVDRnUFNCYlhUdGNibHh1SUNBZ0lHTnZibk4wSUcxcFozSmhkR2x2Ymt4cGMzUWdQU0FvVFdWMFlXUmhkR0VnWVhNZ1lXNTVLUzV0YVdkeVlYUnBiMjV6S0NrN1hHNWNiaUFnSUNCbWIzSWdLR052Ym5OMElGdHVZVzFsTENCTmFXZHlZWFJwYjI1RGJHRnpjMTBnYjJZZ2JXbG5jbUYwYVc5dVRHbHpkQ2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdiV1YwWVNBOUlFMWxkR0ZrWVhSaExtZGxkQ2hOYVdkeVlYUnBiMjVEYkdGemN5d2dVR1Z5YzJsemRHVnVZMlZMWlhsekxrMUpSMUpCVkVsUFRpazdYRzVjYmlBZ0lDQWdJR2xtSUNnaGJXVjBZU2tnWTI5dWRHbHVkV1U3WEc1Y2JpQWdJQ0FnSUdsbUlDaHRaWFJoTG1ac1lYWnZkWElnSVQwOUlFWmhZbkpwWTBac1lYWnZkWElwSUdOdmJuUnBiblZsTzF4dVhHNGdJQ0FnSUNCdGFXZHlZWFJwYjI1ekxuQjFjMmdvZTF4dUlDQWdJQ0FnSUNCamJHRnpjem9nVFdsbmNtRjBhVzl1UTJ4aGMzTXNYRzRnSUNBZ0lDQWdJSEpsWm1WeVpXNWpaVG9nYldWMFlTNXlaV1psY21WdVkyVXNYRzRnSUNBZ0lDQWdJR1pzWVhadmRYSTZJRzFsZEdFdVpteGhkbTkxY2l4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJ0YVdkeVlYUnBiMjV6TzF4dUlDQjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lHRnplVzVqSUdsdWFYUW9ZM1I0T2lCRGRIZ2dmQ0JHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR3h2WnlCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29XMk4wZUYwc0lGQmxjbk5wYzNSbGJtTmxTMlY1Y3k1SlRrbFVTVUZNU1ZwQlZFbFBUaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtbHVhWFFwTzF4dUlDQWdJR3h2Wnk1cGJtWnZLR0JTZFc1dWFXNW5JR052Ym5SeVlXTjBJQ1I3ZEdocGN5NW5aWFJPWVcxbEtDbDlJR2x1YVhScFlXeHBlbUYwYVc5dUxpNHVZQ2s3WEc0Z0lDQWdkR2hwY3k1cGJtbDBhV0ZzYVhwbFpDQTlJSFJ5ZFdVN1hHNGdJQ0FnYkc5bkxtbHVabThvWUVOdmJuUnlZV04wSUdsdWFYUnBZV3hwZW1GMGFXOXVJR052YlhCc1pYUmxaQzVnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdobFlXeDBhR05vWldOcktGeHVJQ0FnSUdOMGVEb2dRM1I0SUh3Z1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBYRzRnSUNrNklGQnliMjFwYzJVOGMzUnlhVzVuSUh3Z2FHVmhiSFJvWTJobFkycytJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeUI5SUQwZ0tHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGdGpkSGhkTENCY0ltaGxZV3gwYUdOb1pXTnJYQ0lzSUhSeWRXVXBLUzVtYjNJb1hHNGdJQ0FnSUNCMGFHbHpMbWhsWVd4MGFHTm9aV05yWEc0Z0lDQWdLVHRjYmlBZ0lDQnNiMmN1YVc1bWJ5aGdVblZ1Ym1sdVp5QklaV0ZzZEdoamFHVmphem9nSkh0MGFHbHpMbWx1YVhScFlXeHBlbVZrZlM0dUxtQXBPMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCb1pXRnNkR2hqYUdWamF6b2dkR2hwY3k1cGJtbDBhV0ZzYVhwbFpDeGNiaUFnSUNBZ0lIWmxjbk5wYjI0NklGWkZVbE5KVDA0c1hHNGdJQ0FnSUNCd1lXTnJZV2RsT2lCUVFVTkxRVWRGWDA1QlRVVXNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JzYjJkRGRIZzhYRzRnSUNBZ1FWSkhVeUJsZUhSbGJtUnpJR0Z1ZVZ0ZElEMGdZVzU1VzEwc1hHNGdJQ0FnVFVWVVNFOUVJR1Y0ZEdWdVpITWdUV1YwYUc5a1QzSlBjR1Z5WVhScGIyNGdQU0JOWlhSb2IyUlBjazl3WlhKaGRHbHZiaXhjYmlBZ1BpaGNiaUFnSUNCaGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4Um1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExDQkJVa2RUUGl4Y2JpQWdJQ0J2Y0dWeVlYUnBiMjQ2SUUxRlZFaFBSRnh1SUNBcE9pQkdZV0p5YVdORGIyNTBaWGgwZFdGc2FYcGxaRUZ5WjNNOFFWSkhVeXdnVFVWVVNFOUVJR1Y0ZEdWdVpITWdjM1J5YVc1bklEOGdkSEoxWlNBNklHWmhiSE5sUGp0Y2JpQWdjSEp2ZEdWamRHVmtJR3h2WjBOMGVEeGNiaUFnSUNCQlVrZFRJR1Y0ZEdWdVpITWdZVzU1VzEwZ1BTQmhibmxiWFN4Y2JpQWdJQ0JOUlZSSVQwUWdaWGgwWlc1a2N5Qk5aWFJvYjJSUGNrOXdaWEpoZEdsdmJpQTlJRTFsZEdodlpFOXlUM0JsY21GMGFXOXVMRnh1SUNBK0tGeHVJQ0FnSUdGeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRc0lFRlNSMU0rTEZ4dUlDQWdJRzl3WlhKaGRHbHZiam9nVFVWVVNFOUVMRnh1SUNBZ0lHRnNiRzkzUTNKbFlYUmxPaUJtWVd4elpWeHVJQ0FwT2lCR1lXSnlhV05EYjI1MFpYaDBkV0ZzYVhwbFpFRnlaM004UVZKSFV5d2dUVVZVU0U5RUlHVjRkR1Z1WkhNZ2MzUnlhVzVuSUQ4Z2RISjFaU0E2SUdaaGJITmxQanRjYmlBZ2NISnZkR1ZqZEdWa0lHeHZaME4wZUR4Y2JpQWdJQ0JCVWtkVElHVjRkR1Z1WkhNZ1lXNTVXMTBnUFNCaGJubGJYU3hjYmlBZ0lDQk5SVlJJVDBRZ1pYaDBaVzVrY3lCTlpYUm9iMlJQY2s5d1pYSmhkR2x2YmlBOUlFMWxkR2h2WkU5eVQzQmxjbUYwYVc5dUxGeHVJQ0ErS0Z4dUlDQWdJR0Z5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFzSUVGU1IxTStMRnh1SUNBZ0lHOXdaWEpoZEdsdmJqb2dUVVZVU0U5RUxGeHVJQ0FnSUdGc2JHOTNRM0psWVhSbE9pQjBjblZsWEc0Z0lDazZJRkJ5YjIxcGMyVThYRzRnSUNBZ1JtRmljbWxqUTI5dWRHVjRkSFZoYkdsNlpXUkJjbWR6UEVGU1IxTXNJRTFGVkVoUFJDQmxlSFJsYm1SeklITjBjbWx1WnlBL0lIUnlkV1VnT2lCbVlXeHpaVDVjYmlBZ1BqdGNiaUFnY0hKdmRHVmpkR1ZrSUd4dlowTjBlRHhjYmlBZ0lDQkJVa2RUSUdWNGRHVnVaSE1nWVc1NVcxMGdQU0JoYm5sYlhTeGNiaUFnSUNCTlJWUklUMFFnWlhoMFpXNWtjeUJOWlhSb2IyUlBjazl3WlhKaGRHbHZiaUE5SUUxbGRHaHZaRTl5VDNCbGNtRjBhVzl1TEZ4dUlDQStLRnh1SUNBZ0lHRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNJRUZTUjFNK0xGeHVJQ0FnSUc5d1pYSmhkR2x2YmpvZ1RVVlVTRTlFTEZ4dUlDQWdJR0ZzYkc5M1EzSmxZWFJsT2lCaWIyOXNaV0Z1SUQwZ1ptRnNjMlZjYmlBZ0tUcGNiaUFnSUNCOElGQnliMjFwYzJVOFhHNGdJQ0FnSUNBZ0lFWmhZbkpwWTBOdmJuUmxlSFIxWVd4cGVtVmtRWEpuY3p4QlVrZFRMQ0JOUlZSSVQwUWdaWGgwWlc1a2N5QnpkSEpwYm1jZ1B5QjBjblZsSURvZ1ptRnNjMlUrWEc0Z0lDQWdJQ0ErWEc0Z0lDQWdmQ0JHWVdKeWFXTkRiMjUwWlhoMGRXRnNhWHBsWkVGeVozTThRVkpIVXl3Z1RVVlVTRTlFSUdWNGRHVnVaSE1nYzNSeWFXNW5JRDhnZEhKMVpTQTZJR1poYkhObFBpQjdYRzRnSUNBZ1kyOXVjM1FnWTNSNElEMGdZWEpuY3k1d2IzQW9LVHRjYmlBZ0lDQnBaaUFvSVdOMGVDQjhmQ0FoWTNSNExuTjBkV0lwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCTmFYTnphVzVuUTI5dWRHVjRkRVZ5Y205eUtHQk9ieUIyWVd4cFpDQmpiMjUwWlhoMElIQnliM1pwWkdWa0xpNHVZQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUdOdmJuUmxlSFIxWVd4cGVtVmtJRDBnZEdocGN5NWhaR0Z3ZEdWeVcxd2liRzluUTNSNFhDSmRLRnh1SUNBZ0lDQWdXM1Z1WkdWbWFXNWxaQ3dnTGk0dVlYSm5jMTBnWVhNZ1lXNTVMRnh1SUNBZ0lDQWdiM0JsY21GMGFXOXVMRnh1SUNBZ0lDQWdZV3hzYjNkRGNtVmhkR1VnWVhNZ1lXNTVMRnh1SUNBZ0lDQWdZM1I0WEc0Z0lDQWdLU0JoYzF4dUlDQWdJQ0FnZkNCR1lXSnlhV05EYjI1MFpYaDBkV0ZzYVhwbFpFRnlaM004UVZKSFV5d2dUVVZVU0U5RUlHVjRkR1Z1WkhNZ2MzUnlhVzVuSUQ4Z2RISjFaU0E2SUdaaGJITmxQbHh1SUNBZ0lDQWdmQ0JRY205dGFYTmxQRnh1SUNBZ0lDQWdJQ0FnSUVaaFluSnBZME52Ym5SbGVIUjFZV3hwZW1Wa1FYSm5jenhCVWtkVExDQk5SVlJJVDBRZ1pYaDBaVzVrY3lCemRISnBibWNnUHlCMGNuVmxJRG9nWm1Gc2MyVStYRzRnSUNBZ0lDQWdJRDQ3WEc0Z0lDQWdablZ1WTNScGIyNGdjM0YxWVhOb1FYSm5jeWhqZEhnNklFWmhZbkpwWTBOdmJuUmxlSFIxWVd4cGVtVmtRWEpuY3lrZ2UxeHVJQ0FnSUNBZ1kzUjRMbU4wZUVGeVozTXVjMmhwWm5Rb0tUc2dMeThnY21WdGIzWmxjeUJoWkdSbFpDQnRiMlJsYkNCMGJ5QmhjbWR6WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZM1I0SUdGeklHRnVlVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvSVNoamIyNTBaWGgwZFdGc2FYcGxaQ0JwYm5OMFlXNWpaVzltSUZCeWIyMXBjMlVwS1NCeVpYUjFjbTRnYzNGMVlYTm9RWEpuY3loamIyNTBaWGgwZFdGc2FYcGxaQ2s3WEc0Z0lDQWdjbVYwZFhKdUlHTnZiblJsZUhSMVlXeHBlbVZrTG5Sb1pXNG9jM0YxWVhOb1FYSm5jeWs3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
|