@decaf-ts/for-fabric 0.12.0 → 0.12.2
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
|
@@ -448,5 +448,5 @@ class FabricClientStatement extends core_1.Statement {
|
|
|
448
448
|
}
|
|
449
449
|
}
|
|
450
450
|
exports.FabricClientStatement = FabricClientStatement;
|
|
451
|
-
//# sourceMappingURL=FabricClientStatement.js.map
|
|
452
|
-
//# sourceMappingURL=FabricClientStatement.js.map
|
|
451
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50U3RhdGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9GYWJyaWNDbGllbnRTdGF0ZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxhQUFhLEVBRWIsUUFBUSxFQUVSLGVBQWUsRUFFZixxQkFBcUIsRUFDckIsV0FBVyxFQUNYLFVBQVUsRUFDVixVQUFVLEVBRVYsUUFBUSxFQUNSLFNBQVMsR0FHVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBSWpCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUdqQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQXNCaEQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQVUsRUFBRSxDQUM3QyxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRS9DLFNBQVMsdUJBQXVCLENBQUMsS0FBYTtJQUM1QyxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sUUFBUSxDQUFDO0lBQzVCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxD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SUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFpQixDQUFDO1FBQ2hFLENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBaUIsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlLENBQ3JCLElBQXlCO1FBRXpCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWRhcHRlckZsYWdzLFxuICBDb25kaXRpb24sXG4gIENvbnRleHQsXG4gIEdyb3VwT3BlcmF0b3IsXG4gIE1heWJlQ29udGV4dHVhbEFyZyxcbiAgT3BlcmF0b3IsXG4gIE9yZGVyRGlyZWN0aW9uLFxuICBQZXJzaXN0ZW5jZUtleXMsXG4gIFByZXBhcmVkU3RhdGVtZW50LFxuICBQcmVwYXJlZFN0YXRlbWVudEtleXMsXG4gIFF1ZXJ5Q2xhdXNlLFxuICBRdWVyeUVycm9yLFxuICBSZXBvc2l0b3J5LFxuICBTZWxlY3RTZWxlY3RvcixcbiAgU2VxdWVuY2UsXG4gIFN0YXRlbWVudCxcbiAgU3RhdGVtZW50RXhlY3V0b3IsXG4gIFZpZXdLaW5kLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50QWRhcHRlciB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudEFkYXB0ZXJcIjtcbmltcG9ydCB7XG4gIENvdWNoREJLZXlzLFxuICBDb3VjaERCT3BlcmF0b3IsXG4gIENvdWNoREJHcm91cE9wZXJhdG9yLFxuICBDb3VjaERCUXVlcnlMaW1pdCxcbiAgTWFuZ29RdWVyeSxcbiAgTWFuZ29PcGVyYXRvcixcbiAgTWFuZ29TZWxlY3RvcixcbiAgdHJhbnNsYXRlT3BlcmF0b3JzLFxuICBnZW5lcmF0ZURlc2lnbkRvY05hbWUsXG4gIGdlbmVyYXRlVmlld05hbWUsXG4gIGZpbmRWaWV3TWV0YWRhdGEsXG4gIENvdWNoREJWaWV3TWV0YWRhdGEsXG4gIFZpZXdSZXNwb25zZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50RmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgdG9DYW1lbENhc2UgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IERCS2V5cywgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcblxudHlwZSBGYWJyaWNWaWV3RGVzY3JpcHRvciA9IHtcbiAgZGRvYzogc3RyaW5nO1xuICB2aWV3OiBzdHJpbmc7XG4gIG9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT47XG59O1xuXG50eXBlIEZhYnJpY0FnZ3JlZ2F0ZUluZm8gPVxuICB8IHtcbiAgICAgIGtpbmQ6IFZpZXdLaW5kO1xuICAgICAgbWV0YTogQ291Y2hEQlZpZXdNZXRhZGF0YTtcbiAgICAgIGRlc2NyaXB0b3I6IEZhYnJpY1ZpZXdEZXNjcmlwdG9yO1xuICAgICAgY291bnREaXN0aW5jdD86IGJvb2xlYW47XG4gICAgfVxuICB8IHtcbiAgICAgIGtpbmQ6IFwiYXZnXCI7XG4gICAgICBhdHRyaWJ1dGU6IHN0cmluZztcbiAgICAgIHN1bURlc2NyaXB0b3I6IEZhYnJpY1ZpZXdEZXNjcmlwdG9yO1xuICAgICAgY291bnREZXNjcmlwdG9yOiBGYWJyaWNWaWV3RGVzY3JpcHRvcjtcbiAgICB9O1xuXG5jb25zdCBlc2NhcGVSZWdFeHAgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PlxuICB2YWx1ZS5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgXCJcXFxcJCZcIik7XG5cbmZ1bmN0aW9uIG5leHRMZXhpY29ncmFwaGljU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gXCJcXHUwMDAwXCI7XG4gIGNvbnN0IGNoYXJzID0gQXJyYXkuZnJvbSh2YWx1ZSk7XG4gIGZvciAobGV0IGkgPSBjaGFycy5sZW5ndGggLSAxOyBpID49IDA7IGkgLT0gMSkge1xuICAgIGNvbnN0IGNvZGUgPSBjaGFyc1tpXS5jb2RlUG9pbnRBdCgwKTtcbiAgICBpZiAoY29kZSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcbiAgICBpZiAoY29kZSA8IDB4MTBmZmZmKSB7XG4gICAgICBjaGFyc1tpXSA9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNvZGUgKyAxKTtcbiAgICAgIHJldHVybiBjaGFycy5zbGljZSgwLCBpICsgMSkuam9pbihcIlwiKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGAke3ZhbHVlfVxcdTAwMDBgO1xufVxuXG5mdW5jdGlvbiBwcmVmaXhSYW5nZShwcmVmaXg6IHN0cmluZykge1xuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBwcmVmaXgsXG4gICAgZW5kOiBuZXh0TGV4aWNvZ3JhcGhpY1N0cmluZyhwcmVmaXgpLFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50U3RhdGVtZW50PE0gZXh0ZW5kcyBNb2RlbCwgUj4gZXh0ZW5kcyBTdGF0ZW1lbnQ8XG4gIE0sXG4gIEZhYnJpY0NsaWVudEFkYXB0ZXIsXG4gIFIsXG4gIE1hbmdvUXVlcnlcbj4ge1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyOiBGYWJyaWNDbGllbnRBZGFwdGVyLCBvdmVycmlkZXM/OiBQYXJ0aWFsPEFkYXB0ZXJGbGFncz4pIHtcbiAgICBzdXBlcihhZGFwdGVyLCBvdmVycmlkZXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNxdWFzaChcbiAgICBjdHg6IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+XG4gICk6IFByZXBhcmVkU3RhdGVtZW50PGFueT4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHNxdWFzaGVkOiBQcmVwYXJlZFN0YXRlbWVudDxNPiB8IHVuZGVmaW5lZCA9IHN1cGVyLnNxdWFzaChcbiAgICAgIGN0eCBhcyBuZXZlclxuICAgICk7XG4gICAgaWYgKCFzcXVhc2hlZCkgcmV0dXJuIHNxdWFzaGVkO1xuXG4gICAgY29uc3QgeyBtZXRob2QsIHBhcmFtcywgYXJncyB9ID0gc3F1YXNoZWQ7XG4gICAgY29uc3QgeyBkaXJlY3Rpb24sIGxpbWl0IH0gPSBwYXJhbXM7XG4gICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkQ6XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRTpcbiAgICAgICAgYXJncy5wdXNoKGRpcmVjdGlvbiwgbGltaXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfQlk6XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQcmVwYXJlZFN0YXRlbWVudEtleXMuTElTVF9CWTpcbiAgICAgICAgYXJncy5wdXNoKGRpcmVjdGlvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRV9CWTpcbiAgICAgICAgYXJncy5wdXNoKGRpcmVjdGlvbiwgbGltaXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfT05FX0JZOlxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBVbnN1cHBvcnRlZCBtZXRob2QgJHttZXRob2R9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNxdWFzaGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGV4ZWN1dGVQcmVwYXJlZChcbiAgICAuLi5hcmd6OiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICk6IFByb21pc2U8Uj4ge1xuICAgIGNvbnN0IHJlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsKHRoaXMuZnJvbVNlbGVjdG9yLCB0aGlzLmFkYXB0ZXIuYWxpYXMpO1xuICAgIGNvbnN0IHsgbWV0aG9kLCBhcmdzIH0gPSB0aGlzLnByZXBhcmVkIGFzIFByZXBhcmVkU3RhdGVtZW50PGFueT47XG4gICAgcmV0dXJuIHJlcG8uc3RhdGVtZW50KG1ldGhvZCwgLi4uYXJncywgLi4uYXJneik7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBwcmVwYXJlKFxuICAgIGN0eD86IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+XG4gICk6IFByb21pc2U8U3RhdGVtZW50RXhlY3V0b3I8TSwgUj4+IHtcbiAgICBjdHggPVxuICAgICAgY3R4IHx8XG4gICAgICAoYXdhaXQgdGhpcy5hZGFwdGVyLmNvbnRleHQoXG4gICAgICAgIFBlcnNpc3RlbmNlS2V5cy5RVUVSWSxcbiAgICAgICAgdGhpcy5vdmVycmlkZXMgfHwge30sXG4gICAgICAgIHRoaXMuZnJvbVNlbGVjdG9yXG4gICAgICApKTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuaXNTaW1wbGVRdWVyeSgpICYmXG4gICAgICAoY3R4IGFzIENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+KS5nZXQoXCJmb3JjZVByZXBhcmVTaW1wbGVRdWVyaWVzXCIpXG4gICAgKSB7XG4gICAgICBjb25zdCBzcXVhc2hlZCA9IHRoaXMuc3F1YXNoKGN0eCBhcyBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPik7XG4gICAgICBpZiAoc3F1YXNoZWQpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlZCA9IHNxdWFzaGVkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgYXJnczogKHN0cmluZyB8IG51bWJlcilbXSA9IFtdO1xuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge30gYXMgYW55O1xuXG4gICAgY29uc3QgcHJlcGFyZWQ6IFByZXBhcmVkU3RhdGVtZW50PGFueT4gPSB7XG4gICAgICBjbGFzczogdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICBhcmdzLFxuICAgICAgcGFyYW1zLFxuICAgIH0gYXMgYW55O1xuXG4gICAgY29uc3QgbWV0aG9kOiBzdHJpbmdbXSA9IFtRdWVyeUNsYXVzZS5GSU5EX0JZXTtcblxuICAgIGlmICh0aGlzLndoZXJlQ29uZGl0aW9uKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnByZXBhcmVDb25kaXRpb24odGhpcy53aGVyZUNvbmRpdGlvbiwgY3R4IGFzIG5ldmVyKTtcbiAgICAgIG1ldGhvZC5wdXNoKHBhcnNlZC5tZXRob2QpO1xuICAgICAgaWYgKHBhcnNlZC5hcmdzICYmIHBhcnNlZC5hcmdzLmxlbmd0aClcbiAgICAgICAgYXJncy5wdXNoKC4uLihwYXJzZWQuYXJncyBhcyAoc3RyaW5nIHwgbnVtYmVyKVtdKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdFNlbGVjdG9yKVxuICAgICAgbWV0aG9kLnB1c2goXG4gICAgICAgIFF1ZXJ5Q2xhdXNlLlNFTEVDVCxcbiAgICAgICAgdGhpcy5zZWxlY3RTZWxlY3Rvci5qb2luKGAgJHtRdWVyeUNsYXVzZS5BTkQudG9Mb3dlckNhc2UoKX0gYClcbiAgICAgICk7XG4gICAgaWYgKHRoaXMub3JkZXJCeVNlbGVjdG9ycz8ubGVuZ3RoKSB7XG4gICAgICBtZXRob2QucHVzaChRdWVyeUNsYXVzZS5PUkRFUl9CWSwgdGhpcy5vcmRlckJ5U2VsZWN0b3JzWzBdWzBdIGFzIHN0cmluZyk7XG4gICAgICBhcmdzLnB1c2godGhpcy5vcmRlckJ5U2VsZWN0b3JzWzBdWzFdIGFzIGFueSk7XG4gICAgfVxuICAgIHByZXBhcmVkLm1ldGhvZCA9IHRvQ2FtZWxDYXNlKG1ldGhvZC5qb2luKFwiIFwiKSk7XG4gICAgcHJlcGFyZWQucGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMucHJlcGFyZWQgPSBwcmVwYXJlZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJvY2Vzc2VzIGEgcmVjb3JkIGZyb20gQ291Y2hEQi9GYWJyaWNcbiAgICogQHN1bW1hcnkgRXh0cmFjdHMgdGhlIElEIGZyb20gYSBDb3VjaERCIGRvY3VtZW50IGFuZCByZXZlcnRzIGl0IHRvIGEgbW9kZWwgaW5zdGFuY2VcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwcm9jZXNzUmVjb3JkKFxuICAgIHJlY29yZDogYW55LFxuICAgIGN0eDogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz5cbiAgKTogTSB7XG4gICAgY29uc3QgcGtBdHRyID0gTW9kZWwucGsodGhpcy5mcm9tU2VsZWN0b3IpO1xuICAgIGNvbnN0IHR5cGUgPSBNZXRhZGF0YS5nZXQoXG4gICAgICB0aGlzLmZyb21TZWxlY3RvcixcbiAgICAgIE1ldGFkYXRhLmtleShEQktleXMuSUQsIHBrQXR0ciBhcyBzdHJpbmcpXG4gICAgKT8udHlwZTtcblxuICAgIGlmIChyZWNvcmRbQ291Y2hEQktleXMuSURdKSB7XG4gICAgICBjb25zdCBbLCAuLi5rZXlBcmdzXSA9IHJlY29yZFtDb3VjaERCS2V5cy5JRF0uc3BsaXQoQ291Y2hEQktleXMuU0VQQVJBVE9SKTtcbiAgICAgIGNvbnN0IGlkID0ga2V5QXJncy5qb2luKFwiX1wiKTtcbiAgICAgIHJlY29yZFtwa0F0dHJdID0gU2VxdWVuY2UucGFyc2VWYWx1ZSh0eXBlIGFzIGFueSwgaWQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5wcm9jZXNzUmVjb3JkKHJlY29yZCwgY3R4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSByYXcgTWFuZ28gcXVlcnlcbiAgICogQHN1bW1hcnkgU2VuZHMgYSByYXcgTWFuZ28gcXVlcnkgdG8gRmFicmljIGFuZCBwcm9jZXNzZXMgdGhlIHJlc3VsdHNcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHJhdzxSPihyYXdJbnB1dDogTWFuZ29RdWVyeSwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPFI+IHtcbiAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yYXcpO1xuICAgIGNvbnN0IGFnZ3JlZ2F0b3IgPSAocmF3SW5wdXQgYXMgYW55KT8uYWdncmVnYXRlSW5mbztcbiAgICBpZiAoKHJhd0lucHV0IGFzIGFueSk/LmFnZ3JlZ2F0ZSAmJiBhZ2dyZWdhdG9yKSB7XG4gICAgICByZXR1cm4gdGhpcy5leGVjdXRlQWdncmVnYXRlPFI+KGFnZ3JlZ2F0b3IsIGN0eCk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdHM6IGFueVtdID0gYXdhaXQgdGhpcy5hZGFwdGVyLnJhdyhcbiAgICAgIHJhd0lucHV0LFxuICAgICAgdHJ1ZSxcbiAgICAgIHRoaXMuZnJvbVNlbGVjdG9yLFxuICAgICAgY3R4XG4gICAgKTtcblxuICAgIGlmICghdGhpcy5zZWxlY3RTZWxlY3Rvcikge1xuICAgICAgY29uc3QgcHJvY2Vzc2VkID0gcmVzdWx0cy5tYXAoKHIpID0+IHRoaXMucHJvY2Vzc1JlY29yZChyLCBjdHgpKTtcbiAgICAgIGlmICghY3R4LmdldE9yVW5kZWZpbmVkKFwiYWZ0ZXJRdWVyeUhhbmRsZXJzXCIpKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzZWQgYXMgdW5rbm93biBhcyBSO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmFwcGx5QWZ0ZXJIYW5kbGVyc1RvUmVzdWx0KHByb2Nlc3NlZCwgY3R4KSkgYXMgUjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHMgYXMgUjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIGEgQ291Y2hEQiBNYW5nbyBxdWVyeSBmcm9tIHRoZSBzdGF0ZW1lbnRcbiAgICogQHN1bW1hcnkgQ29udmVydHMgdGhlIHN0YXRlbWVudCdzIGNvbmRpdGlvbnMsIHNlbGVjdG9ycywgYW5kIG9wdGlvbnMgaW50byBhIENvdWNoREIgTWFuZ28gcXVlcnlcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBidWlsZCgpOiBNYW5nb1F1ZXJ5IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5idWlsZCk7XG4gICAgY29uc3QgYWdncmVnYXRlUXVlcnkgPSB0aGlzLmJ1aWxkQWdncmVnYXRlUXVlcnkoKTtcbiAgICBpZiAoYWdncmVnYXRlUXVlcnkpIHJldHVybiBhZ2dyZWdhdGVRdWVyeTtcbiAgICBjb25zdCBzZWxlY3RvcnM6IE1hbmdvU2VsZWN0b3IgPSB7fTtcbiAgICBzZWxlY3RvcnNbQ291Y2hEQktleXMuVEFCTEVdID0ge307XG4gICAgc2VsZWN0b3JzW0NvdWNoREJLZXlzLlRBQkxFXSA9IE1vZGVsLnRhYmxlTmFtZSh0aGlzLmZyb21TZWxlY3Rvcik7XG4gICAgY29uc3QgcXVlcnk6IE1hbmdvUXVlcnkgPSB7IHNlbGVjdG9yOiBzZWxlY3RvcnMgfTtcbiAgICBpZiAodGhpcy5zZWxlY3RTZWxlY3RvcikgcXVlcnkuZmllbGRzID0gdGhpcy5zZWxlY3RTZWxlY3RvciBhcyBzdHJpbmdbXTtcblxuICAgIGlmICh0aGlzLndoZXJlQ29uZGl0aW9uKSB7XG4gICAgICBjb25zdCBjb25kaXRpb246IE1hbmdvU2VsZWN0b3IgPSB0aGlzLnBhcnNlQ29uZGl0aW9uKFxuICAgICAgICBDb25kaXRpb24uYW5kKFxuICAgICAgICAgIHRoaXMud2hlcmVDb25kaXRpb24sXG4gICAgICAgICAgQ29uZGl0aW9uLmF0dHJpYnV0ZTxNPihDb3VjaERCS2V5cy5UQUJMRSBhcyBrZXlvZiBNKS5lcShcbiAgICAgICAgICAgIHF1ZXJ5LnNlbGVjdG9yW0NvdWNoREJLZXlzLlRBQkxFXVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKS5zZWxlY3RvcjtcbiAgICAgIGNvbnN0IHNlbGVjdG9yS2V5cyA9IE9iamVjdC5rZXlzKGNvbmRpdGlvbikgYXMgTWFuZ29PcGVyYXRvcltdO1xuICAgICAgaWYgKFxuICAgICAgICBzZWxlY3RvcktleXMubGVuZ3RoID09PSAxICYmXG4gICAgICAgIE9iamVjdC52YWx1ZXMoQ291Y2hEQkdyb3VwT3BlcmF0b3IpLmluZGV4T2Yoc2VsZWN0b3JLZXlzWzBdKSAhPT0gLTFcbiAgICAgIClcbiAgICAgICAgc3dpdGNoIChzZWxlY3RvcktleXNbMF0pIHtcbiAgICAgICAgICBjYXNlIENvdWNoREJHcm91cE9wZXJhdG9yLkFORDpcbiAgICAgICAgICAgIGNvbmRpdGlvbltDb3VjaERCR3JvdXBPcGVyYXRvci5BTkRdID0gW1xuICAgICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbltDb3VjaERCR3JvdXBPcGVyYXRvci5BTkRdIGFzIE1hbmdvU2VsZWN0b3JcbiAgICAgICAgICAgICAgKS5yZWR1Y2UoKGFjY3VtOiBNYW5nb1NlbGVjdG9yW10sIHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbCk7XG4gICAgICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoICE9PSAxKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIlRvbyBtYW55IGtleXMgaW4gcXVlcnkgc2VsZWN0b3IuIHNob3VsZCBiZSBvbmVcIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBrID0ga2V5c1swXTtcbiAgICAgICAgICAgICAgICBpZiAoayA9PT0gQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EKVxuICAgICAgICAgICAgICAgICAgYWNjdW0ucHVzaCguLi4odmFsW2tdIGFzIGFueVtdKSk7XG4gICAgICAgICAgICAgICAgZWxzZSBhY2N1bS5wdXNoKHZhbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICAgICAgICB9LCBbXSksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3IgPSBjb25kaXRpb247XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIENvdWNoREJHcm91cE9wZXJhdG9yLk9SOiB7XG4gICAgICAgICAgICBjb25zdCBzOiBSZWNvcmQ8YW55LCBhbnk+ID0ge307XG4gICAgICAgICAgICBzW0NvdWNoREJHcm91cE9wZXJhdG9yLkFORF0gPSBbXG4gICAgICAgICAgICAgIGNvbmRpdGlvbixcbiAgICAgICAgICAgICAgLi4uT2JqZWN0LmVudHJpZXMocXVlcnkuc2VsZWN0b3IpLm1hcCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPGFueSwgYW55PiA9IHt9O1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIHF1ZXJ5LnNlbGVjdG9yID0gcztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBzaG91bGQgYmUgaW1wb3NzaWJsZVwiKTtcbiAgICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbmRpdGlvbikuZm9yRWFjaCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgIGlmIChxdWVyeS5zZWxlY3RvcltrZXldKVxuICAgICAgICAgICAgbG9nLndhcm4oXG4gICAgICAgICAgICAgIGBBICR7a2V5fSBxdWVyeSBwYXJhbSBpcyBhYm91dCB0byBiZSBvdmVycmlkZGVuOiAke3F1ZXJ5LnNlbGVjdG9yW2tleV19IGJ5ICR7dmFsfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgcXVlcnkuc2VsZWN0b3Jba2V5XSA9IHZhbDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3JkZXJCeVNlbGVjdG9ycz8ubGVuZ3RoKSB7XG4gICAgICBxdWVyeS5zb3J0ID0gcXVlcnkuc29ydCB8fCBbXTtcbiAgICAgIHF1ZXJ5LnNlbGVjdG9yID0gcXVlcnkuc2VsZWN0b3IgfHwgKHt9IGFzIE1hbmdvU2VsZWN0b3IpO1xuICAgICAgZm9yIChjb25zdCBbc2VsZWN0b3JLZXksIGRpcmVjdGlvbl0gb2YgdGhpcy5vcmRlckJ5U2VsZWN0b3JzKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gc2VsZWN0b3JLZXkgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCByZWM6IFJlY29yZDxzdHJpbmcsIE9yZGVyRGlyZWN0aW9uPiA9IHt9O1xuICAgICAgICByZWNbc2VsZWN0b3JdID0gZGlyZWN0aW9uIGFzIE9yZGVyRGlyZWN0aW9uO1xuICAgICAgICAocXVlcnkuc29ydCBhcyBSZWNvcmQ8c3RyaW5nLCBPcmRlckRpcmVjdGlvbj5bXSkucHVzaChyZWMpO1xuICAgICAgICBpZiAoIXF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSkge1xuICAgICAgICAgIHF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSA9IHt9IGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgICAgICAgKHF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSBhcyBNYW5nb1NlbGVjdG9yKVtDb3VjaERCT3BlcmF0b3IuQklHR0VSXSA9XG4gICAgICAgICAgICBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGltaXRTZWxlY3Rvcikge1xuICAgICAgcXVlcnkubGltaXQgPSB0aGlzLmxpbWl0U2VsZWN0b3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy53YXJuKFxuICAgICAgICBgTm8gbGltaXQgc2VsZWN0b3IgZGVmaW5lZC4gVXNpbmcgZGVmYXVsdCBjb3VjaGRiIGxpbWl0IG9mICR7Q291Y2hEQlF1ZXJ5TGltaXR9YFxuICAgICAgKTtcbiAgICAgIHF1ZXJ5LmxpbWl0ID0gQ291Y2hEQlF1ZXJ5TGltaXQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub2Zmc2V0U2VsZWN0b3IpIHF1ZXJ5LnNraXAgPSB0aGlzLm9mZnNldFNlbGVjdG9yO1xuXG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQYXJzZXMgYSBjb25kaXRpb24gaW50byBhIENvdWNoREIgTWFuZ28gcXVlcnkgc2VsZWN0b3JcbiAgICogQHN1bW1hcnkgQ29udmVydHMgYSBDb25kaXRpb24gb2JqZWN0IGludG8gYSBDb3VjaERCIE1hbmdvIHF1ZXJ5IHNlbGVjdG9yIHN0cnVjdHVyZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHBhcnNlQ29uZGl0aW9uKGNvbmRpdGlvbjogQ29uZGl0aW9uPE0+KTogTWFuZ29RdWVyeSB7XG4gICAgZnVuY3Rpb24gbWVyZ2UoXG4gICAgICBvcDogTWFuZ29PcGVyYXRvcixcbiAgICAgIG9iajE6IE1hbmdvU2VsZWN0b3IsXG4gICAgICBvYmoyOiBNYW5nb1NlbGVjdG9yXG4gICAgKTogTWFuZ29RdWVyeSB7XG4gICAgICBjb25zdCByZXN1bHQ6IE1hbmdvUXVlcnkgPSB7IHNlbGVjdG9yOiB7fSBhcyBNYW5nb1NlbGVjdG9yIH07XG4gICAgICByZXN1bHQuc2VsZWN0b3Jbb3BdID0gW29iajEsIG9iajJdO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBjb25zdCB7IGF0dHIxLCBvcGVyYXRvciwgY29tcGFyaXNvbiB9ID0gY29uZGl0aW9uIGFzIHVua25vd24gYXMge1xuICAgICAgYXR0cjE6IHN0cmluZyB8IENvbmRpdGlvbjxNPjtcbiAgICAgIG9wZXJhdG9yOiBPcGVyYXRvciB8IEdyb3VwT3BlcmF0b3I7XG4gICAgICBjb21wYXJpc29uOiBhbnk7XG4gICAgfTtcblxuICAgIGlmIChvcGVyYXRvciA9PT0gT3BlcmF0b3IuU1RBUlRTX1dJVEgpIHtcbiAgICAgIGlmICh0eXBlb2YgYXR0cjEgIT09IFwic3RyaW5nXCIpXG4gICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFwiU1RBUlRTX1dJVEggcmVxdWlyZXMgYW4gYXR0cmlidXRlIG5hbWVcIik7XG4gICAgICBpZiAodHlwZW9mIGNvbXBhcmlzb24gIT09IFwic3RyaW5nXCIpXG4gICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFwiU1RBUlRTX1dJVEggcmVxdWlyZXMgYSBzdHJpbmcgY29tcGFyaXNvblwiKTtcbiAgICAgIGNvbnN0IHJhbmdlID0gcHJlZml4UmFuZ2UoY29tcGFyaXNvbik7XG4gICAgICBjb25zdCBzZWxlY3RvcjogTWFuZ29TZWxlY3RvciA9IHt9IGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgICBzZWxlY3RvclthdHRyMV0gPSB7fSBhcyBNYW5nb1NlbGVjdG9yO1xuICAgICAgKHNlbGVjdG9yW2F0dHIxXSBhcyBNYW5nb1NlbGVjdG9yKVtDb3VjaERCT3BlcmF0b3IuQklHR0VSX0VRXSA9IHJhbmdlLnN0YXJ0O1xuICAgICAgKHNlbGVjdG9yW2F0dHIxXSBhcyBNYW5nb1NlbGVjdG9yKVtDb3VjaERCT3BlcmF0b3IuU01BTExFUl0gPSByYW5nZS5lbmQ7XG4gICAgICByZXR1cm4geyBzZWxlY3RvciB9O1xuICAgIH1cblxuICAgIGlmIChvcGVyYXRvciA9PT0gT3BlcmF0b3IuRU5EU19XSVRIKSB7XG4gICAgICBpZiAodHlwZW9mIGF0dHIxICE9PSBcInN0cmluZ1wiKVxuICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcIkVORFNfV0lUSCByZXF1aXJlcyBhbiBhdHRyaWJ1dGUgbmFtZVwiKTtcbiAgICAgIGlmICh0eXBlb2YgY29tcGFyaXNvbiAhPT0gXCJzdHJpbmdcIilcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJFTkRTX1dJVEggcmVxdWlyZXMgYSBzdHJpbmcgY29tcGFyaXNvblwiKTtcbiAgICAgIGNvbnN0IHNlbGVjdG9yOiBNYW5nb1NlbGVjdG9yID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgIHNlbGVjdG9yW2F0dHIxXSA9IHtcbiAgICAgICAgW0NvdWNoREJPcGVyYXRvci5SRUdFWFBdOiBgJHtlc2NhcGVSZWdFeHAoY29tcGFyaXNvbil9JGAsXG4gICAgICB9IGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgICByZXR1cm4geyBzZWxlY3RvciB9O1xuICAgIH1cblxuICAgIGlmIChvcGVyYXRvciA9PT0gT3BlcmF0b3IuQkVUV0VFTikge1xuICAgICAgY29uc3QgYXR0ciA9IGF0dHIxIGFzIHN0cmluZztcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShjb21wYXJpc29uKSB8fCBjb21wYXJpc29uLmxlbmd0aCAhPT0gMilcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJCRVRXRUVOIG9wZXJhdG9yIHJlcXVpcmVzIFttaW4sIG1heF0gY29tcGFyaXNvblwiKTtcbiAgICAgIGNvbnN0IFttaW4sIG1heF0gPSBjb21wYXJpc29uO1xuICAgICAgY29uc3Qgb3BCZXR3ZWVuOiBNYW5nb1NlbGVjdG9yID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgIG9wQmV0d2VlblthdHRyXSA9IHt9IGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgICAob3BCZXR3ZWVuW2F0dHJdIGFzIE1hbmdvU2VsZWN0b3IpW1xuICAgICAgICB0cmFuc2xhdGVPcGVyYXRvcnMoT3BlcmF0b3IuQklHR0VSX0VRKVxuICAgICAgXSA9IG1pbjtcbiAgICAgIChvcEJldHdlZW5bYXR0cl0gYXMgTWFuZ29TZWxlY3RvcilbXG4gICAgICAgIHRyYW5zbGF0ZU9wZXJhdG9ycyhPcGVyYXRvci5TTUFMTEVSX0VRKVxuICAgICAgXSA9IG1heDtcbiAgICAgIHJldHVybiB7IHNlbGVjdG9yOiBvcEJldHdlZW4gfTtcbiAgICB9XG5cbiAgICBsZXQgb3A6IE1hbmdvU2VsZWN0b3IgPSB7fSBhcyBNYW5nb1NlbGVjdG9yO1xuICAgIGlmIChcbiAgICAgIFtHcm91cE9wZXJhdG9yLkFORCwgR3JvdXBPcGVyYXRvci5PUiwgT3BlcmF0b3IuTk9UXS5pbmRleE9mKFxuICAgICAgICBvcGVyYXRvciBhcyBHcm91cE9wZXJhdG9yXG4gICAgICApID09PSAtMVxuICAgICkge1xuICAgICAgb3BbYXR0cjEgYXMgc3RyaW5nXSA9IHt9IGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgICAob3BbYXR0cjEgYXMgc3RyaW5nXSBhcyBNYW5nb1NlbGVjdG9yKVt0cmFuc2xhdGVPcGVyYXRvcnMob3BlcmF0b3IpXSA9XG4gICAgICAgIGNvbXBhcmlzb247XG4gICAgfSBlbHNlIGlmIChvcGVyYXRvciA9PT0gT3BlcmF0b3IuTk9UKSB7XG4gICAgICBvcCA9IHRoaXMucGFyc2VDb25kaXRpb24oYXR0cjEgYXMgQ29uZGl0aW9uPE0+KS5zZWxlY3RvciBhcyBNYW5nb1NlbGVjdG9yO1xuICAgICAgb3BbdHJhbnNsYXRlT3BlcmF0b3JzKE9wZXJhdG9yLk5PVCldID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgIChvcFt0cmFuc2xhdGVPcGVyYXRvcnMoT3BlcmF0b3IuTk9UKV0gYXMgTWFuZ29TZWxlY3RvcilbXG4gICAgICAgIChhdHRyMSBhcyB1bmtub3duIGFzIHsgYXR0cjE6IHN0cmluZyB9KS5hdHRyMVxuICAgICAgXSA9IGNvbXBhcmlzb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9wMTogYW55ID0gdGhpcy5wYXJzZUNvbmRpdGlvbihhdHRyMSBhcyBDb25kaXRpb248TT4pLnNlbGVjdG9yO1xuICAgICAgY29uc3Qgb3AyOiBhbnkgPSB0aGlzLnBhcnNlQ29uZGl0aW9uKGNvbXBhcmlzb24gYXMgQ29uZGl0aW9uPE0+KS5zZWxlY3RvcjtcbiAgICAgIG9wID0gbWVyZ2UodHJhbnNsYXRlT3BlcmF0b3JzKG9wZXJhdG9yKSwgb3AxLCBvcDIpLnNlbGVjdG9yO1xuICAgIH1cblxuICAgIHJldHVybiB7IHNlbGVjdG9yOiBvcCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgYW4gYWdncmVnYXRlIHF1ZXJ5IGlmIGFnZ3JlZ2F0aW9uIGlzIHJlcXVlc3RlZFxuICAgKiBAc3VtbWFyeSBDaGVja3MgZm9yIGFnZ3JlZ2F0ZSBvcGVyYXRpb25zIGFuZCByZXR1cm5zIGEgc3BlY2lhbCBNYW5nb1F1ZXJ5IGZvciB0aGVtXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkQWdncmVnYXRlUXVlcnkoKTogTWFuZ29RdWVyeSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmZyb21TZWxlY3RvcikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5hdmdTZWxlY3Rvcikge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gU3RyaW5nKHRoaXMuYXZnU2VsZWN0b3IpO1xuICAgICAgY29uc3Qgc3VtSW5mbyA9IHRoaXMuY3JlYXRlQWdncmVnYXRlRGVzY3JpcHRvcihcInN1bVwiLCBhdHRyaWJ1dGUpO1xuICAgICAgY29uc3QgY291bnRJbmZvID0gdGhpcy5jcmVhdGVBZ2dyZWdhdGVEZXNjcmlwdG9yKFwiY291bnRcIiwgYXR0cmlidXRlKTtcbiAgICAgIGlmICghc3VtSW5mbyB8fCAhY291bnRJbmZvKVxuICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcbiAgICAgICAgICBgQXZnIG9wZXJhdGlvbiByZXF1aXJlcyBzdW0gYW5kIGNvdW50IHZpZXdzIGZvciBhdHRyaWJ1dGUgJHthdHRyaWJ1dGV9YFxuICAgICAgICApO1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQWdncmVnYXRlUXVlcnkoe1xuICAgICAgICBraW5kOiBcImF2Z1wiLFxuICAgICAgICBhdHRyaWJ1dGUsXG4gICAgICAgIHN1bURlc2NyaXB0b3I6IHN1bUluZm8uZGVzY3JpcHRvcixcbiAgICAgICAgY291bnREZXNjcmlwdG9yOiBjb3VudEluZm8uZGVzY3JpcHRvcixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5jb3VudERpc3RpbmN0U2VsZWN0b3IgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9XG4gICAgICAgIHRoaXMuY291bnREaXN0aW5jdFNlbGVjdG9yID09IG51bGxcbiAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgIDogU3RyaW5nKHRoaXMuY291bnREaXN0aW5jdFNlbGVjdG9yKTtcbiAgICAgIGNvbnN0IGluZm8gPSB0aGlzLmNyZWF0ZUFnZ3JlZ2F0ZURlc2NyaXB0b3IoXCJkaXN0aW5jdFwiLCBhdHRyaWJ1dGUpO1xuICAgICAgaWYgKGluZm8pIHtcbiAgICAgICAgaW5mby5jb3VudERpc3RpbmN0ID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQWdncmVnYXRlUXVlcnkoaW5mbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYWdncmVnYXRvclVzZWQgPVxuICAgICAgdHlwZW9mIHRoaXMuY291bnRTZWxlY3RvciAhPT0gXCJ1bmRlZmluZWRcIiB8fFxuICAgICAgdHlwZW9mIHRoaXMuY291bnREaXN0aW5jdFNlbGVjdG9yICE9PSBcInVuZGVmaW5lZFwiIHx8XG4gICAgICAhIXRoaXMubWluU2VsZWN0b3IgfHxcbiAgICAgICEhdGhpcy5tYXhTZWxlY3RvciB8fFxuICAgICAgISF0aGlzLnN1bVNlbGVjdG9yIHx8XG4gICAgICAhIXRoaXMuZGlzdGluY3RTZWxlY3RvcjtcblxuICAgIGNvbnN0IGFnZ3JlZ2F0b3JDaGVja3M6IEFycmF5PFtWaWV3S2luZCwgU2VsZWN0U2VsZWN0b3I8TT4gfCB1bmRlZmluZWRdPiA9IFtcbiAgICAgIFtcbiAgICAgICAgXCJjb3VudFwiLFxuICAgICAgICAodGhpcy5jb3VudFNlbGVjdG9yID8/IHVuZGVmaW5lZCkgYXMgU2VsZWN0U2VsZWN0b3I8TT4gfCB1bmRlZmluZWQsXG4gICAgICBdLFxuICAgICAgW1wibWF4XCIsIHRoaXMubWF4U2VsZWN0b3JdLFxuICAgICAgW1wibWluXCIsIHRoaXMubWluU2VsZWN0b3JdLFxuICAgICAgW1wic3VtXCIsIHRoaXMuc3VtU2VsZWN0b3JdLFxuICAgICAgW1wiZGlzdGluY3RcIiwgdGhpcy5kaXN0aW5jdFNlbGVjdG9yXSxcbiAgICBdO1xuXG4gICAgZm9yIChjb25zdCBba2luZCwgc2VsZWN0b3JdIG9mIGFnZ3JlZ2F0b3JDaGVja3MpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IHNlbGVjdG9yID8gU3RyaW5nKHNlbGVjdG9yKSA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGluZm8gPSB0aGlzLmNyZWF0ZUFnZ3JlZ2F0ZURlc2NyaXB0b3Ioa2luZCwgYXR0cmlidXRlKTtcbiAgICAgIGlmIChpbmZvKSByZXR1cm4gdGhpcy5jcmVhdGVBZ2dyZWdhdGVRdWVyeShpbmZvKTtcbiAgICB9XG5cbiAgICBpZiAoYWdncmVnYXRvclVzZWQpIHtcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFxuICAgICAgICBgTm8gQ291Y2hEQiB2aWV3IG1ldGFkYXRhIGZvdW5kIGZvciB0YWJsZSAke01vZGVsLnRhYmxlTmFtZShcbiAgICAgICAgICB0aGlzLmZyb21TZWxlY3RvclxuICAgICAgICApfSBhZ2dyZWdhdG9yYFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhbiBhZ2dyZWdhdGUgZGVzY3JpcHRvciBmb3IgYSB2aWV3LWJhc2VkIGFnZ3JlZ2F0aW9uXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUFnZ3JlZ2F0ZURlc2NyaXB0b3IoXG4gICAga2luZDogVmlld0tpbmQsXG4gICAgYXR0cmlidXRlPzogc3RyaW5nXG4gICk6IEV4dHJhY3Q8RmFicmljQWdncmVnYXRlSW5mbywgeyBraW5kOiBWaWV3S2luZCB9PiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmZyb21TZWxlY3RvcikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBtZXRhcyA9IGZpbmRWaWV3TWV0YWRhdGEodGhpcy5mcm9tU2VsZWN0b3IsIGtpbmQsIGF0dHJpYnV0ZSk7XG4gICAgaWYgKCFtZXRhcy5sZW5ndGgpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgbWV0YSA9IG1ldGFzWzBdO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZSh0aGlzLmZyb21TZWxlY3Rvcik7XG4gICAgY29uc3Qgdmlld05hbWUgPSBnZW5lcmF0ZVZpZXdOYW1lKHRhYmxlTmFtZSwgbWV0YS5hdHRyaWJ1dGUsIGtpbmQsIG1ldGEpO1xuICAgIGNvbnN0IGRkb2MgPSBtZXRhLmRkb2MgfHwgZ2VuZXJhdGVEZXNpZ25Eb2NOYW1lKHRhYmxlTmFtZSwgdmlld05hbWUpO1xuICAgIGNvbnN0IG9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gICAgICByZWR1Y2U6IG1ldGEucmVkdWNlICE9PSB1bmRlZmluZWQgPyB0cnVlIDogIW1ldGEucmV0dXJuRG9jcyxcbiAgICB9O1xuICAgIGlmIChraW5kID09PSBcImRpc3RpbmN0XCIgfHwga2luZCA9PT0gXCJncm91cEJ5XCIpIG9wdGlvbnMuZ3JvdXAgPSB0cnVlO1xuICAgIHJldHVybiB7XG4gICAgICBraW5kLFxuICAgICAgbWV0YSxcbiAgICAgIGRlc2NyaXB0b3I6IHtcbiAgICAgICAgZGRvYyxcbiAgICAgICAgdmlldzogdmlld05hbWUsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgdGhlIHNwZWNpYWwgYWdncmVnYXRlIE1hbmdvUXVlcnkgbWFya2VyXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUFnZ3JlZ2F0ZVF1ZXJ5KFxuICAgIGluZm86IEZhYnJpY0FnZ3JlZ2F0ZUluZm9cbiAgKTogTWFuZ29RdWVyeSAmIHsgYWdncmVnYXRlOiB0cnVlOyBhZ2dyZWdhdGVJbmZvOiBGYWJyaWNBZ2dyZWdhdGVJbmZvIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3Rvcjoge30sXG4gICAgICBhZ2dyZWdhdGU6IHRydWUsXG4gICAgICBhZ2dyZWdhdGVJbmZvOiBpbmZvLFxuICAgIH0gYXMgTWFuZ29RdWVyeSAmIHsgYWdncmVnYXRlOiB0cnVlOyBhZ2dyZWdhdGVJbmZvOiBGYWJyaWNBZ2dyZWdhdGVJbmZvIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgdGhlIGFkYXB0ZXIgY2FzdCB0byBGYWJyaWNDbGllbnRBZGFwdGVyIGZvciB2aWV3IGFjY2Vzc1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRGYWJyaWNBZGFwdGVyKCk6IEZhYnJpY0NsaWVudEFkYXB0ZXIge1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIgYXMgRmFicmljQ2xpZW50QWRhcHRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYW4gYWdncmVnYXRlIHF1ZXJ5IHZpYSBhZGFwdGVyJ3MgdmlldyBtZXRob2RcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZUFnZ3JlZ2F0ZTxSPihcbiAgICBpbmZvOiBGYWJyaWNBZ2dyZWdhdGVJbmZvLFxuICAgIGN0eDogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz5cbiAgKTogUHJvbWlzZTxSPiB7XG4gICAgaWYgKCF0aGlzLmlzVmlld0FnZ3JlZ2F0ZShpbmZvKSkge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQXZlcmFnZTxSPihpbmZvLCBjdHgpO1xuICAgIH1cbiAgICBjb25zdCBmYWJyaWNBZGFwdGVyID0gdGhpcy5nZXRGYWJyaWNBZGFwdGVyKCk7XG4gICAgY29uc3Qgdmlld0luZm8gPSBpbmZvIGFzIEV4dHJhY3Q8RmFicmljQWdncmVnYXRlSW5mbywgeyBraW5kOiBWaWV3S2luZCB9PjtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZhYnJpY0FkYXB0ZXIudmlldzxWaWV3UmVzcG9uc2U+KFxuICAgICAgdmlld0luZm8uZGVzY3JpcHRvci5kZG9jLFxuICAgICAgdmlld0luZm8uZGVzY3JpcHRvci52aWV3LFxuICAgICAgdmlld0luZm8uZGVzY3JpcHRvci5vcHRpb25zLFxuICAgICAgY3R4XG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzVmlld1Jlc3BvbnNlPFI+KGluZm8sIHJlc3BvbnNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBhdmVyYWdlIGNhbGN1bGF0aW9uIGZyb20gc3VtIGFuZCBjb3VudCB2aWV3c1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVBdmVyYWdlPFI+KFxuICAgIGluZm86IEZhYnJpY0FnZ3JlZ2F0ZUluZm8sXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApOiBQcm9taXNlPFI+IHtcbiAgICBpZiAoaW5mby5raW5kICE9PSBcImF2Z1wiKVxuICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJBdmVyYWdlIGRlc2NyaXB0b3IgaXMgbm90IHZhbGlkXCIpO1xuICAgIGNvbnN0IGZhYnJpY0FkYXB0ZXIgPSB0aGlzLmdldEZhYnJpY0FkYXB0ZXIoKTtcbiAgICBjb25zdCBbc3VtRGVzYywgY291bnREZXNjXSA9IFtpbmZvLnN1bURlc2NyaXB0b3IsIGluZm8uY291bnREZXNjcmlwdG9yXTtcbiAgICBjb25zdCBbc3VtUmVzcG9uc2UsIGNvdW50UmVzcG9uc2VdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgZmFicmljQWRhcHRlci52aWV3PFZpZXdSZXNwb25zZT4oXG4gICAgICAgIHN1bURlc2MuZGRvYyxcbiAgICAgICAgc3VtRGVzYy52aWV3LFxuICAgICAgICBzdW1EZXNjLm9wdGlvbnMsXG4gICAgICAgIGN0eFxuICAgICAgKSxcbiAgICAgIGZhYnJpY0FkYXB0ZXIudmlldzxWaWV3UmVzcG9uc2U+KFxuICAgICAgICBjb3VudERlc2MuZGRvYyxcbiAgICAgICAgY291bnREZXNjLnZpZXcsXG4gICAgICAgIGNvdW50RGVzYy5vcHRpb25zLFxuICAgICAgICBjdHhcbiAgICAgICksXG4gICAgXSk7XG4gICAgY29uc3Qgc3VtID0gc3VtUmVzcG9uc2Uucm93cz8uWzBdPy52YWx1ZSA/PyAwO1xuICAgIGNvbnN0IGNvdW50ID0gY291bnRSZXNwb25zZS5yb3dzPy5bMF0/LnZhbHVlID8/IDA7XG4gICAgaWYgKCFjb3VudCkgcmV0dXJuIDAgYXMgdW5rbm93biBhcyBSO1xuICAgIHJldHVybiAoc3VtIC8gY291bnQpIGFzIHVua25vd24gYXMgUjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJvY2Vzc2VzIHRoZSB2aWV3IHJlc3BvbnNlIGJhc2VkIG9uIGFnZ3JlZ2F0ZSBraW5kXG4gICAqL1xuICBwcml2YXRlIHByb2Nlc3NWaWV3UmVzcG9uc2U8Uj4oXG4gICAgaW5mbzogRmFicmljQWdncmVnYXRlSW5mbyxcbiAgICByZXNwb25zZTogVmlld1Jlc3BvbnNlXG4gICk6IFIge1xuICAgIGlmIChpbmZvLmtpbmQgPT09IFwiYXZnXCIpXG4gICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcbiAgICAgICAgXCJBdmVyYWdlIHJlc3VsdHMgc2hvdWxkIGJlIGhhbmRsZWQgYmVmb3JlIHByb2Nlc3Npbmcgcm93c1wiXG4gICAgICApO1xuICAgIGNvbnN0IHJvd3MgPSByZXNwb25zZS5yb3dzIHx8IFtdO1xuICAgIGNvbnN0IHZpZXdJbmZvID0gaW5mbyBhcyBFeHRyYWN0PEZhYnJpY0FnZ3JlZ2F0ZUluZm8sIHsga2luZDogVmlld0tpbmQgfT47XG4gICAgY29uc3QgbWV0YSA9IHZpZXdJbmZvLm1ldGE7XG4gICAgaWYgKHZpZXdJbmZvLmNvdW50RGlzdGluY3QpIHtcbiAgICAgIHJldHVybiAocm93cy5sZW5ndGggfHwgMCkgYXMgdW5rbm93biBhcyBSO1xuICAgIH1cbiAgICBpZiAodmlld0luZm8ua2luZCA9PT0gXCJkaXN0aW5jdFwiIHx8IHZpZXdJbmZvLmtpbmQgPT09IFwiZ3JvdXBCeVwiKSB7XG4gICAgICByZXR1cm4gcm93cy5tYXAoKHJvdykgPT4gcm93LmtleSA/PyByb3cudmFsdWUpIGFzIHVua25vd24gYXMgUjtcbiAgICB9XG4gICAgaWYgKG1ldGEucmV0dXJuRG9jcykge1xuICAgICAgcmV0dXJuIHJvd3MubWFwKChyb3cpID0+IHJvdy52YWx1ZSA/PyByb3cuZG9jID8/IHJvdykgYXMgdW5rbm93biBhcyBSO1xuICAgIH1cbiAgICBpZiAoIXJvd3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gKHZpZXdJbmZvLmtpbmQgPT09IFwiY291bnRcIiA/IDAgOiBudWxsKSBhcyB1bmtub3duIGFzIFI7XG4gICAgfVxuICAgIHJldHVybiAocm93c1swXS52YWx1ZSA/PyByb3dzWzBdLmtleSA/PyBudWxsKSBhcyB1bmtub3duIGFzIFI7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgaW5mbyBpcyBhIHZpZXctYmFzZWQgYWdncmVnYXRlXG4gICAqL1xuICBwcml2YXRlIGlzVmlld0FnZ3JlZ2F0ZShcbiAgICBpbmZvOiBGYWJyaWNBZ2dyZWdhdGVJbmZvXG4gICk6IGluZm8gaXMgRXh0cmFjdDxGYWJyaWNBZ2dyZWdhdGVJbmZvLCB7IGtpbmQ6IFZpZXdLaW5kIH0+IHtcbiAgICByZXR1cm4gaW5mby5raW5kICE9PSBcImF2Z1wiO1xuICB9XG59XG4iXX0=
|
|
452
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50U3RhdGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRmFicmljQ2xpZW50U3RhdGVtZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF1SztBQUN2Syx5RUFBdUQ7QUFDdkQsdURBQThMO0FBQzlMLCtDQUFnRDtBQUNoRCwyREFBZ0U7QUFDaEUscURBQWdEO0FBQ2hELE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzdFLFNBQVMsdUJBQXVCLENBQUMsS0FBSztJQUNsQyxJQUFJLENBQUMsS0FBSztRQUNOLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM1QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxLQUFLLFNBQVM7WUFDbEIsU0FBUztRQUNiLElBQUksSUFBSSxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7QUFDNUIsQ0FBQztBQUNE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USxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFVBQVUsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBamFELHNEQWlhQztBQUNELHNqaURBQXNqaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25kaXRpb24sIEdyb3VwT3BlcmF0b3IsIE9wZXJhdG9yLCBQZXJzaXN0ZW5jZUtleXMsIFByZXBhcmVkU3RhdGVtZW50S2V5cywgUXVlcnlDbGF1c2UsIFF1ZXJ5RXJyb3IsIFJlcG9zaXRvcnksIFNlcXVlbmNlLCBTdGF0ZW1lbnQsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IENvdWNoREJLZXlzLCBDb3VjaERCT3BlcmF0b3IsIENvdWNoREJHcm91cE9wZXJhdG9yLCBDb3VjaERCUXVlcnlMaW1pdCwgdHJhbnNsYXRlT3BlcmF0b3JzLCBnZW5lcmF0ZURlc2lnbkRvY05hbWUsIGdlbmVyYXRlVmlld05hbWUsIGZpbmRWaWV3TWV0YWRhdGEsIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgdG9DYW1lbENhc2UgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IERCS2V5cywgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmNvbnN0IGVzY2FwZVJlZ0V4cCA9ICh2YWx1ZSkgPT4gdmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csIFwiXFxcXCQmXCIpO1xuZnVuY3Rpb24gbmV4dExleGljb2dyYXBoaWNTdHJpbmcodmFsdWUpIHtcbiAgICBpZiAoIXZhbHVlKVxuICAgICAgICByZXR1cm4gXCJcXHUwMDAwXCI7XG4gICAgY29uc3QgY2hhcnMgPSBBcnJheS5mcm9tKHZhbHVlKTtcbiAgICBmb3IgKGxldCBpID0gY2hhcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC09IDEpIHtcbiAgICAgICAgY29uc3QgY29kZSA9IGNoYXJzW2ldLmNvZGVQb2ludEF0KDApO1xuICAgICAgICBpZiAoY29kZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGlmIChjb2RlIDwgMHgxMGZmZmYpIHtcbiAgICAgICAgICAgIGNoYXJzW2ldID0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY29kZSArIDEpO1xuICAgICAgICAgICAgcmV0dXJuIGNoYXJzLnNsaWNlKDAsIGkgKyAxKS5qb2luKFwiXCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHt2YWx1ZX1cXHUwMDAwYDtcbn1cbmZ1bmN0aW9uIHByZWZpeFJhbmdlKHByZWZpeCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBwcmVmaXgsXG4gICAgICAgIGVuZDogbmV4dExleGljb2dyYXBoaWNTdHJpbmcocHJlZml4KSxcbiAgICB9O1xufVxuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudFN0YXRlbWVudCBleHRlbmRzIFN0YXRlbWVudCB7XG4gICAgY29uc3RydWN0b3IoYWRhcHRlciwgb3ZlcnJpZGVzKSB7XG4gICAgICAgIHN1cGVyKGFkYXB0ZXIsIG92ZXJyaWRlcyk7XG4gICAgfVxuICAgIHNxdWFzaChjdHgpIHtcbiAgICAgICAgY29uc3Qgc3F1YXNoZWQgPSBzdXBlci5zcXVhc2goY3R4KTtcbiAgICAgICAgaWYgKCFzcXVhc2hlZClcbiAgICAgICAgICAgIHJldHVybiBzcXVhc2hlZDtcbiAgICAgICAgY29uc3QgeyBtZXRob2QsIHBhcmFtcywgYXJncyB9ID0gc3F1YXNoZWQ7XG4gICAgICAgIGNvbnN0IHsgZGlyZWN0aW9uLCBsaW1pdCB9ID0gcGFyYW1zO1xuICAgICAgICBzd2l0Y2ggKG1ldGhvZCkge1xuICAgICAgICAgICAgY2FzZSBQcmVwYXJlZFN0YXRlbWVudEtleXMuRklORDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0U6XG4gICAgICAgICAgICAgICAgYXJncy5wdXNoKGRpcmVjdGlvbiwgbGltaXQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBQcmVwYXJlZFN0YXRlbWVudEtleXMuRklORF9CWTpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkxJU1RfQlk6XG4gICAgICAgICAgICAgICAgYXJncy5wdXNoKGRpcmVjdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFByZXBhcmVkU3RhdGVtZW50S2V5cy5QQUdFX0JZOlxuICAgICAgICAgICAgICAgIGFyZ3MucHVzaChkaXJlY3Rpb24sIGxpbWl0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfT05FX0JZOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgVW5zdXBwb3J0ZWQgbWV0aG9kICR7bWV0aG9kfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzcXVhc2hlZDtcbiAgICB9XG4gICAgYXN5bmMgZXhlY3V0ZVByZXBhcmVkKC4uLmFyZ3opIHtcbiAgICAgICAgY29uc3QgcmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWwodGhpcy5mcm9tU2VsZWN0b3IsIHRoaXMuYWRhcHRlci5hbGlhcyk7XG4gICAgICAgIGNvbnN0IHsgbWV0aG9kLCBhcmdzIH0gPSB0aGlzLnByZXBhcmVkO1xuICAgICAgICByZXR1cm4gcmVwby5zdGF0ZW1lbnQobWV0aG9kLCAuLi5hcmdzLCAuLi5hcmd6KTtcbiAgICB9XG4gICAgYXN5bmMgcHJlcGFyZShjdHgpIHtcbiAgICAgICAgY3R4ID1cbiAgICAgICAgICAgIGN0eCB8fFxuICAgICAgICAgICAgICAgIChhd2FpdCB0aGlzLmFkYXB0ZXIuY29udGV4dChQZXJzaXN0ZW5jZUtleXMuUVVFUlksIHRoaXMub3ZlcnJpZGVzIHx8IHt9LCB0aGlzLmZyb21TZWxlY3RvcikpO1xuICAgICAgICBpZiAodGhpcy5pc1NpbXBsZVF1ZXJ5KCkgJiZcbiAgICAgICAgICAgIGN0eC5nZXQoXCJmb3JjZVByZXBhcmVTaW1wbGVRdWVyaWVzXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBzcXVhc2hlZCA9IHRoaXMuc3F1YXNoKGN0eCk7XG4gICAgICAgICAgICBpZiAoc3F1YXNoZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVkID0gc3F1YXNoZWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXJncyA9IFtdO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgICAgICAgY29uc3QgcHJlcGFyZWQgPSB7XG4gICAgICAgICAgICBjbGFzczogdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICAgICAgICBhcmdzLFxuICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBtZXRob2QgPSBbUXVlcnlDbGF1c2UuRklORF9CWV07XG4gICAgICAgIGlmICh0aGlzLndoZXJlQ29uZGl0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnByZXBhcmVDb25kaXRpb24odGhpcy53aGVyZUNvbmRpdGlvbiwgY3R4KTtcbiAgICAgICAgICAgIG1ldGhvZC5wdXNoKHBhcnNlZC5tZXRob2QpO1xuICAgICAgICAgICAgaWYgKHBhcnNlZC5hcmdzICYmIHBhcnNlZC5hcmdzLmxlbmd0aClcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2goLi4ucGFyc2VkLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdFNlbGVjdG9yKVxuICAgICAgICAgICAgbWV0aG9kLnB1c2goUXVlcnlDbGF1c2UuU0VMRUNULCB0aGlzLnNlbGVjdFNlbGVjdG9yLmpvaW4oYCAke1F1ZXJ5Q2xhdXNlLkFORC50b0xvd2VyQ2FzZSgpfSBgKSk7XG4gICAgICAgIGlmICh0aGlzLm9yZGVyQnlTZWxlY3RvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgbWV0aG9kLnB1c2goUXVlcnlDbGF1c2UuT1JERVJfQlksIHRoaXMub3JkZXJCeVNlbGVjdG9yc1swXVswXSk7XG4gICAgICAgICAgICBhcmdzLnB1c2godGhpcy5vcmRlckJ5U2VsZWN0b3JzWzBdWzFdKTtcbiAgICAgICAgfVxuICAgICAgICBwcmVwYXJlZC5tZXRob2QgPSB0b0NhbWVsQ2FzZShtZXRob2Quam9pbihcIiBcIikpO1xuICAgICAgICBwcmVwYXJlZC5wYXJhbXMgPSBwYXJhbXM7XG4gICAgICAgIHRoaXMucHJlcGFyZWQgPSBwcmVwYXJlZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQcm9jZXNzZXMgYSByZWNvcmQgZnJvbSBDb3VjaERCL0ZhYnJpY1xuICAgICAqIEBzdW1tYXJ5IEV4dHJhY3RzIHRoZSBJRCBmcm9tIGEgQ291Y2hEQiBkb2N1bWVudCBhbmQgcmV2ZXJ0cyBpdCB0byBhIG1vZGVsIGluc3RhbmNlXG4gICAgICovXG4gICAgcHJvY2Vzc1JlY29yZChyZWNvcmQsIGN0eCkge1xuICAgICAgICBjb25zdCBwa0F0dHIgPSBNb2RlbC5wayh0aGlzLmZyb21TZWxlY3Rvcik7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBNZXRhZGF0YS5nZXQodGhpcy5mcm9tU2VsZWN0b3IsIE1ldGFkYXRhLmtleShEQktleXMuSUQsIHBrQXR0cikpPy50eXBlO1xuICAgICAgICBpZiAocmVjb3JkW0NvdWNoREJLZXlzLklEXSkge1xuICAgICAgICAgICAgY29uc3QgWywgLi4ua2V5QXJnc10gPSByZWNvcmRbQ291Y2hEQktleXMuSURdLnNwbGl0KENvdWNoREJLZXlzLlNFUEFSQVRPUik7XG4gICAgICAgICAgICBjb25zdCBpZCA9IGtleUFyZ3Muam9pbihcIl9cIik7XG4gICAgICAgICAgICByZWNvcmRbcGtBdHRyXSA9IFNlcXVlbmNlLnBhcnNlVmFsdWUodHlwZSwgaWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdXBlci5wcm9jZXNzUmVjb3JkKHJlY29yZCwgY3R4KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IE1hbmdvIHF1ZXJ5XG4gICAgICogQHN1bW1hcnkgU2VuZHMgYSByYXcgTWFuZ28gcXVlcnkgdG8gRmFicmljIGFuZCBwcm9jZXNzZXMgdGhlIHJlc3VsdHNcbiAgICAgKi9cbiAgICBhc3luYyByYXcocmF3SW5wdXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmF3KTtcbiAgICAgICAgY29uc3QgYWdncmVnYXRvciA9IHJhd0lucHV0Py5hZ2dyZWdhdGVJbmZvO1xuICAgICAgICBpZiAocmF3SW5wdXQ/LmFnZ3JlZ2F0ZSAmJiBhZ2dyZWdhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRlQWdncmVnYXRlKGFnZ3JlZ2F0b3IsIGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMuYWRhcHRlci5yYXcocmF3SW5wdXQsIHRydWUsIHRoaXMuZnJvbVNlbGVjdG9yLCBjdHgpO1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0U2VsZWN0b3IpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZCA9IHJlc3VsdHMubWFwKChyKSA9PiB0aGlzLnByb2Nlc3NSZWNvcmQociwgY3R4KSk7XG4gICAgICAgICAgICBpZiAoIWN0eC5nZXRPclVuZGVmaW5lZChcImFmdGVyUXVlcnlIYW5kbGVyc1wiKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuYXBwbHlBZnRlckhhbmRsZXJzVG9SZXN1bHQocHJvY2Vzc2VkLCBjdHgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyBhIENvdWNoREIgTWFuZ28gcXVlcnkgZnJvbSB0aGUgc3RhdGVtZW50XG4gICAgICogQHN1bW1hcnkgQ29udmVydHMgdGhlIHN0YXRlbWVudCdzIGNvbmRpdGlvbnMsIHNlbGVjdG9ycywgYW5kIG9wdGlvbnMgaW50byBhIENvdWNoREIgTWFuZ28gcXVlcnlcbiAgICAgKi9cbiAgICBidWlsZCgpIHtcbiAgICAgICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuYnVpbGQpO1xuICAgICAgICBjb25zdCBhZ2dyZWdhdGVRdWVyeSA9IHRoaXMuYnVpbGRBZ2dyZWdhdGVRdWVyeSgpO1xuICAgICAgICBpZiAoYWdncmVnYXRlUXVlcnkpXG4gICAgICAgICAgICByZXR1cm4gYWdncmVnYXRlUXVlcnk7XG4gICAgICAgIGNvbnN0IHNlbGVjdG9ycyA9IHt9O1xuICAgICAgICBzZWxlY3RvcnNbQ291Y2hEQktleXMuVEFCTEVdID0ge307XG4gICAgICAgIHNlbGVjdG9yc1tDb3VjaERCS2V5cy5UQUJMRV0gPSBNb2RlbC50YWJsZU5hbWUodGhpcy5mcm9tU2VsZWN0b3IpO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHsgc2VsZWN0b3I6IHNlbGVjdG9ycyB9O1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RTZWxlY3RvcilcbiAgICAgICAgICAgIHF1ZXJ5LmZpZWxkcyA9IHRoaXMuc2VsZWN0U2VsZWN0b3I7XG4gICAgICAgIGlmICh0aGlzLndoZXJlQ29uZGl0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb24gPSB0aGlzLnBhcnNlQ29uZGl0aW9uKENvbmRpdGlvbi5hbmQodGhpcy53aGVyZUNvbmRpdGlvbiwgQ29uZGl0aW9uLmF0dHJpYnV0ZShDb3VjaERCS2V5cy5UQUJMRSkuZXEocXVlcnkuc2VsZWN0b3JbQ291Y2hEQktleXMuVEFCTEVdKSkpLnNlbGVjdG9yO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0b3JLZXlzID0gT2JqZWN0LmtleXMoY29uZGl0aW9uKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RvcktleXMubGVuZ3RoID09PSAxICYmXG4gICAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhDb3VjaERCR3JvdXBPcGVyYXRvcikuaW5kZXhPZihzZWxlY3RvcktleXNbMF0pICE9PSAtMSlcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNlbGVjdG9yS2V5c1swXSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIENvdWNoREJHcm91cE9wZXJhdG9yLkFORDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbltDb3VjaERCR3JvdXBPcGVyYXRvci5BTkRdID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoY29uZGl0aW9uW0NvdWNoREJHcm91cE9wZXJhdG9yLkFORF0pLnJlZHVjZSgoYWNjdW0sIHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoICE9PSAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVG9vIG1hbnkga2V5cyBpbiBxdWVyeSBzZWxlY3Rvci4gc2hvdWxkIGJlIG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgayA9IGtleXNbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrID09PSBDb3VjaERCR3JvdXBPcGVyYXRvci5BTkQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2N1bS5wdXNoKC4uLnZhbFtrXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY3VtLnB1c2godmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIFtdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeS5zZWxlY3RvciA9IGNvbmRpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIENvdWNoREJHcm91cE9wZXJhdG9yLk9SOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzID0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICBzW0NvdWNoREJHcm91cE9wZXJhdG9yLkFORF0gPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLk9iamVjdC5lbnRyaWVzKHF1ZXJ5LnNlbGVjdG9yKS5tYXAoKFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5LnNlbGVjdG9yID0gcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIHNob3VsZCBiZSBpbXBvc3NpYmxlXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbmRpdGlvbikuZm9yRWFjaCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocXVlcnkuc2VsZWN0b3Jba2V5XSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZy53YXJuKGBBICR7a2V5fSBxdWVyeSBwYXJhbSBpcyBhYm91dCB0byBiZSBvdmVycmlkZGVuOiAke3F1ZXJ5LnNlbGVjdG9yW2tleV19IGJ5ICR7dmFsfWApO1xuICAgICAgICAgICAgICAgICAgICBxdWVyeS5zZWxlY3RvcltrZXldID0gdmFsO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9yZGVyQnlTZWxlY3RvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcXVlcnkuc29ydCA9IHF1ZXJ5LnNvcnQgfHwgW107XG4gICAgICAgICAgICBxdWVyeS5zZWxlY3RvciA9IHF1ZXJ5LnNlbGVjdG9yIHx8IHt9O1xuICAgICAgICAgICAgZm9yIChjb25zdCBbc2VsZWN0b3JLZXksIGRpcmVjdGlvbl0gb2YgdGhpcy5vcmRlckJ5U2VsZWN0b3JzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBzZWxlY3RvcktleTtcbiAgICAgICAgICAgICAgICBjb25zdCByZWMgPSB7fTtcbiAgICAgICAgICAgICAgICByZWNbc2VsZWN0b3JdID0gZGlyZWN0aW9uO1xuICAgICAgICAgICAgICAgIHF1ZXJ5LnNvcnQucHVzaChyZWMpO1xuICAgICAgICAgICAgICAgIGlmICghcXVlcnkuc2VsZWN0b3Jbc2VsZWN0b3JdKSB7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBxdWVyeS5zZWxlY3RvcltzZWxlY3Rvcl1bQ291Y2hEQk9wZXJhdG9yLkJJR0dFUl0gPVxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGltaXRTZWxlY3Rvcikge1xuICAgICAgICAgICAgcXVlcnkubGltaXQgPSB0aGlzLmxpbWl0U2VsZWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsb2cud2FybihgTm8gbGltaXQgc2VsZWN0b3IgZGVmaW5lZC4gVXNpbmcgZGVmYXVsdCBjb3VjaGRiIGxpbWl0IG9mICR7Q291Y2hEQlF1ZXJ5TGltaXR9YCk7XG4gICAgICAgICAgICBxdWVyeS5saW1pdCA9IENvdWNoREJRdWVyeUxpbWl0O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9mZnNldFNlbGVjdG9yKVxuICAgICAgICAgICAgcXVlcnkuc2tpcCA9IHRoaXMub2Zmc2V0U2VsZWN0b3I7XG4gICAgICAgIHJldHVybiBxdWVyeTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhIGNvbmRpdGlvbiBpbnRvIGEgQ291Y2hEQiBNYW5nbyBxdWVyeSBzZWxlY3RvclxuICAgICAqIEBzdW1tYXJ5IENvbnZlcnRzIGEgQ29uZGl0aW9uIG9iamVjdCBpbnRvIGEgQ291Y2hEQiBNYW5nbyBxdWVyeSBzZWxlY3RvciBzdHJ1Y3R1cmVcbiAgICAgKi9cbiAgICBwYXJzZUNvbmRpdGlvbihjb25kaXRpb24pIHtcbiAgICAgICAgZnVuY3Rpb24gbWVyZ2Uob3AsIG9iajEsIG9iajIpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHsgc2VsZWN0b3I6IHt9IH07XG4gICAgICAgICAgICByZXN1bHQuc2VsZWN0b3Jbb3BdID0gW29iajEsIG9iajJdO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGF0dHIxLCBvcGVyYXRvciwgY29tcGFyaXNvbiB9ID0gY29uZGl0aW9uO1xuICAgICAgICBpZiAob3BlcmF0b3IgPT09IE9wZXJhdG9yLlNUQVJUU19XSVRIKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGF0dHIxICE9PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFwiU1RBUlRTX1dJVEggcmVxdWlyZXMgYW4gYXR0cmlidXRlIG5hbWVcIik7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbXBhcmlzb24gIT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJTVEFSVFNfV0lUSCByZXF1aXJlcyBhIHN0cmluZyBjb21wYXJpc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBwcmVmaXhSYW5nZShjb21wYXJpc29uKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdG9yID0ge307XG4gICAgICAgICAgICBzZWxlY3RvclthdHRyMV0gPSB7fTtcbiAgICAgICAgICAgIHNlbGVjdG9yW2F0dHIxXVtDb3VjaERCT3BlcmF0b3IuQklHR0VSX0VRXSA9IHJhbmdlLnN0YXJ0O1xuICAgICAgICAgICAgc2VsZWN0b3JbYXR0cjFdW0NvdWNoREJPcGVyYXRvci5TTUFMTEVSXSA9IHJhbmdlLmVuZDtcbiAgICAgICAgICAgIHJldHVybiB7IHNlbGVjdG9yIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wZXJhdG9yID09PSBPcGVyYXRvci5FTkRTX1dJVEgpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgYXR0cjEgIT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJFTkRTX1dJVEggcmVxdWlyZXMgYW4gYXR0cmlidXRlIG5hbWVcIik7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbXBhcmlzb24gIT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJFTkRTX1dJVEggcmVxdWlyZXMgYSBzdHJpbmcgY29tcGFyaXNvblwiKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdG9yID0ge307XG4gICAgICAgICAgICBzZWxlY3RvclthdHRyMV0gPSB7XG4gICAgICAgICAgICAgICAgW0NvdWNoREJPcGVyYXRvci5SRUdFWFBdOiBgJHtlc2NhcGVSZWdFeHAoY29tcGFyaXNvbil9JGAsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHsgc2VsZWN0b3IgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3BlcmF0b3IgPT09IE9wZXJhdG9yLkJFVFdFRU4pIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHIgPSBhdHRyMTtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShjb21wYXJpc29uKSB8fCBjb21wYXJpc29uLmxlbmd0aCAhPT0gMilcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcIkJFVFdFRU4gb3BlcmF0b3IgcmVxdWlyZXMgW21pbiwgbWF4XSBjb21wYXJpc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgW21pbiwgbWF4XSA9IGNvbXBhcmlzb247XG4gICAgICAgICAgICBjb25zdCBvcEJldHdlZW4gPSB7fTtcbiAgICAgICAgICAgIG9wQmV0d2VlblthdHRyXSA9IHt9O1xuICAgICAgICAgICAgb3BCZXR3ZWVuW2F0dHJdW3RyYW5zbGF0ZU9wZXJhdG9ycyhPcGVyYXRvci5CSUdHRVJfRVEpXSA9IG1pbjtcbiAgICAgICAgICAgIG9wQmV0d2VlblthdHRyXVt0cmFuc2xhdGVPcGVyYXRvcnMoT3BlcmF0b3IuU01BTExFUl9FUSldID0gbWF4O1xuICAgICAgICAgICAgcmV0dXJuIHsgc2VsZWN0b3I6IG9wQmV0d2VlbiB9O1xuICAgICAgICB9XG4gICAgICAgIGxldCBvcCA9IHt9O1xuICAgICAgICBpZiAoW0dyb3VwT3BlcmF0b3IuQU5ELCBHcm91cE9wZXJhdG9yLk9SLCBPcGVyYXRvci5OT1RdLmluZGV4T2Yob3BlcmF0b3IpID09PSAtMSkge1xuICAgICAgICAgICAgb3BbYXR0cjFdID0ge307XG4gICAgICAgICAgICBvcFthdHRyMV1bdHJhbnNsYXRlT3BlcmF0b3JzKG9wZXJhdG9yKV0gPVxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb247XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3BlcmF0b3IgPT09IE9wZXJhdG9yLk5PVCkge1xuICAgICAgICAgICAgb3AgPSB0aGlzLnBhcnNlQ29uZGl0aW9uKGF0dHIxKS5zZWxlY3RvcjtcbiAgICAgICAgICAgIG9wW3RyYW5zbGF0ZU9wZXJhdG9ycyhPcGVyYXRvci5OT1QpXSA9IHt9O1xuICAgICAgICAgICAgb3BbdHJhbnNsYXRlT3BlcmF0b3JzKE9wZXJhdG9yLk5PVCldW2F0dHIxLmF0dHIxXSA9IGNvbXBhcmlzb247XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBvcDEgPSB0aGlzLnBhcnNlQ29uZGl0aW9uKGF0dHIxKS5zZWxlY3RvcjtcbiAgICAgICAgICAgIGNvbnN0IG9wMiA9IHRoaXMucGFyc2VDb25kaXRpb24oY29tcGFyaXNvbikuc2VsZWN0b3I7XG4gICAgICAgICAgICBvcCA9IG1lcmdlKHRyYW5zbGF0ZU9wZXJhdG9ycyhvcGVyYXRvciksIG9wMSwgb3AyKS5zZWxlY3RvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBzZWxlY3Rvcjogb3AgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyBhbiBhZ2dyZWdhdGUgcXVlcnkgaWYgYWdncmVnYXRpb24gaXMgcmVxdWVzdGVkXG4gICAgICogQHN1bW1hcnkgQ2hlY2tzIGZvciBhZ2dyZWdhdGUgb3BlcmF0aW9ucyBhbmQgcmV0dXJucyBhIHNwZWNpYWwgTWFuZ29RdWVyeSBmb3IgdGhlbVxuICAgICAqL1xuICAgIGJ1aWxkQWdncmVnYXRlUXVlcnkoKSB7XG4gICAgICAgIGlmICghdGhpcy5mcm9tU2VsZWN0b3IpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5hdmdTZWxlY3Rvcikge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gU3RyaW5nKHRoaXMuYXZnU2VsZWN0b3IpO1xuICAgICAgICAgICAgY29uc3Qgc3VtSW5mbyA9IHRoaXMuY3JlYXRlQWdncmVnYXRlRGVzY3JpcHRvcihcInN1bVwiLCBhdHRyaWJ1dGUpO1xuICAgICAgICAgICAgY29uc3QgY291bnRJbmZvID0gdGhpcy5jcmVhdGVBZ2dyZWdhdGVEZXNjcmlwdG9yKFwiY291bnRcIiwgYXR0cmlidXRlKTtcbiAgICAgICAgICAgIGlmICghc3VtSW5mbyB8fCAhY291bnRJbmZvKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKGBBdmcgb3BlcmF0aW9uIHJlcXVpcmVzIHN1bSBhbmQgY291bnQgdmlld3MgZm9yIGF0dHJpYnV0ZSAke2F0dHJpYnV0ZX1gKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUFnZ3JlZ2F0ZVF1ZXJ5KHtcbiAgICAgICAgICAgICAgICBraW5kOiBcImF2Z1wiLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSxcbiAgICAgICAgICAgICAgICBzdW1EZXNjcmlwdG9yOiBzdW1JbmZvLmRlc2NyaXB0b3IsXG4gICAgICAgICAgICAgICAgY291bnREZXNjcmlwdG9yOiBjb3VudEluZm8uZGVzY3JpcHRvcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb3VudERpc3RpbmN0U2VsZWN0b3IgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IHRoaXMuY291bnREaXN0aW5jdFNlbGVjdG9yID09IG51bGxcbiAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIDogU3RyaW5nKHRoaXMuY291bnREaXN0aW5jdFNlbGVjdG9yKTtcbiAgICAgICAgICAgIGNvbnN0IGluZm8gPSB0aGlzLmNyZWF0ZUFnZ3JlZ2F0ZURlc2NyaXB0b3IoXCJkaXN0aW5jdFwiLCBhdHRyaWJ1dGUpO1xuICAgICAgICAgICAgaWYgKGluZm8pIHtcbiAgICAgICAgICAgICAgICBpbmZvLmNvdW50RGlzdGluY3QgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUFnZ3JlZ2F0ZVF1ZXJ5KGluZm8pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFnZ3JlZ2F0b3JVc2VkID0gdHlwZW9mIHRoaXMuY291bnRTZWxlY3RvciAhPT0gXCJ1bmRlZmluZWRcIiB8fFxuICAgICAgICAgICAgdHlwZW9mIHRoaXMuY291bnREaXN0aW5jdFNlbGVjdG9yICE9PSBcInVuZGVmaW5lZFwiIHx8XG4gICAgICAgICAgICAhIXRoaXMubWluU2VsZWN0b3IgfHxcbiAgICAgICAgICAgICEhdGhpcy5tYXhTZWxlY3RvciB8fFxuICAgICAgICAgICAgISF0aGlzLnN1bVNlbGVjdG9yIHx8XG4gICAgICAgICAgICAhIXRoaXMuZGlzdGluY3RTZWxlY3RvcjtcbiAgICAgICAgY29uc3QgYWdncmVnYXRvckNoZWNrcyA9IFtcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBcImNvdW50XCIsXG4gICAgICAgICAgICAgICAgKHRoaXMuY291bnRTZWxlY3RvciA/PyB1bmRlZmluZWQpLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtcIm1heFwiLCB0aGlzLm1heFNlbGVjdG9yXSxcbiAgICAgICAgICAgIFtcIm1pblwiLCB0aGlzLm1pblNlbGVjdG9yXSxcbiAgICAgICAgICAgIFtcInN1bVwiLCB0aGlzLnN1bVNlbGVjdG9yXSxcbiAgICAgICAgICAgIFtcImRpc3RpbmN0XCIsIHRoaXMuZGlzdGluY3RTZWxlY3Rvcl0sXG4gICAgICAgIF07XG4gICAgICAgIGZvciAoY29uc3QgW2tpbmQsIHNlbGVjdG9yXSBvZiBhZ2dyZWdhdG9yQ2hlY2tzKSB7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSBzZWxlY3RvciA/IFN0cmluZyhzZWxlY3RvcikgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5jcmVhdGVBZ2dyZWdhdGVEZXNjcmlwdG9yKGtpbmQsIGF0dHJpYnV0ZSk7XG4gICAgICAgICAgICBpZiAoaW5mbylcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVBZ2dyZWdhdGVRdWVyeShpbmZvKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWdncmVnYXRvclVzZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKGBObyBDb3VjaERCIHZpZXcgbWV0YWRhdGEgZm91bmQgZm9yIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuZnJvbVNlbGVjdG9yKX0gYWdncmVnYXRvcmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGFuIGFnZ3JlZ2F0ZSBkZXNjcmlwdG9yIGZvciBhIHZpZXctYmFzZWQgYWdncmVnYXRpb25cbiAgICAgKi9cbiAgICBjcmVhdGVBZ2dyZWdhdGVEZXNjcmlwdG9yKGtpbmQsIGF0dHJpYnV0ZSkge1xuICAgICAgICBpZiAoIXRoaXMuZnJvbVNlbGVjdG9yKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgbWV0YXMgPSBmaW5kVmlld01ldGFkYXRhKHRoaXMuZnJvbVNlbGVjdG9yLCBraW5kLCBhdHRyaWJ1dGUpO1xuICAgICAgICBpZiAoIW1ldGFzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IG1ldGEgPSBtZXRhc1swXTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKHRoaXMuZnJvbVNlbGVjdG9yKTtcbiAgICAgICAgY29uc3Qgdmlld05hbWUgPSBnZW5lcmF0ZVZpZXdOYW1lKHRhYmxlTmFtZSwgbWV0YS5hdHRyaWJ1dGUsIGtpbmQsIG1ldGEpO1xuICAgICAgICBjb25zdCBkZG9jID0gbWV0YS5kZG9jIHx8IGdlbmVyYXRlRGVzaWduRG9jTmFtZSh0YWJsZU5hbWUsIHZpZXdOYW1lKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIHJlZHVjZTogbWV0YS5yZWR1Y2UgIT09IHVuZGVmaW5lZCA/IHRydWUgOiAhbWV0YS5yZXR1cm5Eb2NzLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoa2luZCA9PT0gXCJkaXN0aW5jdFwiIHx8IGtpbmQgPT09IFwiZ3JvdXBCeVwiKVxuICAgICAgICAgICAgb3B0aW9ucy5ncm91cCA9IHRydWU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgbWV0YSxcbiAgICAgICAgICAgIGRlc2NyaXB0b3I6IHtcbiAgICAgICAgICAgICAgICBkZG9jLFxuICAgICAgICAgICAgICAgIHZpZXc6IHZpZXdOYW1lLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyB0aGUgc3BlY2lhbCBhZ2dyZWdhdGUgTWFuZ29RdWVyeSBtYXJrZXJcbiAgICAgKi9cbiAgICBjcmVhdGVBZ2dyZWdhdGVRdWVyeShpbmZvKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZWxlY3Rvcjoge30sXG4gICAgICAgICAgICBhZ2dyZWdhdGU6IHRydWUsXG4gICAgICAgICAgICBhZ2dyZWdhdGVJbmZvOiBpbmZvLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgYWRhcHRlciBjYXN0IHRvIEZhYnJpY0NsaWVudEFkYXB0ZXIgZm9yIHZpZXcgYWNjZXNzXG4gICAgICovXG4gICAgZ2V0RmFicmljQWRhcHRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlcjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGFuIGFnZ3JlZ2F0ZSBxdWVyeSB2aWEgYWRhcHRlcidzIHZpZXcgbWV0aG9kXG4gICAgICovXG4gICAgYXN5bmMgZXhlY3V0ZUFnZ3JlZ2F0ZShpbmZvLCBjdHgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmlld0FnZ3JlZ2F0ZShpbmZvKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQXZlcmFnZShpbmZvLCBjdHgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZhYnJpY0FkYXB0ZXIgPSB0aGlzLmdldEZhYnJpY0FkYXB0ZXIoKTtcbiAgICAgICAgY29uc3Qgdmlld0luZm8gPSBpbmZvO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZhYnJpY0FkYXB0ZXIudmlldyh2aWV3SW5mby5kZXNjcmlwdG9yLmRkb2MsIHZpZXdJbmZvLmRlc2NyaXB0b3Iudmlldywgdmlld0luZm8uZGVzY3JpcHRvci5vcHRpb25zLCBjdHgpO1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVmlld1Jlc3BvbnNlKGluZm8sIHJlc3BvbnNlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgYXZlcmFnZSBjYWxjdWxhdGlvbiBmcm9tIHN1bSBhbmQgY291bnQgdmlld3NcbiAgICAgKi9cbiAgICBhc3luYyBoYW5kbGVBdmVyYWdlKGluZm8sIGN0eCkge1xuICAgICAgICBpZiAoaW5mby5raW5kICE9PSBcImF2Z1wiKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJBdmVyYWdlIGRlc2NyaXB0b3IgaXMgbm90IHZhbGlkXCIpO1xuICAgICAgICBjb25zdCBmYWJyaWNBZGFwdGVyID0gdGhpcy5nZXRGYWJyaWNBZGFwdGVyKCk7XG4gICAgICAgIGNvbnN0IFtzdW1EZXNjLCBjb3VudERlc2NdID0gW2luZm8uc3VtRGVzY3JpcHRvciwgaW5mby5jb3VudERlc2NyaXB0b3JdO1xuICAgICAgICBjb25zdCBbc3VtUmVzcG9uc2UsIGNvdW50UmVzcG9uc2VdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgZmFicmljQWRhcHRlci52aWV3KHN1bURlc2MuZGRvYywgc3VtRGVzYy52aWV3LCBzdW1EZXNjLm9wdGlvbnMsIGN0eCksXG4gICAgICAgICAgICBmYWJyaWNBZGFwdGVyLnZpZXcoY291bnREZXNjLmRkb2MsIGNvdW50RGVzYy52aWV3LCBjb3VudERlc2Mub3B0aW9ucywgY3R4KSxcbiAgICAgICAgXSk7XG4gICAgICAgIGNvbnN0IHN1bSA9IHN1bVJlc3BvbnNlLnJvd3M/LlswXT8udmFsdWUgPz8gMDtcbiAgICAgICAgY29uc3QgY291bnQgPSBjb3VudFJlc3BvbnNlLnJvd3M/LlswXT8udmFsdWUgPz8gMDtcbiAgICAgICAgaWYgKCFjb3VudClcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICByZXR1cm4gKHN1bSAvIGNvdW50KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb2Nlc3NlcyB0aGUgdmlldyByZXNwb25zZSBiYXNlZCBvbiBhZ2dyZWdhdGUga2luZFxuICAgICAqL1xuICAgIHByb2Nlc3NWaWV3UmVzcG9uc2UoaW5mbywgcmVzcG9uc2UpIHtcbiAgICAgICAgaWYgKGluZm8ua2luZCA9PT0gXCJhdmdcIilcbiAgICAgICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFwiQXZlcmFnZSByZXN1bHRzIHNob3VsZCBiZSBoYW5kbGVkIGJlZm9yZSBwcm9jZXNzaW5nIHJvd3NcIik7XG4gICAgICAgIGNvbnN0IHJvd3MgPSByZXNwb25zZS5yb3dzIHx8IFtdO1xuICAgICAgICBjb25zdCB2aWV3SW5mbyA9IGluZm87XG4gICAgICAgIGNvbnN0IG1ldGEgPSB2aWV3SW5mby5tZXRhO1xuICAgICAgICBpZiAodmlld0luZm8uY291bnREaXN0aW5jdCkge1xuICAgICAgICAgICAgcmV0dXJuIChyb3dzLmxlbmd0aCB8fCAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmlld0luZm8ua2luZCA9PT0gXCJkaXN0aW5jdFwiIHx8IHZpZXdJbmZvLmtpbmQgPT09IFwiZ3JvdXBCeVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gcm93cy5tYXAoKHJvdykgPT4gcm93LmtleSA/PyByb3cudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtZXRhLnJldHVybkRvY3MpIHtcbiAgICAgICAgICAgIHJldHVybiByb3dzLm1hcCgocm93KSA9PiByb3cudmFsdWUgPz8gcm93LmRvYyA/PyByb3cpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcm93cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAodmlld0luZm8ua2luZCA9PT0gXCJjb3VudFwiID8gMCA6IG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAocm93c1swXS52YWx1ZSA/PyByb3dzWzBdLmtleSA/PyBudWxsKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgaW5mbyBpcyBhIHZpZXctYmFzZWQgYWdncmVnYXRlXG4gICAgICovXG4gICAgaXNWaWV3QWdncmVnYXRlKGluZm8pIHtcbiAgICAgICAgcmV0dXJuIGluZm8ua2luZCAhPT0gXCJhdmdcIjtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lSbUZpY21salEyeHBaVzUwVTNSaGRHVnRaVzUwTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDJOc2FXVnVkQzlHWVdKeWFXTkRiR2xsYm5SVGRHRjBaVzFsYm5RdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eEZRVVZNTEZOQlFWTXNSVUZGVkN4aFFVRmhMRVZCUldJc1VVRkJVU3hGUVVWU0xHVkJRV1VzUlVGRlppeHhRa0ZCY1VJc1JVRkRja0lzVjBGQlZ5eEZRVU5ZTEZWQlFWVXNSVUZEVml4VlFVRlZMRVZCUlZZc1VVRkJVU3hGUVVOU0xGTkJRVk1zUjBGSFZpeE5RVUZOTEdkQ1FVRm5RaXhEUVVGRE8wRkJRM2hDTEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1RVRkJUU3huUTBGQlowTXNRMEZCUXp0QlFVVjJSQ3hQUVVGUExFVkJRMHdzVjBGQlZ5eEZRVU5ZTEdWQlFXVXNSVUZEWml4dlFrRkJiMElzUlVGRGNFSXNhVUpCUVdsQ0xFVkJTV3BDTEd0Q1FVRnJRaXhGUVVOc1FpeHhRa0ZCY1VJc1JVRkRja0lzWjBKQlFXZENMRVZCUTJoQ0xHZENRVUZuUWl4SFFVZHFRaXhOUVVGTkxIVkNRVUYxUWl4RFFVRkRPMEZCUlM5Q0xFOUJRVThzUlVGQlJTeFhRVUZYTEVWQlFVVXNUVUZCVFN4dFFrRkJiVUlzUTBGQlF6dEJRVU5vUkN4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxHRkJRV0VzUlVGQlJTeE5RVUZOTEhsQ1FVRjVRaXhEUVVGRE8wRkJRMmhGTEU5QlFVOHNSVUZCUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3h6UWtGQmMwSXNRMEZCUXp0QlFYTkNhRVFzVFVGQlRTeFpRVUZaTEVkQlFVY3NRMEZCUXl4TFFVRmhMRVZCUVZVc1JVRkJSU3hEUVVNM1F5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMSEZDUVVGeFFpeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUlM5RExGTkJRVk1zZFVKQlFYVkNMRU5CUVVNc1MwRkJZVHRKUVVNMVF5eEpRVUZKTEVOQlFVTXNTMEZCU3p0UlFVRkZMRTlCUVU4c1VVRkJVU3hEUVVGRE8wbEJRelZDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTVUZEYUVNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJRenRSUVVNNVF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKRExFbEJRVWtzU1VGQlNTeExRVUZMTEZOQlFWTTdXVUZCUlN4VFFVRlRPMUZCUTJwRExFbEJRVWtzU1VGQlNTeEhRVUZITEZGQlFWRXNSVUZCUlN4RFFVRkRPMWxCUTNCQ0xFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhReXhQUVVGUExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRlRU1zUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZEUkN4UFFVRlBMRWRCUVVjc1MwRkJTeXhSUVVGUkxFTkJRVU03UVVGRE1VSXNRMEZCUXp0QlFVVkVMRk5CUVZNc1YwRkJWeXhEUVVGRExFMUJRV003U1VGRGFrTXNUMEZCVHp0UlFVTk1MRXRCUVVzc1JVRkJSU3hOUVVGTk8xRkJRMklzUjBGQlJ5eEZRVUZGTEhWQ1FVRjFRaXhEUVVGRExFMUJRVTBzUTBGQlF6dExRVU55UXl4RFFVRkRPMEZCUTBvc1EwRkJRenRCUVVWRUxFMUJRVTBzVDBGQlR5eHhRa0ZCTUVNc1UwRkJVU3hUUVVzNVJEdEpRVU5ETEZsQlFWa3NUMEZCTkVJc1JVRkJSU3hUUVVGcFF6dFJRVU42UlN4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETzBsQlF6VkNMRU5CUVVNN1NVRkZhMElzVFVGQlRTeERRVU4yUWl4SFFVRXJRanRSUVVVdlFpeE5RVUZOTEZGQlFWRXNSMEZCY1VNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGRE4wUXNSMEZCV1N4RFFVTmlMRU5CUVVNN1VVRkRSaXhKUVVGSkxFTkJRVU1zVVVGQlVUdFpRVUZGTEU5QlFVOHNVVUZCVVN4RFFVRkRPMUZCUlM5Q0xFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hIUVVGSExGRkJRVkVzUTBGQlF6dFJRVU14UXl4TlFVRk5MRVZCUVVVc1UwRkJVeXhGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXp0UlFVTndReXhSUVVGUkxFMUJRVTBzUlVGQlJTeERRVUZETzFsQlEyWXNTMEZCU3l4eFFrRkJjVUlzUTBGQlF5eEpRVUZKTzJkQ1FVTTNRaXhOUVVGTk8xbEJRMUlzUzBGQlN5eHhRa0ZCY1VJc1EwRkJReXhKUVVGSk8yZENRVU0zUWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkROVUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NjVUpCUVhGQ0xFTkJRVU1zVDBGQlR6dG5Ra0ZEYUVNc1RVRkJUVHRaUVVOU0xFdEJRVXNzY1VKQlFYRkNMRU5CUVVNc1QwRkJUenRuUWtGRGFFTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dG5Ra0ZEY2tJc1RVRkJUVHRaUVVOU0xFdEJRVXNzY1VKQlFYRkNMRU5CUVVNc1QwRkJUenRuUWtGRGFFTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdaMEpCUXpWQ0xFMUJRVTA3V1VGRFVpeExRVUZMTEhGQ1FVRnhRaXhEUVVGRExGZEJRVmM3WjBKQlEzQkRMRTFCUVUwN1dVRkRVanRuUWtGRFJTeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMSE5DUVVGelFpeE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUXpWRUxFTkJRVU03VVVGRlJDeFBRVUZQTEZGQlFWRXNRMEZCUXp0SlFVTnNRaXhEUVVGRE8wbEJSV3RDTEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUTNSRExFZEJRVWNzU1VGQmIwUTdVVUZGZGtRc1RVRkJUU3hKUVVGSkxFZEJRVWNzVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRlRVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQmEwTXNRMEZCUXp0UlFVTnFSU3hQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1NVRkJTU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEYkVRc1EwRkJRenRKUVVWUkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlEzQkNMRWRCUVdkRE8xRkJSV2hETEVkQlFVYzdXVUZEUkN4SFFVRkhPMmRDUVVOSUxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkRla0lzWlVGQlpTeERRVUZETEV0QlFVc3NSVUZEY2tJc1NVRkJTU3hEUVVGRExGTkJRVk1zU1VGQlNTeEZRVUZGTEVWQlEzQkNMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRMnhDTEVOQlFVTXNRMEZCUXp0UlFVVk1MRWxCUTBVc1NVRkJTU3hEUVVGRExHRkJRV0VzUlVGQlJUdFpRVU51UWl4SFFVRnJReXhEUVVGRExFZEJRVWNzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhGUVVOd1JTeERRVUZETzFsQlEwUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZwUXl4RFFVRkRMRU5CUVVNN1dVRkRhRVVzU1VGQlNTeFJRVUZSTEVWQlFVVXNRMEZCUXp0blFrRkRZaXhKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXp0blFrRkRla0lzVDBGQlR5eEpRVUZKTEVOQlFVTTdXVUZEWkN4RFFVRkRPMUZCUTBnc1EwRkJRenRSUVVORUxFMUJRVTBzU1VGQlNTeEhRVUYzUWl4RlFVRkZMRU5CUVVNN1VVRkRja01zVFVGQlRTeE5RVUZOTEVkQlFWRXNSVUZCVXl4RFFVRkRPMUZCUlRsQ0xFMUJRVTBzVVVGQlVTeEhRVUV5UWp0WlFVTjJReXhMUVVGTExFVkJRVVVzU1VGQlNTeERRVUZETEZsQlFWazdXVUZEZUVJc1NVRkJTVHRaUVVOS0xFMUJRVTA3VTBGRFFTeERRVUZETzFGQlJWUXNUVUZCVFN4TlFVRk5MRWRCUVdFc1EwRkJReXhYUVVGWExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZGTDBNc1NVRkJTU3hKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdXVUZEZUVJc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVWQlFVVXNSMEZCV1N4RFFVRkRMRU5CUVVNN1dVRkRlRVVzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03V1VGRE0wSXNTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFR0blFrRkRia01zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkpMRTFCUVUwc1EwRkJReXhKUVVFMFFpeERRVUZETEVOQlFVTTdVVUZEZGtRc1EwRkJRenRSUVVORUxFbEJRVWtzU1VGQlNTeERRVUZETEdOQlFXTTdXVUZEY2tJc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGRFZDeFhRVUZYTEVOQlFVTXNUVUZCVFN4RlFVTnNRaXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVTXZSQ3hEUVVGRE8xRkJRMG9zU1VGQlNTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTTdXVUZEYkVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVmNzUTBGQlF5eERRVUZETzFsQlEzcEZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNN1VVRkRhRVFzUTBGQlF6dFJRVU5FTEZGQlFWRXNRMEZCUXl4TlFVRk5MRWRCUVVjc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOb1JDeFJRVUZSTEVOQlFVTXNUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVONlFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJRenRSUVVONlFpeFBRVUZQTEVsQlFVa3NRMEZCUXp0SlFVTmtMRU5CUVVNN1NVRkZSRHM3TzA5QlIwYzdTVUZEWjBJc1lVRkJZU3hEUVVNNVFpeE5RVUZYTEVWQlExZ3NSMEZCSzBJN1VVRkZMMElzVFVGQlRTeE5RVUZOTEVkQlFVY3NTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZETTBNc1RVRkJUU3hKUVVGSkxFZEJRVWNzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZEZGtJc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGRGFrSXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEUxQlFXZENMRU5CUVVNc1EwRkRNVU1zUlVGQlJTeEpRVUZKTEVOQlFVTTdVVUZGVWl4SlFVRkpMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTXpRaXhOUVVGTkxFTkJRVU1zUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFpRVU16UlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUXpkQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVmNzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hEUVVGRE8xRkJSVVFzVDBGQlR5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU14UXl4RFFVRkRPMGxCUlVRN096dFBRVWRITzBsQlEwMHNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJTU3hSUVVGdlFpeEZRVUZGTEVkQlFVY3NTVUZCVnp0UlFVTjRSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUXpWRExFMUJRVTBzVlVGQlZTeEhRVUZKTEZGQlFXZENMRVZCUVVVc1lVRkJZU3hEUVVGRE8xRkJRM0JFTEVsQlFVc3NVVUZCWjBJc1JVRkJSU3hUUVVGVExFbEJRVWtzVlVGQlZTeEZRVUZGTEVOQlFVTTdXVUZETDBNc1QwRkJUeXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVrc1ZVRkJWU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEyNUVMRU5CUVVNN1VVRkRSQ3hOUVVGTkxFOUJRVThzUjBGQlZTeE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVNelF5eFJRVUZSTEVWQlExSXNTVUZCU1N4RlFVTktMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRMnBDTEVkQlFVY3NRMEZEU2l4RFFVRkRPMUZCUlVZc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0WlFVTjZRaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEycEZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zWTBGQll5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExFVkJRVVVzUTBGQlF6dG5Ra0ZET1VNc1QwRkJUeXhUUVVGNVFpeERRVUZETzFsQlEyNURMRU5CUVVNN1dVRkRSQ3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNNRUpCUVRCQ0xFTkJRVU1zVTBGQlV5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRk5MRU5CUVVNN1VVRkRkRVVzUTBGQlF6dFJRVU5FTEU5QlFVOHNUMEZCV1N4RFFVRkRPMGxCUTNSQ0xFTkJRVU03U1VGRlJEczdPMDlCUjBjN1NVRkRaMElzUzBGQlN6dFJRVU4wUWl4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNrTXNUVUZCVFN4alFVRmpMRWRCUVVjc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RlFVRkZMRU5CUVVNN1VVRkRiRVFzU1VGQlNTeGpRVUZqTzFsQlFVVXNUMEZCVHl4alFVRmpMRU5CUVVNN1VVRkRNVU1zVFVGQlRTeFRRVUZUTEVkQlFXdENMRVZCUVVVc1EwRkJRenRSUVVOd1F5eFRRVUZUTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5zUXl4VFFVRlRMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlEyeEZMRTFCUVUwc1MwRkJTeXhIUVVGbExFVkJRVVVzVVVGQlVTeEZRVUZGTEZOQlFWTXNSVUZCUlN4RFFVRkRPMUZCUTJ4RUxFbEJRVWtzU1VGQlNTeERRVUZETEdOQlFXTTdXVUZCUlN4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eGpRVUV3UWl4RFFVRkRPMUZCUlhoRkxFbEJRVWtzU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMWxCUTNoQ0xFMUJRVTBzVTBGQlV5eEhRVUZyUWl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVOc1JDeFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVTllMRWxCUVVrc1EwRkJReXhqUVVGakxFVkJRMjVDTEZOQlFWTXNRMEZCUXl4VFFVRlRMRU5CUVVrc1YwRkJWeXhEUVVGRExFdEJRV2RDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUTNKRUxFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVOc1F5eERRVU5HTEVOQlEwWXNRMEZCUXl4UlFVRlJMRU5CUVVNN1dVRkRXQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJiMElzUTBGQlF6dFpRVU12UkN4SlFVTkZMRmxCUVZrc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF6dG5Ra0ZEZWtJc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03WjBKQlJXNUZMRkZCUVZFc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdiMEpCUTNoQ0xFdEJRVXNzYjBKQlFXOUNMRU5CUVVNc1IwRkJSenQzUWtGRE0wSXNVMEZCVXl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhPelJDUVVOd1F5eEhRVUZITEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUTJRc1UwRkJVeXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRWRCUVVjc1EwRkJhMElzUTBGRGNrUXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhMUVVGelFpeEZRVUZGTEVkQlFWRXNSVUZCUlN4RlFVRkZPMmREUVVNMVF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzJkRFFVTTVRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXp0dlEwRkRia0lzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZEWWl4blJFRkJaMFFzUTBGRGFrUXNRMEZCUXp0blEwRkRTaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owTkJRMnhDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRzlDUVVGdlFpeERRVUZETEVkQlFVYzdiME5CUTJoRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGWExFTkJRVU1zUTBGQlF6czdiME5CUXpsQ0xFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1owTkJRM0pDTEU5QlFVOHNTMEZCU3l4RFFVRkRPelJDUVVObUxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTTdlVUpCUTFBc1EwRkJRenQzUWtGRFJpeExRVUZMTEVOQlFVTXNVVUZCVVN4SFFVRkhMRk5CUVZNc1EwRkJRenQzUWtGRE0wSXNUVUZCVFR0dlFrRkRVaXhMUVVGTExHOUNRVUZ2UWl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03ZDBKQlF6ZENMRTFCUVUwc1EwRkJReXhIUVVGeFFpeEZRVUZGTEVOQlFVTTdkMEpCUXk5Q0xFTkJRVU1zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ6czBRa0ZETlVJc1UwRkJVenMwUWtGRFZDeEhRVUZITEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVWQlFVVTdaME5CUTI1RUxFMUJRVTBzVFVGQlRTeEhRVUZ4UWl4RlFVRkZMRU5CUVVNN1owTkJRM0JETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03WjBOQlEyeENMRTlCUVU4c1RVRkJUU3hEUVVGRE96UkNRVU5vUWl4RFFVRkRMRU5CUVVNN2VVSkJRMGdzUTBGQlF6dDNRa0ZEUml4TFFVRkxMRU5CUVVNc1VVRkJVU3hIUVVGSExFTkJRVU1zUTBGQlF6dDNRa0ZEYmtJc1RVRkJUVHR2UWtGRFVpeERRVUZETzI5Q1FVTkVPM2RDUVVORkxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU1zUTBGQlF6dG5Ra0ZEYWtRc1EwRkJRenRwUWtGRFJTeERRVUZETzJkQ1FVTktMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNSVUZCUlR0dlFrRkRMME1zU1VGQlNTeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJRenQzUWtGRGNrSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkRUaXhMUVVGTExFZEJRVWNzTWtOQlFUSkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUTI1R0xFTkJRVU03YjBKQlEwb3NTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdaMEpCUXpWQ0xFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEwd3NRMEZCUXp0UlFVTklMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF6dFpRVU5zUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hIUVVGSExFdEJRVXNzUTBGQlF5eEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRPMWxCUXpsQ0xFdEJRVXNzUTBGQlF5eFJRVUZSTEVkQlFVY3NTMEZCU3l4RFFVRkRMRkZCUVZFc1NVRkJTeXhGUVVGdlFpeERRVUZETzFsQlEzcEVMRXRCUVVzc1RVRkJUU3hEUVVGRExGZEJRVmNzUlVGQlJTeFRRVUZUTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNRMEZCUXp0blFrRkROMFFzVFVGQlRTeFJRVUZSTEVkQlFVY3NWMEZCY1VJc1EwRkJRenRuUWtGRGRrTXNUVUZCVFN4SFFVRkhMRWRCUVcxRExFVkJRVVVzUTBGQlF6dG5Ra0ZETDBNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEZOQlFUSkNMRU5CUVVNN1owSkJRek5ETEV0QlFVc3NRMEZCUXl4SlFVRjVReXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0blFrRkRNMFFzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzUTBGQlF6dHZRa0ZET1VJc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RlFVRnRRaXhEUVVGRE8yOUNRVU01UXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGQmJVSXNRMEZCUXl4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRE8zZENRVU5xUlN4SlFVRkpMRU5CUVVNN1owSkJRMVFzUTBGQlF6dFpRVU5JTEVOQlFVTTdVVUZEU0N4RFFVRkRPMUZCUlVRc1NVRkJTU3hKUVVGSkxFTkJRVU1zWVVGQllTeEZRVUZGTEVOQlFVTTdXVUZEZGtJc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRPMUZCUTI1RExFTkJRVU03WVVGQlRTeERRVUZETzFsQlEwNHNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkRUaXcyUkVGQk5rUXNhVUpCUVdsQ0xFVkJRVVVzUTBGRGFrWXNRMEZCUXp0WlFVTkdMRXRCUVVzc1EwRkJReXhMUVVGTExFZEJRVWNzYVVKQlFXbENMRU5CUVVNN1VVRkRiRU1zUTBGQlF6dFJRVVZFTEVsQlFVa3NTVUZCU1N4RFFVRkRMR05CUVdNN1dVRkJSU3hMUVVGTExFTkJRVU1zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNN1VVRkZNVVFzVDBGQlR5eExRVUZMTEVOQlFVTTdTVUZEWml4RFFVRkRPMGxCUlVRN096dFBRVWRITzBsQlEyZENMR05CUVdNc1EwRkJReXhUUVVGMVFqdFJRVU4yUkN4VFFVRlRMRXRCUVVzc1EwRkRXaXhGUVVGcFFpeEZRVU5xUWl4SlFVRnRRaXhGUVVOdVFpeEpRVUZ0UWp0WlFVVnVRaXhOUVVGTkxFMUJRVTBzUjBGQlpTeEZRVUZGTEZGQlFWRXNSVUZCUlN4RlFVRnRRaXhGUVVGRkxFTkJRVU03V1VGRE4wUXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOdVF5eFBRVUZQTEUxQlFVMHNRMEZCUXp0UlFVTm9RaXhEUVVGRE8xRkJSVVFzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4UlFVRlJMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFZEJRVWNzVTBGSmRrTXNRMEZCUXp0UlFVVkdMRWxCUVVrc1VVRkJVU3hMUVVGTExGRkJRVkVzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0WlFVTjBReXhKUVVGSkxFOUJRVThzUzBGQlN5eExRVUZMTEZGQlFWRTdaMEpCUXpOQ0xFMUJRVTBzU1VGQlNTeFZRVUZWTEVOQlFVTXNkME5CUVhkRExFTkJRVU1zUTBGQlF6dFpRVU5xUlN4SlFVRkpMRTlCUVU4c1ZVRkJWU3hMUVVGTExGRkJRVkU3WjBKQlEyaERMRTFCUVUwc1NVRkJTU3hWUVVGVkxFTkJRVU1zTUVOQlFUQkRMRU5CUVVNc1EwRkJRenRaUVVOdVJTeE5RVUZOTEV0QlFVc3NSMEZCUnl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03V1VGRGRFTXNUVUZCVFN4UlFVRlJMRWRCUVd0Q0xFVkJRVzFDTEVOQlFVTTdXVUZEY0VRc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVWQlFXMUNMRU5CUVVNN1dVRkRja01zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCYlVJc1EwRkJReXhsUVVGbExFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJRenRaUVVNelJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRnRRaXhEUVVGRExHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRE8xbEJRM2hGTEU5QlFVOHNSVUZCUlN4UlFVRlJMRVZCUVVVc1EwRkJRenRSUVVOMFFpeERRVUZETzFGQlJVUXNTVUZCU1N4UlFVRlJMRXRCUVVzc1VVRkJVU3hEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzFsQlEzQkRMRWxCUVVrc1QwRkJUeXhMUVVGTExFdEJRVXNzVVVGQlVUdG5Ra0ZETTBJc1RVRkJUU3hKUVVGSkxGVkJRVlVzUTBGQlF5eHpRMEZCYzBNc1EwRkJReXhEUVVGRE8xbEJReTlFTEVsQlFVa3NUMEZCVHl4VlFVRlZMRXRCUVVzc1VVRkJVVHRuUWtGRGFFTXNUVUZCVFN4SlFVRkpMRlZCUVZVc1EwRkJReXgzUTBGQmQwTXNRMEZCUXl4RFFVRkRPMWxCUTJwRkxFMUJRVTBzVVVGQlVTeEhRVUZyUWl4RlFVRnRRaXhEUVVGRE8xbEJRM0JFTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSenRuUWtGRGFFSXNRMEZCUXl4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUjBGQlJ5eFpRVUZaTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjN1lVRkRlRU1zUTBGQlF6dFpRVU51UWl4UFFVRlBMRVZCUVVVc1VVRkJVU3hGUVVGRkxFTkJRVU03VVVGRGRFSXNRMEZCUXp0UlFVVkVMRWxCUVVrc1VVRkJVU3hMUVVGTExGRkJRVkVzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0WlFVTnNReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eExRVUZsTEVOQlFVTTdXVUZETjBJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1ZVRkJWU3hEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETzJkQ1FVTjJSQ3hOUVVGTkxFbEJRVWtzVlVGQlZTeERRVUZETEdsRVFVRnBSQ3hEUVVGRExFTkJRVU03V1VGRE1VVXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTTdXVUZET1VJc1RVRkJUU3hUUVVGVExFZEJRV3RDTEVWQlFXMUNMRU5CUVVNN1dVRkRja1FzVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRVZCUVcxQ0xFTkJRVU03V1VGRGNrTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJiVUlzUTBGRGFFTXNhMEpCUVd0Q0xFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVTjJReXhIUVVGSExFZEJRVWNzUTBGQlF6dFpRVU5RTEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVcxQ0xFTkJRMmhETEd0Q1FVRnJRaXhEUVVGRExGRkJRVkVzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZEZUVNc1IwRkJSeXhIUVVGSExFTkJRVU03V1VGRFVpeFBRVUZQTEVWQlFVVXNVVUZCVVN4RlFVRkZMRk5CUVZNc1JVRkJSU3hEUVVGRE8xRkJRMnBETEVOQlFVTTdVVUZGUkN4SlFVRkpMRVZCUVVVc1IwRkJhMElzUlVGQmJVSXNRMEZCUXp0UlFVTTFReXhKUVVORkxFTkJRVU1zWVVGQllTeERRVUZETEVkQlFVY3NSVUZCUlN4aFFVRmhMRU5CUVVNc1JVRkJSU3hGUVVGRkxGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUTNwRUxGRkJRWGxDTEVOQlF6RkNMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRMUlzUTBGQlF6dFpRVU5FTEVWQlFVVXNRMEZCUXl4TFFVRmxMRU5CUVVNc1IwRkJSeXhGUVVGdFFpeERRVUZETzFsQlEzcERMRVZCUVVVc1EwRkJReXhMUVVGbExFTkJRVzFDTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdaMEpCUTJ4RkxGVkJRVlVzUTBGQlF6dFJRVU5tTEVOQlFVTTdZVUZCVFN4SlFVRkpMRkZCUVZFc1MwRkJTeXhSUVVGUkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEY2tNc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTMEZCY1VJc1EwRkJReXhEUVVGRExGRkJRWGxDTEVOQlFVTTdXVUZETVVVc1JVRkJSU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFXMUNMRU5CUVVNN1dVRkRNVVFzUlVGQlJTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCYlVJc1EwRkRjRVFzUzBGQmMwTXNRMEZCUXl4TFFVRkxMRU5CUXpsRExFZEJRVWNzVlVGQlZTeERRVUZETzFGQlEycENMRU5CUVVNN1lVRkJUU3hEUVVGRE8xbEJRMDRzVFVGQlRTeEhRVUZITEVkQlFWRXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhMUVVGeFFpeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRPMWxCUTNKRkxFMUJRVTBzUjBGQlJ5eEhRVUZSTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1ZVRkJNRUlzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXp0WlFVTXhSU3hGUVVGRkxFZEJRVWNzUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU03VVVGRE9VUXNRMEZCUXp0UlFVVkVMRTlCUVU4c1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTTdTVUZETVVJc1EwRkJRenRKUVVWRU96czdUMEZIUnp0SlFVTkxMRzFDUVVGdFFqdFJRVU42UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVms3V1VGQlJTeFBRVUZQTEZOQlFWTXNRMEZCUXp0UlFVTjZReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0WlFVTnlRaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8xbEJRek5ETEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXg1UWtGQmVVSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03V1VGRGFrVXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExIbENRVUY1UWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dFpRVU55UlN4SlFVRkpMRU5CUVVNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV6dG5Ra0ZEZUVJc1RVRkJUU3hKUVVGSkxGVkJRVlVzUTBGRGJFSXNORVJCUVRSRUxGTkJRVk1zUlVGQlJTeERRVU40UlN4RFFVRkRPMWxCUTBvc1QwRkJUeXhKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNN1owSkJReTlDTEVsQlFVa3NSVUZCUlN4TFFVRkxPMmRDUVVOWUxGTkJRVk03WjBKQlExUXNZVUZCWVN4RlFVRkZMRTlCUVU4c1EwRkJReXhWUVVGVk8yZENRVU5xUXl4bFFVRmxMRVZCUVVVc1UwRkJVeXhEUVVGRExGVkJRVlU3WVVGRGRFTXNRMEZCUXl4RFFVRkRPMUZCUTB3c1EwRkJRenRSUVVWRUxFbEJRVWtzVDBGQlR5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFdEJRVXNzVjBGQlZ5eEZRVUZGTEVOQlFVTTdXVUZEZEVRc1RVRkJUU3hUUVVGVExFZEJRMklzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhKUVVGSkxFbEJRVWs3WjBKQlEyaERMRU5CUVVNc1EwRkJReXhUUVVGVE8yZENRVU5ZTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1dVRkRla01zVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMSGxDUVVGNVFpeERRVUZETEZWQlFWVXNSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRaUVVOdVJTeEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRPMmRDUVVOVUxFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRPMmRDUVVNeFFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTjZReXhEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVVZFTEUxQlFVMHNZMEZCWXl4SFFVTnNRaXhQUVVGUExFbEJRVWtzUTBGQlF5eGhRVUZoTEV0QlFVc3NWMEZCVnp0WlFVTjZReXhQUVVGUExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1MwRkJTeXhYUVVGWE8xbEJRMnBFTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWenRaUVVOc1FpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjN1dVRkRiRUlzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhPMWxCUTJ4Q0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03VVVGRk1VSXNUVUZCVFN4blFrRkJaMElzUjBGQmNVUTdXVUZEZWtVN1owSkJRMFVzVDBGQlR6dG5Ra0ZEVUN4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFbEJRVWtzVTBGQlV5eERRVUZyUXp0aFFVTnVSVHRaUVVORUxFTkJRVU1zUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNN1dVRkRla0lzUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJRenRaUVVONlFpeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRE8xbEJRM3BDTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0VFFVTndReXhEUVVGRE8xRkJSVVlzUzBGQlN5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRkZCUVZFc1EwRkJReXhKUVVGSkxHZENRVUZuUWl4RlFVRkZMRU5CUVVNN1dVRkRhRVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJRenRaUVVNeFJDeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8xbEJRemRFTEVsQlFVa3NTVUZCU1R0blFrRkJSU3hQUVVGUExFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU51UkN4RFFVRkRPMUZCUlVRc1NVRkJTU3hqUVVGakxFVkJRVVVzUTBGQlF6dFpRVU51UWl4TlFVRk5MRWxCUVVrc1ZVRkJWU3hEUVVOc1FpdzBRMEZCTkVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGRGVrUXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkRiRUlzWVVGQllTeERRVU5tTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUTBRc1QwRkJUeXhUUVVGVExFTkJRVU03U1VGRGJrSXNRMEZCUXp0SlFVVkVPenRQUVVWSE8wbEJRMHNzZVVKQlFYbENMRU5CUXk5Q0xFbEJRV01zUlVGRFpDeFRRVUZyUWp0UlFVVnNRaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWazdXVUZCUlN4UFFVRlBMRk5CUVZNc1EwRkJRenRSUVVONlF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU51UlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTA3V1VGQlJTeFBRVUZQTEZOQlFWTXNRMEZCUXp0UlFVTndReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRkRUlzVFVGQlRTeFRRVUZUTEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZEY2tRc1RVRkJUU3hSUVVGUkxFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1UwRkJVeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM3BGTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFbEJRVWtzY1VKQlFYRkNMRU5CUVVNc1UwRkJVeXhGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEzSkZMRTFCUVUwc1QwRkJUeXhIUVVGM1FqdFpRVU51UXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUzBGQlN5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlR0VFFVTTFSQ3hEUVVGRE8xRkJRMFlzU1VGQlNTeEpRVUZKTEV0QlFVc3NWVUZCVlN4SlFVRkpMRWxCUVVrc1MwRkJTeXhUUVVGVE8xbEJRVVVzVDBGQlR5eERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRjRVVzVDBGQlR6dFpRVU5NTEVsQlFVazdXVUZEU2l4SlFVRkpPMWxCUTBvc1ZVRkJWU3hGUVVGRk8yZENRVU5XTEVsQlFVazdaMEpCUTBvc1NVRkJTU3hGUVVGRkxGRkJRVkU3WjBKQlEyUXNUMEZCVHp0aFFVTlNPMU5CUTBZc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdUMEZGUnp0SlFVTkxMRzlDUVVGdlFpeERRVU14UWl4SlFVRjVRanRSUVVWNlFpeFBRVUZQTzFsQlEwd3NVVUZCVVN4RlFVRkZMRVZCUVVVN1dVRkRXaXhUUVVGVExFVkJRVVVzU1VGQlNUdFpRVU5tTEdGQlFXRXNSVUZCUlN4SlFVRkpPMU5CUTI5RUxFTkJRVU03U1VGRE5VVXNRMEZCUXp0SlFVVkVPenRQUVVWSE8wbEJRMHNzWjBKQlFXZENPMUZCUTNSQ0xFOUJRVThzU1VGQlNTeERRVUZETEU5QlFUaENMRU5CUVVNN1NVRkROME1zUTBGQlF6dEpRVVZFT3p0UFFVVkhPMGxCUTBzc1MwRkJTeXhEUVVGRExHZENRVUZuUWl4RFFVTTFRaXhKUVVGNVFpeEZRVU42UWl4SFFVRXJRanRSUVVVdlFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEyaERMRTlCUVU4c1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlNTeEpRVUZKTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRNVU1zUTBGQlF6dFJRVU5FTEUxQlFVMHNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4RFFVRkRPMUZCUXpsRExFMUJRVTBzVVVGQlVTeEhRVUZITEVsQlFYZEVMRU5CUVVNN1VVRkRNVVVzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVOMlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1JVRkRlRUlzVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRVZCUTNoQ0xGRkJRVkVzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RlFVTXpRaXhIUVVGSExFTkJRMG9zUTBGQlF6dFJRVU5HTEU5QlFVOHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZKTEVsQlFVa3NSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVOeVJDeERRVUZETzBsQlJVUTdPMDlCUlVjN1NVRkRTeXhMUVVGTExFTkJRVU1zWVVGQllTeERRVU42UWl4SlFVRjVRaXhGUVVONlFpeEhRVUVyUWp0UlFVVXZRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEV0QlFVc3NTMEZCU3p0WlFVTnlRaXhOUVVGTkxFbEJRVWtzVlVGQlZTeERRVUZETEdsRFFVRnBReXhEUVVGRExFTkJRVU03VVVGRE1VUXNUVUZCVFN4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNN1VVRkRPVU1zVFVGQlRTeERRVUZETEU5QlFVOHNSVUZCUlN4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVWQlFVVXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJRM2hGTEUxQlFVMHNRMEZCUXl4WFFVRlhMRVZCUVVVc1lVRkJZU3hEUVVGRExFZEJRVWNzVFVGQlRTeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRPMWxCUTNKRUxHRkJRV0VzUTBGQlF5eEpRVUZKTEVOQlEyaENMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRMW9zVDBGQlR5eERRVUZETEVsQlFVa3NSVUZEV2l4UFFVRlBMRU5CUVVNc1QwRkJUeXhGUVVObUxFZEJRVWNzUTBGRFNqdFpRVU5FTEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUTJoQ0xGTkJRVk1zUTBGQlF5eEpRVUZKTEVWQlEyUXNVMEZCVXl4RFFVRkRMRWxCUVVrc1JVRkRaQ3hUUVVGVExFTkJRVU1zVDBGQlR5eEZRVU5xUWl4SFFVRkhMRU5CUTBvN1UwRkRSaXhEUVVGRExFTkJRVU03VVVGRFNDeE5RVUZOTEVkQlFVY3NSMEZCUnl4WFFVRlhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNNVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4aFFVRmhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOc1JDeEpRVUZKTEVOQlFVTXNTMEZCU3p0WlFVRkZMRTlCUVU4c1EwRkJhVUlzUTBGQlF6dFJRVU55UXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhIUVVGSExFdEJRVXNzUTBGQmFVSXNRMEZCUXp0SlFVTjJReXhEUVVGRE8wbEJSVVE3TzA5QlJVYzdTVUZEU3l4dFFrRkJiVUlzUTBGRGVrSXNTVUZCZVVJc1JVRkRla0lzVVVGQmMwSTdVVUZGZEVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zU1VGQlNTeExRVUZMTEV0QlFVczdXVUZEY2tJc1RVRkJUU3hKUVVGSkxGVkJRVlVzUTBGRGJFSXNNRVJCUVRCRUxFTkJRek5FTEVOQlFVTTdVVUZEU2l4TlFVRk5MRWxCUVVrc1IwRkJSeXhSUVVGUkxFTkJRVU1zU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTnFReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUYzUkN4RFFVRkRPMUZCUXpGRkxFMUJRVTBzU1VGQlNTeEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNN1VVRkRNMElzU1VGQlNTeFJRVUZSTEVOQlFVTXNZVUZCWVN4RlFVRkZMRU5CUVVNN1dVRkRNMElzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhEUVVGcFFpeERRVUZETzFGQlF6VkRMRU5CUVVNN1VVRkRSQ3hKUVVGSkxGRkJRVkVzUTBGQlF5eEpRVUZKTEV0QlFVc3NWVUZCVlN4SlFVRkpMRkZCUVZFc1EwRkJReXhKUVVGSkxFdEJRVXNzVTBGQlV5eEZRVUZGTEVOQlFVTTdXVUZEYUVVc1QwRkJUeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVdsQ0xFTkJRVU03VVVGRGFrVXNRMEZCUXp0UlFVTkVMRWxCUVVrc1NVRkJTU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFsQlEzQkNMRTlCUVU4c1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzU1VGQlNTeEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJhVUlzUTBGQlF6dFJRVU40UlN4RFFVRkRPMUZCUTBRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0WlFVTnFRaXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NTMEZCU3l4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRnBRaXhEUVVGRE8xRkJRMmhGTEVOQlFVTTdVVUZEUkN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NTVUZCU1N4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVsQlFVa3NRMEZCYVVJc1EwRkJRenRKUVVOb1JTeERRVUZETzBsQlJVUTdPMDlCUlVjN1NVRkRTeXhsUVVGbExFTkJRM0pDTEVsQlFYbENPMUZCUlhwQ0xFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l4TFFVRkxMRU5CUVVNN1NVRkROMElzUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0Y2JpQWdRV1JoY0hSbGNrWnNZV2R6TEZ4dUlDQkRiMjVrYVhScGIyNHNYRzRnSUVOdmJuUmxlSFFzWEc0Z0lFZHliM1Z3VDNCbGNtRjBiM0lzWEc0Z0lFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp5eGNiaUFnVDNCbGNtRjBiM0lzWEc0Z0lFOXlaR1Z5UkdseVpXTjBhVzl1TEZ4dUlDQlFaWEp6YVhOMFpXNWpaVXRsZVhNc1hHNGdJRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBMRnh1SUNCUWNtVndZWEpsWkZOMFlYUmxiV1Z1ZEV0bGVYTXNYRzRnSUZGMVpYSjVRMnhoZFhObExGeHVJQ0JSZFdWeWVVVnljbTl5TEZ4dUlDQlNaWEJ2YzJsMGIzSjVMRnh1SUNCVFpXeGxZM1JUWld4bFkzUnZjaXhjYmlBZ1UyVnhkV1Z1WTJVc1hHNGdJRk4wWVhSbGJXVnVkQ3hjYmlBZ1UzUmhkR1Z0Wlc1MFJYaGxZM1YwYjNJc1hHNGdJRlpwWlhkTGFXNWtMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUUxdlpHVnNJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBiM0l0ZG1Gc2FXUmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dSbUZpY21salEyeHBaVzUwUVdSaGNIUmxjaUI5SUdaeWIyMGdYQ0l1TDBaaFluSnBZME5zYVdWdWRFRmtZWEIwWlhKY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVOdmRXTm9SRUpMWlhsekxGeHVJQ0JEYjNWamFFUkNUM0JsY21GMGIzSXNYRzRnSUVOdmRXTm9SRUpIY205MWNFOXdaWEpoZEc5eUxGeHVJQ0JEYjNWamFFUkNVWFZsY25sTWFXMXBkQ3hjYmlBZ1RXRnVaMjlSZFdWeWVTeGNiaUFnVFdGdVoyOVBjR1Z5WVhSdmNpeGNiaUFnVFdGdVoyOVRaV3hsWTNSdmNpeGNiaUFnZEhKaGJuTnNZWFJsVDNCbGNtRjBiM0p6TEZ4dUlDQm5aVzVsY21GMFpVUmxjMmxuYmtSdlkwNWhiV1VzWEc0Z0lHZGxibVZ5WVhSbFZtbGxkMDVoYldVc1hHNGdJR1pwYm1SV2FXVjNUV1YwWVdSaGRHRXNYRzRnSUVOdmRXTm9SRUpXYVdWM1RXVjBZV1JoZEdFc1hHNGdJRlpwWlhkU1pYTndiMjV6WlN4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OW1iM0l0WTI5MVkyaGtZbHdpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqUTJ4cFpXNTBSbXhoWjNNZ2ZTQm1jbTl0SUZ3aUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dkRzlEWVcxbGJFTmhjMlVnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJ4dloyZHBibWRjSWp0Y2JtbHRjRzl5ZENCN0lFUkNTMlY1Y3l3Z1NXNTBaWEp1WVd4RmNuSnZjaUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdJdFpHVmpiM0poZEc5eWMxd2lPMXh1YVcxd2IzSjBJSHNnVFdWMFlXUmhkR0VnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJwYjI1Y0lqdGNibHh1ZEhsd1pTQkdZV0p5YVdOV2FXVjNSR1Z6WTNKcGNIUnZjaUE5SUh0Y2JpQWdaR1J2WXpvZ2MzUnlhVzVuTzF4dUlDQjJhV1YzT2lCemRISnBibWM3WEc0Z0lHOXdkR2x2Ym5NNklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNDdYRzU5TzF4dVhHNTBlWEJsSUVaaFluSnBZMEZuWjNKbFoyRjBaVWx1Wm04Z1BWeHVJQ0I4SUh0Y2JpQWdJQ0FnSUd0cGJtUTZJRlpwWlhkTGFXNWtPMXh1SUNBZ0lDQWdiV1YwWVRvZ1EyOTFZMmhFUWxacFpYZE5aWFJoWkdGMFlUdGNiaUFnSUNBZ0lHUmxjMk55YVhCMGIzSTZJRVpoWW5KcFkxWnBaWGRFWlhOamNtbHdkRzl5TzF4dUlDQWdJQ0FnWTI5MWJuUkVhWE4wYVc1amREODZJR0p2YjJ4bFlXNDdYRzRnSUNBZ2ZWeHVJQ0I4SUh0Y2JpQWdJQ0FnSUd0cGJtUTZJRndpWVhablhDSTdYRzRnSUNBZ0lDQmhkSFJ5YVdKMWRHVTZJSE4wY21sdVp6dGNiaUFnSUNBZ0lITjFiVVJsYzJOeWFYQjBiM0k2SUVaaFluSnBZMVpwWlhkRVpYTmpjbWx3ZEc5eU8xeHVJQ0FnSUNBZ1kyOTFiblJFWlhOamNtbHdkRzl5T2lCR1lXSnlhV05XYVdWM1JHVnpZM0pwY0hSdmNqdGNiaUFnSUNCOU8xeHVYRzVqYjI1emRDQmxjMk5oY0dWU1pXZEZlSEFnUFNBb2RtRnNkV1U2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUE5UGx4dUlDQjJZV3gxWlM1eVpYQnNZV05sS0M5Ykxpb3JQMTRrZTMwb0tYeGJYRnhkWEZ4Y1hGMHZaeXdnWENKY1hGeGNKQ1pjSWlrN1hHNWNibVoxYm1OMGFXOXVJRzVsZUhSTVpYaHBZMjluY21Gd2FHbGpVM1J5YVc1bktIWmhiSFZsT2lCemRISnBibWNwT2lCemRISnBibWNnZTF4dUlDQnBaaUFvSVhaaGJIVmxLU0J5WlhSMWNtNGdYQ0pjWEhVd01EQXdYQ0k3WEc0Z0lHTnZibk4wSUdOb1lYSnpJRDBnUVhKeVlYa3Vabkp2YlNoMllXeDFaU2s3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0JqYUdGeWN5NXNaVzVuZEdnZ0xTQXhPeUJwSUQ0OUlEQTdJR2tnTFQwZ01Ta2dlMXh1SUNBZ0lHTnZibk4wSUdOdlpHVWdQU0JqYUdGeWMxdHBYUzVqYjJSbFVHOXBiblJCZENnd0tUdGNiaUFnSUNCcFppQW9ZMjlrWlNBOVBUMGdkVzVrWldacGJtVmtLU0JqYjI1MGFXNTFaVHRjYmlBZ0lDQnBaaUFvWTI5a1pTQThJREI0TVRCbVptWm1LU0I3WEc0Z0lDQWdJQ0JqYUdGeWMxdHBYU0E5SUZOMGNtbHVaeTVtY205dFEyOWtaVkJ2YVc1MEtHTnZaR1VnS3lBeEtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCamFHRnljeTV6YkdsalpTZ3dMQ0JwSUNzZ01Ta3VhbTlwYmloY0lsd2lLVHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlHQWtlM1poYkhWbGZWeGNkVEF3TURCZ08xeHVmVnh1WEc1bWRXNWpkR2x2YmlCd2NtVm1hWGhTWVc1blpTaHdjbVZtYVhnNklITjBjbWx1WnlrZ2UxeHVJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lITjBZWEowT2lCd2NtVm1hWGdzWEc0Z0lDQWdaVzVrT2lCdVpYaDBUR1Y0YVdOdlozSmhjR2hwWTFOMGNtbHVaeWh3Y21WbWFYZ3BMRnh1SUNCOU8xeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdSbUZpY21salEyeHBaVzUwVTNSaGRHVnRaVzUwUEUwZ1pYaDBaVzVrY3lCTmIyUmxiQ3dnVWo0Z1pYaDBaVzVrY3lCVGRHRjBaVzFsYm5ROFhHNGdJRTBzWEc0Z0lFWmhZbkpwWTBOc2FXVnVkRUZrWVhCMFpYSXNYRzRnSUZJc1hHNGdJRTFoYm1kdlVYVmxjbmxjYmo0Z2UxeHVJQ0JqYjI1emRISjFZM1J2Y2loaFpHRndkR1Z5T2lCR1lXSnlhV05EYkdsbGJuUkJaR0Z3ZEdWeUxDQnZkbVZ5Y21sa1pYTS9PaUJRWVhKMGFXRnNQRUZrWVhCMFpYSkdiR0ZuY3o0cElIdGNiaUFnSUNCemRYQmxjaWhoWkdGd2RHVnlMQ0J2ZG1WeWNtbGtaWE1wTzF4dUlDQjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lHOTJaWEp5YVdSbElITnhkV0Z6YUNoY2JpQWdJQ0JqZEhnNklFTnZiblJsZUhROFJtRmljbWxqUTJ4cFpXNTBSbXhoWjNNK1hHNGdJQ2s2SUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUEdGdWVUNGdmQ0IxYm1SbFptbHVaV1FnZTF4dUlDQWdJR052Ym5OMElITnhkV0Z6YUdWa09pQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWREeE5QaUI4SUhWdVpHVm1hVzVsWkNBOUlITjFjR1Z5TG5OeGRXRnphQ2hjYmlBZ0lDQWdJR04wZUNCaGN5QnVaWFpsY2x4dUlDQWdJQ2s3WEc0Z0lDQWdhV1lnS0NGemNYVmhjMmhsWkNrZ2NtVjBkWEp1SUhOeGRXRnphR1ZrTzF4dVhHNGdJQ0FnWTI5dWMzUWdleUJ0WlhSb2IyUXNJSEJoY21GdGN5d2dZWEpuY3lCOUlEMGdjM0YxWVhOb1pXUTdYRzRnSUNBZ1kyOXVjM1FnZXlCa2FYSmxZM1JwYjI0c0lHeHBiV2wwSUgwZ1BTQndZWEpoYlhNN1hHNGdJQ0FnYzNkcGRHTm9JQ2h0WlhSb2IyUXBJSHRjYmlBZ0lDQWdJR05oYzJVZ1VISmxjR0Z5WldSVGRHRjBaVzFsYm5STFpYbHpMa1pKVGtRNlhHNGdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnWTJGelpTQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRFdGxlWE11VUVGSFJUcGNiaUFnSUNBZ0lDQWdZWEpuY3k1d2RYTm9LR1JwY21WamRHbHZiaXdnYkdsdGFYUXBPMXh1SUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lHTmhjMlVnVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxrWkpUa1JmUWxrNlhHNGdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnWTJGelpTQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRFdGxlWE11VEVsVFZGOUNXVHBjYmlBZ0lDQWdJQ0FnWVhKbmN5NXdkWE5vS0dScGNtVmpkR2x2YmlrN1hHNGdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnWTJGelpTQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRFdGxlWE11VUVGSFJWOUNXVHBjYmlBZ0lDQWdJQ0FnWVhKbmN5NXdkWE5vS0dScGNtVmpkR2x2Yml3Z2JHbHRhWFFwTzF4dUlDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJR05oYzJVZ1VISmxjR0Z5WldSVGRHRjBaVzFsYm5STFpYbHpMa1pKVGtSZlQwNUZYMEpaT2x4dUlDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJR1JsWm1GMWJIUTZYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHQlZibk4xY0hCdmNuUmxaQ0J0WlhSb2IyUWdKSHR0WlhSb2IyUjlZQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlITnhkV0Z6YUdWa08xeHVJQ0I5WEc1Y2JpQWdjSEp2ZEdWamRHVmtJRzkyWlhKeWFXUmxJR0Z6ZVc1aklHVjRaV04xZEdWUWNtVndZWEpsWkNoY2JpQWdJQ0F1TGk1aGNtZDZPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4UTI5dWRHVjRkRHhHWVdKeWFXTkRiR2xsYm5SR2JHRm5jejQrWEc0Z0lDazZJRkJ5YjIxcGMyVThVajRnZTF4dUlDQWdJR052Ym5OMElISmxjRzhnUFNCU1pYQnZjMmwwYjNKNUxtWnZjazF2WkdWc0tIUm9hWE11Wm5KdmJWTmxiR1ZqZEc5eUxDQjBhR2x6TG1Ga1lYQjBaWEl1WVd4cFlYTXBPMXh1SUNBZ0lHTnZibk4wSUhzZ2JXVjBhRzlrTENCaGNtZHpJSDBnUFNCMGFHbHpMbkJ5WlhCaGNtVmtJR0Z6SUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUEdGdWVUNDdYRzRnSUNBZ2NtVjBkWEp1SUhKbGNHOHVjM1JoZEdWdFpXNTBLRzFsZEdodlpDd2dMaTR1WVhKbmN5d2dMaTR1WVhKbmVpazdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QndjbVZ3WVhKbEtGeHVJQ0FnSUdOMGVEODZJRU52Ym5SbGVIUThSbUZpY21salEyeHBaVzUwUm14aFozTStYRzRnSUNrNklGQnliMjFwYzJVOFUzUmhkR1Z0Wlc1MFJYaGxZM1YwYjNJOFRTd2dVajQrSUh0Y2JpQWdJQ0JqZEhnZ1BWeHVJQ0FnSUNBZ1kzUjRJSHg4WEc0Z0lDQWdJQ0FvWVhkaGFYUWdkR2hwY3k1aFpHRndkR1Z5TG1OdmJuUmxlSFFvWEc0Z0lDQWdJQ0FnSUZCbGNuTnBjM1JsYm1ObFMyVjVjeTVSVlVWU1dTeGNiaUFnSUNBZ0lDQWdkR2hwY3k1dmRtVnljbWxrWlhNZ2ZId2dlMzBzWEc0Z0lDQWdJQ0FnSUhSb2FYTXVabkp2YlZObGJHVmpkRzl5WEc0Z0lDQWdJQ0FwS1R0Y2JseHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lIUm9hWE11YVhOVGFXMXdiR1ZSZFdWeWVTZ3BJQ1ltWEc0Z0lDQWdJQ0FvWTNSNElHRnpJRU52Ym5SbGVIUThSbUZpY21salEyeHBaVzUwUm14aFozTStLUzVuWlhRb1hDSm1iM0pqWlZCeVpYQmhjbVZUYVcxd2JHVlJkV1Z5YVdWelhDSXBYRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCemNYVmhjMmhsWkNBOUlIUm9hWE11YzNGMVlYTm9LR04wZUNCaGN5QkRiMjUwWlhoMFBFWmhZbkpwWTBOc2FXVnVkRVpzWVdkelBpazdYRzRnSUNBZ0lDQnBaaUFvYzNGMVlYTm9aV1FwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV3Y21Wd1lYSmxaQ0E5SUhOeGRXRnphR1ZrTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdZWEpuY3pvZ0tITjBjbWx1WnlCOElHNTFiV0psY2lsYlhTQTlJRnRkTzF4dUlDQWdJR052Ym5OMElIQmhjbUZ0Y3pvZ1lXNTVJRDBnZTMwZ1lYTWdZVzU1TzF4dVhHNGdJQ0FnWTI5dWMzUWdjSEpsY0dGeVpXUTZJRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBQR0Z1ZVQ0Z1BTQjdYRzRnSUNBZ0lDQmpiR0Z6Y3pvZ2RHaHBjeTVtY205dFUyVnNaV04wYjNJc1hHNGdJQ0FnSUNCaGNtZHpMRnh1SUNBZ0lDQWdjR0Z5WVcxekxGeHVJQ0FnSUgwZ1lYTWdZVzU1TzF4dVhHNGdJQ0FnWTI5dWMzUWdiV1YwYUc5a09pQnpkSEpwYm1kYlhTQTlJRnRSZFdWeWVVTnNZWFZ6WlM1R1NVNUVYMEpaWFR0Y2JseHVJQ0FnSUdsbUlDaDBhR2x6TG5kb1pYSmxRMjl1WkdsMGFXOXVLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQndZWEp6WldRZ1BTQjBhR2x6TG5CeVpYQmhjbVZEYjI1a2FYUnBiMjRvZEdocGN5NTNhR1Z5WlVOdmJtUnBkR2x2Yml3Z1kzUjRJR0Z6SUc1bGRtVnlLVHRjYmlBZ0lDQWdJRzFsZEdodlpDNXdkWE5vS0hCaGNuTmxaQzV0WlhSb2IyUXBPMXh1SUNBZ0lDQWdhV1lnS0hCaGNuTmxaQzVoY21keklDWW1JSEJoY25ObFpDNWhjbWR6TG14bGJtZDBhQ2xjYmlBZ0lDQWdJQ0FnWVhKbmN5NXdkWE5vS0M0dUxpaHdZWEp6WldRdVlYSm5jeUJoY3lBb2MzUnlhVzVuSUh3Z2JuVnRZbVZ5S1Z0ZEtTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaDBhR2x6TG5ObGJHVmpkRk5sYkdWamRHOXlLVnh1SUNBZ0lDQWdiV1YwYUc5a0xuQjFjMmdvWEc0Z0lDQWdJQ0FnSUZGMVpYSjVRMnhoZFhObExsTkZURVZEVkN4Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6Wld4bFkzUlRaV3hsWTNSdmNpNXFiMmx1S0dBZ0pIdFJkV1Z5ZVVOc1lYVnpaUzVCVGtRdWRHOU1iM2RsY2tOaGMyVW9LWDBnWUNsY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnYVdZZ0tIUm9hWE11YjNKa1pYSkNlVk5sYkdWamRHOXljejh1YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0J0WlhSb2IyUXVjSFZ6YUNoUmRXVnllVU5zWVhWelpTNVBVa1JGVWw5Q1dTd2dkR2hwY3k1dmNtUmxja0o1VTJWc1pXTjBiM0p6V3pCZFd6QmRJR0Z6SUhOMGNtbHVaeWs3WEc0Z0lDQWdJQ0JoY21kekxuQjFjMmdvZEdocGN5NXZjbVJsY2tKNVUyVnNaV04wYjNKeld6QmRXekZkSUdGeklHRnVlU2s3WEc0Z0lDQWdmVnh1SUNBZ0lIQnlaWEJoY21Wa0xtMWxkR2h2WkNBOUlIUnZRMkZ0Wld4RFlYTmxLRzFsZEdodlpDNXFiMmx1S0Z3aUlGd2lLU2s3WEc0Z0lDQWdjSEpsY0dGeVpXUXVjR0Z5WVcxeklEMGdjR0Z5WVcxek8xeHVJQ0FnSUhSb2FYTXVjSEpsY0dGeVpXUWdQU0J3Y21Wd1lYSmxaRHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVSEp2WTJWemMyVnpJR0VnY21WamIzSmtJR1p5YjIwZ1EyOTFZMmhFUWk5R1lXSnlhV05jYmlBZ0lDb2dRSE4xYlcxaGNua2dSWGgwY21GamRITWdkR2hsSUVsRUlHWnliMjBnWVNCRGIzVmphRVJDSUdSdlkzVnRaVzUwSUdGdVpDQnlaWFpsY25SeklHbDBJSFJ2SUdFZ2JXOWtaV3dnYVc1emRHRnVZMlZjYmlBZ0lDb3ZYRzRnSUhCeWIzUmxZM1JsWkNCdmRtVnljbWxrWlNCd2NtOWpaWE56VW1WamIzSmtLRnh1SUNBZ0lISmxZMjl5WkRvZ1lXNTVMRnh1SUNBZ0lHTjBlRG9nUTI5dWRHVjRkRHhHWVdKeWFXTkRiR2xsYm5SR2JHRm5jejVjYmlBZ0tUb2dUU0I3WEc0Z0lDQWdZMjl1YzNRZ2NHdEJkSFJ5SUQwZ1RXOWtaV3d1Y0dzb2RHaHBjeTVtY205dFUyVnNaV04wYjNJcE8xeHVJQ0FnSUdOdmJuTjBJSFI1Y0dVZ1BTQk5aWFJoWkdGMFlTNW5aWFFvWEc0Z0lDQWdJQ0IwYUdsekxtWnliMjFUWld4bFkzUnZjaXhjYmlBZ0lDQWdJRTFsZEdGa1lYUmhMbXRsZVNoRVFrdGxlWE11U1VRc0lIQnJRWFIwY2lCaGN5QnpkSEpwYm1jcFhHNGdJQ0FnS1Q4dWRIbHdaVHRjYmx4dUlDQWdJR2xtSUNoeVpXTnZjbVJiUTI5MVkyaEVRa3RsZVhNdVNVUmRLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmJMQ0F1TGk1clpYbEJjbWR6WFNBOUlISmxZMjl5WkZ0RGIzVmphRVJDUzJWNWN5NUpSRjB1YzNCc2FYUW9RMjkxWTJoRVFrdGxlWE11VTBWUVFWSkJWRTlTS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR2xrSUQwZ2EyVjVRWEpuY3k1cWIybHVLRndpWDF3aUtUdGNiaUFnSUNBZ0lISmxZMjl5WkZ0d2EwRjBkSEpkSUQwZ1UyVnhkV1Z1WTJVdWNHRnljMlZXWVd4MVpTaDBlWEJsSUdGeklHRnVlU3dnYVdRcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJ6ZFhCbGNpNXdjbTlqWlhOelVtVmpiM0prS0hKbFkyOXlaQ3dnWTNSNEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1JYaGxZM1YwWlhNZ1lTQnlZWGNnVFdGdVoyOGdjWFZsY25sY2JpQWdJQ29nUUhOMWJXMWhjbmtnVTJWdVpITWdZU0J5WVhjZ1RXRnVaMjhnY1hWbGNua2dkRzhnUm1GaWNtbGpJR0Z1WkNCd2NtOWpaWE56WlhNZ2RHaGxJSEpsYzNWc2RITmNiaUFnSUNvdlhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklISmhkenhTUGloeVlYZEpibkIxZERvZ1RXRnVaMjlSZFdWeWVTd2dMaTR1WVhKbmN6b2dZVzU1VzEwcE9pQlFjbTl0YVhObFBGSStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ0I5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2RHaHBjeTV5WVhjcE8xeHVJQ0FnSUdOdmJuTjBJR0ZuWjNKbFoyRjBiM0lnUFNBb2NtRjNTVzV3ZFhRZ1lYTWdZVzU1S1Q4dVlXZG5jbVZuWVhSbFNXNW1ienRjYmlBZ0lDQnBaaUFvS0hKaGQwbHVjSFYwSUdGeklHRnVlU2svTG1GblozSmxaMkYwWlNBbUppQmhaMmR5WldkaGRHOXlLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1bGVHVmpkWFJsUVdkbmNtVm5ZWFJsUEZJK0tHRm5aM0psWjJGMGIzSXNJR04wZUNrN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElISmxjM1ZzZEhNNklHRnVlVnRkSUQwZ1lYZGhhWFFnZEdocGN5NWhaR0Z3ZEdWeUxuSmhkeWhjYmlBZ0lDQWdJSEpoZDBsdWNIVjBMRnh1SUNBZ0lDQWdkSEoxWlN4Y2JpQWdJQ0FnSUhSb2FYTXVabkp2YlZObGJHVmpkRzl5TEZ4dUlDQWdJQ0FnWTNSNFhHNGdJQ0FnS1R0Y2JseHVJQ0FnSUdsbUlDZ2hkR2hwY3k1elpXeGxZM1JUWld4bFkzUnZjaWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjSEp2WTJWemMyVmtJRDBnY21WemRXeDBjeTV0WVhBb0tISXBJRDArSUhSb2FYTXVjSEp2WTJWemMxSmxZMjl5WkNoeUxDQmpkSGdwS1R0Y2JpQWdJQ0FnSUdsbUlDZ2hZM1I0TG1kbGRFOXlWVzVrWldacGJtVmtLRndpWVdaMFpYSlJkV1Z5ZVVoaGJtUnNaWEp6WENJcEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQndjbTlqWlhOelpXUWdZWE1nZFc1cmJtOTNiaUJoY3lCU08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUNoaGQyRnBkQ0IwYUdsekxtRndjR3g1UVdaMFpYSklZVzVrYkdWeWMxUnZVbVZ6ZFd4MEtIQnliMk5sYzNObFpDd2dZM1I0S1NrZ1lYTWdVanRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkSE1nWVhNZ1VqdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1FuVnBiR1J6SUdFZ1EyOTFZMmhFUWlCTllXNW5ieUJ4ZFdWeWVTQm1jbTl0SUhSb1pTQnpkR0YwWlcxbGJuUmNiaUFnSUNvZ1FITjFiVzFoY25rZ1EyOXVkbVZ5ZEhNZ2RHaGxJSE4wWVhSbGJXVnVkQ2R6SUdOdmJtUnBkR2x2Ym5Nc0lITmxiR1ZqZEc5eWN5d2dZVzVrSUc5d2RHbHZibk1nYVc1MGJ5QmhJRU52ZFdOb1JFSWdUV0Z1WjI4Z2NYVmxjbmxjYmlBZ0lDb3ZYRzRnSUhCeWIzUmxZM1JsWkNCdmRtVnljbWxrWlNCaWRXbHNaQ2dwT2lCTllXNW5iMUYxWlhKNUlIdGNiaUFnSUNCamIyNXpkQ0JzYjJjZ1BTQjBhR2x6TG14dlp5NW1iM0lvZEdocGN5NWlkV2xzWkNrN1hHNGdJQ0FnWTI5dWMzUWdZV2RuY21WbllYUmxVWFZsY25rZ1BTQjBhR2x6TG1KMWFXeGtRV2RuY21WbllYUmxVWFZsY25rb0tUdGNiaUFnSUNCcFppQW9ZV2RuY21WbllYUmxVWFZsY25rcElISmxkSFZ5YmlCaFoyZHlaV2RoZEdWUmRXVnllVHRjYmlBZ0lDQmpiMjV6ZENCelpXeGxZM1J2Y25NNklFMWhibWR2VTJWc1pXTjBiM0lnUFNCN2ZUdGNiaUFnSUNCelpXeGxZM1J2Y25OYlEyOTFZMmhFUWt0bGVYTXVWRUZDVEVWZElEMGdlMzA3WEc0Z0lDQWdjMlZzWldOMGIzSnpXME52ZFdOb1JFSkxaWGx6TGxSQlFreEZYU0E5SUUxdlpHVnNMblJoWW14bFRtRnRaU2gwYUdsekxtWnliMjFUWld4bFkzUnZjaWs3WEc0Z0lDQWdZMjl1YzNRZ2NYVmxjbms2SUUxaGJtZHZVWFZsY25rZ1BTQjdJSE5sYkdWamRHOXlPaUJ6Wld4bFkzUnZjbk1nZlR0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV6Wld4bFkzUlRaV3hsWTNSdmNpa2djWFZsY25rdVptbGxiR1J6SUQwZ2RHaHBjeTV6Wld4bFkzUlRaV3hsWTNSdmNpQmhjeUJ6ZEhKcGJtZGJYVHRjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbmRvWlhKbFEyOXVaR2wwYVc5dUtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCamIyNWthWFJwYjI0NklFMWhibWR2VTJWc1pXTjBiM0lnUFNCMGFHbHpMbkJoY25ObFEyOXVaR2wwYVc5dUtGeHVJQ0FnSUNBZ0lDQkRiMjVrYVhScGIyNHVZVzVrS0Z4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11ZDJobGNtVkRiMjVrYVhScGIyNHNYRzRnSUNBZ0lDQWdJQ0FnUTI5dVpHbDBhVzl1TG1GMGRISnBZblYwWlR4TlBpaERiM1ZqYUVSQ1MyVjVjeTVVUVVKTVJTQmhjeUJyWlhsdlppQk5LUzVsY1NoY2JpQWdJQ0FnSUNBZ0lDQWdJSEYxWlhKNUxuTmxiR1ZqZEc5eVcwTnZkV05vUkVKTFpYbHpMbFJCUWt4RlhWeHVJQ0FnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnS1M1elpXeGxZM1J2Y2p0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5sYkdWamRHOXlTMlY1Y3lBOUlFOWlhbVZqZEM1clpYbHpLR052Ym1ScGRHbHZiaWtnWVhNZ1RXRnVaMjlQY0dWeVlYUnZjbHRkTzF4dUlDQWdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ0lDQnpaV3hsWTNSdmNrdGxlWE11YkdWdVozUm9JRDA5UFNBeElDWW1YRzRnSUNBZ0lDQWdJRTlpYW1WamRDNTJZV3gxWlhNb1EyOTFZMmhFUWtkeWIzVndUM0JsY21GMGIzSXBMbWx1WkdWNFQyWW9jMlZzWldOMGIzSkxaWGx6V3pCZEtTQWhQVDBnTFRGY2JpQWdJQ0FnSUNsY2JpQWdJQ0FnSUNBZ2MzZHBkR05vSUNoelpXeGxZM1J2Y2t0bGVYTmJNRjBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUVOdmRXTm9SRUpIY205MWNFOXdaWEpoZEc5eUxrRk9SRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibVJwZEdsdmJsdERiM1ZqYUVSQ1IzSnZkWEJQY0dWeVlYUnZjaTVCVGtSZElEMGdXMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXVMaTVQWW1wbFkzUXVkbUZzZFdWektGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibVJwZEdsdmJsdERiM1ZqYUVSQ1IzSnZkWEJQY0dWeVlYUnZjaTVCVGtSZElHRnpJRTFoYm1kdlUyVnNaV04wYjNKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnS1M1eVpXUjFZMlVvS0dGalkzVnRPaUJOWVc1bmIxTmxiR1ZqZEc5eVcxMHNJSFpoYkRvZ1lXNTVLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYTJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0haaGJDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0d0bGVYTXViR1Z1WjNSb0lDRTlQU0F4S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmNJbFJ2YnlCdFlXNTVJR3RsZVhNZ2FXNGdjWFZsY25rZ2MyVnNaV04wYjNJdUlITm9iM1ZzWkNCaVpTQnZibVZjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCcklEMGdhMlY1YzFzd1hUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYXlBOVBUMGdRMjkxWTJoRVFrZHliM1Z3VDNCbGNtRjBiM0l1UVU1RUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZV05qZFcwdWNIVnphQ2d1TGk0b2RtRnNXMnRkSUdGeklHRnVlVnRkS1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0JoWTJOMWJTNXdkWE5vS0haaGJDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHRmpZM1Z0TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5TENCYlhTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY1hWbGNua3VjMlZzWldOMGIzSWdQU0JqYjI1a2FYUnBiMjQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUVOdmRXTm9SRUpIY205MWNFOXdaWEpoZEc5eUxrOVNPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCek9pQlNaV052Y21ROFlXNTVMQ0JoYm5rK0lEMGdlMzA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpXME52ZFdOb1JFSkhjbTkxY0U5d1pYSmhkRzl5TGtGT1JGMGdQU0JiWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym1ScGRHbHZiaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdMaTR1VDJKcVpXTjBMbVZ1ZEhKcFpYTW9jWFZsY25rdWMyVnNaV04wYjNJcExtMWhjQ2dvVzJ0bGVTd2dkbUZzWFNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElISmxjM1ZzZERvZ1VtVmpiM0prUEdGdWVTd2dZVzU1UGlBOUlIdDlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzNWc2RGdHJaWGxkSUQwZ2RtRnNPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEYxWlhKNUxuTmxiR1ZqZEc5eUlEMGdjenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0Z3aVZHaHBjeUJ6YUc5MWJHUWdZbVVnYVcxd2IzTnphV0pzWlZ3aUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lFOWlhbVZqZEM1bGJuUnlhV1Z6S0dOdmJtUnBkR2x2YmlrdVptOXlSV0ZqYUNnb1cydGxlU3dnZG1Gc1hTa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2h4ZFdWeWVTNXpaV3hsWTNSdmNsdHJaWGxkS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdiRzluTG5kaGNtNG9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHQkJJQ1I3YTJWNWZTQnhkV1Z5ZVNCd1lYSmhiU0JwY3lCaFltOTFkQ0IwYnlCaVpTQnZkbVZ5Y21sa1pHVnVPaUFrZTNGMVpYSjVMbk5sYkdWamRHOXlXMnRsZVYxOUlHSjVJQ1I3ZG1Gc2ZXQmNiaUFnSUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdjWFZsY25rdWMyVnNaV04wYjNKYmEyVjVYU0E5SUhaaGJEdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0hSb2FYTXViM0prWlhKQ2VWTmxiR1ZqZEc5eWN6OHViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQnhkV1Z5ZVM1emIzSjBJRDBnY1hWbGNua3VjMjl5ZENCOGZDQmJYVHRjYmlBZ0lDQWdJSEYxWlhKNUxuTmxiR1ZqZEc5eUlEMGdjWFZsY25rdWMyVnNaV04wYjNJZ2ZId2dLSHQ5SUdGeklFMWhibWR2VTJWc1pXTjBiM0lwTzF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCYmMyVnNaV04wYjNKTFpYa3NJR1JwY21WamRHbHZibDBnYjJZZ2RHaHBjeTV2Y21SbGNrSjVVMlZzWldOMGIzSnpLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5sYkdWamRHOXlJRDBnYzJWc1pXTjBiM0pMWlhrZ1lYTWdjM1J5YVc1bk8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeVpXTTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lFOXlaR1Z5UkdseVpXTjBhVzl1UGlBOUlIdDlPMXh1SUNBZ0lDQWdJQ0J5WldOYmMyVnNaV04wYjNKZElEMGdaR2x5WldOMGFXOXVJR0Z6SUU5eVpHVnlSR2x5WldOMGFXOXVPMXh1SUNBZ0lDQWdJQ0FvY1hWbGNua3VjMjl5ZENCaGN5QlNaV052Y21ROGMzUnlhVzVuTENCUGNtUmxja1JwY21WamRHbHZiajViWFNrdWNIVnphQ2h5WldNcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvSVhGMVpYSjVMbk5sYkdWamRHOXlXM05sYkdWamRHOXlYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lIRjFaWEo1TG5ObGJHVmpkRzl5VzNObGJHVmpkRzl5WFNBOUlIdDlJR0Z6SUUxaGJtZHZVMlZzWldOMGIzSTdYRzRnSUNBZ0lDQWdJQ0FnS0hGMVpYSjVMbk5sYkdWamRHOXlXM05sYkdWamRHOXlYU0JoY3lCTllXNW5iMU5sYkdWamRHOXlLVnREYjNWamFFUkNUM0JsY21GMGIzSXVRa2xIUjBWU1hTQTlYRzRnSUNBZ0lDQWdJQ0FnSUNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0hSb2FYTXViR2x0YVhSVFpXeGxZM1J2Y2lrZ2UxeHVJQ0FnSUNBZ2NYVmxjbmt1YkdsdGFYUWdQU0IwYUdsekxteHBiV2wwVTJWc1pXTjBiM0k3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHeHZaeTUzWVhKdUtGeHVJQ0FnSUNBZ0lDQmdUbThnYkdsdGFYUWdjMlZzWldOMGIzSWdaR1ZtYVc1bFpDNGdWWE5wYm1jZ1pHVm1ZWFZzZENCamIzVmphR1JpSUd4cGJXbDBJRzltSUNSN1EyOTFZMmhFUWxGMVpYSjVUR2x0YVhSOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIRjFaWEo1TG14cGJXbDBJRDBnUTI5MVkyaEVRbEYxWlhKNVRHbHRhWFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0hSb2FYTXViMlptYzJWMFUyVnNaV04wYjNJcElIRjFaWEo1TG5OcmFYQWdQU0IwYUdsekxtOW1abk5sZEZObGJHVmpkRzl5TzF4dVhHNGdJQ0FnY21WMGRYSnVJSEYxWlhKNU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCUVlYSnpaWE1nWVNCamIyNWthWFJwYjI0Z2FXNTBieUJoSUVOdmRXTm9SRUlnVFdGdVoyOGdjWFZsY25rZ2MyVnNaV04wYjNKY2JpQWdJQ29nUUhOMWJXMWhjbmtnUTI5dWRtVnlkSE1nWVNCRGIyNWthWFJwYjI0Z2IySnFaV04wSUdsdWRHOGdZU0JEYjNWamFFUkNJRTFoYm1kdklIRjFaWEo1SUhObGJHVmpkRzl5SUhOMGNuVmpkSFZ5WlZ4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lHOTJaWEp5YVdSbElIQmhjbk5sUTI5dVpHbDBhVzl1S0dOdmJtUnBkR2x2YmpvZ1EyOXVaR2wwYVc5dVBFMCtLVG9nVFdGdVoyOVJkV1Z5ZVNCN1hHNGdJQ0FnWm5WdVkzUnBiMjRnYldWeVoyVW9YRzRnSUNBZ0lDQnZjRG9nVFdGdVoyOVBjR1Z5WVhSdmNpeGNiaUFnSUNBZ0lHOWlhakU2SUUxaGJtZHZVMlZzWldOMGIzSXNYRzRnSUNBZ0lDQnZZbW95T2lCTllXNW5iMU5sYkdWamRHOXlYRzRnSUNBZ0tUb2dUV0Z1WjI5UmRXVnllU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnlaWE4xYkhRNklFMWhibWR2VVhWbGNua2dQU0I3SUhObGJHVmpkRzl5T2lCN2ZTQmhjeUJOWVc1bmIxTmxiR1ZqZEc5eUlIMDdYRzRnSUNBZ0lDQnlaWE4xYkhRdWMyVnNaV04wYjNKYmIzQmRJRDBnVzI5aWFqRXNJRzlpYWpKZE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCN0lHRjBkSEl4TENCdmNHVnlZWFJ2Y2l3Z1kyOXRjR0Z5YVhOdmJpQjlJRDBnWTI5dVpHbDBhVzl1SUdGeklIVnVhMjV2ZDI0Z1lYTWdlMXh1SUNBZ0lDQWdZWFIwY2pFNklITjBjbWx1WnlCOElFTnZibVJwZEdsdmJqeE5QanRjYmlBZ0lDQWdJRzl3WlhKaGRHOXlPaUJQY0dWeVlYUnZjaUI4SUVkeWIzVndUM0JsY21GMGIzSTdYRzRnSUNBZ0lDQmpiMjF3WVhKcGMyOXVPaUJoYm5rN1hHNGdJQ0FnZlR0Y2JseHVJQ0FnSUdsbUlDaHZjR1Z5WVhSdmNpQTlQVDBnVDNCbGNtRjBiM0l1VTFSQlVsUlRYMWRKVkVncElIdGNiaUFnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdZWFIwY2pFZ0lUMDlJRndpYzNSeWFXNW5YQ0lwWEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCUmRXVnllVVZ5Y205eUtGd2lVMVJCVWxSVFgxZEpWRWdnY21WeGRXbHlaWE1nWVc0Z1lYUjBjbWxpZFhSbElHNWhiV1ZjSWlrN1hHNGdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlHTnZiWEJoY21semIyNGdJVDA5SUZ3aWMzUnlhVzVuWENJcFhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QlJkV1Z5ZVVWeWNtOXlLRndpVTFSQlVsUlRYMWRKVkVnZ2NtVnhkV2x5WlhNZ1lTQnpkSEpwYm1jZ1kyOXRjR0Z5YVhOdmJsd2lLVHRjYmlBZ0lDQWdJR052Ym5OMElISmhibWRsSUQwZ2NISmxabWw0VW1GdVoyVW9ZMjl0Y0dGeWFYTnZiaWs3WEc0Z0lDQWdJQ0JqYjI1emRDQnpaV3hsWTNSdmNqb2dUV0Z1WjI5VFpXeGxZM1J2Y2lBOUlIdDlJR0Z6SUUxaGJtZHZVMlZzWldOMGIzSTdYRzRnSUNBZ0lDQnpaV3hsWTNSdmNsdGhkSFJ5TVYwZ1BTQjdmU0JoY3lCTllXNW5iMU5sYkdWamRHOXlPMXh1SUNBZ0lDQWdLSE5sYkdWamRHOXlXMkYwZEhJeFhTQmhjeUJOWVc1bmIxTmxiR1ZqZEc5eUtWdERiM1ZqYUVSQ1QzQmxjbUYwYjNJdVFrbEhSMFZTWDBWUlhTQTlJSEpoYm1kbExuTjBZWEowTzF4dUlDQWdJQ0FnS0hObGJHVmpkRzl5VzJGMGRISXhYU0JoY3lCTllXNW5iMU5sYkdWamRHOXlLVnREYjNWamFFUkNUM0JsY21GMGIzSXVVMDFCVEV4RlVsMGdQU0J5WVc1blpTNWxibVE3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdleUJ6Wld4bFkzUnZjaUI5TzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNodmNHVnlZWFJ2Y2lBOVBUMGdUM0JsY21GMGIzSXVSVTVFVTE5WFNWUklLU0I3WEc0Z0lDQWdJQ0JwWmlBb2RIbHdaVzltSUdGMGRISXhJQ0U5UFNCY0luTjBjbWx1WjF3aUtWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dVWFZsY25sRmNuSnZjaWhjSWtWT1JGTmZWMGxVU0NCeVpYRjFhWEpsY3lCaGJpQmhkSFJ5YVdKMWRHVWdibUZ0WlZ3aUtUdGNiaUFnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdZMjl0Y0dGeWFYTnZiaUFoUFQwZ1hDSnpkSEpwYm1kY0lpbGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRkYxWlhKNVJYSnliM0lvWENKRlRrUlRYMWRKVkVnZ2NtVnhkV2x5WlhNZ1lTQnpkSEpwYm1jZ1kyOXRjR0Z5YVhOdmJsd2lLVHRjYmlBZ0lDQWdJR052Ym5OMElITmxiR1ZqZEc5eU9pQk5ZVzVuYjFObGJHVmpkRzl5SUQwZ2UzMGdZWE1nVFdGdVoyOVRaV3hsWTNSdmNqdGNiaUFnSUNBZ0lITmxiR1ZqZEc5eVcyRjBkSEl4WFNBOUlIdGNiaUFnSUNBZ0lDQWdXME52ZFdOb1JFSlBjR1Z5WVhSdmNpNVNSVWRGV0ZCZE9pQmdKSHRsYzJOaGNHVlNaV2RGZUhBb1kyOXRjR0Z5YVhOdmJpbDlKR0FzWEc0Z0lDQWdJQ0I5SUdGeklFMWhibWR2VTJWc1pXTjBiM0k3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdleUJ6Wld4bFkzUnZjaUI5TzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNodmNHVnlZWFJ2Y2lBOVBUMGdUM0JsY21GMGIzSXVRa1ZVVjBWRlRpa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1lYUjBjaUE5SUdGMGRISXhJR0Z6SUhOMGNtbHVaenRjYmlBZ0lDQWdJR2xtSUNnaFFYSnlZWGt1YVhOQmNuSmhlU2hqYjIxd1lYSnBjMjl1S1NCOGZDQmpiMjF3WVhKcGMyOXVMbXhsYm1kMGFDQWhQVDBnTWlsY2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lGRjFaWEo1UlhKeWIzSW9YQ0pDUlZSWFJVVk9JRzl3WlhKaGRHOXlJSEpsY1hWcGNtVnpJRnR0YVc0c0lHMWhlRjBnWTI5dGNHRnlhWE52Ymx3aUtUdGNiaUFnSUNBZ0lHTnZibk4wSUZ0dGFXNHNJRzFoZUYwZ1BTQmpiMjF3WVhKcGMyOXVPMXh1SUNBZ0lDQWdZMjl1YzNRZ2IzQkNaWFIzWldWdU9pQk5ZVzVuYjFObGJHVmpkRzl5SUQwZ2UzMGdZWE1nVFdGdVoyOVRaV3hsWTNSdmNqdGNiaUFnSUNBZ0lHOXdRbVYwZDJWbGJsdGhkSFJ5WFNBOUlIdDlJR0Z6SUUxaGJtZHZVMlZzWldOMGIzSTdYRzRnSUNBZ0lDQW9iM0JDWlhSM1pXVnVXMkYwZEhKZElHRnpJRTFoYm1kdlUyVnNaV04wYjNJcFcxeHVJQ0FnSUNBZ0lDQjBjbUZ1YzJ4aGRHVlBjR1Z5WVhSdmNuTW9UM0JsY21GMGIzSXVRa2xIUjBWU1gwVlJLVnh1SUNBZ0lDQWdYU0E5SUcxcGJqdGNiaUFnSUNBZ0lDaHZjRUpsZEhkbFpXNWJZWFIwY2wwZ1lYTWdUV0Z1WjI5VFpXeGxZM1J2Y2lsYlhHNGdJQ0FnSUNBZ0lIUnlZVzV6YkdGMFpVOXdaWEpoZEc5eWN5aFBjR1Z5WVhSdmNpNVRUVUZNVEVWU1gwVlJLVnh1SUNBZ0lDQWdYU0E5SUcxaGVEdGNiaUFnSUNBZ0lISmxkSFZ5YmlCN0lITmxiR1ZqZEc5eU9pQnZjRUpsZEhkbFpXNGdmVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnNaWFFnYjNBNklFMWhibWR2VTJWc1pXTjBiM0lnUFNCN2ZTQmhjeUJOWVc1bmIxTmxiR1ZqZEc5eU8xeHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lGdEhjbTkxY0U5d1pYSmhkRzl5TGtGT1JDd2dSM0p2ZFhCUGNHVnlZWFJ2Y2k1UFVpd2dUM0JsY21GMGIzSXVUazlVWFM1cGJtUmxlRTltS0Z4dUlDQWdJQ0FnSUNCdmNHVnlZWFJ2Y2lCaGN5QkhjbTkxY0U5d1pYSmhkRzl5WEc0Z0lDQWdJQ0FwSUQwOVBTQXRNVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdiM0JiWVhSMGNqRWdZWE1nYzNSeWFXNW5YU0E5SUh0OUlHRnpJRTFoYm1kdlUyVnNaV04wYjNJN1hHNGdJQ0FnSUNBb2IzQmJZWFIwY2pFZ1lYTWdjM1J5YVc1blhTQmhjeUJOWVc1bmIxTmxiR1ZqZEc5eUtWdDBjbUZ1YzJ4aGRHVlBjR1Z5WVhSdmNuTW9iM0JsY21GMGIzSXBYU0E5WEc0Z0lDQWdJQ0FnSUdOdmJYQmhjbWx6YjI0N1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNodmNHVnlZWFJ2Y2lBOVBUMGdUM0JsY21GMGIzSXVUazlVS1NCN1hHNGdJQ0FnSUNCdmNDQTlJSFJvYVhNdWNHRnljMlZEYjI1a2FYUnBiMjRvWVhSMGNqRWdZWE1nUTI5dVpHbDBhVzl1UEUwK0tTNXpaV3hsWTNSdmNpQmhjeUJOWVc1bmIxTmxiR1ZqZEc5eU8xeHVJQ0FnSUNBZ2IzQmJkSEpoYm5Oc1lYUmxUM0JsY21GMGIzSnpLRTl3WlhKaGRHOXlMazVQVkNsZElEMGdlMzBnWVhNZ1RXRnVaMjlUWld4bFkzUnZjanRjYmlBZ0lDQWdJQ2h2Y0Z0MGNtRnVjMnhoZEdWUGNHVnlZWFJ2Y25Nb1QzQmxjbUYwYjNJdVRrOVVLVjBnWVhNZ1RXRnVaMjlUWld4bFkzUnZjaWxiWEc0Z0lDQWdJQ0FnSUNoaGRIUnlNU0JoY3lCMWJtdHViM2R1SUdGeklIc2dZWFIwY2pFNklITjBjbWx1WnlCOUtTNWhkSFJ5TVZ4dUlDQWdJQ0FnWFNBOUlHTnZiWEJoY21semIyNDdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJRzl3TVRvZ1lXNTVJRDBnZEdocGN5NXdZWEp6WlVOdmJtUnBkR2x2YmloaGRIUnlNU0JoY3lCRGIyNWthWFJwYjI0OFRUNHBMbk5sYkdWamRHOXlPMXh1SUNBZ0lDQWdZMjl1YzNRZ2IzQXlPaUJoYm5rZ1BTQjBhR2x6TG5CaGNuTmxRMjl1WkdsMGFXOXVLR052YlhCaGNtbHpiMjRnWVhNZ1EyOXVaR2wwYVc5dVBFMCtLUzV6Wld4bFkzUnZjanRjYmlBZ0lDQWdJRzl3SUQwZ2JXVnlaMlVvZEhKaGJuTnNZWFJsVDNCbGNtRjBiM0p6S0c5d1pYSmhkRzl5S1N3Z2IzQXhMQ0J2Y0RJcExuTmxiR1ZqZEc5eU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUI3SUhObGJHVmpkRzl5T2lCdmNDQjlPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkNkV2xzWkhNZ1lXNGdZV2RuY21WbllYUmxJSEYxWlhKNUlHbG1JR0ZuWjNKbFoyRjBhVzl1SUdseklISmxjWFZsYzNSbFpGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCRGFHVmphM01nWm05eUlHRm5aM0psWjJGMFpTQnZjR1Z5WVhScGIyNXpJR0Z1WkNCeVpYUjFjbTV6SUdFZ2MzQmxZMmxoYkNCTllXNW5iMUYxWlhKNUlHWnZjaUIwYUdWdFhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHSjFhV3hrUVdkbmNtVm5ZWFJsVVhWbGNua29LVG9nVFdGdVoyOVJkV1Z5ZVNCOElIVnVaR1ZtYVc1bFpDQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtWnliMjFUWld4bFkzUnZjaWtnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnBaaUFvZEdocGN5NWhkbWRUWld4bFkzUnZjaWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZWFIwY21saWRYUmxJRDBnVTNSeWFXNW5LSFJvYVhNdVlYWm5VMlZzWldOMGIzSXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2MzVnRTVzVtYnlBOUlIUm9hWE11WTNKbFlYUmxRV2RuY21WbllYUmxSR1Z6WTNKcGNIUnZjaWhjSW5OMWJWd2lMQ0JoZEhSeWFXSjFkR1VwTzF4dUlDQWdJQ0FnWTI5dWMzUWdZMjkxYm5SSmJtWnZJRDBnZEdocGN5NWpjbVZoZEdWQloyZHlaV2RoZEdWRVpYTmpjbWx3ZEc5eUtGd2lZMjkxYm5SY0lpd2dZWFIwY21saWRYUmxLVHRjYmlBZ0lDQWdJR2xtSUNnaGMzVnRTVzVtYnlCOGZDQWhZMjkxYm5SSmJtWnZLVnh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnVVhWbGNubEZjbkp2Y2loY2JpQWdJQ0FnSUNBZ0lDQmdRWFpuSUc5d1pYSmhkR2x2YmlCeVpYRjFhWEpsY3lCemRXMGdZVzVrSUdOdmRXNTBJSFpwWlhkeklHWnZjaUJoZEhSeWFXSjFkR1VnSkh0aGRIUnlhV0oxZEdWOVlGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WTNKbFlYUmxRV2RuY21WbllYUmxVWFZsY25rb2UxeHVJQ0FnSUNBZ0lDQnJhVzVrT2lCY0ltRjJaMXdpTEZ4dUlDQWdJQ0FnSUNCaGRIUnlhV0oxZEdVc1hHNGdJQ0FnSUNBZ0lITjFiVVJsYzJOeWFYQjBiM0k2SUhOMWJVbHVabTh1WkdWelkzSnBjSFJ2Y2l4Y2JpQWdJQ0FnSUNBZ1kyOTFiblJFWlhOamNtbHdkRzl5T2lCamIzVnVkRWx1Wm04dVpHVnpZM0pwY0hSdmNpeGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdkR2hwY3k1amIzVnVkRVJwYzNScGJtTjBVMlZzWldOMGIzSWdJVDA5SUZ3aWRXNWtaV1pwYm1Wa1hDSXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHRjBkSEpwWW5WMFpTQTlYRzRnSUNBZ0lDQWdJSFJvYVhNdVkyOTFiblJFYVhOMGFXNWpkRk5sYkdWamRHOXlJRDA5SUc1MWJHeGNiaUFnSUNBZ0lDQWdJQ0EvSUhWdVpHVm1hVzVsWkZ4dUlDQWdJQ0FnSUNBZ0lEb2dVM1J5YVc1bktIUm9hWE11WTI5MWJuUkVhWE4wYVc1amRGTmxiR1ZqZEc5eUtUdGNiaUFnSUNBZ0lHTnZibk4wSUdsdVptOGdQU0IwYUdsekxtTnlaV0YwWlVGblozSmxaMkYwWlVSbGMyTnlhWEIwYjNJb1hDSmthWE4wYVc1amRGd2lMQ0JoZEhSeWFXSjFkR1VwTzF4dUlDQWdJQ0FnYVdZZ0tHbHVabThwSUh0Y2JpQWdJQ0FnSUNBZ2FXNW1ieTVqYjNWdWRFUnBjM1JwYm1OMElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZM0psWVhSbFFXZG5jbVZuWVhSbFVYVmxjbmtvYVc1bWJ5azdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnWVdkbmNtVm5ZWFJ2Y2xWelpXUWdQVnh1SUNBZ0lDQWdkSGx3Wlc5bUlIUm9hWE11WTI5MWJuUlRaV3hsWTNSdmNpQWhQVDBnWENKMWJtUmxabWx1WldSY0lpQjhmRnh1SUNBZ0lDQWdkSGx3Wlc5bUlIUm9hWE11WTI5MWJuUkVhWE4wYVc1amRGTmxiR1ZqZEc5eUlDRTlQU0JjSW5WdVpHVm1hVzVsWkZ3aUlIeDhYRzRnSUNBZ0lDQWhJWFJvYVhNdWJXbHVVMlZzWldOMGIzSWdmSHhjYmlBZ0lDQWdJQ0VoZEdocGN5NXRZWGhUWld4bFkzUnZjaUI4ZkZ4dUlDQWdJQ0FnSVNGMGFHbHpMbk4xYlZObGJHVmpkRzl5SUh4OFhHNGdJQ0FnSUNBaElYUm9hWE11WkdsemRHbHVZM1JUWld4bFkzUnZjanRjYmx4dUlDQWdJR052Ym5OMElHRm5aM0psWjJGMGIzSkRhR1ZqYTNNNklFRnljbUY1UEZ0V2FXVjNTMmx1WkN3Z1UyVnNaV04wVTJWc1pXTjBiM0k4VFQ0Z2ZDQjFibVJsWm1sdVpXUmRQaUE5SUZ0Y2JpQWdJQ0FnSUZ0Y2JpQWdJQ0FnSUNBZ1hDSmpiM1Z1ZEZ3aUxGeHVJQ0FnSUNBZ0lDQW9kR2hwY3k1amIzVnVkRk5sYkdWamRHOXlJRDgvSUhWdVpHVm1hVzVsWkNrZ1lYTWdVMlZzWldOMFUyVnNaV04wYjNJOFRUNGdmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0JkTEZ4dUlDQWdJQ0FnVzF3aWJXRjRYQ0lzSUhSb2FYTXViV0Y0VTJWc1pXTjBiM0pkTEZ4dUlDQWdJQ0FnVzF3aWJXbHVYQ0lzSUhSb2FYTXViV2x1VTJWc1pXTjBiM0pkTEZ4dUlDQWdJQ0FnVzF3aWMzVnRYQ0lzSUhSb2FYTXVjM1Z0VTJWc1pXTjBiM0pkTEZ4dUlDQWdJQ0FnVzF3aVpHbHpkR2x1WTNSY0lpd2dkR2hwY3k1a2FYTjBhVzVqZEZObGJHVmpkRzl5WFN4Y2JpQWdJQ0JkTzF4dVhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCYmEybHVaQ3dnYzJWc1pXTjBiM0pkSUc5bUlHRm5aM0psWjJGMGIzSkRhR1ZqYTNNcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdGMGRISnBZblYwWlNBOUlITmxiR1ZqZEc5eUlEOGdVM1J5YVc1bktITmxiR1ZqZEc5eUtTQTZJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJR052Ym5OMElHbHVabThnUFNCMGFHbHpMbU55WldGMFpVRm5aM0psWjJGMFpVUmxjMk55YVhCMGIzSW9hMmx1WkN3Z1lYUjBjbWxpZFhSbEtUdGNiaUFnSUNBZ0lHbG1JQ2hwYm1adktTQnlaWFIxY200Z2RHaHBjeTVqY21WaGRHVkJaMmR5WldkaGRHVlJkV1Z5ZVNocGJtWnZLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvWVdkbmNtVm5ZWFJ2Y2xWelpXUXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJSZFdWeWVVVnljbTl5S0Z4dUlDQWdJQ0FnSUNCZ1RtOGdRMjkxWTJoRVFpQjJhV1YzSUcxbGRHRmtZWFJoSUdadmRXNWtJR1p2Y2lCMFlXSnNaU0FrZTAxdlpHVnNMblJoWW14bFRtRnRaU2hjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbVp5YjIxVFpXeGxZM1J2Y2x4dUlDQWdJQ0FnSUNBcGZTQmhaMmR5WldkaGRHOXlZRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTNKbFlYUmxjeUJoYmlCaFoyZHlaV2RoZEdVZ1pHVnpZM0pwY0hSdmNpQm1iM0lnWVNCMmFXVjNMV0poYzJWa0lHRm5aM0psWjJGMGFXOXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJR055WldGMFpVRm5aM0psWjJGMFpVUmxjMk55YVhCMGIzSW9YRzRnSUNBZ2EybHVaRG9nVm1sbGQwdHBibVFzWEc0Z0lDQWdZWFIwY21saWRYUmxQem9nYzNSeWFXNW5YRzRnSUNrNklFVjRkSEpoWTNROFJtRmljbWxqUVdkbmNtVm5ZWFJsU1c1bWJ5d2dleUJyYVc1a09pQldhV1YzUzJsdVpDQjlQaUI4SUhWdVpHVm1hVzVsWkNCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1aeWIyMVRaV3hsWTNSdmNpa2djbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCamIyNXpkQ0J0WlhSaGN5QTlJR1pwYm1SV2FXVjNUV1YwWVdSaGRHRW9kR2hwY3k1bWNtOXRVMlZzWldOMGIzSXNJR3RwYm1Rc0lHRjBkSEpwWW5WMFpTazdYRzRnSUNBZ2FXWWdLQ0Z0WlhSaGN5NXNaVzVuZEdncElISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJQ0FnWTI5dWMzUWdiV1YwWVNBOUlHMWxkR0Z6V3pCZE8xeHVJQ0FnSUdOdmJuTjBJSFJoWW14bFRtRnRaU0E5SUUxdlpHVnNMblJoWW14bFRtRnRaU2gwYUdsekxtWnliMjFUWld4bFkzUnZjaWs3WEc0Z0lDQWdZMjl1YzNRZ2RtbGxkMDVoYldVZ1BTQm5aVzVsY21GMFpWWnBaWGRPWVcxbEtIUmhZbXhsVG1GdFpTd2diV1YwWVM1aGRIUnlhV0oxZEdVc0lHdHBibVFzSUcxbGRHRXBPMXh1SUNBZ0lHTnZibk4wSUdSa2IyTWdQU0J0WlhSaExtUmtiMk1nZkh3Z1oyVnVaWEpoZEdWRVpYTnBaMjVFYjJOT1lXMWxLSFJoWW14bFRtRnRaU3dnZG1sbGQwNWhiV1VwTzF4dUlDQWdJR052Ym5OMElHOXdkR2x2Ym5NNklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNGdQU0I3WEc0Z0lDQWdJQ0J5WldSMVkyVTZJRzFsZEdFdWNtVmtkV05sSUNFOVBTQjFibVJsWm1sdVpXUWdQeUIwY25WbElEb2dJVzFsZEdFdWNtVjBkWEp1Ukc5amN5eGNiaUFnSUNCOU8xeHVJQ0FnSUdsbUlDaHJhVzVrSUQwOVBTQmNJbVJwYzNScGJtTjBYQ0lnZkh3Z2EybHVaQ0E5UFQwZ1hDSm5jbTkxY0VKNVhDSXBJRzl3ZEdsdmJuTXVaM0p2ZFhBZ1BTQjBjblZsTzF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQnJhVzVrTEZ4dUlDQWdJQ0FnYldWMFlTeGNiaUFnSUNBZ0lHUmxjMk55YVhCMGIzSTZJSHRjYmlBZ0lDQWdJQ0FnWkdSdll5eGNiaUFnSUNBZ0lDQWdkbWxsZHpvZ2RtbGxkMDVoYldVc1hHNGdJQ0FnSUNBZ0lHOXdkR2x2Ym5Nc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUgwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVOeVpXRjBaWE1nZEdobElITndaV05wWVd3Z1lXZG5jbVZuWVhSbElFMWhibWR2VVhWbGNua2diV0Z5YTJWeVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHTnlaV0YwWlVGblozSmxaMkYwWlZGMVpYSjVLRnh1SUNBZ0lHbHVabTg2SUVaaFluSnBZMEZuWjNKbFoyRjBaVWx1Wm05Y2JpQWdLVG9nVFdGdVoyOVJkV1Z5ZVNBbUlIc2dZV2RuY21WbllYUmxPaUIwY25WbE95QmhaMmR5WldkaGRHVkpibVp2T2lCR1lXSnlhV05CWjJkeVpXZGhkR1ZKYm1adklIMGdlMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCelpXeGxZM1J2Y2pvZ2UzMHNYRzRnSUNBZ0lDQmhaMmR5WldkaGRHVTZJSFJ5ZFdVc1hHNGdJQ0FnSUNCaFoyZHlaV2RoZEdWSmJtWnZPaUJwYm1adkxGeHVJQ0FnSUgwZ1lYTWdUV0Z1WjI5UmRXVnllU0FtSUhzZ1lXZG5jbVZuWVhSbE9pQjBjblZsT3lCaFoyZHlaV2RoZEdWSmJtWnZPaUJHWVdKeWFXTkJaMmR5WldkaGRHVkpibVp2SUgwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVkbGRITWdkR2hsSUdGa1lYQjBaWElnWTJGemRDQjBieUJHWVdKeWFXTkRiR2xsYm5SQlpHRndkR1Z5SUdadmNpQjJhV1YzSUdGalkyVnpjMXh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JuWlhSR1lXSnlhV05CWkdGd2RHVnlLQ2s2SUVaaFluSnBZME5zYVdWdWRFRmtZWEIwWlhJZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtRmtZWEIwWlhJZ1lYTWdSbUZpY21salEyeHBaVzUwUVdSaGNIUmxjanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSWGhsWTNWMFpYTWdZVzRnWVdkbmNtVm5ZWFJsSUhGMVpYSjVJSFpwWVNCaFpHRndkR1Z5SjNNZ2RtbGxkeUJ0WlhSb2IyUmNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ1pYaGxZM1YwWlVGblozSmxaMkYwWlR4U1BpaGNiaUFnSUNCcGJtWnZPaUJHWVdKeWFXTkJaMmR5WldkaGRHVkpibVp2TEZ4dUlDQWdJR04wZURvZ1EyOXVkR1Y0ZER4R1lXSnlhV05EYkdsbGJuUkdiR0ZuY3o1Y2JpQWdLVG9nVUhKdmJXbHpaVHhTUGlCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG1selZtbGxkMEZuWjNKbFoyRjBaU2hwYm1adktTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YUdGdVpHeGxRWFpsY21GblpUeFNQaWhwYm1adkxDQmpkSGdwTzF4dUlDQWdJSDFjYmlBZ0lDQmpiMjV6ZENCbVlXSnlhV05CWkdGd2RHVnlJRDBnZEdocGN5NW5aWFJHWVdKeWFXTkJaR0Z3ZEdWeUtDazdYRzRnSUNBZ1kyOXVjM1FnZG1sbGQwbHVabThnUFNCcGJtWnZJR0Z6SUVWNGRISmhZM1E4Um1GaWNtbGpRV2RuY21WbllYUmxTVzVtYnl3Z2V5QnJhVzVrT2lCV2FXVjNTMmx1WkNCOVBqdGNiaUFnSUNCamIyNXpkQ0J5WlhOd2IyNXpaU0E5SUdGM1lXbDBJR1poWW5KcFkwRmtZWEIwWlhJdWRtbGxkenhXYVdWM1VtVnpjRzl1YzJVK0tGeHVJQ0FnSUNBZ2RtbGxkMGx1Wm04dVpHVnpZM0pwY0hSdmNpNWtaRzlqTEZ4dUlDQWdJQ0FnZG1sbGQwbHVabTh1WkdWelkzSnBjSFJ2Y2k1MmFXVjNMRnh1SUNBZ0lDQWdkbWxsZDBsdVptOHVaR1Z6WTNKcGNIUnZjaTV2Y0hScGIyNXpMRnh1SUNBZ0lDQWdZM1I0WEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV3Y205alpYTnpWbWxsZDFKbGMzQnZibk5sUEZJK0tHbHVabThzSUhKbGMzQnZibk5sS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnU0dGdVpHeGxjeUJoZG1WeVlXZGxJR05oYkdOMWJHRjBhVzl1SUdaeWIyMGdjM1Z0SUdGdVpDQmpiM1Z1ZENCMmFXVjNjMXh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5Qm9ZVzVrYkdWQmRtVnlZV2RsUEZJK0tGeHVJQ0FnSUdsdVptODZJRVpoWW5KcFkwRm5aM0psWjJGMFpVbHVabThzWEc0Z0lDQWdZM1I0T2lCRGIyNTBaWGgwUEVaaFluSnBZME5zYVdWdWRFWnNZV2R6UGx4dUlDQXBPaUJRY205dGFYTmxQRkkrSUh0Y2JpQWdJQ0JwWmlBb2FXNW1ieTVyYVc1a0lDRTlQU0JjSW1GMloxd2lLVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRkYxWlhKNVJYSnliM0lvWENKQmRtVnlZV2RsSUdSbGMyTnlhWEIwYjNJZ2FYTWdibTkwSUhaaGJHbGtYQ0lwTzF4dUlDQWdJR052Ym5OMElHWmhZbkpwWTBGa1lYQjBaWElnUFNCMGFHbHpMbWRsZEVaaFluSnBZMEZrWVhCMFpYSW9LVHRjYmlBZ0lDQmpiMjV6ZENCYmMzVnRSR1Z6WXl3Z1kyOTFiblJFWlhOalhTQTlJRnRwYm1adkxuTjFiVVJsYzJOeWFYQjBiM0lzSUdsdVptOHVZMjkxYm5SRVpYTmpjbWx3ZEc5eVhUdGNiaUFnSUNCamIyNXpkQ0JiYzNWdFVtVnpjRzl1YzJVc0lHTnZkVzUwVW1WemNHOXVjMlZkSUQwZ1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b1cxeHVJQ0FnSUNBZ1ptRmljbWxqUVdSaGNIUmxjaTUyYVdWM1BGWnBaWGRTWlhOd2IyNXpaVDRvWEc0Z0lDQWdJQ0FnSUhOMWJVUmxjMk11WkdSdll5eGNiaUFnSUNBZ0lDQWdjM1Z0UkdWell5NTJhV1YzTEZ4dUlDQWdJQ0FnSUNCemRXMUVaWE5qTG05d2RHbHZibk1zWEc0Z0lDQWdJQ0FnSUdOMGVGeHVJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lHWmhZbkpwWTBGa1lYQjBaWEl1ZG1sbGR6eFdhV1YzVW1WemNHOXVjMlUrS0Z4dUlDQWdJQ0FnSUNCamIzVnVkRVJsYzJNdVpHUnZZeXhjYmlBZ0lDQWdJQ0FnWTI5MWJuUkVaWE5qTG5acFpYY3NYRzRnSUNBZ0lDQWdJR052ZFc1MFJHVnpZeTV2Y0hScGIyNXpMRnh1SUNBZ0lDQWdJQ0JqZEhoY2JpQWdJQ0FnSUNrc1hHNGdJQ0FnWFNrN1hHNGdJQ0FnWTI5dWMzUWdjM1Z0SUQwZ2MzVnRVbVZ6Y0c5dWMyVXVjbTkzY3o4dVd6QmRQeTUyWVd4MVpTQS9QeUF3TzF4dUlDQWdJR052Ym5OMElHTnZkVzUwSUQwZ1kyOTFiblJTWlhOd2IyNXpaUzV5YjNkelB5NWJNRjAvTG5aaGJIVmxJRDgvSURBN1hHNGdJQ0FnYVdZZ0tDRmpiM1Z1ZENrZ2NtVjBkWEp1SURBZ1lYTWdkVzVyYm05M2JpQmhjeUJTTzF4dUlDQWdJSEpsZEhWeWJpQW9jM1Z0SUM4Z1kyOTFiblFwSUdGeklIVnVhMjV2ZDI0Z1lYTWdVanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVSEp2WTJWemMyVnpJSFJvWlNCMmFXVjNJSEpsYzNCdmJuTmxJR0poYzJWa0lHOXVJR0ZuWjNKbFoyRjBaU0JyYVc1a1hHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElIQnliMk5sYzNOV2FXVjNVbVZ6Y0c5dWMyVThVajRvWEc0Z0lDQWdhVzVtYnpvZ1JtRmljbWxqUVdkbmNtVm5ZWFJsU1c1bWJ5eGNiaUFnSUNCeVpYTndiMjV6WlRvZ1ZtbGxkMUpsYzNCdmJuTmxYRzRnSUNrNklGSWdlMXh1SUNBZ0lHbG1JQ2hwYm1adkxtdHBibVFnUFQwOUlGd2lZWFpuWENJcFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1VYVmxjbmxGY25KdmNpaGNiaUFnSUNBZ0lDQWdYQ0pCZG1WeVlXZGxJSEpsYzNWc2RITWdjMmh2ZFd4a0lHSmxJR2hoYm1Sc1pXUWdZbVZtYjNKbElIQnliMk5sYzNOcGJtY2djbTkzYzF3aVhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUdOdmJuTjBJSEp2ZDNNZ1BTQnlaWE53YjI1elpTNXliM2R6SUh4OElGdGRPMXh1SUNBZ0lHTnZibk4wSUhacFpYZEpibVp2SUQwZ2FXNW1ieUJoY3lCRmVIUnlZV04wUEVaaFluSnBZMEZuWjNKbFoyRjBaVWx1Wm04c0lIc2dhMmx1WkRvZ1ZtbGxkMHRwYm1RZ2ZUNDdYRzRnSUNBZ1kyOXVjM1FnYldWMFlTQTlJSFpwWlhkSmJtWnZMbTFsZEdFN1hHNGdJQ0FnYVdZZ0tIWnBaWGRKYm1adkxtTnZkVzUwUkdsemRHbHVZM1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUFvY205M2N5NXNaVzVuZEdnZ2ZId2dNQ2tnWVhNZ2RXNXJibTkzYmlCaGN5QlNPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9kbWxsZDBsdVptOHVhMmx1WkNBOVBUMGdYQ0prYVhOMGFXNWpkRndpSUh4OElIWnBaWGRKYm1adkxtdHBibVFnUFQwOUlGd2laM0p2ZFhCQ2VWd2lLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbTkzY3k1dFlYQW9LSEp2ZHlrZ1BUNGdjbTkzTG10bGVTQS9QeUJ5YjNjdWRtRnNkV1VwSUdGeklIVnVhMjV2ZDI0Z1lYTWdVanRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLRzFsZEdFdWNtVjBkWEp1Ukc5amN5a2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlISnZkM011YldGd0tDaHliM2NwSUQwK0lISnZkeTUyWVd4MVpTQS9QeUJ5YjNjdVpHOWpJRDgvSUhKdmR5a2dZWE1nZFc1cmJtOTNiaUJoY3lCU08xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb0lYSnZkM011YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdLSFpwWlhkSmJtWnZMbXRwYm1RZ1BUMDlJRndpWTI5MWJuUmNJaUEvSURBZ09pQnVkV3hzS1NCaGN5QjFibXR1YjNkdUlHRnpJRkk3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlBb2NtOTNjMXN3WFM1MllXeDFaU0EvUHlCeWIzZHpXekJkTG10bGVTQS9QeUJ1ZFd4c0tTQmhjeUIxYm10dWIzZHVJR0Z6SUZJN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZSNWNHVWdaM1ZoY21RZ2RHOGdZMmhsWTJzZ2FXWWdhVzVtYnlCcGN5QmhJSFpwWlhjdFltRnpaV1FnWVdkbmNtVm5ZWFJsWEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUdselZtbGxkMEZuWjNKbFoyRjBaU2hjYmlBZ0lDQnBibVp2T2lCR1lXSnlhV05CWjJkeVpXZGhkR1ZKYm1adlhHNGdJQ2s2SUdsdVptOGdhWE1nUlhoMGNtRmpkRHhHWVdKeWFXTkJaMmR5WldkaGRHVkpibVp2TENCN0lHdHBibVE2SUZacFpYZExhVzVrSUgwK0lIdGNiaUFnSUNCeVpYUjFjbTRnYVc1bWJ5NXJhVzVrSUNFOVBTQmNJbUYyWjF3aU8xeHVJQ0I5WEc1OVhHNGlYWDA9Il19
|
|
@@ -110,5 +110,5 @@ function writeCollectionDesignDocs(docs, p = process.cwd(), collection) {
|
|
|
110
110
|
return;
|
|
111
111
|
(0, generation_js_1.writeDesignDocs)(docs, p, collection);
|
|
112
112
|
}
|
|
113
|
-
//# sourceMappingURL=generation.js.map
|
|
114
|
-
//# sourceMappingURL=generation.js.map
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnQvY29sbGVjdGlvbnMvZ2VuZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsbUNBQThCO0FBc0R4RCxNQUFNLFVBQVUsYUFBYSxDQUMzQixjQUFzQixFQUN0QixNQUFjLEVBQ2QsaUJBQXlCLEVBQ3pCLFlBQW9CLEVBQ3BCLFdBQW1CLEVBQ25CLGNBQXVCLEVBQ3ZCLGVBQXdCO0lBRXhCLE9BQU87UUFDTCxJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUsTUFBTTtRQUNkLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osV0FBVztRQUNYLGNBQWM7UUFDZCxlQUFlO0tBQ2hCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxLQUFhLEVBQ2IsaUJBQXlCLEdBQUcsS0FBSyxTQUFTLEVBQzFDLG9CQUE0QixDQUFDLEVBQzdCLGVBQXVCLENBQUMsRUFDeEIsY0FBc0IsQ0FBQyxFQUN2QixpQkFBMEIsSUFBSSxFQUM5QixrQkFBMkIsSUFBSTtJQUUvQixNQUFNLENBQUMsR0FBRyxhQUFhLENBQ3JCLGNBQWMsRUFDZCxPQUFPLEtBQUssV0FBVyxFQUN2QixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFdBQVcsRUFDWCxjQUFjLEVBQ2QsZUFBZSxDQUNoQixDQUFDO0lBRUYsQ0FBQyxDQUFDLGlCQUFpQixHQUFHO1FBQ3BCLGVBQWUsRUFBRSxPQUFPLEtBQUssU0FBUztLQUN2QyxDQUFDO0lBQ0YsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxNQUFnQixFQUNoQixjQUFz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Q0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IENvdWNoREJEZXNpZ25Eb2MgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbGxlY3Rpb25SZXNvbHZlciB9IGZyb20gXCIuLi8uLi9zaGFyZWQvaW5kZXhcIjtcbmltcG9ydCB7IHdyaXRlRGVzaWduRG9jcyB9IGZyb20gXCIuLi9pbmRleGVzL2dlbmVyYXRpb25cIjtcblxuLy9cbi8vIGV4cG9ydCB0eXBlIEZhYnJpY0NvbGxlY3Rpb24gPSB7XG4vLyAgIG5hbWU6IFwiY29sbGVjdGlvbk1hcmJsZXNcIjtcbi8vICAgcG9saWN5OiBcIk9SKCdPcmcxTVNQLm1lbWJlcicsICdPcmcyTVNQLm1lbWJlcicpXCI7XG4vLyAgIHJlcXVpcmVkUGVlckNvdW50OiAwO1xuLy8gICBtYXhQZWVyQ291bnQ6IDM7XG4vLyAgIGJsb2NrVG9MaXZlOiAwO1xuLy8gICBtZW1iZXJPbmx5UmVhZDogdHJ1ZTtcbi8vICAgbWVtYmVyT25seVdyaXRlOiB0cnVlO1xuLy8gICBlbmRvcnNlbWVudFBvbGljeToge1xuLy8gICAgIGlkZW50aXRpZXM6IFtcbi8vICAgICAgIHsgcm9sZTogeyBuYW1lOiBcIm1lbWJlclwiOyBtc3BJZDogXCJPcmcxTVNQXCIgfSB9LFxuLy8gICAgICAgeyByb2xlOiB7IG5hbWU6IFwibWVtYmVyXCI7IG1zcElkOiBcIk9yZzJNU1BcIiB9IH0sXG4vLyAgICAgXTtcbi8vICAgICBydWxlOiBcIk9SKCdPcmcxTVNQLm1lbWJlcicsICdPcmcyTVNQLm1lbWJlcicpXCI7XG4vLyAgIH07XG4vLyB9O1xuXG5leHBvcnQgdHlwZSBGYWJyaWNQb2xpY3lJZGVudGl0eSA9IHtcbiAgcm9sZToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBtc3BJZDogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgRmFicmljQ29sbGVjdGlvbiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwb2xpY3k6IHN0cmluZztcbiAgcmVxdWlyZWRQZWVyQ291bnQ6IG51bWJlcjtcbiAgbWF4UGVlckNvdW50OiBudW1iZXI7XG4gIGJsb2NrVG9MaXZlOiBudW1iZXI7XG4gIG1lbWJlck9ubHlSZWFkOiBib29sZWFuO1xuICBtZW1iZXJPbmx5V3JpdGU6IGJvb2xlYW47XG4gIGVuZG9yc2VtZW50UG9saWN5OiB7XG4gICAgaWRlbnRpdGllczogRmFicmljUG9saWN5SWRlbnRpdHlbXTtcbiAgICBydWxlOiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBQcml2YXRlQ29sbGVjdGlvbiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwb2xpY3k6IHN0cmluZztcbiAgcmVxdWlyZWRQZWVyQ291bnQ6IG51bWJlcjtcbiAgbWF4UGVlckNvdW50OiBudW1iZXI7XG4gIGJsb2NrVG9MaXZlOiBudW1iZXI7XG4gIG1lbWJlck9ubHlSZWFkOiBib29sZWFuO1xuICBtZW1iZXJPbmx5V3JpdGU6IGJvb2xlYW47XG4gIGVuZG9yc2VtZW50UG9saWN5Pzoge1xuICAgIHNpZ25hdHVyZVBvbGljeTogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3Rpb25Gb3IoXG4gIGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcsXG4gIHBvbGljeTogc3RyaW5nLFxuICByZXF1aXJlZFBlZXJDb3VudDogbnVtYmVyLFxuICBtYXhQZWVyQ291bnQ6IG51bWJlcixcbiAgYmxvY2tUb0xpdmU6IG51bWJlcixcbiAgbWVtYmVyT25seVJlYWQ6IGJvb2xlYW4sXG4gIG1lbWJlck9ubHlXcml0ZTogYm9vbGVhblxuKTogUHJpdmF0ZUNvbGxlY3Rpb24ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGNvbGxlY3Rpb25OYW1lLFxuICAgIHBvbGljeTogcG9saWN5LFxuICAgIHJlcXVpcmVkUGVlckNvdW50LFxuICAgIG1heFBlZXJDb3VudCxcbiAgICBibG9ja1RvTGl2ZSxcbiAgICBtZW1iZXJPbmx5UmVhZCxcbiAgICBtZW1iZXJPbmx5V3JpdGUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcml2YXRlQ29sbGVjdGlvbkZvcihcbiAgbXNwSWQ6IHN0cmluZyxcbiAgY29sbGVjdGlvbk5hbWU6IHN0cmluZyA9IGAke21zcElkfVByaXZhdGVgLFxuICByZXF1aXJlZFBlZXJDb3VudDogbnVtYmVyID0gMCxcbiAgbWF4UGVlckNvdW50OiBudW1iZXIgPSAwLFxuICBibG9ja1RvTGl2ZTogbnVtYmVyID0gMCxcbiAgbWVtYmVyT25seVJlYWQ6IGJvb2xlYW4gPSB0cnVlLFxuICBtZW1iZXJPbmx5V3JpdGU6IGJvb2xlYW4gPSB0cnVlXG4pOiBQcml2YXRlQ29sbGVjdGlvbiB7XG4gIGNvbnN0IGMgPSBjb2xsZWN0aW9uRm9yKFxuICAgIGNvbGxlY3Rpb25OYW1lLFxuICAgIGBPUignJHttc3BJZH0ubWVtYmVyJylgLFxuICAgIHJlcXVpcmVkUGVlckNvdW50LFxuICAgIG1heFBlZXJDb3VudCxcbiAgICBibG9ja1RvTGl2ZSxcbiAgICBtZW1iZXJPbmx5UmVhZCxcbiAgICBtZW1iZXJPbmx5V3JpdGVcbiAgKTtcblxuICBjLmVuZG9yc2VtZW50UG9saWN5ID0ge1xuICAgIHNpZ25hdHVyZVBvbGljeTogYE9SKCcke21zcElkfS5wZWVyJylgLFxuICB9O1xuICByZXR1cm4gYztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNoYXJlZENvbGxlY3Rpb25Gb3IoXG4gIG1zcElkczogc3RyaW5nW10sXG4gIGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcsXG4gIHJlcXVpcmVkUGVlckNvdW50OiBudW1iZXIgPSAxLFxuICBtYXhQZWVyQ291bnQ6IG51bWJlciA9IDIsXG4gIGJsb2NrVG9MaXZlOiBudW1iZXIgPSAwLFxuICBtZW1iZXJPbmx5UmVhZDogYm9vbGVhbiA9IHRydWUsXG4gIG1lbWJlck9ubHlXcml0ZTogYm9vbGVhbiA9IHRydWVcbik6IFByaXZhdGVDb2xsZWN0aW9uIHtcbiAgY29uc3QgYyA9IGNvbGxlY3Rpb25Gb3IoXG4gICAgY29sbGVjdGlvbk5hbWUsXG4gICAgYE9SKCR7bXNwSWRzLm1hcCgobSkgPT4gYCcke219Lm1lbWJlcidgKS5qb2luKFwiLFwiKX0pYCxcbiAgICByZXF1aXJlZFBlZXJDb3VudCxcbiAgICBtYXhQZWVyQ291bnQsXG4gICAgYmxvY2tUb0xpdmUsXG4gICAgbWVtYmVyT25seVJlYWQsXG4gICAgbWVtYmVyT25seVdyaXRlXG4gICk7XG4gIGMuZW5kb3JzZW1lbnRQb2xpY3kgPSB7XG4gICAgc2lnbmF0dXJlUG9saWN5OiBgQU5EKCR7bXNwSWRzLm1hcCgobSkgPT4gYCcke219LnBlZXInYCkuam9pbihcIixcIil9KWAsXG4gIH07XG4gIHJldHVybiBjO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXh0cmFjdENvbGxlY3Rpb25zPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG06IENvbnN0cnVjdG9yPE0+LFxuICBtc3BJZHM6IHN0cmluZ1tdLFxuICBvdmVycmlkZXM6IHtcbiAgICBwcml2YXRlQ29scz86IFBhcnRpYWw8UHJpdmF0ZUNvbGxlY3Rpb24+O1xuICAgIHNoYXJlZENvbHM/OiBQYXJ0aWFsPFByaXZhdGVDb2xsZWN0aW9uPjtcbiAgfSA9IHt9LFxuICBtaXJyb3I6IGJvb2xlYW4gPSBmYWxzZVxuKSB7XG4gIGxldCB7IHByaXZhdGVDb2xzLCBzaGFyZWRDb2xzIH0gPSBNb2RlbC5jb2xsZWN0aW9uc0ZvcihtKTtcblxuICBmdW5jdGlvbiByZXNvbHZlQ29sbGVjdGlvbihhcmc6IHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlcik6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0eXBlb2YgYXJnID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXJnO1xuICAgICAgcmV0dXJuIGFyZyhtLCBtc3BJZHNbMF0pIGFzIHN0cmluZztcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlQ29scyA9IHByaXZhdGVDb2xzLm1hcChyZXNvbHZlQ29sbGVjdGlvbik7XG4gIHNoYXJlZENvbHMgPSBzaGFyZWRDb2xzLm1hcChyZXNvbHZlQ29sbGVjdGlvbik7XG5cbiAgY29uc3QgcHJpdmF0ZURlZmF1bHRzID0gT2JqZWN0LmFzc2lnbihcbiAgICB7fSxcbiAgICB7XG4gICAgICByZXF1aXJlZFBlZXJDb3VudDogMCxcbiAgICAgIG1heFBlZXJDb3VudDogMCxcbiAgICAgIGJsb2NrVG9MaXZlOiAwLFxuICAgICAgbWVtYmVyT25seVJlYWQ6IHRydWUsXG4gICAgICBtZW1iZXJPbmx5V3JpdGU6IHRydWUsXG4gICAgfSxcbiAgICBvdmVycmlkZXM/LnByaXZhdGVDb2xzIHx8IHt9XG4gICk7XG4gIGNvbnN0IHNoYXJlZERlZmF1bHRzID0gT2JqZWN0LmFzc2lnbihcbiAgICB7fSxcbiAgICB7XG4gICAgICByZXF1aXJlZFBlZXJDb3VudDogMSxcbiAgICAgIG1heFBlZXJDb3VudDogMixcbiAgICAgIGJsb2NrVG9MaXZlOiAwLFxuICAgICAgbWVtYmVyT25seVJlYWQ6IHRydWUsXG4gICAgICBtZW1iZXJPbmx5V3JpdGU6IHRydWUsXG4gICAgfSxcbiAgICBvdmVycmlkZXM/LnNoYXJlZENvbHMgfHwge31cbiAgKTtcblxuICBjb25zdCBtaXJyb3JNZXRhID0gbWlycm9yID8gTW9kZWwubWlycm9yZWRBdChtKSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBwcml2YXRlcyA9IG1zcElkc1xuICAgIC5tYXAoKG1zcElkKSA9PlxuICAgICAgKHByaXZhdGVDb2xzIGFzIHN0cmluZ1tdKS5tYXAoKHApID0+IHtcbiAgICAgICAgY29uc3QgeyByZXF1aXJlZFBlZXJDb3VudCwgbWF4UGVlckNvdW50LCBibG9ja1RvTGl2ZSwgbWVtYmVyT25seVJlYWQgfSA9XG4gICAgICAgICAgcHJpdmF0ZURlZmF1bHRzO1xuICAgICAgICByZXR1cm4gcHJpdmF0ZUNvbGxlY3Rpb25Gb3IoXG4gICAgICAgICAgbXNwSWQsXG4gICAgICAgICAgcCxcbiAgICAgICAgICByZXF1aXJlZFBlZXJDb3VudCxcbiAgICAgICAgICBtYXhQZWVyQ291bnQsXG4gICAgICAgICAgYmxvY2tUb0xpdmUsXG4gICAgICAgICAgbWVtYmVyT25seVJlYWQsXG4gICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKVxuICAgIC5mbGF0KCk7XG5cbiAgaWYgKG1pcnJvck1ldGEgJiYgbWlycm9yTWV0YS5tc3BJZCkge1xuICAgIGNvbnN0IHJlc29sdmVkID1cbiAgICAgIHR5cGVvZiBtaXJyb3JNZXRhLnJlc29sdmVyID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gbWlycm9yTWV0YS5yZXNvbHZlclxuICAgICAgICA6IG1pcnJvck1ldGEucmVzb2x2ZXIobSwgbWlycm9yTWV0YS5tc3BJZCk7XG4gICAgaWYgKFxuICAgICAgcmVzb2x2ZWQgJiZcbiAgICAgICFwcml2YXRlcy5zb21lKFxuICAgICAgICAocCkgPT4gcC5uYW1lID09PSByZXNvbHZlZCAmJiBwLnBvbGljeS5pbmNsdWRlcyhtaXJyb3JNZXRhLm1zcElkKVxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc3QgeyByZXF1aXJlZFBlZXJDb3VudCwgbWF4UGVlckNvdW50LCBibG9ja1RvTGl2ZSwgbWVtYmVyT25seVJlYWQgfSA9XG4gICAgICAgIHByaXZhdGVEZWZhdWx0cztcbiAgICAgIHByaXZhdGVzLnB1c2goXG4gICAgICAgIHByaXZhdGVDb2xsZWN0aW9uRm9yKFxuICAgICAgICAgIG1pcnJvck1ldGEubXNwSWQsXG4gICAgICAgICAgcmVzb2x2ZWQsXG4gICAgICAgICAgcmVxdWlyZWRQZWVyQ291bnQsXG4gICAgICAgICAgbWF4UGVlckNvdW50LFxuICAgICAgICAgIGJsb2NrVG9MaXZlLFxuICAgICAgICAgIG1lbWJlck9ubHlSZWFkLFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2hhcmVkID0gKHNoYXJlZENvbHMgYXMgc3RyaW5nW10pLm1hcCgocCkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHJlcXVpcmVkUGVlckNvdW50LFxuICAgICAgbWF4UGVlckNvdW50LFxuICAgICAgYmxvY2tUb0xpdmUsXG4gICAgICBtZW1iZXJPbmx5UmVhZCxcbiAgICAgIG1lbWJlck9ubHlXcml0ZSxcbiAgICB9ID0gc2hhcmVkRGVmYXVsdHM7XG4gICAgcmV0dXJuIHNoYXJlZENvbGxlY3Rpb25Gb3IoXG4gICAgICBtc3BJZHMsXG4gICAgICBwLFxuICAgICAgcmVxdWlyZWRQZWVyQ291bnQsXG4gICAgICBtYXhQZWVyQ291bnQsXG4gICAgICBibG9ja1RvTGl2ZSxcbiAgICAgIG1lbWJlck9ubHlSZWFkLFxuICAgICAgbWVtYmVyT25seVdyaXRlXG4gICAgKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBwcml2YXRlcyxcbiAgICBzaGFyZWQsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUNvbGxlY3Rpb25zKFxuICBjb2xzOiBQcml2YXRlQ29sbGVjdGlvbltdLFxuICBwOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpLFxuICBmaWxlTmFtZSA9IFwiY29sbGVjdGlvbnNfY29uZmlnXCJcbikge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICBjb25zdCBmcyA9IHJlcXVpcmUoXCJmc1wiKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgY29uc3QgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuXG4gIGZ1bmN0aW9uIGVuc3VyZURpcmVjdG9yeUV4aXN0ZW5jZShmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgZGlybmFtZTogc3RyaW5nID0gcGF0aC5kaXJuYW1lKGZpbGVQYXRoKSBhcyBzdHJpbmc7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoZGlybmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBlbnN1cmVEaXJlY3RvcnlFeGlzdGVuY2UoZGlybmFtZSk7XG4gICAgZnMubWtkaXJTeW5jKGRpcm5hbWUpO1xuICB9XG5cbiAgY29uc3QgZmlsZSA9IHBhdGgucmVzb2x2ZShwYXRoLmpvaW4ocCwgYC4vTUVUQS1JTkYvJHtmaWxlTmFtZX0uanNvbmApKTtcbiAgZW5zdXJlRGlyZWN0b3J5RXhpc3RlbmNlKGZpbGUpO1xuICBmcy53cml0ZUZpbGVTeW5jKGZpbGUsIEpTT04uc3RyaW5naWZ5KGNvbHMsIHVuZGVmaW5lZCwgMikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVDb2xsZWN0aW9uRGVzaWduRG9jcyhcbiAgZG9jczogQ291Y2hEQkRlc2lnbkRvY1tdLFxuICBwOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpLFxuICBjb2xsZWN0aW9uPzogc3RyaW5nXG4pIHtcbiAgaWYgKCFkb2NzPy5sZW5ndGgpIHJldHVybjtcbiAgd3JpdGVEZXNpZ25Eb2NzKGRvY3MsIHAsIGNvbGxlY3Rpb24pO1xufVxuIl19
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdlbmVyYXRpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxzQ0FVQztBQUNELG9EQU1DO0FBQ0Qsa0RBTUM7QUFDRCxnREFxREM7QUFDRCw0Q0FnQkM7QUFDRCw4REFJQztBQXZHRCx5RUFBdUQ7QUFDdkQsMkRBQXdEO0FBQ3hELDhEQUE2RDtBQUM3RCxTQUFnQixhQUFhLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxlQUFlO0lBQy9ILE9BQU87UUFDSCxJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUsTUFBTTtRQUNkLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osV0FBVztRQUNYLGNBQWM7UUFDZCxlQUFlO0tBQ2xCLENBQUM7QUFDTixDQUFDO0FBQ0QsU0FBZ0Isb0JBQW9CLENBQUMsS0FBSyxFQUFFLGNBQWMsR0FBRyxHQUFHLEtBQUssU0FBUyxFQUFFLGlCQUFpQixHQUFHLENBQUMsRUFBRSxZQUFZLEdBQUcsQ0FBQyxFQUFFLFdBQVcsR0FBRyxDQUFDLEVBQUUsY0FBYyxHQUFHLElBQUksRUFBRSxlQUFlLEdBQUcsSUFBSTtJQUNuTCxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsY0FBYyxFQUFFLE9BQU8sS0FBSyxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDaEosQ0FBQyxDQUFDLGlCQUFpQixHQUFHO1FBQ2xCLGVBQWUsRUFBRSxPQUFPLEtBQUssU0FBUztLQUN6QyxDQUFDO0lBQ0YsT0FBTyxDQUFDLENBQUM7QUFDYixDQUFDO0FBQ0QsU0FBZ0IsbUJBQW1CLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsWUFBWSxHQUFHLENBQUMsRUFBRSxXQUFXLEdBQUcs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IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IHdyaXRlRGVzaWduRG9jcyB9IGZyb20gXCIuLy4uL2luZGV4ZXMvZ2VuZXJhdGlvbi5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3Rpb25Gb3IoY29sbGVjdGlvbk5hbWUsIHBvbGljeSwgcmVxdWlyZWRQZWVyQ291bnQsIG1heFBlZXJDb3VudCwgYmxvY2tUb0xpdmUsIG1lbWJlck9ubHlSZWFkLCBtZW1iZXJPbmx5V3JpdGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBjb2xsZWN0aW9uTmFtZSxcbiAgICAgICAgcG9saWN5OiBwb2xpY3ksXG4gICAgICAgIHJlcXVpcmVkUGVlckNvdW50LFxuICAgICAgICBtYXhQZWVyQ291bnQsXG4gICAgICAgIGJsb2NrVG9MaXZlLFxuICAgICAgICBtZW1iZXJPbmx5UmVhZCxcbiAgICAgICAgbWVtYmVyT25seVdyaXRlLFxuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZUNvbGxlY3Rpb25Gb3IobXNwSWQsIGNvbGxlY3Rpb25OYW1lID0gYCR7bXNwSWR9UHJpdmF0ZWAsIHJlcXVpcmVkUGVlckNvdW50ID0gMCwgbWF4UGVlckNvdW50ID0gMCwgYmxvY2tUb0xpdmUgPSAwLCBtZW1iZXJPbmx5UmVhZCA9IHRydWUsIG1lbWJlck9ubHlXcml0ZSA9IHRydWUpIHtcbiAgICBjb25zdCBjID0gY29sbGVjdGlvbkZvcihjb2xsZWN0aW9uTmFtZSwgYE9SKCcke21zcElkfS5tZW1iZXInKWAsIHJlcXVpcmVkUGVlckNvdW50LCBtYXhQZWVyQ291bnQsIGJsb2NrVG9MaXZlLCBtZW1iZXJPbmx5UmVhZCwgbWVtYmVyT25seVdyaXRlKTtcbiAgICBjLmVuZG9yc2VtZW50UG9saWN5ID0ge1xuICAgICAgICBzaWduYXR1cmVQb2xpY3k6IGBPUignJHttc3BJZH0ucGVlcicpYCxcbiAgICB9O1xuICAgIHJldHVybiBjO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHNoYXJlZENvbGxlY3Rpb25Gb3IobXNwSWRzLCBjb2xsZWN0aW9uTmFtZSwgcmVxdWlyZWRQZWVyQ291bnQgPSAxLCBtYXhQZWVyQ291bnQgPSAyLCBibG9ja1RvTGl2ZSA9IDAsIG1lbWJlck9ubHlSZWFkID0gdHJ1ZSwgbWVtYmVyT25seVdyaXRlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGMgPSBjb2xsZWN0aW9uRm9yKGNvbGxlY3Rpb25OYW1lLCBgT1IoJHttc3BJZHMubWFwKChtKSA9PiBgJyR7bX0ubWVtYmVyJ2ApLmpvaW4oXCIsXCIpfSlgLCByZXF1aXJlZFBlZXJDb3VudCwgbWF4UGVlckNvdW50LCBibG9ja1RvTGl2ZSwgbWVtYmVyT25seVJlYWQsIG1lbWJlck9ubHlXcml0ZSk7XG4gICAgYy5lbmRvcnNlbWVudFBvbGljeSA9IHtcbiAgICAgICAgc2lnbmF0dXJlUG9saWN5OiBgQU5EKCR7bXNwSWRzLm1hcCgobSkgPT4gYCcke219LnBlZXInYCkuam9pbihcIixcIil9KWAsXG4gICAgfTtcbiAgICByZXR1cm4gYztcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleHRyYWN0Q29sbGVjdGlvbnMobSwgbXNwSWRzLCBvdmVycmlkZXMgPSB7fSwgbWlycm9yID0gZmFsc2UpIHtcbiAgICBsZXQgeyBwcml2YXRlQ29scywgc2hhcmVkQ29scyB9ID0gTW9kZWwuY29sbGVjdGlvbnNGb3IobSk7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUNvbGxlY3Rpb24oYXJnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGFyZyA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJnO1xuICAgICAgICAgICAgcmV0dXJuIGFyZyhtLCBtc3BJZHNbMF0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlQ29scyA9IHByaXZhdGVDb2xzLm1hcChyZXNvbHZlQ29sbGVjdGlvbik7XG4gICAgc2hhcmVkQ29scyA9IHNoYXJlZENvbHMubWFwKHJlc29sdmVDb2xsZWN0aW9uKTtcbiAgICBjb25zdCBwcml2YXRlRGVmYXVsdHMgPSBPYmplY3QuYXNzaWduKHt9LCB7XG4gICAgICAgIHJlcXVpcmVkUGVlckNvdW50OiAwLFxuICAgICAgICBtYXhQZWVyQ291bnQ6IDAsXG4gICAgICAgIGJsb2NrVG9MaXZlOiAwLFxuICAgICAgICBtZW1iZXJPbmx5UmVhZDogdHJ1ZSxcbiAgICAgICAgbWVtYmVyT25seVdyaXRlOiB0cnVlLFxuICAgIH0sIG92ZXJyaWRlcz8ucHJpdmF0ZUNvbHMgfHwge30pO1xuICAgIGNvbnN0IHNoYXJlZERlZmF1bHRzID0gT2JqZWN0LmFzc2lnbih7fSwge1xuICAgICAgICByZXF1aXJlZFBlZXJDb3VudDogMSxcbiAgICAgICAgbWF4UGVlckNvdW50OiAyLFxuICAgICAgICBibG9ja1RvTGl2ZTogMCxcbiAgICAgICAgbWVtYmVyT25seVJlYWQ6IHRydWUsXG4gICAgICAgIG1lbWJlck9ubHlXcml0ZTogdHJ1ZSxcbiAgICB9LCBvdmVycmlkZXM/LnNoYXJlZENvbHMgfHwge30pO1xuICAgIGNvbnN0IG1pcnJvck1ldGEgPSBtaXJyb3IgPyBNb2RlbC5taXJyb3JlZEF0KG0pIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHByaXZhdGVzID0gbXNwSWRzXG4gICAgICAgIC5tYXAoKG1zcElkKSA9PiBwcml2YXRlQ29scy5tYXAoKHApID0+IHtcbiAgICAgICAgY29uc3QgeyByZXF1aXJlZFBlZXJDb3VudCwgbWF4UGVlckNvdW50LCBibG9ja1RvTGl2ZSwgbWVtYmVyT25seVJlYWQgfSA9IHByaXZhdGVEZWZhdWx0cztcbiAgICAgICAgcmV0dXJuIHByaXZhdGVDb2xsZWN0aW9uRm9yKG1zcElkLCBwLCByZXF1aXJlZFBlZXJDb3VudCwgbWF4UGVlckNvdW50LCBibG9ja1RvTGl2ZSwgbWVtYmVyT25seVJlYWQsIGZhbHNlKTtcbiAgICB9KSlcbiAgICAgICAgLmZsYXQoKTtcbiAgICBpZiAobWlycm9yTWV0YSAmJiBtaXJyb3JNZXRhLm1zcElkKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkID0gdHlwZW9mIG1pcnJvck1ldGEucmVzb2x2ZXIgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gbWlycm9yTWV0YS5yZXNvbHZlclxuICAgICAgICAgICAgOiBtaXJyb3JNZXRhLnJlc29sdmVyKG0sIG1pcnJvck1ldGEubXNwSWQpO1xuICAgICAgICBpZiAocmVzb2x2ZWQgJiZcbiAgICAgICAgICAgICFwcml2YXRlcy5zb21lKChwKSA9PiBwLm5hbWUgPT09IHJlc29sdmVkICYmIHAucG9saWN5LmluY2x1ZGVzKG1pcnJvck1ldGEubXNwSWQpKSkge1xuICAgICAgICAgICAgY29uc3QgeyByZXF1aXJlZFBlZXJDb3VudCwgbWF4UGVlckNvdW50LCBibG9ja1RvTGl2ZSwgbWVtYmVyT25seVJlYWQgfSA9IHByaXZhdGVEZWZhdWx0cztcbiAgICAgICAgICAgIHByaXZhdGVzLnB1c2gocHJpdmF0ZUNvbGxlY3Rpb25Gb3IobWlycm9yTWV0YS5tc3BJZCwgcmVzb2x2ZWQsIHJlcXVpcmVkUGVlckNvdW50LCBtYXhQZWVyQ291bnQsIGJsb2NrVG9MaXZlLCBtZW1iZXJPbmx5UmVhZCwgZmFsc2UpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzaGFyZWQgPSBzaGFyZWRDb2xzLm1hcCgocCkgPT4ge1xuICAgICAgICBjb25zdCB7IHJlcXVpcmVkUGVlckNvdW50LCBtYXhQZWVyQ291bnQsIGJsb2NrVG9MaXZlLCBtZW1iZXJPbmx5UmVhZCwgbWVtYmVyT25seVdyaXRlLCB9ID0gc2hhcmVkRGVmYXVsdHM7XG4gICAgICAgIHJldHVybiBzaGFyZWRDb2xsZWN0aW9uRm9yKG1zcElkcywgcCwgcmVxdWlyZWRQZWVyQ291bnQsIG1heFBlZXJDb3VudCwgYmxvY2tUb0xpdmUsIG1lbWJlck9ubHlSZWFkLCBtZW1iZXJPbmx5V3JpdGUpO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHByaXZhdGVzLFxuICAgICAgICBzaGFyZWQsXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUNvbGxlY3Rpb25zKGNvbHMsIHAgPSBwcm9jZXNzLmN3ZCgpLCBmaWxlTmFtZSA9IFwiY29sbGVjdGlvbnNfY29uZmlnXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgIGNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgY29uc3QgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuICAgIGZ1bmN0aW9uIGVuc3VyZURpcmVjdG9yeUV4aXN0ZW5jZShmaWxlUGF0aCkge1xuICAgICAgICBjb25zdCBkaXJuYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVQYXRoKTtcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoZGlybmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVuc3VyZURpcmVjdG9yeUV4aXN0ZW5jZShkaXJuYW1lKTtcbiAgICAgICAgZnMubWtkaXJTeW5jKGRpcm5hbWUpO1xuICAgIH1cbiAgICBjb25zdCBmaWxlID0gcGF0aC5yZXNvbHZlKHBhdGguam9pbihwLCBgLi9NRVRBLUlORi8ke2ZpbGVOYW1lfS5qc29uYCkpO1xuICAgIGVuc3VyZURpcmVjdG9yeUV4aXN0ZW5jZShmaWxlKTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGUsIEpTT04uc3RyaW5naWZ5KGNvbHMsIHVuZGVmaW5lZCwgMikpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlQ29sbGVjdGlvbkRlc2lnbkRvY3MoZG9jcywgcCA9IHByb2Nlc3MuY3dkKCksIGNvbGxlY3Rpb24pIHtcbiAgICBpZiAoIWRvY3M/Lmxlbmd0aClcbiAgICAgICAgcmV0dXJuO1xuICAgIHdyaXRlRGVzaWduRG9jcyhkb2NzLCBwLCBjb2xsZWN0aW9uKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVoyVnVaWEpoZEdsdmJpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlqYkdsbGJuUXZZMjlzYkdWamRHbHZibk12WjJWdVpYSmhkR2x2Ymk1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkZRU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGRGRrUXNUMEZCVHl4RlFVRkZMR0ZCUVdFc1JVRkJSU3hOUVVGTkxIbENRVUY1UWl4RFFVRkRPMEZCUlhoRUxFOUJRVThzUlVGQlJTeGxRVUZsTEVWQlFVVXNiVU5CUVRoQ08wRkJjMFI0UkN4TlFVRk5MRlZCUVZVc1lVRkJZU3hEUVVNelFpeGpRVUZ6UWl4RlFVTjBRaXhOUVVGakxFVkJRMlFzYVVKQlFYbENMRVZCUTNwQ0xGbEJRVzlDTEVWQlEzQkNMRmRCUVcxQ0xFVkJRMjVDTEdOQlFYVkNMRVZCUTNaQ0xHVkJRWGRDTzBsQlJYaENMRTlCUVU4N1VVRkRUQ3hKUVVGSkxFVkJRVVVzWTBGQll6dFJRVU53UWl4TlFVRk5MRVZCUVVVc1RVRkJUVHRSUVVOa0xHbENRVUZwUWp0UlFVTnFRaXhaUVVGWk8xRkJRMW9zVjBGQlZ6dFJRVU5ZTEdOQlFXTTdVVUZEWkN4bFFVRmxPMHRCUTJoQ0xFTkJRVU03UVVGRFNpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRzlDUVVGdlFpeERRVU5zUXl4TFFVRmhMRVZCUTJJc2FVSkJRWGxDTEVkQlFVY3NTMEZCU3l4VFFVRlRMRVZCUXpGRExHOUNRVUUwUWl4RFFVRkRMRVZCUXpkQ0xHVkJRWFZDTEVOQlFVTXNSVUZEZUVJc1kwRkJjMElzUTBGQlF5eEZRVU4yUWl4cFFrRkJNRUlzU1VGQlNTeEZRVU01UWl4clFrRkJNa0lzU1VGQlNUdEpRVVV2UWl4TlFVRk5MRU5CUVVNc1IwRkJSeXhoUVVGaExFTkJRM0pDTEdOQlFXTXNSVUZEWkN4UFFVRlBMRXRCUVVzc1YwRkJWeXhGUVVOMlFpeHBRa0ZCYVVJc1JVRkRha0lzV1VGQldTeEZRVU5hTEZkQlFWY3NSVUZEV0N4alFVRmpMRVZCUTJRc1pVRkJaU3hEUVVOb1FpeERRVUZETzBsQlJVWXNRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeEhRVUZITzFGQlEzQkNMR1ZCUVdVc1JVRkJSU3hQUVVGUExFdEJRVXNzVTBGQlV6dExRVU4yUXl4RFFVRkRPMGxCUTBZc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRFdDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRzFDUVVGdFFpeERRVU5xUXl4TlFVRm5RaXhGUVVOb1FpeGpRVUZ6UWl4RlFVTjBRaXh2UWtGQk5FSXNRMEZCUXl4RlFVTTNRaXhsUVVGMVFpeERRVUZETEVWQlEzaENMR05CUVhOQ0xFTkJRVU1zUlVGRGRrSXNhVUpCUVRCQ0xFbEJRVWtzUlVGRE9VSXNhMEpCUVRKQ0xFbEJRVWs3U1VGRkwwSXNUVUZCVFN4RFFVRkRMRWRCUVVjc1lVRkJZU3hEUVVOeVFpeGpRVUZqTEVWQlEyUXNUVUZCVFN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUTNKRUxHbENRVUZwUWl4RlFVTnFRaXhaUVVGWkxFVkJRMW9zVjBGQlZ5eEZRVU5ZTEdOQlFXTXNSVUZEWkN4bFFVRmxMRU5CUTJoQ0xFTkJRVU03U1VGRFJpeERRVUZETEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWM3VVVGRGNFSXNaVUZCWlN4RlFVRkZMRTlCUVU4c1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSenRMUVVOMFJTeERRVUZETzBsQlEwWXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkRXQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeERRVUZETEV0QlFVc3NWVUZCVlN4clFrRkJhMElzUTBGRGRFTXNRMEZCYVVJc1JVRkRha0lzVFVGQlowSXNSVUZEYUVJc1dVRkhTU3hGUVVGRkxFVkJRMDRzVTBGQmEwSXNTMEZCU3p0SlFVVjJRaXhKUVVGSkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEZWQlFWVXNSVUZCUlN4SFFVRkhMRXRCUVVzc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTVVRc1UwRkJVeXhwUWtGQmFVSXNRMEZCUXl4SFFVRm5RenRSUVVONlJDeEpRVUZKTEVOQlFVTTdXVUZEU0N4SlFVRkpMRTlCUVU4c1IwRkJSeXhMUVVGTExGRkJRVkU3WjBKQlFVVXNUMEZCVHl4SFFVRkhMRU5CUVVNN1dVRkRlRU1zVDBGQlR5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlZ5eERRVUZETzFGQlEzSkRMRU5CUVVNN1VVRkJReXhQUVVGUExFTkJRVlVzUlVGQlJTeERRVUZETzFsQlEzQkNMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zUTBGQlZTeERRVUZETEVOQlFVTTdVVUZEZEVNc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlJDeFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMGxCUTJwRUxGVkJRVlVzUjBGQlJ5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdTVUZGTDBNc1RVRkJUU3hsUVVGbExFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZEYmtNc1JVRkJSU3hGUVVOR08xRkJRMFVzYVVKQlFXbENMRVZCUVVVc1EwRkJRenRSUVVOd1FpeFpRVUZaTEVWQlFVVXNRMEZCUXp0UlFVTm1MRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJRMlFzWTBGQll5eEZRVUZGTEVsQlFVazdVVUZEY0VJc1pVRkJaU3hGUVVGRkxFbEJRVWs3UzBGRGRFSXNSVUZEUkN4VFFVRlRMRVZCUVVVc1YwRkJWeXhKUVVGSkxFVkJRVVVzUTBGRE4wSXNRMEZCUXp0SlFVTkdMRTFCUVUwc1kwRkJZeXhIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlEyeERMRVZCUVVVc1JVRkRSanRSUVVORkxHbENRVUZwUWl4RlFVRkZMRU5CUVVNN1VVRkRjRUlzV1VGQldTeEZRVUZGTEVOQlFVTTdVVUZEWml4WFFVRlhMRVZCUVVVc1EwRkJRenRSUVVOa0xHTkJRV01zUlVGQlJTeEpRVUZKTzFGQlEzQkNMR1ZCUVdVc1JVRkJSU3hKUVVGSk8wdEJRM1JDTEVWQlEwUXNVMEZCVXl4RlFVRkZMRlZCUVZVc1NVRkJTU3hGUVVGRkxFTkJRelZDTEVOQlFVTTdTVUZGUml4TlFVRk5MRlZCUVZVc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXp0SlFVVTFSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTzFOQlEzQkNMRWRCUVVjc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlExb3NWMEZCZDBJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlR0UlFVTnNReXhOUVVGTkxFVkJRVVVzYVVKQlFXbENMRVZCUVVVc1dVRkJXU3hGUVVGRkxGZEJRVmNzUlVGQlJTeGpRVUZqTEVWQlFVVXNSMEZEY0VVc1pVRkJaU3hEUVVGRE8xRkJRMnhDTEU5QlFVOHNiMEpCUVc5Q0xFTkJRM3BDTEV0QlFVc3NSVUZEVEN4RFFVRkRMRVZCUTBRc2FVSkJRV2xDTEVWQlEycENMRmxCUVZrc1JVRkRXaXhYUVVGWExFVkJRMWdzWTBGQll5eEZRVU5rTEV0QlFVc3NRMEZEVGl4RFFVRkRPMGxCUTBvc1EwRkJReXhEUVVGRExFTkJRMGc3VTBGRFFTeEpRVUZKTEVWQlFVVXNRMEZCUXp0SlFVVldMRWxCUVVrc1ZVRkJWU3hKUVVGSkxGVkJRVlVzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0UlFVTnVReXhOUVVGTkxGRkJRVkVzUjBGRFdpeFBRVUZQTEZWQlFWVXNRMEZCUXl4UlFVRlJMRXRCUVVzc1VVRkJVVHRaUVVOeVF5eERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRkZCUVZFN1dVRkRja0lzUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhGUVVGRkxGVkJRVlVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTXZReXhKUVVORkxGRkJRVkU3V1VGRFVpeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUTFvc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRXRCUVVzc1VVRkJVU3hKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGRGJFVXNSVUZEUkN4RFFVRkRPMWxCUTBRc1RVRkJUU3hGUVVGRkxHbENRVUZwUWl4RlFVRkZMRmxCUVZrc1JVRkJSU3hYUVVGWExFVkJRVVVzWTBGQll5eEZRVUZGTEVkQlEzQkZMR1ZCUVdVc1EwRkJRenRaUVVOc1FpeFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVTllMRzlDUVVGdlFpeERRVU5zUWl4VlFVRlZMRU5CUVVNc1MwRkJTeXhGUVVOb1FpeFJRVUZSTEVWQlExSXNhVUpCUVdsQ0xFVkJRMnBDTEZsQlFWa3NSVUZEV2l4WFFVRlhMRVZCUTFnc1kwRkJZeXhGUVVOa0xFdEJRVXNzUTBGRFRpeERRVU5HTEVOQlFVTTdVVUZEU2l4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWRUxFMUJRVTBzVFVGQlRTeEhRVUZKTEZWQlFYVkNMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZEYUVRc1RVRkJUU3hGUVVOS0xHbENRVUZwUWl4RlFVTnFRaXhaUVVGWkxFVkJRMW9zVjBGQlZ5eEZRVU5ZTEdOQlFXTXNSVUZEWkN4bFFVRmxMRWRCUTJoQ0xFZEJRVWNzWTBGQll5eERRVUZETzFGQlEyNUNMRTlCUVU4c2JVSkJRVzFDTEVOQlEzaENMRTFCUVUwc1JVRkRUaXhEUVVGRExFVkJRMFFzYVVKQlFXbENMRVZCUTJwQ0xGbEJRVmtzUlVGRFdpeFhRVUZYTEVWQlExZ3NZMEZCWXl4RlFVTmtMR1ZCUVdVc1EwRkRhRUlzUTBGQlF6dEpRVU5LTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlVnc1QwRkJUenRSUVVOTUxGRkJRVkU3VVVGRFVpeE5RVUZOTzB0QlExQXNRMEZCUXp0QlFVTktMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUXpsQ0xFbEJRWGxDTEVWQlEzcENMRWxCUVZrc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVU42UWl4UlFVRlJMRWRCUVVjc2IwSkJRVzlDTzBsQlJTOUNMR2xGUVVGcFJUdEpRVU5xUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEZWtJc2FVVkJRV2xGTzBsQlEycEZMRTFCUVUwc1NVRkJTU3hIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVVTNRaXhUUVVGVExIZENRVUYzUWl4RFFVRkRMRkZCUVdkQ08xRkJRMmhFTEUxQlFVMHNUMEZCVHl4SFFVRlhMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZYTEVOQlFVTTdVVUZEZWtRc1NVRkJTU3hGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRNMElzVDBGQlR5eEpRVUZKTEVOQlFVTTdVVUZEWkN4RFFVRkRPMUZCUTBRc2QwSkJRWGRDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRiRU1zUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVONFFpeERRVUZETzBsQlJVUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1JVRkJSU3hqUVVGakxGRkJRVkVzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjJSU3gzUWtGQmQwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNdlFpeEZRVUZGTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NSVUZCUlN4VFFVRlRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0zUkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxIbENRVUY1UWl4RFFVTjJReXhKUVVGM1FpeEZRVU40UWl4SlFVRlpMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUlVGRGVrSXNWVUZCYlVJN1NVRkZia0lzU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5PMUZCUVVVc1QwRkJUenRKUVVNeFFpeGxRVUZsTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF6dEJRVU4yUXl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnUTI5dWMzUnlkV04wYjNJZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmxZMjl5WVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3SUVOdmRXTm9SRUpFWlhOcFoyNUViMk1nZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJadmNpMWpiM1ZqYUdSaVhDSTdYRzVwYlhCdmNuUWdleUJOYjJSbGJDQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHOXlMWFpoYkdsa1lYUnBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lFbHVkR1Z5Ym1Gc1JYSnliM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUVOdmJHeGxZM1JwYjI1U1pYTnZiSFpsY2lCOUlHWnliMjBnWENJdUxpOHVMaTl6YUdGeVpXUXZhVzVrWlhoY0lqdGNibWx0Y0c5eWRDQjdJSGR5YVhSbFJHVnphV2R1Ukc5amN5QjlJR1p5YjIwZ1hDSXVMaTlwYm1SbGVHVnpMMmRsYm1WeVlYUnBiMjVjSWp0Y2JseHVMeTljYmk4dklHVjRjRzl5ZENCMGVYQmxJRVpoWW5KcFkwTnZiR3hsWTNScGIyNGdQU0I3WEc0dkx5QWdJRzVoYldVNklGd2lZMjlzYkdWamRHbHZiazFoY21Kc1pYTmNJanRjYmk4dklDQWdjRzlzYVdONU9pQmNJazlTS0NkUGNtY3hUVk5RTG0xbGJXSmxjaWNzSUNkUGNtY3lUVk5RTG0xbGJXSmxjaWNwWENJN1hHNHZMeUFnSUhKbGNYVnBjbVZrVUdWbGNrTnZkVzUwT2lBd08xeHVMeThnSUNCdFlYaFFaV1Z5UTI5MWJuUTZJRE03WEc0dkx5QWdJR0pzYjJOclZHOU1hWFpsT2lBd08xeHVMeThnSUNCdFpXMWlaWEpQYm14NVVtVmhaRG9nZEhKMVpUdGNiaTh2SUNBZ2JXVnRZbVZ5VDI1c2VWZHlhWFJsT2lCMGNuVmxPMXh1THk4Z0lDQmxibVJ2Y25ObGJXVnVkRkJ2YkdsamVUb2dlMXh1THk4Z0lDQWdJR2xrWlc1MGFYUnBaWE02SUZ0Y2JpOHZJQ0FnSUNBZ0lIc2djbTlzWlRvZ2V5QnVZVzFsT2lCY0ltMWxiV0psY2x3aU95QnRjM0JKWkRvZ1hDSlBjbWN4VFZOUVhDSWdmU0I5TEZ4dUx5OGdJQ0FnSUNBZ2V5QnliMnhsT2lCN0lHNWhiV1U2SUZ3aWJXVnRZbVZ5WENJN0lHMXpjRWxrT2lCY0lrOXlaekpOVTFCY0lpQjlJSDBzWEc0dkx5QWdJQ0FnWFR0Y2JpOHZJQ0FnSUNCeWRXeGxPaUJjSWs5U0tDZFBjbWN4VFZOUUxtMWxiV0psY2ljc0lDZFBjbWN5VFZOUUxtMWxiV0psY2ljcFhDSTdYRzR2THlBZ0lIMDdYRzR2THlCOU8xeHVYRzVsZUhCdmNuUWdkSGx3WlNCR1lXSnlhV05RYjJ4cFkzbEpaR1Z1ZEdsMGVTQTlJSHRjYmlBZ2NtOXNaVG9nZTF4dUlDQWdJRzVoYldVNklITjBjbWx1Wnp0Y2JpQWdJQ0J0YzNCSlpEb2djM1J5YVc1bk8xeHVJQ0I5TzF4dWZUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1JtRmljbWxqUTI5c2JHVmpkR2x2YmlBOUlIdGNiaUFnYm1GdFpUb2djM1J5YVc1bk8xeHVJQ0J3YjJ4cFkzazZJSE4wY21sdVp6dGNiaUFnY21WeGRXbHlaV1JRWldWeVEyOTFiblE2SUc1MWJXSmxjanRjYmlBZ2JXRjRVR1ZsY2tOdmRXNTBPaUJ1ZFcxaVpYSTdYRzRnSUdKc2IyTnJWRzlNYVhabE9pQnVkVzFpWlhJN1hHNGdJRzFsYldKbGNrOXViSGxTWldGa09pQmliMjlzWldGdU8xeHVJQ0J0WlcxaVpYSlBibXg1VjNKcGRHVTZJR0p2YjJ4bFlXNDdYRzRnSUdWdVpHOXljMlZ0Wlc1MFVHOXNhV041T2lCN1hHNGdJQ0FnYVdSbGJuUnBkR2xsY3pvZ1JtRmljbWxqVUc5c2FXTjVTV1JsYm5ScGRIbGJYVHRjYmlBZ0lDQnlkV3hsT2lCemRISnBibWM3WEc0Z0lIMDdYRzU5TzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JRY21sMllYUmxRMjlzYkdWamRHbHZiaUE5SUh0Y2JpQWdibUZ0WlRvZ2MzUnlhVzVuTzF4dUlDQndiMnhwWTNrNklITjBjbWx1Wnp0Y2JpQWdjbVZ4ZFdseVpXUlFaV1Z5UTI5MWJuUTZJRzUxYldKbGNqdGNiaUFnYldGNFVHVmxja052ZFc1ME9pQnVkVzFpWlhJN1hHNGdJR0pzYjJOclZHOU1hWFpsT2lCdWRXMWlaWEk3WEc0Z0lHMWxiV0psY2s5dWJIbFNaV0ZrT2lCaWIyOXNaV0Z1TzF4dUlDQnRaVzFpWlhKUGJteDVWM0pwZEdVNklHSnZiMnhsWVc0N1hHNGdJR1Z1Wkc5eWMyVnRaVzUwVUc5c2FXTjVQem9nZTF4dUlDQWdJSE5wWjI1aGRIVnlaVkJ2YkdsamVUb2djM1J5YVc1bk8xeHVJQ0I5TzF4dWZUdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR052Ykd4bFkzUnBiMjVHYjNJb1hHNGdJR052Ykd4bFkzUnBiMjVPWVcxbE9pQnpkSEpwYm1jc1hHNGdJSEJ2YkdsamVUb2djM1J5YVc1bkxGeHVJQ0J5WlhGMWFYSmxaRkJsWlhKRGIzVnVkRG9nYm5WdFltVnlMRnh1SUNCdFlYaFFaV1Z5UTI5MWJuUTZJRzUxYldKbGNpeGNiaUFnWW14dlkydFViMHhwZG1VNklHNTFiV0psY2l4Y2JpQWdiV1Z0WW1WeVQyNXNlVkpsWVdRNklHSnZiMnhsWVc0c1hHNGdJRzFsYldKbGNrOXViSGxYY21sMFpUb2dZbTl2YkdWaGJseHVLVG9nVUhKcGRtRjBaVU52Ykd4bFkzUnBiMjRnZTF4dUlDQnlaWFIxY200Z2UxeHVJQ0FnSUc1aGJXVTZJR052Ykd4bFkzUnBiMjVPWVcxbExGeHVJQ0FnSUhCdmJHbGplVG9nY0c5c2FXTjVMRnh1SUNBZ0lISmxjWFZwY21Wa1VHVmxja052ZFc1MExGeHVJQ0FnSUcxaGVGQmxaWEpEYjNWdWRDeGNiaUFnSUNCaWJHOWphMVJ2VEdsMlpTeGNiaUFnSUNCdFpXMWlaWEpQYm14NVVtVmhaQ3hjYmlBZ0lDQnRaVzFpWlhKUGJteDVWM0pwZEdVc1hHNGdJSDA3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQndjbWwyWVhSbFEyOXNiR1ZqZEdsdmJrWnZjaWhjYmlBZ2JYTndTV1E2SUhOMGNtbHVaeXhjYmlBZ1kyOXNiR1ZqZEdsdmJrNWhiV1U2SUhOMGNtbHVaeUE5SUdBa2UyMXpjRWxrZlZCeWFYWmhkR1ZnTEZ4dUlDQnlaWEYxYVhKbFpGQmxaWEpEYjNWdWREb2diblZ0WW1WeUlEMGdNQ3hjYmlBZ2JXRjRVR1ZsY2tOdmRXNTBPaUJ1ZFcxaVpYSWdQU0F3TEZ4dUlDQmliRzlqYTFSdlRHbDJaVG9nYm5WdFltVnlJRDBnTUN4Y2JpQWdiV1Z0WW1WeVQyNXNlVkpsWVdRNklHSnZiMnhsWVc0Z1BTQjBjblZsTEZ4dUlDQnRaVzFpWlhKUGJteDVWM0pwZEdVNklHSnZiMnhsWVc0Z1BTQjBjblZsWEc0cE9pQlFjbWwyWVhSbFEyOXNiR1ZqZEdsdmJpQjdYRzRnSUdOdmJuTjBJR01nUFNCamIyeHNaV04wYVc5dVJtOXlLRnh1SUNBZ0lHTnZiR3hsWTNScGIyNU9ZVzFsTEZ4dUlDQWdJR0JQVWlnbkpIdHRjM0JKWkgwdWJXVnRZbVZ5SnlsZ0xGeHVJQ0FnSUhKbGNYVnBjbVZrVUdWbGNrTnZkVzUwTEZ4dUlDQWdJRzFoZUZCbFpYSkRiM1Z1ZEN4Y2JpQWdJQ0JpYkc5amExUnZUR2wyWlN4Y2JpQWdJQ0J0WlcxaVpYSlBibXg1VW1WaFpDeGNiaUFnSUNCdFpXMWlaWEpQYm14NVYzSnBkR1ZjYmlBZ0tUdGNibHh1SUNCakxtVnVaRzl5YzJWdFpXNTBVRzlzYVdONUlEMGdlMXh1SUNBZ0lITnBaMjVoZEhWeVpWQnZiR2xqZVRvZ1lFOVNLQ2NrZTIxemNFbGtmUzV3WldWeUp5bGdMRnh1SUNCOU8xeHVJQ0J5WlhSMWNtNGdZenRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlITm9ZWEpsWkVOdmJHeGxZM1JwYjI1R2IzSW9YRzRnSUcxemNFbGtjem9nYzNSeWFXNW5XMTBzWEc0Z0lHTnZiR3hsWTNScGIyNU9ZVzFsT2lCemRISnBibWNzWEc0Z0lISmxjWFZwY21Wa1VHVmxja052ZFc1ME9pQnVkVzFpWlhJZ1BTQXhMRnh1SUNCdFlYaFFaV1Z5UTI5MWJuUTZJRzUxYldKbGNpQTlJRElzWEc0Z0lHSnNiMk5yVkc5TWFYWmxPaUJ1ZFcxaVpYSWdQU0F3TEZ4dUlDQnRaVzFpWlhKUGJteDVVbVZoWkRvZ1ltOXZiR1ZoYmlBOUlIUnlkV1VzWEc0Z0lHMWxiV0psY2s5dWJIbFhjbWwwWlRvZ1ltOXZiR1ZoYmlBOUlIUnlkV1ZjYmlrNklGQnlhWFpoZEdWRGIyeHNaV04wYVc5dUlIdGNiaUFnWTI5dWMzUWdZeUE5SUdOdmJHeGxZM1JwYjI1R2IzSW9YRzRnSUNBZ1kyOXNiR1ZqZEdsdmJrNWhiV1VzWEc0Z0lDQWdZRTlTS0NSN2JYTndTV1J6TG0xaGNDZ29iU2tnUFQ0Z1lDY2tlMjE5TG0xbGJXSmxjaWRnS1M1cWIybHVLRndpTEZ3aUtYMHBZQ3hjYmlBZ0lDQnlaWEYxYVhKbFpGQmxaWEpEYjNWdWRDeGNiaUFnSUNCdFlYaFFaV1Z5UTI5MWJuUXNYRzRnSUNBZ1lteHZZMnRVYjB4cGRtVXNYRzRnSUNBZ2JXVnRZbVZ5VDI1c2VWSmxZV1FzWEc0Z0lDQWdiV1Z0WW1WeVQyNXNlVmR5YVhSbFhHNGdJQ2s3WEc0Z0lHTXVaVzVrYjNKelpXMWxiblJRYjJ4cFkza2dQU0I3WEc0Z0lDQWdjMmxuYm1GMGRYSmxVRzlzYVdONU9pQmdRVTVFS0NSN2JYTndTV1J6TG0xaGNDZ29iU2tnUFQ0Z1lDY2tlMjE5TG5CbFpYSW5ZQ2t1YW05cGJpaGNJaXhjSWlsOUtXQXNYRzRnSUgwN1hHNGdJSEpsZEhWeWJpQmpPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1lYTjVibU1nWm5WdVkzUnBiMjRnWlhoMGNtRmpkRU52Ykd4bFkzUnBiMjV6UEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lHMDZJRU52Ym5OMGNuVmpkRzl5UEUwK0xGeHVJQ0J0YzNCSlpITTZJSE4wY21sdVoxdGRMRnh1SUNCdmRtVnljbWxrWlhNNklIdGNiaUFnSUNCd2NtbDJZWFJsUTI5c2N6ODZJRkJoY25ScFlXdzhVSEpwZG1GMFpVTnZiR3hsWTNScGIyNCtPMXh1SUNBZ0lITm9ZWEpsWkVOdmJITS9PaUJRWVhKMGFXRnNQRkJ5YVhaaGRHVkRiMnhzWldOMGFXOXVQanRjYmlBZ2ZTQTlJSHQ5TEZ4dUlDQnRhWEp5YjNJNklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlZ4dUtTQjdYRzRnSUd4bGRDQjdJSEJ5YVhaaGRHVkRiMnh6TENCemFHRnlaV1JEYjJ4eklIMGdQU0JOYjJSbGJDNWpiMnhzWldOMGFXOXVjMFp2Y2lodEtUdGNibHh1SUNCbWRXNWpkR2x2YmlCeVpYTnZiSFpsUTI5c2JHVmpkR2x2YmloaGNtYzZJSE4wY21sdVp5QjhJRU52Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ1lYSm5JRDA5UFNCY0luTjBjbWx1WjF3aUtTQnlaWFIxY200Z1lYSm5PMXh1SUNBZ0lDQWdjbVYwZFhKdUlHRnlaeWh0TENCdGMzQkpaSE5iTUYwcElHRnpJSE4wY21sdVp6dGNiaUFnSUNCOUlHTmhkR05vSUNobE9pQjFibXR1YjNkdUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2lobElHRnpJRVZ5Y205eUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndjbWwyWVhSbFEyOXNjeUE5SUhCeWFYWmhkR1ZEYjJ4ekxtMWhjQ2h5WlhOdmJIWmxRMjlzYkdWamRHbHZiaWs3WEc0Z0lITm9ZWEpsWkVOdmJITWdQU0J6YUdGeVpXUkRiMnh6TG0xaGNDaHlaWE52YkhabFEyOXNiR1ZqZEdsdmJpazdYRzVjYmlBZ1kyOXVjM1FnY0hKcGRtRjBaVVJsWm1GMWJIUnpJRDBnVDJKcVpXTjBMbUZ6YzJsbmJpaGNiaUFnSUNCN2ZTeGNiaUFnSUNCN1hHNGdJQ0FnSUNCeVpYRjFhWEpsWkZCbFpYSkRiM1Z1ZERvZ01DeGNiaUFnSUNBZ0lHMWhlRkJsWlhKRGIzVnVkRG9nTUN4Y2JpQWdJQ0FnSUdKc2IyTnJWRzlNYVhabE9pQXdMRnh1SUNBZ0lDQWdiV1Z0WW1WeVQyNXNlVkpsWVdRNklIUnlkV1VzWEc0Z0lDQWdJQ0J0WlcxaVpYSlBibXg1VjNKcGRHVTZJSFJ5ZFdVc1hHNGdJQ0FnZlN4Y2JpQWdJQ0J2ZG1WeWNtbGtaWE0vTG5CeWFYWmhkR1ZEYjJ4eklIeDhJSHQ5WEc0Z0lDazdYRzRnSUdOdmJuTjBJSE5vWVhKbFpFUmxabUYxYkhSeklEMGdUMkpxWldOMExtRnpjMmxuYmloY2JpQWdJQ0I3ZlN4Y2JpQWdJQ0I3WEc0Z0lDQWdJQ0J5WlhGMWFYSmxaRkJsWlhKRGIzVnVkRG9nTVN4Y2JpQWdJQ0FnSUcxaGVGQmxaWEpEYjNWdWREb2dNaXhjYmlBZ0lDQWdJR0pzYjJOclZHOU1hWFpsT2lBd0xGeHVJQ0FnSUNBZ2JXVnRZbVZ5VDI1c2VWSmxZV1E2SUhSeWRXVXNYRzRnSUNBZ0lDQnRaVzFpWlhKUGJteDVWM0pwZEdVNklIUnlkV1VzWEc0Z0lDQWdmU3hjYmlBZ0lDQnZkbVZ5Y21sa1pYTS9Mbk5vWVhKbFpFTnZiSE1nZkh3Z2UzMWNiaUFnS1R0Y2JseHVJQ0JqYjI1emRDQnRhWEp5YjNKTlpYUmhJRDBnYldseWNtOXlJRDhnVFc5a1pXd3ViV2x5Y205eVpXUkJkQ2h0S1NBNklIVnVaR1ZtYVc1bFpEdGNibHh1SUNCamIyNXpkQ0J3Y21sMllYUmxjeUE5SUcxemNFbGtjMXh1SUNBZ0lDNXRZWEFvS0cxemNFbGtLU0E5UGx4dUlDQWdJQ0FnS0hCeWFYWmhkR1ZEYjJ4eklHRnpJSE4wY21sdVoxdGRLUzV0WVhBb0tIQXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZXlCeVpYRjFhWEpsWkZCbFpYSkRiM1Z1ZEN3Z2JXRjRVR1ZsY2tOdmRXNTBMQ0JpYkc5amExUnZUR2wyWlN3Z2JXVnRZbVZ5VDI1c2VWSmxZV1FnZlNBOVhHNGdJQ0FnSUNBZ0lDQWdjSEpwZG1GMFpVUmxabUYxYkhSek8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NISnBkbUYwWlVOdmJHeGxZM1JwYjI1R2IzSW9YRzRnSUNBZ0lDQWdJQ0FnYlhOd1NXUXNYRzRnSUNBZ0lDQWdJQ0FnY0N4Y2JpQWdJQ0FnSUNBZ0lDQnlaWEYxYVhKbFpGQmxaWEpEYjNWdWRDeGNiaUFnSUNBZ0lDQWdJQ0J0WVhoUVpXVnlRMjkxYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdZbXh2WTJ0VWIweHBkbVVzWEc0Z0lDQWdJQ0FnSUNBZ2JXVnRZbVZ5VDI1c2VWSmxZV1FzWEc0Z0lDQWdJQ0FnSUNBZ1ptRnNjMlZjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgwcFhHNGdJQ0FnS1Z4dUlDQWdJQzVtYkdGMEtDazdYRzVjYmlBZ2FXWWdLRzFwY25KdmNrMWxkR0VnSmlZZ2JXbHljbTl5VFdWMFlTNXRjM0JKWkNrZ2UxeHVJQ0FnSUdOdmJuTjBJSEpsYzI5c2RtVmtJRDFjYmlBZ0lDQWdJSFI1Y0dWdlppQnRhWEp5YjNKTlpYUmhMbkpsYzI5c2RtVnlJRDA5UFNCY0luTjBjbWx1WjF3aVhHNGdJQ0FnSUNBZ0lEOGdiV2x5Y205eVRXVjBZUzV5WlhOdmJIWmxjbHh1SUNBZ0lDQWdJQ0E2SUcxcGNuSnZjazFsZEdFdWNtVnpiMngyWlhJb2JTd2diV2x5Y205eVRXVjBZUzV0YzNCSlpDazdYRzRnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdjbVZ6YjJ4MlpXUWdKaVpjYmlBZ0lDQWdJQ0Z3Y21sMllYUmxjeTV6YjIxbEtGeHVJQ0FnSUNBZ0lDQW9jQ2tnUFQ0Z2NDNXVZVzFsSUQwOVBTQnlaWE52YkhabFpDQW1KaUJ3TG5CdmJHbGplUzVwYm1Oc2RXUmxjeWh0YVhKeWIzSk5aWFJoTG0xemNFbGtLVnh1SUNBZ0lDQWdLVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2V5QnlaWEYxYVhKbFpGQmxaWEpEYjNWdWRDd2diV0Y0VUdWbGNrTnZkVzUwTENCaWJHOWphMVJ2VEdsMlpTd2diV1Z0WW1WeVQyNXNlVkpsWVdRZ2ZTQTlYRzRnSUNBZ0lDQWdJSEJ5YVhaaGRHVkVaV1poZFd4MGN6dGNiaUFnSUNBZ0lIQnlhWFpoZEdWekxuQjFjMmdvWEc0Z0lDQWdJQ0FnSUhCeWFYWmhkR1ZEYjJ4c1pXTjBhVzl1Um05eUtGeHVJQ0FnSUNBZ0lDQWdJRzFwY25KdmNrMWxkR0V1YlhOd1NXUXNYRzRnSUNBZ0lDQWdJQ0FnY21WemIyeDJaV1FzWEc0Z0lDQWdJQ0FnSUNBZ2NtVnhkV2x5WldSUVpXVnlRMjkxYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdiV0Y0VUdWbGNrTnZkVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lHSnNiMk5yVkc5TWFYWmxMRnh1SUNBZ0lDQWdJQ0FnSUcxbGJXSmxjazl1YkhsU1pXRmtMRnh1SUNBZ0lDQWdJQ0FnSUdaaGJITmxYRzRnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnWTI5dWMzUWdjMmhoY21Wa0lEMGdLSE5vWVhKbFpFTnZiSE1nWVhNZ2MzUnlhVzVuVzEwcExtMWhjQ2dvY0NrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUh0Y2JpQWdJQ0FnSUhKbGNYVnBjbVZrVUdWbGNrTnZkVzUwTEZ4dUlDQWdJQ0FnYldGNFVHVmxja052ZFc1MExGeHVJQ0FnSUNBZ1lteHZZMnRVYjB4cGRtVXNYRzRnSUNBZ0lDQnRaVzFpWlhKUGJteDVVbVZoWkN4Y2JpQWdJQ0FnSUcxbGJXSmxjazl1YkhsWGNtbDBaU3hjYmlBZ0lDQjlJRDBnYzJoaGNtVmtSR1ZtWVhWc2RITTdYRzRnSUNBZ2NtVjBkWEp1SUhOb1lYSmxaRU52Ykd4bFkzUnBiMjVHYjNJb1hHNGdJQ0FnSUNCdGMzQkpaSE1zWEc0Z0lDQWdJQ0J3TEZ4dUlDQWdJQ0FnY21WeGRXbHlaV1JRWldWeVEyOTFiblFzWEc0Z0lDQWdJQ0J0WVhoUVpXVnlRMjkxYm5Rc1hHNGdJQ0FnSUNCaWJHOWphMVJ2VEdsMlpTeGNiaUFnSUNBZ0lHMWxiV0psY2s5dWJIbFNaV0ZrTEZ4dUlDQWdJQ0FnYldWdFltVnlUMjVzZVZkeWFYUmxYRzRnSUNBZ0tUdGNiaUFnZlNrN1hHNWNiaUFnY21WMGRYSnVJSHRjYmlBZ0lDQndjbWwyWVhSbGN5eGNiaUFnSUNCemFHRnlaV1FzWEc0Z0lIMDdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCM2NtbDBaVU52Ykd4bFkzUnBiMjV6S0Z4dUlDQmpiMnh6T2lCUWNtbDJZWFJsUTI5c2JHVmpkR2x2Ymx0ZExGeHVJQ0J3T2lCemRISnBibWNnUFNCd2NtOWpaWE56TG1OM1pDZ3BMRnh1SUNCbWFXeGxUbUZ0WlNBOUlGd2lZMjlzYkdWamRHbHZibk5mWTI5dVptbG5YQ0pjYmlrZ2UxeHVJQ0F2THlCbGMyeHBiblF0WkdsellXSnNaUzF1WlhoMExXeHBibVVnUUhSNWNHVnpZM0pwY0hRdFpYTnNhVzUwTDI1dkxYSmxjWFZwY21VdGFXMXdiM0owYzF4dUlDQmpiMjV6ZENCbWN5QTlJSEpsY1hWcGNtVW9YQ0ptYzF3aUtUdGNiaUFnTHk4Z1pYTnNhVzUwTFdScGMyRmliR1V0Ym1WNGRDMXNhVzVsSUVCMGVYQmxjMk55YVhCMExXVnpiR2x1ZEM5dWJ5MXlaWEYxYVhKbExXbHRjRzl5ZEhOY2JpQWdZMjl1YzNRZ2NHRjBhQ0E5SUhKbGNYVnBjbVVvWENKd1lYUm9YQ0lwTzF4dVhHNGdJR1oxYm1OMGFXOXVJR1Z1YzNWeVpVUnBjbVZqZEc5eWVVVjRhWE4wWlc1alpTaG1hV3hsVUdGMGFEb2djM1J5YVc1bktTQjdYRzRnSUNBZ1kyOXVjM1FnWkdseWJtRnRaVG9nYzNSeWFXNW5JRDBnY0dGMGFDNWthWEp1WVcxbEtHWnBiR1ZRWVhSb0tTQmhjeUJ6ZEhKcGJtYzdYRzRnSUNBZ2FXWWdLR1p6TG1WNGFYTjBjMU41Ym1Nb1pHbHlibUZ0WlNrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lIMWNiaUFnSUNCbGJuTjFjbVZFYVhKbFkzUnZjbmxGZUdsemRHVnVZMlVvWkdseWJtRnRaU2s3WEc0Z0lDQWdabk11Yld0a2FYSlRlVzVqS0dScGNtNWhiV1VwTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnWm1sc1pTQTlJSEJoZEdndWNtVnpiMngyWlNod1lYUm9MbXB2YVc0b2NDd2dZQzR2VFVWVVFTMUpUa1l2Skh0bWFXeGxUbUZ0WlgwdWFuTnZibUFwS1R0Y2JpQWdaVzV6ZFhKbFJHbHlaV04wYjNKNVJYaHBjM1JsYm1ObEtHWnBiR1VwTzF4dUlDQm1jeTUzY21sMFpVWnBiR1ZUZVc1aktHWnBiR1VzSUVwVFQwNHVjM1J5YVc1bmFXWjVLR052YkhNc0lIVnVaR1ZtYVc1bFpDd2dNaWtwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkM0pwZEdWRGIyeHNaV04wYVc5dVJHVnphV2R1Ukc5amN5aGNiaUFnWkc5amN6b2dRMjkxWTJoRVFrUmxjMmxuYmtSdlkxdGRMRnh1SUNCd09pQnpkSEpwYm1jZ1BTQndjbTlqWlhOekxtTjNaQ2dwTEZ4dUlDQmpiMnhzWldOMGFXOXVQem9nYzNSeWFXNW5YRzRwSUh0Y2JpQWdhV1lnS0NGa2IyTnpQeTVzWlc1bmRHZ3BJSEpsZEhWeWJqdGNiaUFnZDNKcGRHVkVaWE5wWjI1RWIyTnpLR1J2WTNNc0lIQXNJR052Ykd4bFkzUnBiMjRwTzF4dWZWeHVJbDE5Il19
|
|
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./generation.cjs"), exports);
|
|
18
|
-
//# sourceMappingURL=
|
|
19
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2NvbGxlY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2dlbmVyYXRpb25cIjtcbiJdfQ==
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLDBUQUEwVCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2dlbmVyYXRpb24uanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdlkyeHBaVzUwTDJOdmJHeGxZM1JwYjI1ekwybHVaR1Y0TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMR2REUVVFMlFpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMmRsYm1WeVlYUnBiMjVjSWp0Y2JpSmRmUT09Il19
|
|
@@ -13,5 +13,5 @@ exports.DefaultFabricClientFlags = Object.assign({
|
|
|
13
13
|
encryptTransient: false,
|
|
14
14
|
syntheticEvents: true,
|
|
15
15
|
});
|
|
16
|
-
//# sourceMappingURL=
|
|
17
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXNCLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDdkUsZUFBZSxFQUFFLENBQUM7SUFDbEIsY0FBYyxFQUFFLEVBQUU7SUFDbEIsYUFBYSxFQUFFLENBQUM7SUFDaEIsYUFBYSxFQUFFLEVBQUU7SUFDakIsTUFBTSxFQUFFLEtBQUs7SUFDYix3QkFBd0IsRUFBRSxLQUFLO0lBQy9CLG9CQUFvQixFQUFFLEtBQUs7SUFDM0Isb0JBQW9CLEVBQUUsSUFBSTtJQUMxQixnQkFBZ0IsRUFBRSxLQUFLO0lBQ3ZCLGVBQWUsRUFBRSxJQUFJO0NBQ3RCLENBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhYnJpY0NsaWVudEZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRGYWJyaWNDbGllbnRGbGFnczogRmFicmljQ2xpZW50RmxhZ3MgPSBPYmplY3QuYXNzaWduKHtcbiAgZXZhbHVhdGVUaW1lb3V0OiA1LFxuICBlbmRvcnNlVGltZW91dDogMTUsXG4gIHN1Ym1pdFRpbWVvdXQ6IDUsXG4gIGNvbW1pdFRpbWVvdXQ6IDYwLFxuICBsZWdhY3k6IGZhbHNlLFxuICBhbGxvd01hbnVhbEVuZG9yc2luZ09yZ3M6IGZhbHNlLFxuICBhbGxvd0dhdGV3YXlPdmVycmlkZTogZmFsc2UsXG4gIHJlYnVpbGRXaXRoVHJhbnNpZW50OiB0cnVlLFxuICBlbmNyeXB0VHJhbnNpZW50OiBmYWxzZSxcbiAgc3ludGhldGljRXZlbnRzOiB0cnVlLFxufSkgYXMgYW55O1xuIl19
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsd0JBQXdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNsRCxlQUFlLEVBQUUsQ0FBQztJQUNsQixjQUFjLEVBQUUsRUFBRTtJQUNsQixhQUFhLEVBQUUsQ0FBQztJQUNoQixhQUFhLEVBQUUsRUFBRTtJQUNqQixNQUFNLEVBQUUsS0FBSztJQUNiLHdCQUF3QixFQUFFLEtBQUs7SUFDL0Isb0JBQW9CLEVBQUUsS0FBSztJQUMzQixvQkFBb0IsRUFBRSxJQUFJO0lBQzFCLGdCQUFnQixFQUFFLEtBQUs7SUFDdkIsZUFBZSxFQUFFLElBQUk7Q0FDeEIsQ0FBQyxDQUFDO0FBQ0gsa29DQUFrb0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRGVmYXVsdEZhYnJpY0NsaWVudEZsYWdzID0gT2JqZWN0LmFzc2lnbih7XG4gICAgZXZhbHVhdGVUaW1lb3V0OiA1LFxuICAgIGVuZG9yc2VUaW1lb3V0OiAxNSxcbiAgICBzdWJtaXRUaW1lb3V0OiA1LFxuICAgIGNvbW1pdFRpbWVvdXQ6IDYwLFxuICAgIGxlZ2FjeTogZmFsc2UsXG4gICAgYWxsb3dNYW51YWxFbmRvcnNpbmdPcmdzOiBmYWxzZSxcbiAgICBhbGxvd0dhdGV3YXlPdmVycmlkZTogZmFsc2UsXG4gICAgcmVidWlsZFdpdGhUcmFuc2llbnQ6IHRydWUsXG4gICAgZW5jcnlwdFRyYW5zaWVudDogZmFsc2UsXG4gICAgc3ludGhldGljRXZlbnRzOiB0cnVlLFxufSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZMjl1YzNSaGJuUnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMMk5zYVdWdWRDOWpiMjV6ZEdGdWRITXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUlVFc1RVRkJUU3hEUVVGRExFMUJRVTBzZDBKQlFYZENMRWRCUVhOQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEZGtVc1pVRkJaU3hGUVVGRkxFTkJRVU03U1VGRGJFSXNZMEZCWXl4RlFVRkZMRVZCUVVVN1NVRkRiRUlzWVVGQllTeEZRVUZGTEVOQlFVTTdTVUZEYUVJc1lVRkJZU3hGUVVGRkxFVkJRVVU3U1VGRGFrSXNUVUZCVFN4RlFVRkZMRXRCUVVzN1NVRkRZaXgzUWtGQmQwSXNSVUZCUlN4TFFVRkxPMGxCUXk5Q0xHOUNRVUZ2UWl4RlFVRkZMRXRCUVVzN1NVRkRNMElzYjBKQlFXOUNMRVZCUVVVc1NVRkJTVHRKUVVNeFFpeG5Ra0ZCWjBJc1JVRkJSU3hMUVVGTE8wbEJRM1pDTEdWQlFXVXNSVUZCUlN4SlFVRkpPME5CUTNSQ0xFTkJRVkVzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpJSDBnWm5KdmJTQmNJaTR2ZEhsd1pYTmNJanRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVJsWm1GMWJIUkdZV0p5YVdORGJHbGxiblJHYkdGbmN6b2dSbUZpY21salEyeHBaVzUwUm14aFozTWdQU0JQWW1wbFkzUXVZWE56YVdkdUtIdGNiaUFnWlhaaGJIVmhkR1ZVYVcxbGIzVjBPaUExTEZ4dUlDQmxibVJ2Y25ObFZHbHRaVzkxZERvZ01UVXNYRzRnSUhOMVltMXBkRlJwYldWdmRYUTZJRFVzWEc0Z0lHTnZiVzFwZEZScGJXVnZkWFE2SURZd0xGeHVJQ0JzWldkaFkzazZJR1poYkhObExGeHVJQ0JoYkd4dmQwMWhiblZoYkVWdVpHOXljMmx1WjA5eVozTTZJR1poYkhObExGeHVJQ0JoYkd4dmQwZGhkR1YzWVhsUGRtVnljbWxrWlRvZ1ptRnNjMlVzWEc0Z0lISmxZblZwYkdSWGFYUm9WSEpoYm5OcFpXNTBPaUIwY25WbExGeHVJQ0JsYm1OeWVYQjBWSEpoYm5OcFpXNTBPaUJtWVd4elpTeGNiaUFnYzNsdWRHaGxkR2xqUlhabGJuUnpPaUIwY25WbExGeHVmU2tnWVhNZ1lXNTVPMXh1SWwxOSJdfQ==
|